Ich habe mich die letzten Tage mit rules beschäftigt.
Unter anderem damit, als Beispiel, eine Shelly Plug S per Ereignis ( Sonnenuntergang) einzuschalten und nach Ablauf einer gewissen Zeit wieder auszuschalten.
Die Sache funktioniert bei mir.
Bei meiner Suche bin ich unter anderem über dieses Beispiel gestolpert, welches ich nicht ganz verstehe, aber viele so machen...
Mir stellen sich die Fragen:
Zeile 1, warum var timer = null ?
Zeile 6, warum if(timer == null) ?
Zeile 11, warum timer = null ? Ich vermute ein Zurücksetzen, aber warum ?
Zeile 15 , warum timer.rescheduled ?
Code: Alles auswählen
var timer = null
rule "TSM02 Motion OFF"
when
Item ZW_AnaKapi_Hareket received update ON
then
if(timer == null) {
logInfo("FILE", "Setting to ON and creating timer")
timer = createTimer(now.plusMinutes(2), [|
logInfo("FILE", "Timer expired and setting to OFF")
ZW_AnaKapi_Hareket.postUpdate(OFF)
timer = null
])
} else {
logInfo("FILE", "Timer rescheduled")
timer.reschedule(now.plusMinutes(2))
}
end
Code: Alles auswählen
rule "Sonnenuntergang Plug S 2 an"
when
Channel "astro:sun:home:set#event" triggered START
then
SpsDgk2RelayOutput.sendCommand(ON)
createTimer(now.plusMinutes(90)) [| SpsDgk2RelayOutput.sendCommand(OFF)]
end
Als nächstes möchte ich eine Meldung meiner Waschmaschine bekommen, wenn diese fertig ist...
Daran setze ich mich mal.
Schönen Mittag !