ich bin noch sehr neu in der Welt von openHAB und Hausautomatisierung. Ich habe bisher erst alle meine Geräte eingepflegt und versucht eine Regel zu erstellen welche alle Rolladen über einen Schalter Steuern soll. Der Code der Regel sieht wie folgt aus:
Code: Alles auswählen
rule "Gesamte Rolladen Steuerung"
when Item rolladenAlle received command // rolladenAlleEG ist der Schalter der für die Steuerung zuständig sein soll
then
Rolladen_EG.members.forEach[ rs |
rs.sendCommand(receivedCommand)
Thread::sleep(100)
]
end
Ich dachte es liegt vielleicht daran, dass der aufm dem Bus immer beide Befehle parallel gesendet werden und es daher zu diesem Phänomen kommt. Also habe ich versucht eine Absicherung zu "bauen" die es verhindern soll, dass ein weiterer Befehl gesendet wird solange der vorherige noch nicht beendet wurde. Meine Idee sah so aus:
Code: Alles auswählen
val frei = true
rule "Gesamte Rolladen Steuerung"
when Item rolladenAlle received command // rolladenAlleEG ist der Schalter der für die Steuerung zuständig sein soll
then
if(frei){
frei = false
Rolladen_EG.members.forEach[ rs |
rs.sendCommand(receivedCommand)
Thread::sleep(100)
]
frei = true
}
end
Somit habe ich mein Problem selbst gelöst, habe aber immer noch die Frage wieso immer noch mehre Befehle gesendet werden können? Da die Variable "frei" nur dann wahr ist wenn die Regel einmal bis zum Ende ausgeführt wurde.