Z-Wave Door-Sensor - wie einbinden und Webhook versenden?

Begonnen von Thomas24568, 03 Januar 2019, 14:14:13

Vorheriges Thema - Nächstes Thema

Thomas24568

Moin!

Manchmal fliegen mir Teile zu, die ich dann einbinden möchte... Also, folgender Sensor ist neu:

Internals:
   CFGFN     
   DEF        f0cc5945 5
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     65
   NAME       ZWave_SENSOR_NOTIFICATION_5
   NR         186
   STATE      wakeupInterval 86400 1
   TYPE       ZWave
   ZWDongle_0_MSGCNT 65
   ZWDongle_0_RAWMSG 000400050a7105060000ff06170000
   ZWDongle_0_TIME 2019-01-03 14:07:48
   ZWaveSubDevice no
   cmdsPending 0
   homeId     f0cc5945
   isWakeUp   1
   lastMsgSent 1546508155.86014
   nodeIdHex  05
   READINGS:
     2019-01-03 14:07:48   alarm           AccessControl: Event cleared: Window/Door is closed, arg 0000
     2019-01-03 14:07:48   basicSet        0
     2019-01-03 10:35:54   model           Vision ZD2102 EU Door/Window Sensor
     2019-01-03 10:35:54   modelConfig     vision/zd2102.xml
     2019-01-03 10:35:54   modelId         0109-2001-0106
     2019-01-03 10:35:53   state           wakeupInterval 86400 1
     2019-01-03 10:35:55   timeToAck       0.027
     2019-01-03 10:35:55   transmit        OK
Attributes:
   IODev      ZWDongle_0
   classes    ZWAVEPLUS_INFO MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY BATTERY POWERLEVEL VERSION WAKE_UP ASSOCIATION ASSOCIATION_GRP_INFO ALARM CONFIGURATION FIRMWARE_UPDATE_MD SECURITY
   room       ZWave
   vclasses   ALARM:4 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:2 MANUFACTURER_SPECIFIC:2 POWERLEVEL:1 SECURITY:1 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2


Wie binde ich den so ein, das er bei Fenster auf bzw. Fenster zu einen *Webhook* zu meinem homee-würfel schickt? Der würfel ist im WLAN über IP erreichbar. Leider habe ich in der Commandref nur 4 Fundstellen zu Webhook gefunden, die leider keinerlei Erhellung brachten.


Gruß

Beta-User

Vielleicht solltest du nicht vorrangig nach webhook suchen, wenn du eine Ereignissteuerung willst?

Als erstes nachsehen, welche Events das Teil liefert: https://wiki.fhem.de/wiki/Event_monitor
Dann daraus einen Event-Handler bauen, siehe z.B. https://wiki.fhem.de/wiki/Notify

Dazu mußt du dann schon wissen, welches Kommando du im Ausführungsteil benötigst, aber das hat dann eigentlich nichts mehr mit dem konkreten Auslöser zu tun ;) .

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thomas24568

Dann mal los... Der Eventmonitor liefert mir:

2019-01-03 17:18:52 ZWave ZWave_SENSOR_NOTIFICATION_4 alarm: HomeSecurity: Motion Detection - Unknown Location
2019-01-03 17:18:53 ZWave ZWave_SENSOR_NOTIFICATION_4 open
2019-01-03 17:18:53 ZWave ZWave_SENSOR_NOTIFICATION_4 reportedState: open
2019-01-03 17:18:53 ZWave ZWave_SENSOR_NOTIFICATION_4 open
2019-01-03 17:18:53 ZWave ZWave_SENSOR_NOTIFICATION_4 reportedState: open
2019-01-03 17:19:04 ZWave ZWave_SENSOR_NOTIFICATION_5 basicSet: 255
2019-01-03 17:19:04 ZWave ZWave_SENSOR_NOTIFICATION_5 alarm: AccessControl: Window/Door is open, arg 0000
2019-01-03 17:19:08 ZWave ZWave_SENSOR_NOTIFICATION_5 basicSet: 0
2019-01-03 17:19:08 ZWave ZWave_SENSOR_NOTIFICATION_5 alarm: AccessControl: Event cleared: Window/Door is closed, arg 0000
2019-01-03 17:19:48 ZWave ZWave_SENSOR_NOTIFICATION_4 alarm: HomeSecurity: Event cleared: Motion Detection - Unknown Location, arg 0108
2019-01-03 17:19:48 ZWave ZWave_SENSOR_NOTIFICATION_4 closed
2019-01-03 17:19:48 ZWave ZWave_SENSOR_NOTIFICATION_4 reportedState: closed
2019-01-03 17:19:49 ZWave ZWave_SENSOR_NOTIFICATION_4 closed
2019-01-03 17:19:49 ZWave ZWave_SENSOR_NOTIFICATION_4 reportedState: closed


