Rule | Motion Sensor | Licht einschalten, aber ...

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

./mf
Beiträge: 44
Registriert: 8. Jan 2022 00:15
Answers: 1

Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von ./mf »

Hallo zusammen.

Ich habe einen Motion Sensor, welcher ON/OFF schaltet.
- ON, wenn sich was bewegt.
- OFF, nach einer bestimmten Zeit.

Ich habe eine Lampe, welche eingeschaltet werden soll, wenn der Motion Sensor anschlägt (ON) und ausgeschaltet werden soll, wenn der Motion keine Bewegung mehr registriert (OFF). Das Ganze soll aber nur passieren, wenn die Lampe aus ist.

Diese Regel habe ich schon erstellt und scheint zu klappen.

Aber ... das automatische Ausschalten soll nur dann erfolgen, wenn die Lampe "vorher" auch ausgeschaltet war. Und genau dafür fehlt mir eine griffige Lösung.

Hat hier jemand eine Idee?

PS: Ich habe OpenHAB 3.2 am Start ...
von udo1toni » 9. Jan 2022 13:13
Nehmen wir an, Du hast die Items Flur_Licht, Flur_Motion und Flur_Motion_Helper:

Code: Alles auswählen

rule "Bewegung Flur"
when
    Item Flur_Motion changed or
    Item Flur_Licht changed to OFF
then
    if(Flur_Motion.state == OFF) {
        if(Flur_Licht.state == ON && Flur_Motion_Helper.state == ON) {
            Flur_Licht.sendCommand(OFF)
            Flur_Motion_Helper.postUpdate(OFF)
        }
    } else {
        if(Flur_Licht.state == OFF ) {
            Flur_Licht.sendCommand(ON)
            Flur_Motion_Helper.postUpdate(ON)
        }
    }
    if(Flur_Motion.state == OFF && Flur_Licht.state == OFF)
        Flur_Motion_Helper.postUpdate(OFF)
end
Falls Du mehrere (voneinander unabhängige) Bewegungsmelder hast, könnte man die Rule auch generalisieren, so dass sie für alle Bewegungsmelder funktioniert.
Gehe zur vollständigen Antwort
OpenHAB 3.2 im Docker auf Pi4-4GB

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

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von udo1toni »

Du musst Dir merken, ob das Licht an oder aus war. :) Am einfachsten machst Du das mit einem Hilfsitem, z.B. ein Switch Item Licht_Manuell. In Deiner Auto-Rule schaust Du nach, ob dieses Item ON oder OFF ist.
Wenn Du das Licht manuell schaltest, muss eine weitere Rule dieses Item ON oder OFF schalten. Diese Variante berücksichtigt dann auch, dass vielleicht jemand das Licht manuell einschaltet, während es durch Bewegung aktiviert ist.
Alternativ kannst Du das Item auch durch Deine Auto-Rule aktivieren (dann wäre der Name aber eher Licht_Automatik). Beim Ausschalten musst Du dann halt prüfen, ob das Hilfsitem aktiv ist. Und natürlich muss dieses auch mit ausgeschaltet werden.

Das Hilfsitem legst Du einfach über den von Dir bevorzugten Weg als Switch Item an (ob nun per Text oder über die Main UI)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

./mf
Beiträge: 44
Registriert: 8. Jan 2022 00:15
Answers: 1

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von ./mf »

Hi Udo. Ich habe mir gestern Abend nochmal Gedanken gemacht und eine Lösung gefunden, die deiner sehr ähnlich ist... Das mit dem Hilfs-Item ist natürlich eine Krücke und ich dachte, es geht besser. Aber vermutlich ist es so sogar einfacher, weil man nicht viel rumscripten muss und alles in der Main UI machen kann.

Extra Item: Helper_Flur_Motion

