[Gelöst] Rule für Bewegungsmelder Schaltung ?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

EMaster
Beiträge: 107
Registriert: 13. Dez 2018 21:02
Answers: 2

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von EMaster »

Hat sich hier in OH3 auch etwas geändert, da die Rule nicht mehr funktioniert?

Code: Alles auswählen

// globale Variablen zu Beginn der *.rules Datei definieren!
var Timer tBewegung = null                            // Timervariable global definieren

rule "Bewegungsmelder mit timeout"
when
    Item Huemotionsensor1_Bewegung changed //received command ON              // Bewegung wurde erkannt
then
    tBewegung?.cancel                                 // zunächst eventuell laufende Timer entfernen
    if(Swi_Kleiderschrank).state != ON) Swi_Kleiderschrank.sendCommand(ON)       // Licht einschalten, falls noch nicht an.
    tBewegung = createTimer(now.plusSeconds(45), [ |  // Timer anlegen
        if(Swi_Kleiderschrank.state != OFF) Swi_Kleiderschrank.sendCommand(OFF) // Licht ausschalten, falls noch nicht aus
        tBewegung = null                              // Timervariable deinitialisieren
    ])
end
Ich bekomme folgende Fehlermeldungen in VSC.
2021-01-26 22_48_33-kleiderschrank_pme.rules - OH3_Docker (Arbeitsbereich) - Visual Studio Code.png
Der Swi_Kleiderschrank ist ein Sonoff, welcher wahrscheinlich in ein Shelly getauscht wird.

Ich habe in diesem Thread schon mal geschaut aber ich steige da gerade nicht durch.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 4.3.4 im Docker@Synology

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

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von udo1toni »

Da ist eine schließende Klammer zu viel. Es muss

Code: Alles auswählen

if(Swi_Kleiderschrank.state != ON) Swi_Kleiderschrank.sendCommand(ON) 
heißen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

EMaster
Beiträge: 107
Registriert: 13. Dez 2018 21:02
Answers: 2

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von EMaster »

udo1toni hat geschrieben: 26. Jan 2021 23:03 Da ist eine schließende Klammer zu viel. Es muss

Code: Alles auswählen

if(Swi_Kleiderschrank.state != ON) Swi_Kleiderschrank.sendCommand(ON) 
heißen.
Danke Dir. Manchmal ist man einfach auf einem Auge blind. :-)
openHAB 4.3.4 im Docker@Synology

EMaster
Beiträge: 107
Registriert: 13. Dez 2018 21:02
Answers: 2

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von EMaster »

Da der HUE-Bewegungsmelder so lange man detektiert wird auch ohne Unterbrechung ein ON sendet, ist die oben gepostete Rule etwas unglücklich, da es keinen erneuten ON-Trigger gibt.
Daher habe ich mir die Rule etwas umgestrickt und mit einer Nachlaufzeit versehen.
Das funktioniert aber auch noch nicht, wie gewünscht, da nachdem der Bewegungsmelder ein OFF gesendet hat und ich den Raum wieder betrete, nicht mehr nachgetriggert wird.

Code: Alles auswählen

var Timer tBewegung = null                                                          // Timervariable global definieren

rule "Bewegungsmelder mit timeout"
when
    Item Huemotionsensor1_Bewegung received update ON                               // Bewegung wurde erkannt
then
    tBewegung?.cancel                                                               // zunächst eventuell laufende Timer entfernen
    if(Swi_Kleiderschrank.state != ON) Swi_Kleiderschrank.sendCommand(ON)           // Licht einschalten, falls noch nicht an.
        {
         if(Swi_Kleiderschrank.state != OFF) createTimer(now.plusSeconds(20)) [ | Swi_Kleiderschrank.sendCommand(OFF) 
         tBewegung = null
    ]}
end
Was ich letztlich bräuchte ist irgendwie eine Mischung aus der oberen Variante mit und meiner derzeitigen mit Nachlaufzeit.
openHAB 4.3.4 im Docker@Synology

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

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von udo1toni »

Ich frage mal andersrum: Wenn er keine Bewegung mehr erkennt, kommt dann (wenigstens einmalig) auch ein OFF?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

EMaster
Beiträge: 107
Registriert: 13. Dez 2018 21:02
Answers: 2

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von EMaster »

udo1toni hat geschrieben: 27. Jan 2021 23:57 Ich frage mal andersrum: Wenn er keine Bewegung mehr erkennt, kommt dann (wenigstens einmalig) auch ein OFF?
Ein OFF kommt zeitverzögert, um etwa 9 Sekunden.