Ich benötige also

ZWave_SENSOR_NOTIFICATION_4 reportedState: open und ZWave_SENSOR_NOTIFICATION_4 reportedState: closed

Notify basteln:
Vorlage: define <name> notify <Suchmuster> <command>
Umsetzung: define SzFensterAuf notify ZWave_SENSOR_NOTIFICATION_4 reportedState: open <command>
define SzFensterZu notify ZWave ZWave_SENSOR_NOTIFICATION_4 reportedState: closed <command>


Soweit ist das einfach :-) Jetzt brauche ich noch die Auflösung für das, was in <command>  reinmuß, also der/die/das Webhook senden.

Liege ich soweit richtig?

Beta-User

Zitat von: Thomas24568 am 03 Januar 2019, 17:38:30
Notify basteln:
Vorlage: define <name> notify <Suchmuster> <command>
Umsetzung: define SzFensterAuf notify ZWave_SENSOR_NOTIFICATION_4 reportedState: open <command>
define SzFensterZu notify ZWave ZWave_SENSOR_NOTIFICATION_4 reportedState: closed <command>


Soweit ist das einfach :-) Jetzt brauche ich noch die Auflösung für das, was in <command>  reinmuß, also der/die/das Webhook senden.

Liege ich soweit richtig?
Nicht ganz.

Beschäftige dich mit dem "." in regex (siehe z.B. http://regex101.com/) und lies die bereits verlinkten Dokumente noch mal - v.a.:* teste das/die notify mit dem log-Tipp,* nutze dabei $EVENT etc.
* Nutze vor allem die Option, direkt aus dem Event-Monitor Eventhandler zu erstellen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thomas24568

Moin!

So, ich habe das notify aus dem Event-Handler erstellt.

Internals:
   CFGFN     
   DEF        ZWave_SENSOR_NOTIFICATION_5:alarm:.* ZWave_SENSOR_NOTIFICATION_5:alarm:.*
   NAME       ntest
   NOTIFYDEV  ZWave_SENSOR_NOTIFICATION_5
   NR         278
   NTFY_ORDER 50-ntest
   REGEXP     ZWave_SENSOR_NOTIFICATION_5:alarm:.*
   STATE      2019-01-04 16:48:28
   TRIGGERTIME 1546616908.1576
   TYPE       notify
   READINGS:
     2019-01-04 16:45:11   state           active
Attributes:
   alias      Sz_Fenster
   room       Schlafz


Die Sache mit dem regex ist mir (noch) zu hoch, da steige ich nicht durch. Ich kenne und nutze seit Ewigkeiten Konstanten, Variablen und Platzhalter (Wildcards) wie * oder ?. Damit komme ich zurecht. Dem Link http://regex101.com/ habe ich mir kurz angesehen und nach wenigen Sekunden wieder das Fenster geschlossen - weil ist englisch.

Zurück zur eigentlichen Frage: Wie bekomme ich jetzt dem Webhook erzeugt und verschickt? Ich habe beim Suchen etwas von HttpUtils und httpmod gelesen. Damit werde ich mich jetzt mal beschäftigen. Bis später.




Beta-User

OK, dann kurz: Der Punkt steht für ein beliebiges Zeichen, das * für eine beliebige Zahl... Deswegen taucht im FHEM-Kontext häufig ".*" auf ;) .
Der Auslöser vom notify paßt daher, allerdings ist es wenig sinnvoll, das zweimal hinzuschreiben, und dafür den Ausführungsteil wegzulassen...
Das Wiki zu notify ist aber deutsch, von daher solltest du das dann intensiver lesen als die regex-Seite (sowas gibt es evtl. auch auf deutsch, mir ist sowas ganz egal :) ).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thomas24568

