Bewegungsmelder nachladen...?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
Steinspiel
Beiträge: 396
Registriert: 28. Dez 2019 08:49
Answers: 2

Bewegungsmelder nachladen...?

Beitrag 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....
bis dann, Steinspiel

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Bewegungsmelder nachladen...?

Beitrag 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
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Steinspiel
Beiträge: 396
Registriert: 28. Dez 2019 08:49
Answers: 2

Re: Bewegungsmelder nachladen...?

Beitrag 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!!!
bis dann, Steinspiel

Antworten