[Gelöst] Abbruch oder GOTO in Regel ?
Verfasst: 12. Jan 2020 20:15
Moin,
Mit viel Hilfe von hier aus dem Forum habe ich "meine" erste Bewegungsmelder Regel fertig. Dachte ich ...
Die Regel funktioniert soweit: reagiert der Bewegungsmelder schaltet die Lampe, ja nach Uhrzeit, für 20 sekunden an und dimmt auf 10%, anschließend auf 0%.
Soweit ist alles OK.
Aber, IST die Lampe schon an (weil man sie z.B. per Sprache eingeschaltet hat) und löst der Bewegungsmelder aus, dimmt sie sich auch auf 10% und anschließend auf 0%...
Nun habe ich versucht mir eine Abfrage zu basteln, das, wenn die Lampe schon AN ist ein Abbruch erfolgt
Aber das funktioniert nicht, die eingeschaltette Lampe dimmt dann trotzdem auf 0% runter.
Kann mir jemand sagen wie ich das bewerkstelligen kann das bei schon eingeschaltetter Lampe die Regel nicht ausgeführt wird bzw. ähnlich wie GOTO auf END gesprungen wird?
mein rules
schönen Abend noch...
Mit viel Hilfe von hier aus dem Forum habe ich "meine" erste Bewegungsmelder Regel fertig. Dachte ich ...

Die Regel funktioniert soweit: reagiert der Bewegungsmelder schaltet die Lampe, ja nach Uhrzeit, für 20 sekunden an und dimmt auf 10%, anschließend auf 0%.
Soweit ist alles OK.
Aber, IST die Lampe schon an (weil man sie z.B. per Sprache eingeschaltet hat) und löst der Bewegungsmelder aus, dimmt sie sich auch auf 10% und anschließend auf 0%...
Nun habe ich versucht mir eine Abfrage zu basteln, das, wenn die Lampe schon AN ist ein Abbruch erfolgt
Code: Alles auswählen
if(Flur2_Dimmen.state == ON) {
return;
}
Kann mir jemand sagen wie ich das bewerkstelligen kann das bei schon eingeschaltetter Lampe die Regel nicht ausgeführt wird bzw. ähnlich wie GOTO auf END gesprungen wird?
mein rules
Code: Alles auswählen
var Timer tBewegung = null // Timervariable global definieren
rule "Nachtlicht"
when
Item Bew_Sens_Presence changed to ON // Bewegung erkannt
then
tBewegung?.cancel
// zunächst eventuell laufende Timer entfernen
//das ist meine Abfrage ANFANG
if(Flur2_Dimmen.state == ON) {
return;
}
//das ist meine Abfrage ENDE
if(OffsetBewegungsmelder.state == 2) // Offset nach "2" abgefragt
{
sendCommand(Flur2_Dimmen, 10) // Flur_2 auf 10% Dimmen, Ein
tBewegung = createTimer(now.plusSeconds(20), [ | // Timer anlegen
sendCommand(Flur2_Dimmen, 0) // Flur_2 auf 0% Dimmen, Aus
tBewegung = null // Timervariable deinitialisieren
])
}
end