ich habe 2 Timer Regeln.
Wenn der Bewässerungstimer schaltet sich immer nach der gleichen Zeit ab wie de Beduftungstimer.
Hat jemand eine Idee warum das so ist?
Kann man überhaut 2 Timer benutzen?
Code: Alles auswählen
var Timer tbeAuto = null
var Timer tAuto = null
rule "Timer Bewässerung starten"
when
Time cron "0 0 6 * * ?" or //täglich um 6 Uhr
//Time cron "0 0 14 ? * MON-FRI" or // Montag bis Freitag 14 Uhr
//Time cron "0 0 12 ? * SAT,SUN" or // Samstag und Sonntag 12 Uhr
Item Bewaesserunghauptschalter received command ON // Hauptschalter wurde geschaltet
then
var Integer iStart = 6 // Startzeitvariable
if(now.getDayOfWeek > 5) iStart = 6 // Falls Wochenende
if((receivedCommand === null && Bewaesserunghauptschalter.state != ON)
|| (receivedCommand == ON && now.plusHours(3).getHourOfDay <= iStart + 2)) // Siehe Text
return;
tbeAuto?.cancel // eventuell vorhandenen Timer entfernen
tbeAuto = createTimer(now.plusMillis(10), [| // Timer initialisieren
if(Bewaesserung_An_Aus.state != ON) { // Falls Beduftung aus
var Integer iOnTime = 10 // Default ON-Zeit
if(Bewaesserung_Timer_Anzeit.state instanceof Number) // falls gültiger Wert
iOnTime = (Bewaesserung_Timer_Anzeit.state as Number).intValue // übernimm ON-Zeit aus Item
Bewaesserung_An_Aus.sendCommand(ON) //Beduftung an
tbeAuto.reschedule(now.plusSeconds(iOnTime)) // Timer bis zum erneuten Ausschalten
} else { // ansonsten
var Integer iOffTime = 3600 // Default OFF-Zeit
if(Bewaesserung_Timer_Auszeit.state instanceof Number) // falls gültiger Wert
iOffTime = (Bewaesserung_Timer_Auszeit.state as Number).intValue // übernimm OFF-Zeit aus Item
Bewaesserung_An_Aus.sendCommand(OFF) // Beduftung aus
tbeAuto.reschedule(now.plusSeconds(iOffTime)) // Timer bis zum erneuten Einschalten
}
])
end
rule "Timer Bewässerung stoppen"
when
Time cron "0 0 22 * * ?" or // täglich um 22 Uhr
Item Bewaesserunghauptschalter received command OFF // Hauptschalter wurde geschaltet
then
Bewaesserung_An_Aus.sendCommand(OFF) // Beduftung abschalten
tbeAuto?.cancel // und Timer stopppen
end
rule "Timer Beduftung starten"
when
Time cron "0 0 14 ? * MON-FRI" or // Montag bis Freitag 14 Uhr
Time cron "0 0 12 ? * SAT,SUN" or // Samstag und Sonntag 12 Uhr
Item Beduftunghauptschalter received command ON // Hauptschalter wurde geschaltet
then
var Integer iStart = 14 // Startzeitvariable
if(now.getDayOfWeek > 5) iStart = 12 // Falls Wochenende
if((receivedCommand === null && Beduftunghauptschalter.state != ON)
|| (receivedCommand == ON && now.plusHours(3).getHourOfDay <= iStart + 2)) // Siehe Text
return;
tAuto?.cancel // eventuell vorhandenen Timer entfernen
tAuto = createTimer(now.plusMillis(10), [| // Timer initialisieren
if(Beduftung_An_Aus.state != ON) { // Falls Beduftung aus
var Integer iOnTime = 10 // Default ON-Zeit
if(Beduftung_Timer_Anzeit.state instanceof Number) // falls gültiger Wert
iOnTime = (Beduftung_Timer_Anzeit.state as Number).intValue // übernimm ON-Zeit aus Item
Beduftung_An_Aus.sendCommand(ON) //Beduftung an
tAuto.reschedule(now.plusSeconds(iOnTime)) // Timer bis zum erneuten Ausschalten
} else { // ansonsten
var Integer iOffTime = 290 // Default OFF-Zeit
if(Beduftung_Timer_Auszeit.state instanceof Number) // falls gültiger Wert
iOffTime = (Beduftung_Timer_Auszeit.state as Number).intValue // übernimm OFF-Zeit aus Item
Beduftung_An_Aus.sendCommand(OFF) // Beduftung aus
tAuto.reschedule(now.plusSeconds(iOffTime)) // Timer bis zum erneuten Einschalten
}
])
end
rule "Timer Beduftung stoppen"
when
Time cron "0 0 21 * * ?" or // täglich um 21 Uhr
Item Beduftunghauptschalter received command OFF // Hauptschalter wurde geschaltet
then
Beduftung_An_Aus.sendCommand(OFF) // Beduftung abschalten
tAuto?.cancel // und Timer stopppen
end
schon mal vielen Dank...