Regel Timer im Timer
Verfasst: 4. Mai 2021 07:39
Hallo zusammen,
ich habe eine Frage bezüglich Timer.
Ich will folgende Regel bauen. Wenn in der Dusche das Licht für 1min lang angeschalten ist, dann soll die Lüftung in Stufe 3 gestartet werden, nach 15 Minuten soll die Lüftung in Stufe 1 gestartet werden. (Lüftungsstufen sind Tastschalter, deswegen schicke ich jeweils einen ON Befehl zum Starten der Lüftungsstufe). Diese Regel soll nur zwischen 07:00-19:00 ausgeführt werden.
Die Abfrage, damit die Regel nur von 07:00-19-00 ausgeführt wird, habe ich über ein Proxyitem mit einer CRON Rule regeln können.
Allerding funktioniert bei mir das Schalter der Lüftung in Stufe 1 nach 15min nicht.
Kann mir hier jemand die Rule korrigieren, damit auch das Ausschalten funktioniert? Darf man keinen Timer in einem Timer erzeugen?
Evtl. kann man die Regel auch ohne zusätliches Proxy Item für die 07:00-19:00 lösen?
Danke
retai
ich habe eine Frage bezüglich Timer.
Ich will folgende Regel bauen. Wenn in der Dusche das Licht für 1min lang angeschalten ist, dann soll die Lüftung in Stufe 3 gestartet werden, nach 15 Minuten soll die Lüftung in Stufe 1 gestartet werden. (Lüftungsstufen sind Tastschalter, deswegen schicke ich jeweils einen ON Befehl zum Starten der Lüftungsstufe). Diese Regel soll nur zwischen 07:00-19:00 ausgeführt werden.
Die Abfrage, damit die Regel nur von 07:00-19-00 ausgeführt wird, habe ich über ein Proxyitem mit einer CRON Rule regeln können.
Allerding funktioniert bei mir das Schalter der Lüftung in Stufe 1 nach 15min nicht.
Kann mir hier jemand die Rule korrigieren, damit auch das Ausschalten funktioniert? Darf man keinen Timer in einem Timer erzeugen?
Evtl. kann man die Regel auch ohne zusätliches Proxy Item für die 07:00-19:00 lösen?
Code: Alles auswählen
var Timer tOnTime = null
rule "Lueftung Dusche 15min"
when
Item dusche changed
then
tOnTime?.cancel
if(newState == ON && lueftungsautomatik.state == ON)
tOnTime = createTimer(now.plusMinutes(1),[|
lueftung3.sendCommand(ON)
tOnTime = createTimer(now.plusMinutes(15),[|
lueftung1.sendCommand(ON)
])
])
end
retai