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