Ich habe jetzt schon zig Varianten aus zig Foren probiert aber ich komme nicht zu dem Ergebnis, welches ich gerne hätte, da ich mich mit dem Verschachteln der if-Anweisungen in der Rule schwer tue. Ich habe auch u. A. schon einige Beispiele aus früheren Jahren aus anderen Foren von Dir probiert.
Ich liste nochmal meine Anforderung an die Funktion auf.

- Raum wird betreten > Bewegungsmelder sendet ON > Licht schaltet ein
- Raum wird verlassen/Bewegung wird nicht erkannt > Bewegungsmelder sendet (technisch bedingt nach ca. 9 Sekunden) OFF > Ausschaltverzögerung von X Sekunden beginnt > Licht schaltet aus
- Wird der Raum während der Laufzeit der Ausschaltverzögerung betreten oder wird eine Bewegung erkannt soll die Ausschaltverzögerung zurück gesetzt werden und und die Abfolge von vorn beginnen.


Danke für Deine Hilfe.
openHAB 4.3.4 im Docker@Synology

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

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von udo1toni »

Na, dann ist es doch einfach. Die Rule schaltet das Licht bei ON ein und bei OFF zeitverzögert aus.

Code: Alles auswählen

rule "Motion_Maja_Licht mit Timeout"
when
    Item OG_IKEA_Motion_Maja_Regal_Status changed
then
    if(deConz_Tageslichtsensor_Lightlevel.state.toString == "Dark") {
        tBewegung?.cancel
        if(OG_IKEA_Motion_Maja_Regal_Status.state == ON)
            if(OG_IKEA_Licht_Maja_Regal_Betrieb.state != ON) 
                OG_IKEA_Licht_Maja_Regal_Betrieb.sendCommand(ON)
        else
            tBewegung = createTimer(now.plusSeconds(171), [ |
                if(OG_IKEA_Licht_Maja_Regal_Betrieb.state != OFF)
                    OG_IKEA_Licht_Maja_Regal_Betrieb.sendCommand(OFF)
                tBewegung = null
            ])
    }
end
In beiden Fällen (Bewegung erkannt oder Bewegung Ende erkannt) wird der Timer gelöscht. Nur im ersten Fall wird das Licht eingeschaltet, falls es noch aus ist. Nur im zweiten Fall wird der Timer gestartet.
Läuft der Timer ab, wird das Licht ausgeschaltet, falls es an ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

EMaster
Beiträge: 107
Registriert: 13. Dez 2018 21:02
Answers: 2

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von EMaster »

Irgendwie bekomme ich keine E-Mail-Benachrichtigungen mehr vom Forum. :-(

So funktioniert es leider noch nicht. :-(
Das Licht schaltet zwar ein aber nicht mehr aus.
Woran könnte es denn nun wieder liegen? Ich verzweifle langsam.

Code: Alles auswählen

var Timer tBewegung = null

rule "Bewegungsmelder Licht Kleiderschrank mit Timeout"
when
    Item Huemotionsensor1_Bewegung changed
then
    if(HuePMEKleiderschrankBrgt_Dunkel.state.toString == "ON") {
        tBewegung?.cancel
        if(Huemotionsensor1_Bewegung.state == ON)
            if(Swi_Kleiderschrank.state != ON) 
                Swi_Kleiderschrank.sendCommand(ON)
        else
            tBewegung = createTimer(now.plusSeconds(20), [ |
                if(Swi_Kleiderschrank.state != OFF)
                    Swi_Kleiderschrank.sendCommand(OFF)
                tBewegung = null
            ])
    }
end
openHAB 4.3.4 im Docker@Synology

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von KellerK1nd »

Na deine Bedingung Dunkel greift auf die ganze Rule! Normal brauchst du doch die Bedingung nur zum Einschalten.
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

EMaster
Beiträge: 107
Registriert: 13. Dez 2018 21:02
Answers: 2

Re: [Gelöst] Rule für Bewegungsmelder Schaltung ?

Beitrag von EMaster »

KellerK1nd hat geschrieben: 2. Feb 2021 13:55 Na deine Bedingung Dunkel greift auf die ganze Rule! Normal brauchst du doch die Bedingung nur zum Einschalten.
Ich bräuchte eigentlich die Bedingung "Dunkel" gar nicht, da es im Kleiderschrank immer dunkel ist. :-)
Ich habe nur das Beispiel von Udo übernommen und angepasst.
openHAB 4.3.4 im Docker@Synology

Antworten