Seite 1 von 1

Bewegungsmelder nachladen...?

Verfasst: 6. Mär 2020 23:32
von Steinspiel
Moin,

Mein Bewegungsmelder Rule läuft bis jetzt so:
Bewegung erkannt -> Lampe an -> Timer setzen -> nach X Sekunden Lampe wieder aus.

Code: Alles auswählen

var Timer tBewegung = null                                                   
rule "Bewegungsmelder"
when
    Item Bew_Meld received update ON                              
then
		tBewegung?.cancel                                                   
			Lampe.sendCommand(ON)                                         
				tBewegung = createTimer(now.plusSeconds(40),               
					Lampe.sendCommand(OFF)  
					
end					 
Nun kommt es vor das man sich ja auch nach Ablauf der x Sekunden noch immer im Raum befindet. Die Lampe schaltet dann AUS und braucht natürlich ein paar Sekunden bis sie erneut AN schaltet. Wie kann ich erreichen das, solange der Bewegungsmelder "An" ist, die Lampe nicht nach x Sekunden wieder ausschaltet sondern erst wenn der Bewegungsmelder keine Bewegung mehr registriert?

Eine if Bedingung nach dem Einschalten der Lampe würde ja nur Bewirken das das Rule von neuem gestartet wird und die Lampe, obwohl sie schon AN ist, nach einmal den AN-schalt Befehl bekommen würde, oder?

Code: Alles auswählen

if (Bew_Meld.state == ON) {                                               
return;
}
Über eine Idee würde ich mich freuen, schönen Abend noch....

Re: Bewegungsmelder nachladen...?

Verfasst: 7. Mär 2020 01:36
von udo1toni
Sollte es tatsächlich so sein, dass der Melder keine ON-Befehle abgibt, solange er ON ist, dann sollte er dochexplizit melden, falls er OFF geht. Entsprechend sollte Deine Rule dann leicht anders aussehen:

Code: Alles auswählen

var Timer tBewegung = null

rule "Bewegungsmelder"
when
    Item Bew_Meld changed                               // alternativ received command
then
    tBewegung?.cancel                                   // eventuell laufenden Timer löschen
    if(Bew_Meld.state == ON)                            // Falls Bewegung
        Lampe.sendCommand(ON)                           // Licht an
    else                                                // sonst
        tBewegung = createTimer(now.plusSeconds(40), [| // Timer anlegen
            Lampe.sendCommand(OFF)                      // und nach Ablauf Licht aus
        ]
end

Re: Bewegungsmelder nachladen...?

Verfasst: 7. Mär 2020 23:55
von Steinspiel
Moin,
udo1toni hat geschrieben: 7. Mär 2020 01:36 [...]
sollte Deine Rule dann leicht anders aussehen:
[...]
Nur kurz drei Dinge:

- ich habe es geprüft, mein Bewegungsmelder sendet ein ON, klar... :oops:
- ich bin doch immer wieder erstaunt wie logisch "einfach" die Lösung scheint wenn man es mal gezeigt bekommt!
- Habe Deine Lösung in meine Regel eingepasst und es läuft und läuft... Danke!!!