HmIP-SPI Präsenz als trigger verwenden

Moderator: seppy

Antworten
gsezz
Beiträge: 16
Registriert: 28. Sep 2020 12:40

HmIP-SPI Präsenz als trigger verwenden

Beitrag von gsezz »

Hi,
ist es mit dem Homematic binding möglich einen Status Channel auch als trigger Channel zu verwenden?
Ich habe mal ganz stumpf versucht den presence detection Kanal einfach in eine rule einzubauen, aber die löst so nicht aus:

Code: Alles auswählen

rule "Präsenzmelder"
when    
    Channel "homematic:HmIP-SPI:RaspberryMatic:000C1F29923B2B:1#PRESENCE_DETECTION_STATE" triggered
then
        logInfo("Bewegungsmelder", "Bewegung erkannt")
end
Ich weiß dass ich das auch lösen kann indem ich dafür ein Item anlege und es auf Updates überwache. Aber da das buchstäbliche "auslösen" eines Bewegungsmelders ja eigentlich ein Paradebeispiel für einen Trigger wäre, erscheint mir das irgendwie falsch.

Meine ganze simple Thing Definition:

Code: Alles auswählen

Thing HmIP-SPI 000C1F29923B2B "Bewegungsmelder" @ "Wohnzimmer"  

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

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von udo1toni »

Es kommt dabei darauf an, wie der Melder funktioniert. Gibt er einen Impuls raus, so könnte es auch einen Event Channel geben. schaltet er aber einen Kontakt, so wird der Kontakt als Switch Channel angelegt sein.
Die meisten Bewegungsmelder arbeiten nach letzterem Prinzip, wobei es auch Bewegungsmelder gibt, die ausschließlich ein ON schicken und erwarten, dass der Aktor sich selbst darum kümmert, das OFF zu generieren. Diese Art Melder fallen streng genommen in die erste Kategorie, mir ist aber kein Bewegungsmelder bekannt, wo das als Event Channel umgesetzt wäre, obwohl Du vollkommen Recht hast: eigentlich wäre ein Event Channel hier der richtige Weg.

Nachtrag: Man kann auch argumentieren, dass die Umsetzung als Switch Channel den Vorteil hat, dass man eventuelll komplett ohne Rule auskommen kann.
Dazu definiert man den Channel als command und verlinkt den Aktor Channel (vom Typ Switch) über ein Switch Item direkt mit dem Bewegungsmelder. Falls die Command Option nicht vorhanden ist, kann man auch das Profile "follow" für den Aktor setzen. Damit wird der Aktor immer dem Zustand des Items folgen, egal ob ein Command oder eine Status Update ursächlich für den Zustand war.
Diese Art "Verschaltung" ist unter zwei Gegebenheiten sinnvoll:
1. Der Bewegungsmelder sendet ausschließlich ein ON Signal. Dann definiert man zusätzlich auf dem Item eine expiration Time mit Command OFF. Der Befehl wird getriggert, wenn N Sekunden kein Befehl oder Status Update empfangen wurde - wahlweise können Commands und/oder Updates auch ignoriert werden. N ist dabei ein in der UI fest einstellbarer Wert.
2. Der Bewegungsmelder sendet selbst das OFF-Signal, nach einer im Bewegungsmelder einstellbaren Zeitspanne ohne erkannte Bewegung.
In allen anderen Situationen (und wenn mehr Flexibilität verlangt wird; z.B. einen Dimmer ansteuern, nachts mit anderer Helligkeit als tagsüber; nachts kürzere Einschaltzeit, aber am Wochenende und in den Ferien wiederum länger usw...) ist der Weg über die Rules der sinnvollere.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

gsezz
Beiträge: 16
Registriert: 28. Sep 2020 12:40

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von gsezz »

Ok, danke für die Infos. Ich hatte gehofft es gäbe beim Homematic Binding vielleicht eine Möglichkeit bei einem eingehenden Statuswechsel einen trigger zu erzeugen, ähnlich wie beim MQTT Binding, wo man der Channel Definition einfach trigger="true" hinzufügen kann.
Dann werde ich wohl den kleinen Umweg über ein Item gehen müssen, und es auf Updates überwachen.