Zitat von: Beta-User am 04 Januar 2019, 17:33:52
Der Auslöser vom notify paßt daher, allerdings ist es wenig sinnvoll, das zweimal hinzuschreiben, und dafür den Ausführungsteil wegzulassen...

Ich sehe die Worte, aber verstehe den Sinn nicht. Ich habe ein "list ntest" gemacht, so wie es bei Problemen immer gefordert wird. Welchen Ausführungsteil vermisst du?

Beta-User

Ein list von einem funtionierenden Notify sieht eher so aus:

Internals: DEF        (Schalter_Spuele_Btn_03|Schalter_WZ1_Btn_02):Short.* set Weihnachtsbaum toggle NAME       n_Button_3_Weihnachtsbaum NR         312 NTFY_ORDER 50-n_Button_3_Weihnachtsbaum REGEXP     (Schalter_Spuele_Btn_03|Schalter_WZ1_Btn_02):Short.* STATE      active TYPE       notify READINGS: 2019-01-02 17:46:55   state           active Attributes: room       Wohnzimmer
"(Schalter_Spuele_Btn_03|Schalter_WZ1_Btn_02):Short.*" entspricht dabei dem "Auslöser" (oft schlicht als die regex bezeichnet, hier konkret: einer von zwei Schaltern wird kurz gedrückt), der Ausführungsteil ist "set Weihnachtsbaum toggle".

Was stört dich daran, wenn ich einen Fehler aufzeige, dazu ein Stichwort schreibe und dich auffordere, eine bestimmte Stelle der Doku näher anzusehen? Ich glaube kaum, dass du das gemacht hast, sonst wäre die Frage nicht so gestellt. Meine Erwartung an Hilfesuchende ist, dass sie die Hilfe so annehmen, wie ich sie geben kann und will, und das ist eben eher nach der Devise, anderen eher das Fischen beizubringen als Fische zu liefern...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thomas24568

#8
Wenn mir ein Fehler gezeigt wird ist das okay. Wenn ich aber nicht erkenne, wo/warum mir ein Fehler passiert ist, dann kann ich den nicht beheben. Und da hilft nicht immer eine ewig lange Anleitung, die ggf. noch auf englisch ist.

Das notify habe ich exakt nach der Anleitung aus deinem Link erstellt. Ich habe jetzt auch erkannt was du mit Ausführungsteil meinst.

Internals:
   DEF        ZWave_SENSOR_NOTIFICATION_5:alarm:.* set homee_hz_sz_aus
   NAME       ntest
   NOTIFYDEV  ZWave_SENSOR_NOTIFICATION_5
   NR         110
   NTFY_ORDER 50-ntest
   REGEXP     ZWave_SENSOR_NOTIFICATION_5:alarm:.*
   STATE      active
   TRIGGERTIME 1546638265.7384
   TYPE       notify
   READINGS:
     2019-01-04 22:46:57   state           active
Attributes:
   alias      Sz_Fenster
   room       Schlafz


Um bei den Fischen zu bleiben: Ja, die Idee ist gut, aber wenn ich nur exakt einen Fisch einmal benötige mache ich keinen Angelschein, sondern lass mir zeigen wie der gefangen wird (also die Kurzversion).

Das Notify sollte funktionieren, denn im Eventmonitor bekomme ich

2019-01-04 22:19:25 ZWave ZWave_SENSOR_NOTIFICATION_5 alarm: AccessControl: Window/Door is open, arg 0000

Inzwischen habe ich auch die 200 Suchtreffer von Httpmod überflogen und die wenigen, die sich auf "senden" beziehen auch gelesen. Soweit ich erkannt habe sollte mir sowas helfen:

define homee_hz_sz_an HTTPMOD 192.168.180.160:7681/api/v2/webhook_trigger?1 0
define homee_hz_sz_aus HTTPMOD 192.168.180.160:7681/api/v2/webhook_trigger?1 0

Oder ist das auch wieder ein Denkfehler drin?





Beta-User

Vorneweg meine _Meinung_, auch wenn du das ggf. nicht gerne hörst:
Es geht hier um Grundlagenwissen, ohne das die Nutzung von FHEM keinen Sinn macht. Du mußt dir also entweder die "ewig lange Anleitung" antun, oder du solltest es ganz lassen bzw. dir eine Lösung suchen, die für dich paßt - FHEM ist es dann jedenfalls nicht.

Im Ausführungsteil kann ich nicht wirklich helfen, da ich mich mit HTTPMOD nicht wirklich auskenne. Nach meinem Verständnis sehen aber set-Befehle anders aus, und man schaltet ein Device auch in der Regel über denselben Namen.

Also:
set homee_hz_sz anOder, wenn derselbe Befehl dahinter steht: "toggle" statt "an".
Und: was wie interpretiert wird, muß man im jeweiligen Gerät festlegen, wenn es nicht automatisch klar ist. Dazu mußt du aber die Doku von HTTPMOD lesen ;) und ggf. verstehen.
Wenn das Englisch ist, ist es eben so, das entspricht den Guidelines: englische commandref ist Pflicht, andere Sprachen dürfen sein (siehe https://wiki.fhem.de/wiki/Dokumentationsstruktur, wenn du Lust hast, noch etwas mehr zu lesen ;) ).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

MadMax-FHEM

#10
Für open/closed-Erkennung musst du aber das RegEx des Notify noch anpassen...

Also evtl. so in der Art:

ZWave_SENSOR_NOTIFICATION_5:(open|closed)

sofern für den 5 die gleichen Events kommen wie für 4!?
-> Eventmonitor gibt Auskunft, der gezeigte Auschnitt zeugt das nicht (dort lassen sich auch Notify "erzeugen"): https://wiki.fhem.de/wiki/Event_monitor

Und dann als "Ausführungsteil":
{if $EVENT eq "open"){fhem("set homee_hz_sz_aus reread")}elsif($EVENT eq "closed"){fhem("set homee_hz_sz_an reread")}}

Der Befehl bzgl. HTTPMOD den du brauchst ist: 'reread'...
...im FHEM-Web: help httpmod ;)

Siehe: https://wiki.fhem.de/wiki/Klammerebenen

Es geht auch das "fhem-IF" ( IF ) aber das nutze ich nicht, nur ein Hinweis da war was mit "Leerzeichen"...

Und es geht nat. auch DOIF...

Es gehen nat. auch 2 Notify, also eins pro HTTPMOD...

Oder statt zwei HTTPMOD anzulegen ein "wget" absetzen: https://forum.fhem.de/index.php/topic,95373.msg882090.html#msg882090

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Thomas24568

Zitat von: Beta-User am 07 Januar 2019, 07:16:26
Vorneweg meine _Meinung_, auch wenn du das ggf. nicht gerne hörst:
Es geht hier um Grundlagenwissen, ohne das die Nutzung von FHEM keinen Sinn macht. Du mußt dir also entweder die "ewig lange Anleitung" antun, oder du solltest es ganz lassen bzw. dir eine Lösung suchen, die für dich paßt - FHEM ist es dann jedenfalls nicht.

...

Dazu mußt du aber die Doku von HTTPMOD lesen ;) und ggf. verstehen.
Wenn das Englisch ist, ist es eben so, das entspricht den Guidelines: englische commandref ist Pflicht, andere Sprachen dürfen sein (siehe https://wiki.fhem.de/wiki/Dokumentationsstruktur, wenn du Lust hast, noch etwas mehr zu lesen ;) ).

Auf die Gefahr hin hier in dieser Nutzergemeinschaft auf Unverständnis zu stoßen oder rausgeworfen zu werden:

- Ich werde sicher nicht *die Ganze Doku* lesen und verstehen, wenn ich nur eine kleine Aufgabe lösen möchte. Soviel Zeit habe ich nicht.

- Wenn zum Verständnis einer Software/eines Produktes, das offensichtlich von Deutschen entwickelt wird, die englische Sprache notwendig ist, dann sollten sich die Entwickler SCHÄMEN! Wir Deutsche sind doch keine englische oder US-Kolonie...

MadMax-FHEM

#12
Bis zum Rauswurf müsste schon mehr/anderes kommen ;)

