Hallo,
ich baue mir gerade ein Rule zusammen, die mir das Licht an und wieder ausschaltet (3x) wenn wir einen Anruf bekommen.
Das ganze funktioniert auch soweit, allerdings was mir nicht gefällt ist, dass am Schluss das Licht immer ausgeschaltet wird.
Wie kann ich mir den den vorherigen Wert in einer Rule merken? Am Ende soll das Licht quasi blinken aber wenn es zuvor angeschalten war soll es das auch nach der Anrufnotifikation bleiben.
Aktuell sieht die Rule so aus:
Gibt es eine schönere Art das Licht an und wieder auszuschalten als den gleichen Code 6x zu schreiben?
Vielen Dank
Marcus
ich baue mir gerade ein Rule zusammen, die mir das Licht an und wieder ausschaltet (3x) wenn wir einen Anruf bekommen.
Das ganze funktioniert auch soweit, allerdings was mir nicht gefällt ist, dass am Schluss das Licht immer ausgeschaltet wird.
Wie kann ich mir den den vorherigen Wert in einer Rule merken? Am Ende soll das Licht quasi blinken aber wenn es zuvor angeschalten war soll es das auch nach der Anrufnotifikation bleiben.
Aktuell sieht die Rule so aus:
Code:
rule "Anruf" when Item FritzBox_Ringing changed to ON then logInfo("Anruf.rules", "Anruf erkannt") if(TV_Wohnzimmer_Power.state == ON) { logInfo("Anruf.rules", "Wohnzimmer TV ist angeschaltet -> Ton wird ausgeschaltet") sendCommand(TV_Wohnzimmer_Mute, ON) } if(TelefonBlinken.state == ON && (FritzBox_Handy_One.state == OPEN || FritzBox_Handy_Two.state == OPEN) {[INDENT]if((now.getHourOfDay >= 7 || now.getHourOfDay <= 22)) { EG_Kueche_Deckenspots.sendCommand(ON) EG_Esszimmer_Deckenspots.sendCommand(ON) EG_Wohnzimmer_Deckenspots.sendCommand(ON) createTimer(now.plusSeconds(2)) [| sendCommand(EG_Kueche_Deckenspots, OFF) ] createTimer(now.plusSeconds(2)) [| sendCommand(EG_Esszimmer_Deckenspots, OFF) ] createTimer(now.plusSeconds(2)) [| sendCommand(EG_Wohnzimmer_Deckenspots, OFF) ] createTimer(now.plusSeconds(4)) [| sendCommand(EG_Kueche_Deckenspots, ON) ] createTimer(now.plusSeconds(4)) [| sendCommand(EG_Esszimmer_Deckenspots, ON) ] createTimer(now.plusSeconds(4)) [| sendCommand(EG_Wohnzimmer_Deckenspots, ON) ] createTimer(now.plusSeconds(6)) [| sendCommand(EG_Kueche_Deckenspots, OFF) ] createTimer(now.plusSeconds(6)) [| sendCommand(EG_Esszimmer_Deckenspots, OFF) ] createTimer(now.plusSeconds(6)) [| sendCommand(EG_Wohnzimmer_Deckenspots, OFF) ] createTimer(now.plusSeconds(8)) [| sendCommand(EG_Kueche_Deckenspots, ON) ] createTimer(now.plusSeconds(8)) [| sendCommand(EG_Esszimmer_Deckenspots, ON) ] createTimer(now.plusSeconds(8)) [| sendCommand(EG_Wohnzimmer_Deckenspots, ON) ] createTimer(now.plusSeconds(10)) [| sendCommand(EG_Kueche_Deckenspots, OFF) ] createTimer(now.plusSeconds(10)) [| sendCommand(EG_Esszimmer_Deckenspots, OFF) ] createTimer(now.plusSeconds(10)) [| sendCommand(EG_Wohnzimmer_Deckenspots, OFF) ] }[/INDENT] } end
Vielen Dank
Marcus
Kommentar