Das Abschalten überlasse ich dem internen Timer des Shellys, an den die Leuchten angeschlossen sind. So läuft dieser auch wie gewohnt, wenn das Licht über einen direkt angeschlossenen Schalter eingeschaltet wird. Ich versuche solche essentiellen Dinge wie die Raumbeleuchtung nicht zu sehr von der Smarthomezentrale abhängig zu machen, so dass sie auch noch normal zu gebrauchen ist falls mal der Server ausfallen sollte, oder ähnliches. ;)

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

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von udo1toni »

gsezz hat geschrieben: 25. Aug 2022 08:37 Ich versuche solche essentiellen Dinge wie die Raumbeleuchtung nicht zu sehr von der Smarthomezentrale abhängig zu machen, so dass sie auch noch normal zu gebrauchen ist falls mal der Server ausfallen sollte, oder ähnliches.
Ja, das ist hier auch so. Funktioniert natürlich besser, wenn man die wesentlichen Komponenten alle in einem System hat (hier für Licht, Rollläden und Heizungsventile knx), so dass man lediglich für Überwachung und smarte Steuerung zusätzliche Steuermöglichkeiten andocken muss, aber die essenziellen Dinge (Licht an/aus, Rollläden auf/stopp/zu, Soll-/Ist-Temperatur) autark im Gebäude Bus laufen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

gsezz
Beiträge: 16
Registriert: 28. Sep 2020 12:40

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von gsezz »

Also, irgendwie komme mit diesem Präsenzmelder auf keinen grünen Zweig. Auf die erste Bewegung reagiert er sofort, aber obwohl ich weiterhin im Raum bin geht das Licht nach ablaufen des Timers aus, und erst nach über einer halben Stunde wieder an.

Zur Fehlersuche habe ich den Timer nun doch mal in Openhab geregelt:

Code: Alles auswählen

rule "Präsenzmelder"
when 
    Item Bewegung_WZ received update ON
    or Item Test received update
then	
    if ( debug == 1) logInfo("Beleuchtung Flur", "Bewegung erkannt")
    if( Helligkeit_WZ.state < 100 ) {
        if ( debug == 1) logInfo("Beleuchtung Flur", "Helligkeit gering")
        if (myTimer !== null) {
            if ( debug == 1) logInfo("Beleuchtung Flur", "Timer verlängert")
            myTimer.reschedule(now.plusMinutes(5))
        } else {
            if ( debug == 1) logInfo("Beleuchtung Flur", "Timer gestartet")
            mqtt.publishMQTT("shellies/dimmerWZ1/light/0/set", "{\"turn\": \"on\"}")
            myTimer = createTimer(now.plusMinutes(5), [ |
                if ( debug == 1) logInfo("Beleuchtung Flur", "Timer abgelaufen")
                mqtt.publishMQTT("shellies/dimmerWZ1/light/0/set", "{\"turn\": \"off\"}")
                myTimer = null
            ])
        }
    } 
end
Für mein Verständnis sollte der Präsenzmelder, solange sich jemand im Raum bewegt, doch alle 4 Minuten ein Update senden, und die Regel auslösen. :?
HmIP-SPI.PNG
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von udo1toni »

Was verbirgt sich hinter Blockierzeitraum?

Das Problem ist hier vermutlich, dass es sich um ein batteriebetriebenes Gerät handelt. Der Kompromiss ist an dieser Stelle Funktion oder lange Lebensdauer der Batterie.
Was den Bewegungsmelder stark in den Anwendungsmöglichkeiten beschränkt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

merlindata
Beiträge: 33
Registriert: 24. Jan 2020 08:15
Answers: 1
Wohnort: Wien

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von merlindata »

Kann es sein das "Bewegung_WZ" auf einen anderen Channel als auf 1 verknüpft ist?
Poste doch mal Deine Items dazu