fhem ist nun mal KEIN Produkt (in dem Sinne).

Die "Entwickler" (ebenso wie Forums-Helfer, Tester, ...) "opfern" ihre Freizeit...

In der Software-Entwicklung (auch in Deutschland) ist halt nun mal Englisch die "führende" Sprache...

Daher ist (wie bereits geschrieben) halt nun mal die Beschreibung/Commandref in Englisch "Vorschrift"...
...die meisten schreiben aber (trotzdem) eine deutsche Version...

fhem-Wiki ist komplett in Deutsch (soweit ich weiß bzw. worüber ich bislang "gestolpert" bin)...

Klar muss/kann man nicht alles lesen/wissen...
...ich weiß (nutze) auch längst nicht alles.

ABER: es gibt ein paar Dinge die sollte (eigentlich: MUSS) man wissen.

Dazu gehört die grundsätzliche Systemeigenschaft: Events
und dann darauf reagieren: Notify (DOIF, ...)
und da es in Perl geschrieben ist schadet es auch nicht da en wenig zu lesen (für den Fall, dass die vorhandenen Module nicht das tun was man will/braucht -> "Erweiterung" durch eigene Subs in myUtils)...
und da vieles (auch die Reaktion auf Events: Notify, ...) auf RegEx basiert ist es auch nicht verkehrt darüber etwas zu wissen...

Jeweils "Basics" reicht, ansonsten gezielt suchen oder hier fragen...


Macht es nicht nur für dich leichter zu verstehen was dir ein "Hilfswilliger" zu erläutern versucht, sondern es auch den "Hilfswilligen" leichter (schneller) etwas zu erläutern...
...als wenn man (jedes Mal) bei Adam und Eva anfangen muss, bis man bei der eigentlichen Unterstützung für das Problem/Fragestellung angekommen ist...

Denn wie erwähnt: auch die "Hilfswilligen" (mit Betonung auf: Wollen ;)  ) sind Freiwillige, die ihre Freizeit "opfern"...

EDIT: eine Rückmeldung, ob irgendwas von dem hier genannten geholfen hat (und wenn nicht wo es [weiterhin] hakt) wäre auch gut... ;)

Gruß und viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Thomas24568

_eine Rückmeldung, ob irgendwas von dem hier genannten geholfen hat (und wenn nicht wo es [weiterhin] hakt) wäre auch gut... ;)_

Ich bin heute wieder am Thema, habe mich wegen englisch derart aufgeregt, das ich da nicht mehr konzentriert weiterkomme. Kurzfassung: Tips haben (bisher) nicht geholfen. Werde mich später (eher morgen/übermorgen) zum Thema wieder äußern.

Gruß

MadMax-FHEM

Zitat von: Thomas24568 am 07 Januar 2019, 19:07:59
Kurzfassung: Tips haben (bisher) nicht geholfen. Werde mich später (eher morgen/übermorgen) zum Thema wieder äußern.

Schade!

Bei der ausführlichen Rückmeldung bitte auch nennen was GENAU du probiert hast (bei "Devices" [auch Notify ist eines ;) ]) halt wie bereits getan: ein list :)

Schon mal auf den Link zur deutschen Commandref gedrückt? ;)
Wie geschrieben: sie ist NICHT verpflichtend (kann also sein, dass es dort kürzer/ungenauer etc. steht) aber meist vorhanden und für ein (generelles) Verständnis eigentlich ausreichend...

Oder im Wiki (gleiches wie Commandref Deutsch) geschaut?

Dann bis denn, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)