Seite 1 von 2

Bewegungsmelder schaltet nicht ab

Verfasst: 16. Sep 2019 19:13
von Andy089
Hallo zusammen,

ich hoffe ich bin hier richtig und mir kann jemand helfen.
Ich beschäftige mich erst seit kurzen mit Openhab2 hab auch schon ein paar Geräte per Zigbee erfolgreich eingebunden.
Allerdings verstehe ich das mit dem Bewegungsmelder nicht so ganz..
Ich habe einen Aqara Bewegungsmelder per ZigBee-Binding mit im Openhab eingebunden.
Laut Beschreibung sollen die Aqara Bewegungsmelder auch mit ZigBee-Binding kompatibel sein.
Den Bewegungsmelder zuerkennen hat auch funktioniert und wird als Online angezeigt.
Die Verlinkungen der Channels hat auch problemlos funktioniert.
Jetzt wenn der Bewegungsmelder eine Bewegung erkennt schaltet es auch auf der Control Seite den Bewegungsmelder auf on, jedoch nicht mehr auf off.
Wie erreiche ich dass der Bewegungsmelder nach einer Zeit zum Beispiel nach 5sec. auf off schaltet?

Vielen Dank für eure Hilfe

#Ich nutze Openhab2.5 und das Bindings: ZigBee Binding 2.5

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 16. Sep 2019 23:45
von udo1toni
Es ist ja die Frage, wie Du die Anbindung erledigt hast.

Ich muss vielleicht voran schicken, dass ich keine Ahnung von Zigbee und Aqara habe, aber wenn Aqara Zigbee-kompatibel ist, wäre es ja erst mal naheliegend, den Bewegungsmelder direkt mit einer Lampe zu verbinden (und openHAB außen vor zu lassen). Wird die Lampe dann auch ausgeschaltet?

Ansonsten wäre eine einfache Variante, ein Rule anzulegen, die das Licht automatisch aus macht. Wichtig wäre, das Du zwei Items verwendest, eines für die Lampe, ein weiteres für den Melder. Wenn der Melder den Befehl ON sendet, wird das Licht eingeschaltet und ein Timer gestartet, der das Licht wieder aus schaltet. Wenn der Timer endet, wird das Licht ausgeschaltet. Kommt ein neuer ON-Befehl herein, solange der Timer noch läuft, wird der Timer neu gestartet:

Code: Alles auswählen

var Timer tAutolight = null

rule "auto light"
when
    Item Presence received command
then
    if(receivedCommand == ON) {
        tAutolight?.cancel
        Light.sendCommand(ON)
        tAutolight = createTimer(now.plusSeconds(15), [ |
            Light.sendCommand(OFF)
        ])
    }
end
Normalerweise sollte der Melder auhc ein OFF-Kommando senden, aber wie oben erwähnt, habe ich von Aqara keine Ahnung.

Das obige Beispiel kann man auch mit dem Expire Binding ohne Rule lösen, die Rule hat den Vorteil, dass man die Zeit variabel gestalten kann und noch andere Sachen mit erledigen kann.

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 17. Sep 2019 12:22
von Andy089
Danke für die schnelle und ausführliche Antwort.

Habe heute Morgen per Zufall festgestellt das ich den Bewegungsmelder Manuel über die Openhab App abschalten kann, was über der Control-Seite der Paper UI nicht geht. Danach erkennt der Melder auch wieder eine Bewegung und schaltet ein.

Also könnte ich über einen Rule ähnlich wie bei deinem Beispiel oben auch einfach ein Off an den Melder senden?
Allerdings wo muss ich den Rule eintragen? :? Ich bin noch sehr frisch in Openhab2

Kannst du mir ein Beispiel erstellen und in etwa sagen wo ich den Rule anlegen oder eintragen muss.

Vielen Dank

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 17. Sep 2019 13:27
von curius
Hallo,

ich verwende auch die Bewegungsmelder von Xiaomi (Aqara) und kann dir da vielleicht weiterhelfen.
Die Aqara Bewegungsmelder haben eine Eigenheit und schalten erst 90 Sekunden nach der letzten Bewegung auf OFF (occupancy_timeout).
Nähere Infos dazu findest du unter folgenden Link:
https://www.zigbee2mqtt.io/devices/RTCGQ11LM.html

Du erkennst somit im Ruhezustand nicht sofort, dass der Bewegungsmelder reagiert.
Du müsstest also 90 Sekunden ruhig warten - erst dann sollte sich der Status ändern.

Mit der oben genannten Rule hast du dann vermutlich ein kleines Problem:
Bei Bewegung schaltet sich das Licht ein und der Timer beginnt zu laufen (Bsp.: 5 Minuten).
Wenn du dich jetzt immer bewegst und der Bewegungsmelder hat keine 90 Sekunden Ruhe um auf OFF zu schalten, läuft der Timer vorher ab und schaltet das Licht aus ;-)

Also kurz:
Trotz laufender Bewegung schaltet sich das Licht aus... (weil du innerhalb der 5 Minuten im Beispiel keinen "Flankenwechsel" hast).

Eine Lösung wäre den Timer erst bei Ruhe zu aktivieren.
.) Die Rule schaltet das Licht bei Bewegung ein (Timer = null)
.) Bewegungsmelder erkennt nach 90 Sekunden den Ruhezustand => Timer startet und schaltet nach der eingestellten Zeit das Licht aus
.) Bei Bewegung und laufenden Timer (Timer != null) setzt sich der Timer wieder zurück.

So habe ich es zumindest für mich gelöst...

Grüße
Christian

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 17. Sep 2019 16:08
von udo1toni
Ja, das ist die Schwierigkeit mit Bewegungsmeldern. Es gibt welche, die Ein- und Ausschaltbefehle schicken, aber jeweils nur einen (von der Idee her gut - Datensparsamkeit), eine andere Variante sendet ausschließlich Ein-Befehle (quasi, wie wenn man einen Taster drückt und wieder los lässt).
Wie verhält sich der Bewegungsmelder, wenn er manuell zurückgesetzt wird?

Code: Alles auswählen

// Globale Variablen werden zu Beginn der datei definiert!
var Timer tAutolight = null

rule "auto light"
when
    Item Presence received command
then
    tAutolight?.cancel
    if(receivedCommand == ON) {
        Light.sendCommand(ON)
    } else {
        tAutolight = createTimer(now.plusSeconds(15), [ |
            Light.sendCommand(OFF)
        ])
    }
end
Diese Variante startet den Timer erst, wenn der Melder das OFF-Signal sendet.

Alternative:

Code: Alles auswählen

// Globale Variablen werden zu Beginn der datei definiert!
var Timer tAutolight = null
var nAutolight = 0

rule "auto light"
when
    Item Presence received command ON
then
    tAutolight?.cancel
    Light.sendCommand(ON)
    nAutolight = 0
    tAutolight = createTimer(now.plusSeconds(5), [ |
        nAutolight += 1
        if(nAutolight == 1) {
            Presence.sendCommand(OFF)
            nAutolight.reschedule(now.plusSeconds(10))
        } else {
            Light.sendCommand(OFF)
        }
    ])
    }
end
Diese Variante setzt nach 5 Sekunden den Bewegungsmelder zurück. Nach weiteren 10 Sekunden wird das Licht abgeschaltet. Falls der Melder innerhalb der 10 Sekunden erneut getriggert wird, wird der Timer neu gestartet. Das funktioniert natürlich nur, wenn der Melder das auch mitmacht.

Rules legst Du in einer Datei im Konfigurationsverzeichnis ab. Rules gehören in den Ordner ./rules/. Der Dateiname ist irrelevant, die Dateiendung muss allerdings rules lauten. z.B. meine.rules wäre ein gültiger Name, genau wie Hier_sind_alle_meine_rules_drin.rules gültig wäre. Kurze Dateinamen sind sinnvoller ;)
Zum Bearbeiten der Konfigurationsdateien solltest Du zu VSCode greifen, für diesen freien Editor gibt es ein openHAB Plugin, welches alles bietet, was man so braucht, Syntax Highlighting, Code completion, online Syntaxprüfung, Anzeige der Things und Items (mitsamt Übernahme in relevante Dateien und aktuellem Status).

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 17. Sep 2019 20:30
von Andy089
Hallo,

Danke für die Info Christian, hab gerade 5 min abgewartet leider bleibt der Schalter auf On.
Vielleicht arbeitet mein Melder auch nicht richtig? Die Beleuchtungsstärke bleibt auch auf 0 auf der Control-seite. Ist das bei deinen Melder derselbe Effekt?

Ok, dann werde ich es erstmal mit einem Rule versuchen ihn auf off zubringen.

Hast du zufällig auch Zigbee-Wandschalter im Einsatz? Welche könntest du empfehlen? Die von Aqara werden Scheinbar noch nicht unterstütz.. zumindest die Doppelschalter nicht, davon habe ich nämlich einen hier.

udo1toni, sobald ich den ich den Schalter Manuel zurück Stelle, passiert erstmal nichts mehr. Bis er halt wieder eine Bewegung erkennt und auf On schaltet.

VSCode habe ich installiert mit dem Openhab plugin, Openhab Ordner ist auch eingebunden.
Scheint auch zu funktionier. Danke für den Tipp :)

Hab jetzt eine Datei namens melder.rules in dem Rules-Ordner erstellt und mit deinem zweiten Beispiel gefüllt.. auch den Item Name angepasst. (müsste so richtig sein oder?) Light hatte ich erstmal so gelassen, sollte ja zum Testen nicht stören?

Code: Alles auswählen

// Globale Variablen werden zu Beginn der datei definiert!
var Timer tAutolight = null
var nAutolight = 0

rule "auto light"
when
    Item AqaraBewegungsmelder_Occupancy received command ON
then
    tAutolight?.cancel
    Light.sendCommand(ON)
    nAutolight = 0
    tAutolight = createTimer(now.plusSeconds(5), [ |
        nAutolight += 1
        if(nAutolight == 1) {
            AqaraBewegungsmelder_Occupancy.sendCommand(OFF)
            nAutolight.reschedule(now.plusSeconds(10))
        } else {
            Light.sendCommand(OFF)
        }
    ])
    }
end

Alles so gespeichert. Startet das rules automatisch oder muss ich irgendwie noch was machen? Bisher passiert leider nichts :/

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 18. Sep 2019 08:38
von curius
Hallo,

ich habe es nie geschafft die ganzen Aqara Sensoren mit dem ZigBee Binding einzubinden.
Generell hatte ich immer wieder Probleme mit dem ZigBee Binding.
Ich kann dir nur empfehlen, das ganze über zigbee2mqtt zu lösen.

Auf zigbee2mqtt.io findest du alle Informationen dazu...
Dort findest du auch eine Seite mit allen unterstützten Geräten - auch die Xiaomi Teile sind da zu finden.
Bei mir läuft dieses Setup seit einigen Wochen ohne Probleme. Xiaomi Multisensor, Bewegungsmelder, Konaktschalter, usw. läuft alles wie gewünscht.
Ich würde mich (vor allem wenn du Xiaomi Teile verwenden möchtest) nicht unbedingt auf das ZigBee Bindung vorrangig konzentrieren.
Mittels MQTT Broker bist du wesentlich flexibler...

Anstatt "Light" in deinem Code musst du den Item-Namen deiner Lampe eintragen die eingeschaltet werden soll...

Grüße
Christian

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 18. Sep 2019 10:49
von udo1toni
Wenn VSCode keinen Fehler meldet, sollte alles ok sein.
Sicherheitshalber kannst Du noch in openhab.log nachschauen, ob openHAB trotzdem irgendwelche Fehler meldet. Es muss eine Meldung geben, dass die Datei melder.rules geladen wurde, wenige Sekunden, nachdem Du die Datei speicherst.

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 18. Sep 2019 10:52
von Andy089
Das zigbee2mqtt hatte ich vor dem ZigBee Binding ausprobiert.
Das zigbee2mqtt funktionierte, nur ich hatte es nicht geschafft es mit Openhab zu verbinden.
Ok, werde ich mir dann die nächste Zeit nochmal anschauen.

Aber aus irgendeinem Grund funktionieren bei mir die Rules nicht.
Hab im oberen Beispiel statt des Melders jetzt zum Testen meinen Fensterkontakt genommen und als Light meine Steckdose gesetzt.
Beide Geräte arbeiten in Openhab ohne Probleme, jedoch wenn ich den Rules Speicher und ich den Fensterkontakt auf ON Setze müsste dann meine Steckdose einschaltet? Nur leider passiert da nichts.

Woran kann das liegen?

Re: Bewegungsmelder schaltet nicht ab

Verfasst: 18. Sep 2019 11:03
von Andy089
Das steht in der .log

Code: Alles auswählen

2019-09-18 10:45:41.537 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'melder.rules' has errors, therefore ignoring it: [7,5]: no viable alternative at input 'command'