Abfolge mehrerer Befehle in einer Rule
Verfasst: 1. Nov 2019 12:56
Hallo,
ich möchte eine Abfolge mehrerer Kommandos (Schrittkette), die in einer Bedingung zueinander stehen, in einem Programm realisieren.
Beispiel: Ein motorbetriebenes Dachfenster soll zu fahren, einen Moment verweilen und dann einen kleinen Spalt zur Lüftung wieder öffnen.
Ich habe dafür 3 Rules geschrieben und 2 virtuelle Switch-Items angelegt:
Das funktioniert zwar, kommt mir aber irgendwie fragil vor
.
Kann ich das nicht auch einfacher, evtl. in einer Rule lösen?
Vielen Dank für Eure Mithilfe!
ich möchte eine Abfolge mehrerer Kommandos (Schrittkette), die in einer Bedingung zueinander stehen, in einem Programm realisieren.
Beispiel: Ein motorbetriebenes Dachfenster soll zu fahren, einen Moment verweilen und dann einen kleinen Spalt zur Lüftung wieder öffnen.
Ich habe dafür 3 Rules geschrieben und 2 virtuelle Switch-Items angelegt:
Code: Alles auswählen
var Timer tShelly_1_off = null
var Timer tShelly_2_off = null
var Timer tShelly_3_off = null
rule "Schritt 1"
when
Item TestKontakt1STATE changed from OPEN to CLOSED
then
SRelais_B1_1.sendCommand(ON)
tShelly_1_off = createTimer(now.plusSeconds(5),[ SRelais_B1_1.sendCommand(OFF)
virtual_fenster_1.sendCommand(ON) ]
)
end
rule "Schritt 2"
when
Item virtual_fenster_1 changed from OFF to ON
then
tShelly_2_off = createTimer(now.plusSeconds(2),[ virtual_fenster_2.sendCommand(ON) ]
)
end
rule "Schritt 3"
when
Item virtual_fenster_2 changed from OFF to ON
then
SRelais_B1_2.sendCommand(ON)
tShelly_3_off = createTimer(now.plusSeconds(5),[ SRelais_B1_2.sendCommand(OFF)
virtual_fenster_1.sendCommand(OFF)
virtual_fenster_2.sendCommand(OFF) ]
)
end
Das funktioniert zwar, kommt mir aber irgendwie fragil vor

Kann ich das nicht auch einfacher, evtl. in einer Rule lösen?
Vielen Dank für Eure Mithilfe!