gsezz
Beiträge: 16
Registriert: 28. Sep 2020 12:40

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von gsezz »

Ich denke von OpenHABs Seite funktioniert es. Wenn zum ersten mal jemand den Raum betritt, geht das Licht an wie es sollte. Nur werden danach für rund eine halbe Stunde keine weiteren Bewegungen mehr gemeldet. Nach 5 Minuten geht das Licht aus, und dann für rund 30 Minuten nicht wieder an. Die Status LED des Bewegungsmelders zeigt erkannte Bewegung an, aber es geht keine Meldung an die Zentrale.

Das sind die Items:

Code: Alles auswählen

Number     Helligkeit_WZ              "Helligkeit Wohnzimmer"                       <light>          (gSensoren, gWohnzimmer)        ["Measurement", "Illuminance"]    {channel="homematic:HmIP-SPI:RaspberryMatic:000C1F29923B2B:1#ILLUMINATION"}
Switch     Bewegungsmelder_WZ         "Bewegungsmelder Wohnzimmer Aktiv/Inaktiv"                     (gSensoren, gWohnzimmer)                                          {channel="homematic:HmIP-SPI:RaspberryMatic:000C1F29923B2B:1#PRESENCE_DETECTION_ACTIVE"}
Switch     Bewegung_WZ                "Bewegung erkannt"                                             (gSensoren, gWohnzimmer)                                          {channel="homematic:HmIP-SPI:RaspberryMatic:000C1F29923B2B:1#PRESENCE_DETECTION_STATE"}

Blockierzeitraum:
Die Bewegungs-/Präsenzerkennung kann für die hier gewählte Zeit deaktiviert werden, indem ein Taster o. ä. mit diesem Kanal verknüpft wird. Sobald der Kanal einen Schaltbefehl empfängt, wird die Erkennung für die gewählte Zeit unterdrückt. Nach Ablauf der Zeit, arbeitet der Bewegungs-/Präsenzmelder wieder wie gewohnt.
Diesen Kanal habe ich in nirgendwo verwendet.

Mindestsendeabstand:
Der Präsenzmelder meldet die erste erkannte Bewegung sofort, weitere Bewegungen dann erneut wieder nach der hier gewählten Zeit.

edit:
Über den Kanal PRESENCE_DETECTION_ACTIVE lässt sich der Bewegungsmelder deaktivieren. Den habe ich bisher aber nur mit einem Item verknüpft, und sonst nirgends eingebaut. Wenn ich den Bewegungsmelder über dieses Item aus- und wieder einschalte erkennt er sofort wieder eine Bewegung.

merlindata
Beiträge: 33
Registriert: 24. Jan 2020 08:15
Answers: 1
Wohnort: Wien

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von merlindata »

Da ich so ein Gerät selber nicht habe stellt sich mir die Frage ob des keinen Motion Kanal gibt?
z.b. - Switch Bewegungsmelder "Bewegung" {channel="homematic:HmIP-SMI:ccu:000000000000:1#MOTION"}

gsezz
Beiträge: 16
Registriert: 28. Sep 2020 12:40

Re: HmIP-SPI Präsenz als trigger verwenden

Beitrag von gsezz »

Diese Kanäle stehen zur Verfügung:
HmIP-SPI_2.PNG
(Advanced zeigt nur die üblichen Homematic Diagnose Kanäle zum Funksystem, Firmware, etc., aber nichts weiteres was mit der Bewegungserkennung zu tun hat.)

Ich glaube ich habe das Problem gefunden.
Ich dachte, dass die 4-minütigen Meldungen des Präsenzsmelder bis an OpenHAB weitergegeben werden, aber dem ist einfach nicht so. Sie gehen nur an die Homematic Zentrale, und diese kommuniziert mit dem Openhab Binding wohl nur Statusänderungen.
Das heißt, ich darf den Timer nicht bei erkannter Bewegung starten lassen, sondern erst wenn das Item von "erkannt" zu "nichts erkannt" wechselt.

Ob das Problem damit gelöst ist muss ich aber erst noch testen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten