Hallo zusammen,
ich versuche innerhalb einer Rule einen zeitlichen Ablauf zu steuern, d.h. mehrere Bewässerungsventile hintereinander gehen an und dann nach voreingestellter Zeit (Items Dauer_* vom Typ Number) wieder aus usw..
Die Rule wird korrekt getriggert, das konnte ich über ein temporär direkt nach dem "then" eingebautes sendcommand testen. Der eigentliche Ablauf erfolgt aber leider nicht. Sieht jemand das Problem?
Basis war ein Beispiel aus Openhab1.
Danke
Christian
ich versuche innerhalb einer Rule einen zeitlichen Ablauf zu steuern, d.h. mehrere Bewässerungsventile hintereinander gehen an und dann nach voreingestellter Zeit (Items Dauer_* vom Typ Number) wieder aus usw..
Die Rule wird korrekt getriggert, das konnte ich über ein temporär direkt nach dem "then" eingebautes sendcommand testen. Der eigentliche Ablauf erfolgt aber leider nicht. Sieht jemand das Problem?
Basis war ein Beispiel aus Openhab1.
Danke
Christian
Code:
rule "Irrigation run" when Item Bew_Ablauf_laufend changed to ON then var DateTime startTime var DateTime endTime // get the raw run times for each zone (in mins) var Number NordMins = Dauer_Nord.state as DecimalType var Number SuedMins = Dauer_Sued.state as DecimalType var Number WestMins = Dauer_West.state as DecimalType var Number Teil4Mins = Dauer_Teil4.state as DecimalType // turn on each zone in turn (with a minute gap between each zone activation) if (NordMins > 0) { endTime = now.plusMinutes(NordMins) Timer1S = createTimer(now) [| RS_Beet_N.sendCommand(ON) ] Timer1E = createTimer(endTime) [| RS_Beet_N.sendCommand(OFF) ] startTime = endTime.plusSeconds(2) } if (SuedMins > 0) { endTime = startTime.plusMinutes(SuedMins) createTimer(startTime) [| sendCommand(RS_Rasen_S, ON) ] createTimer(endTime) [| sendCommand(RS_Rasen_S, OFF) ] startTime = endTime.plusSeconds(2) } if (WestMins > 0) { endTime = startTime.plusMinutes(WestMins) createTimer(startTime) [| sendCommand(RS_Rasen_W, ON) ] createTimer(endTime) [| sendCommand(RS_Rasen_W, OFF) ] startTime = endTime.plusSeconds(2) } if (Teil4Mins > 0) { endTime = startTime.plusMinutes(Teil4Mins) createTimer(startTime) [| sendCommand(RS_Beet_N, ON) ] createTimer(endTime) [| sendCommand(RS_Beet_N, OFF) ] startTime = endTime.plusSeconds(2) } end
Kommentar