Ich habe drei Regeln ...
  • Motion Helper -> Schalte den Helper aus, wenn das Licht ausgeschaltet wird (item state is updated to OFF).
  • Motion ON (item state changed from OFF to ON) -> Schalte das Licht und den Helper an, aber nur wenn Licht=OFF "und" Helper=OFF
  • Motion OFF (item state is updated to OFF) -> Schalte das Licht aus, aber nur wenn Helper=ON
OpenHAB 3.2 im Docker auf Pi4-4GB

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von int5749 »

liest sich für mich wie der Vorschlag von Udo und könnte wahrscheinlich sogar in 1 oder 2 Rules erfolgen ;-)
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

./mf
Beiträge: 44
Registriert: 8. Jan 2022 00:15
Answers: 1

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von ./mf »

int5749 hat geschrieben: 8. Jan 2022 18:14 liest sich für mich wie der Vorschlag von Udo [...]
Schrieb ich ja, dass die Idee dahinter deckungsgleich ist... :-)

Wie würdest du das in nur 1-2 Rules verpacken?
OpenHAB 3.2 im Docker auf Pi4-4GB

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

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von udo1toni »

Nehmen wir an, Du hast die Items Flur_Licht, Flur_Motion und Flur_Motion_Helper:

Code: Alles auswählen

rule "Bewegung Flur"
when
    Item Flur_Motion changed or
    Item Flur_Licht changed to OFF
then
    if(Flur_Motion.state == OFF) {
        if(Flur_Licht.state == ON && Flur_Motion_Helper.state == ON) {
            Flur_Licht.sendCommand(OFF)
            Flur_Motion_Helper.postUpdate(OFF)
        }
    } else {
        if(Flur_Licht.state == OFF ) {
            Flur_Licht.sendCommand(ON)
            Flur_Motion_Helper.postUpdate(ON)
        }
    }
    if(Flur_Motion.state == OFF && Flur_Licht.state == OFF)
        Flur_Motion_Helper.postUpdate(OFF)
end
Falls Du mehrere (voneinander unabhängige) Bewegungsmelder hast, könnte man die Rule auch generalisieren, so dass sie für alle Bewegungsmelder funktioniert.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

./mf
Beiträge: 44
Registriert: 8. Jan 2022 00:15
Answers: 1

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von ./mf »

udo1toni hat geschrieben: 9. Jan 2022 13:13 Nehmen wir an, Du hast die Items Flur_Licht, Flur_Motion und Flur_Motion_Helper:
Die Rule sieht ganz nice aus.. Ich werde das mal etwas auf meine Item Namen umschreiben.

Hast du noch einen Tipp wie ich das 1:1 in OH3.2 umsetzen kann? Ich würde sonst ganz normal den "then" Teil als Script in OH3.2. zur Regel packen. Den "when" Teil würde ich normal über die Main UI einstellen.
OpenHAB 3.2 im Docker auf Pi4-4GB

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

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von udo1toni »

Die Regel sollte genauso auch über die Main UI erstellt werden können.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

./mf
Beiträge: 44
Registriert: 8. Jan 2022 00:15
Answers: 1

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von ./mf »

udo1toni hat geschrieben: 9. Jan 2022 20:41 Die Regel sollte genauso auch über die Main UI erstellt werden können.
Ja. Bei WHEN muss ich die Items manuell einstellen. Bei THEN würde ich dein Script nehmen und als DSLv1 einstellen.

Da diese DSL Rules aus OH1+2 stammen, vermute ich, dass diese irgendwann eingestellt werden. Daher versuche ich neue Regeln mit ECMASript zu machen.
OpenHAB 3.2 im Docker auf Pi4-4GB

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

Re: Rule | Motion Sensor | Licht einschalten, aber ...

Beitrag von udo1toni »

Nein, die DSL war mal abgekündigt, das ist aber nicht mehr der Fall. Es gibt momentan keinen Grund, von der DSL als Programmiersprache weg zu gehen, wenn man nicht besondere Vorlieben hat.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten