Seite 1 von 1

Bewgungsmelder Notification

Verfasst: 14. Sep 2022 13:00
von Locke
Hi,
ich spiele gerade mit einem Bewegungsmelder (hatte ich noch liegen) für mein Carport.
Mein Gedanke war mit einem Bewegungsmelder eine Benachrichtig per Notification auf's Handy zu bekommen, wenn ich den richtigen Abstand zur vorderen Wand (Carport ist vorn geschlossen) habe, da ich sonst Probleme habe die Tür zum aussteigen richtig zu öffnen (Ständer sonst im Weg).
Ich muss immer sehr genau bis zur Wand ranfahren.
Die Notification funktioniert auch, aber sie wird immer 2x gesendet, da der Bewegungsmelder immer von OFF auf ON 2x schaltet.
Hätte aber gern nur eine Meldung pro Auslösung.
Könnt ihr mir sagen wie ich es in der Regel angeben kann (wenn möglich) ?

Danke

Code: Alles auswählen

rule "Carport Test"	

when

    Item openHABserver163_ItemCarportBewegung received update ON 
then
     sendNotification("xxxx@xxxx.de","STOP")

    logInfo("Carport Test", "STOP")
end

Code: Alles auswählen

2022-09-14 13:07:18.716 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'openHABserver163_ItemCarportBewegung' changed from OFF to ON

2022-09-14 13:07:19.832 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'openHABserver163_ItemCarportBewegung' changed from ON to OFF

2022-09-14 13:07:23.398 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'openHABserver163_ItemCarportBewegung' changed from OFF to ON

2022-09-14 13:07:24.470 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'openHABserver163_ItemCarportBewegung' changed from ON to OFF

2022-09-14 13:07:23.402 [INFO ] [enhab.core.model.script.Carport Test] - STOP

2022-09-14 13:07:23.412 [INFO ] [enhab.core.model.script.Carport Test] - STOP

Re: Bewgungsmelder Notification

Verfasst: 14. Sep 2022 22:47
von udo1toni
Das eine wäre mal, statt received update tatsächlich changed als Trigger zu verwenden.
Das zweite wäre dann ein entweder ein Timer oder ein Zähler. Mit dem Timer kannst Du verhindern, dass ein zweites ON gemeldet wird, mit dem Zähler kannst Du erst das 2. ON melden (kommt ja auch drauf an, welches besser passt, wenn es denn immer zwei sind).

Vorgehensweise Timer: Entweder Du nutzt ein ungebundenes Item, welches Du mit einem expiration Timer versiehst (das geht unter 3.3 über die Metadaten mit jedem Item, unter 2.5 musst Du das Expire Binding intallieren - Expire ist ein 1.x-Binding, es kann also nur über Textdateien eingebunden werden). Der Expiration Timer wird z.B. auf postUpdate OFF nach 10 Sekunden konfiguriert. Wenn die Rule ausgelöst wird, prüfst Du als erstes, ob das ungebundene Item auf OFF steht. Ist das der Fall, setzt es auf ON und sendest die Nachricht. Ist es schon auf ON, tust Du gar nichts. Resultat: nur nach dem ersten ON wird eine Nachricht gesendet.
Alternativ kannst Du auch einen Timer in einer Rule programmieren, wenn Du kein Expire nutzen willst. Dann brauchst Du allerdings eine globale Variable für nne Timer, geht also nur über *.rules Dateien.


Vorgehensweise Zähler: Du zählst eine globale Variable hoch, jedes Mal, wenn Du ein ON empfängst. Anschließend prüfst Du, ob die Variable auf zwei steht. Ist das der Fall, setzt Du den Zähler auf 0 und sendest die Nachricht. Resultat: die Nachricht wird erst beim 2. ON gesendet.
Diese Variante ist natürlich nur sinnvoll, wenn garantiert ist, dass jedes Mal zwei ON-Ereignisse auftreten.

Re: Bewgungsmelder Notification

Verfasst: 15. Sep 2022 10:36
von Locke
Hi Udo,
ich habe es mit dem expiration Timer probiert und es funktioniert super :D
Ich danke Die mal wieder für Deine Unterstützung