Vision Tür- und Fenstersensor (VIS_ZD2102)

Begonnen von feichling, 18 März 2015, 09:12:44

Vorheriges Thema - Nächstes Thema

feichling

Hallo "rudolfkoenig",

ich habe schon seit längerem den Vision Tür- und Fenstersensor (VIS_ZD2102) im Einsatz und muss nach jedem Update immer meine Änderung einspielen.
Nun habe ich mir mal Zeit genommen um dich zu bitten es direkt in die 10_ZWave.pm aufzunehmen.

--- 10_ZWave.pm  2015-03-18 07:52:23.862886358 +0100
+++ 10_ZWave.pm_mit_patch      2015-03-18 07:48:05.204704603 +0100
@@ -184,7 +184,9 @@

   ALARM                    => { id => '71',
     get   => { alarm       => "04%02x", },
-    parse => { "..7105(..)(..)" => '"alarm_type_$1:level $2"',}, },
+    parse => { "..71050700" => "state:closed",
+              "..710507ff" => "state:open",
+              "..7105(..)(..)" => '"alarm_type_$1:level $2"',}, },
   MANUFACTURER_SPECIFIC    => { id => '72',
     get   => { model       => "04", },
     parse => { "087205(....)(....)(....)" => 'ZWave_mfsParse($1,$2,$3,0)',

wäre super.

rudolfkoenig

So einfach wird das in diesem Fall nicht.

In meinem (alten) CommmandClassSpec sind 12 verschiedene Typen und ca 50 Events definiert, 0x07 fungiert unter "Burglar Alarm". Bei diesem Typ (0x07) sind 7 Events definiert (1-6 und 0xfe), alle anderen sind reserviert. D.h. VIS_ZD2102 implementiert den Standard falsch, oder es gibt eine neuere Version des Standards. Ich wuerde bis auf weiteres von einem falsch implementierten Standard ausgehen.

Fuer solche Faelle gibt es in 10_ZWave.pm %zwave_deviceSpecial, wo man das Verhalten des Moduls fuer einzelne Geraete ueberschreibt. D.h. deine Aenderung muesste hier eingebaut werden, zusammen mit einem Eintrag in %zwave_modelIdAlias.

Und die Doku fehlt auch noch :)

krikan

VIS_ZD2102 nutzt laut Doku/pepper1 V2 der Class: http://www.pepper1.net/zwavedb/device/147
Wenn (vermutlich) nur SDS11060-7 als Spec vorhanden, dann sind Infos zu V2 dort nicht enhalten.
Infos zu V2: https://github.com/OpenZWave/open-zwave/blob/master/cpp/src/command_classes/Alarm.cpp. Vielleicht hilft das.

rudolfkoenig

Da steht deutlich weniger drin, als in meiner Doku.
Ich meine den Inhalt, nicht die Code-Zeilen :)

karsten103

#4
Hallo,

hier kann ich etwas Licht ins Dunkel bringen. Hilfreich war folgendes Dokument: http://220.135.186.178/zwave/example/ALARM/index.html

Ab COMMAND_CLASS_ALARM Version 2 ist Typ 0x07 nicht mehr "Burglar Alarm", sondern "Home Security". Und über Event-IDs werden diese Alarme noch spezifiziert:

Event id=0x00, label=Previous Events cleared
Event id=0x01, label=Intrusion
Event id=0x02, label=Intrusion, Unknown Location
Event id=0x03, label=Tampering, product covering removed
Event id=0x04, label=Tampering, Invalid Code
Event id=0x05, label=Glass Breakage
Event id=0x06, label=Glass Breakage, Unknown Location
Event id=0x07, label=Motion Detection
Event id=0x08, label=Motion Detection, Unknown Location

Mitschnitt von Bewegungsmelder VIS_ZP3102 (Unterstützt ALARM in Version 2)
2015.03.17 19:08:17 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0a710507ff00ff07030000
2015.03.17 19:33:06 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0a710507ff00ff07020000
2015.03.17 19:36:16 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0a7105070000ff07020000


Zeile 1: Gehäuse geöffnet
Zeile 2: Bewegung erkannt
Zeile 3: Bewegungsalarm nach der eingestellten Zeit zurückgesetzt
Das Schließen des Gehäuses wird nicht mit einem Alarm gemeldet.

Mitschnitt von Bewegungsmelder VIS_ZP3102EU-5 (Unterstützt ALARM in Version 4)
2015.03.17 19:16:13 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:03 ARG:0b710507ff00ff0703010300
2015.03.17 19:16:26 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:03 ARG:0b7105070000ff0700010300
2015.03.17 19:25:09 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:03 ARG:0b710507ff00ff0708010800
2015.03.17 19:28:10 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:03 ARG:0b7105070000ff0700010800


Zeile 1: Gehäuse geöffnet
Zeile 2: Gehäuse geschlossen
Zeile 3: Bewegung erkannt
Zeile 4: Bewegungsalarm nach der eingestellten Zeit zurückgesetzt

Hier wird auch das Schließen des Gehäuses gemeldet. Und das Zurücksetzen des Alarms passiert immer mit Event-ID 0x00 (Previous Events Cleared), wobei an vorletzter Stelle die Event-ID des "Previous Event" erkennbar ist.

Ich hatte mich schon gewundert, dass das Öffnen des Gehäuses und eine Bewegung einen Alarm des selben Typs auslösen und konnte nicht verstehen, warum man in der Beschreibung der Geräte einen "Sabotagekontakt" erwähnt. Es fehlt bei der Ausgabe einfach die Event-ID, die die Alarme unterscheidbar macht.

Schön wäre eine Ausgabe des Alarms in der Form

     alarm: type 07 level ff event 03

Oder man könnte das ganze aussagekräftiger gestalten

     alarm: type homeSecurity level on event tamperingProductCoveringRemoved

Rainer, gibt es da eine generelle Vorgehensweise? Eher kurze Zahlen oder eher aussagekräftigere Texte? Texte eher in Camel-Notation oder Großbuchstaben mit Unterstrich?

Für Lösung 1 (ohne Texte) könnte ich einen Patch zur Verfügung stellen wenn gewünscht. So ganz ist mir die Parse-Logik aber noch nicht klar. Wird beim ersten Treffer aufgehört, oder werden alle Parse-Muster einer Command-Class durchlaufen und können so mehrere Treffer gefunden werden?

Gruß,
Karsten

rudolfkoenig

Wo kommt diese Namenlose Seite her, und welche Version wird hier dokumentiert? Die Liste der Events ist hier deutlich detaillierter als das was ich habe, muss also V2+ sein. Btw. Die Seite wird sehr elegant aus einer .xml Seite (http://220.135.186.178/zwave/example/ALARM/ALARM.xml) mit .xsl zusammengebaut, die .xml koennte aber fuer uns besser verwertbarer sein als das html :)

Laut meinem Doku besteht Alarm V2 Report aus Type, Level, SourceNodeId,Status,Type,Event,OptionalParameters. Damit entspricht Event deiner roten Spalte.

ZitatWird beim ersten Treffer aufgehört, oder werden alle Parse-Muster einer Command-Class durchlaufen und können so mehrere Treffer gefunden werden?
Es werden alle zu eine Klasse gehoerenden parse-Muster geprueft.

Ich war jetzt mal frech, und habe die Strings von der Seite hinzugefuegt, kannst du das bitte testen?

karsten103

Die Seite hat mir, wie sollte es anders sein, Google ausgeworfen, als ich nach im FHEM noch nicht bekannten Command Classes gesucht habe.

Deine Doku scheint zu passen, nur die SourceNodeId kann ich nicht nachvollziehen, da steht bei meinen Daten immer 00 drin.

Testen gerne. Wie? "update check" liefert bei mir "nothing to do..."

rudolfkoenig

Update wird nur einmal am Tag, morgens kurz vor 8 mit Daten aus dem SVN gefuettert.
Also entweder direkt aus dem SVN, oder ein Tag warten.

feichling

Hallo rudolfkoenig....

bei mir macht der VIS_ZD2102 nun folgende Meldung:

2015-03-19_08:15:01 FL_DoorSensor basicReport: ff
2015-03-19_08:15:01 FL_DoorSensor alarm: HomeSecurity: Intrusion, Unknown Location
2015-03-19_08:15:40 FL_DoorSensor basicReport: 00
2015-03-19_08:15:40 FL_DoorSensor alarm: HomeSecurity: Intrusion, Unknown Location
2015-03-19_08:39:47 FL_DoorSensor basicReport: ff
2015-03-19_08:39:55 FL_DoorSensor basicReport: 00
2015-03-19_08:39:55 FL_DoorSensor alarm: HomeSecurity: Intrusion, Unknown Location
2015-03-19_08:40:17 FL_DoorSensor basicReport: ff
2015-03-19_08:40:17 FL_DoorSensor alarm: HomeSecurity: Intrusion, Unknown Location
2015-03-19_08:41:08 FL_DoorSensor basicReport: 00
2015-03-19_08:41:08 FL_DoorSensor alarm: HomeSecurity: Intrusion, Unknown Location


karsten103

Der Event-Monitor liefert jetzt folgendes:

Bei Klasse ALARM_V2
2015-03-19_08:36:21 ZWave_SENSOR_BINARY_4 alarm: HomeSecurity: Tampering, product covering removed
2015-03-19_08:36:41 ZWave_SENSOR_BINARY_4 wakeup: notification
2015-03-19_08:40:43 ZWave_SENSOR_BINARY_4 basicReport: ff
2015-03-19_08:40:43 ZWave_SENSOR_BINARY_4 alarm: HomeSecurity: Intrusion, Unknown Location
2015-03-19_08:43:48 ZWave_SENSOR_BINARY_4 basicReport: 00
2015-03-19_08:43:48 ZWave_SENSOR_BINARY_4 alarm: HomeSecurity: Intrusion, Unknown Location

Bei Klasse ALARM_V4
2015-03-19_08:40:38 ZWave_GARAGE_DOOR_6 alarm: HomeSecurity: Motion Detection, Unknown Location
2015-03-19_08:40:43 ZWave_GARAGE_DOOR_6 alarm: HomeSecurity: Tampering, product covering removed
2015-03-19_08:40:52 ZWave_GARAGE_DOOR_6 wakeup: notification
2015-03-19_08:41:09 ZWave_GARAGE_DOOR_6 alarm: HomeSecurity: Previous Events cleared

Die Umsetzung der Texte funktioniert, allerdings sind die ohne den Level nicht aussagekräftig. Die Texte sind bei Version 2 beim Setzen des Alarms und beim Zurücknehmen des Alarms gleich und nur der Level ändert sich. Bei Version 4 wird beim Rücksetzen des Alarms stattdessen "Previous events cleared" gesendet. Die Info, welches Alarm-Event gecleared wurde, könnte man sich aus der Z-Wave-Antwort auch noch bestimmen.

rudolfkoenig

Habe dran rumgeschraubt, hoffentlich ist das jetzt besser.

karsten103

2015-03-20_08:17:37 ZWave_SENSOR_BINARY_4 basicReport: ff
2015-03-20_08:17:37 ZWave_SENSOR_BINARY_4 alarm: HomeSecurity: Intrusion, Unknown Location
2015-03-20_08:21:04 ZWave_SENSOR_BINARY_4 basicReport: 00
2015-03-20_08:21:04 ZWave_SENSOR_BINARY_4 alarm: HomeSecurity: Event cleared: Intrusion, Unknown Location
2015-03-20_08:24:04 ZWave_SENSOR_BINARY_4 alarm: HomeSecurity: Tampering, product covering removed
2015-03-20_08:24:08 ZWave_SENSOR_BINARY_4 wakeup: notification

2015-03-20_08:13:30 ZWave_GARAGE_DOOR_6 basicReport: ff
2015-03-20_08:13:30 ZWave_GARAGE_DOOR_6 alarm: HomeSecurity: Motion Detection, Unknown Location
2015-03-20_08:14:49 ZWave_GARAGE_DOOR_6 basicReport: 00
2015-03-20_08:14:49 ZWave_GARAGE_DOOR_6 alarm: HomeSecurity: Event cleared: Motion Detection, Unknown Location
2015-03-20_08:22:34 ZWave_GARAGE_DOOR_6 alarm: HomeSecurity: Tampering, product covering removed
2015-03-20_08:22:44 ZWave_GARAGE_DOOR_6 wakeup: notification
2015-03-20_08:22:54 ZWave_GARAGE_DOOR_6 alarm: HomeSecurity: Event cleared: Tampering, product covering removed

Gefällt mir, jetzt verhalten sich die Versionen 2 und 4 gleich.

Es würde mich interessieren, was nun beim VIS_ZD2102 im Event monitor erscheint. Feichling, könntest du das posten?

feichling

sieht gut aus:

2015-03-20_14:16:33 FL_DoorSensor basicReport: ff
2015-03-20_14:16:33 FL_DoorSensor alarm: HomeSecurity: Intrusion, Unknown Location
2015-03-20_14:16:38 FL_DoorSensor basicReport: 00
2015-03-20_14:16:39 FL_DoorSensor alarm: HomeSecurity: Event cleared: Intrusion, Unknown Location

klasse !

krikan

Bei meinem Philio PST02-1A http://www.philio-tech.com/products/PST02-A.pdf sind die erzeugten Events für die Class ALARM_V4 leider nicht nutzbar. Ich erhalte für alle alarmTypen und alarmEvents immer den gleichen Event (00,0).
Der Aufbau der Rohtelegramme, die als Class MULTI_CMD übermittelt werden, ist etwas anders als beim obigen VISION Bewegungsmelder. Die Codes für alarmTypen und alarmEvents sind aber gleich:

Mitschnitt:
2015.03.24 19:01:46 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:05 ARG:1e8f010403800364097105000000ff070800053105030103063105012200f5
2015.03.25 12:04:28 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:05 ARG:1e8f010403800364097105000000ff06160005310503011e063105012200dc
2015.03.25 12:04:29 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:05 ARG:1e8f010403800364097105000000ff06170005310503011d063105012200dc

Laut Bedienungsanleitung und praktischen Tests:
Zeile 1: 07=HomeSecurity und 08=Motion Detection, Unkown Location
Zeile 2: 06=AccessControl und 16=Window/Door is open
Zeile 3: 06=AccessControl und 17=Window/Door is closed

Ich habe versucht das in 10_ZWave.pm einzubauen, schaffe es aber nicht, dass auch der VISION weiterhin läuft. Könnte mich jemand bitte unterstützen.

Am Rande:
Könnte man nicht die 10_ZWave.pm so umbauen, dass bei set-Befehlen für WAKEUP-Geräte auch "Scheduled for sending after WAKEUP" erscheint. Bei mir habe ich Zeile 519 des Moduls durch Löschen von "$type eq "get"&&" abgeändert auf:
Zitatreturn (AttrVal($name,"verbose",3) > 2 ?
Habe bei mir keine Probleme festgestellt. Es wäre gut, wenn das gegengecheckt und eingebaut werden könnte. Würde Einsteigern evtl. helfen.

Danke!

rudolfkoenig

Eine aktuelle Doku waere schoen. Ich habe ein Patch gebaut, der die gewuenschten Meldungen (hoffentlich rueckwaertskompatibel) dekodiert, indem ich alarm_type/level aus dem hinteren Teil rausfische, falls vorne 00 gemeldet wird. Auch deine Anregung wg. set bei wake_up habe ich uebernommen (aber nicht getestet).

Achtung: ich habe auch meine zwave.me-Remote Experimente (betrifft Multi_Channel_Association) eingecheckt. Ich habe mit mcaAdd geschafft, die Fernbedienung zum Absturz zu bringen, falls man den konfigurierten Knopf drueckt. Falls jemand hier Hilfe anbieten kann (wie kann man die Fernebedienung resetten, welche Parameter spezifiziert man bei mcaAdd (nicht Theorie, sondern Praxis), brauche ich ueberhaupt mca, um unterschiedliche Meldungen von der Fernbedienung zu bekommen, usw), dann bin ich dankbar.

krikan

Danke Rudi! Die ALARM V4 beim PST02-1A funktioniert jetzt:

2015-03-26_17:42:49 ZWave_GARAGE_DOOR_5 alarm: HomeSecurity: Tampering, product covering removed
2015-03-26_17:48:00 ZWave_GARAGE_DOOR_5 alarm: HomeSecurity: Motion Detection, Unknown Location
2015-03-26_17:48:07 ZWave_GARAGE_DOOR_5 alarm: AccessControl: Window/Door is closed
2015-03-26_17:48:07 ZWave_GARAGE_DOOR_5 alarm: AccessControl: Window/Door is open


ZitatAuch deine Anregung wg. set bei wake_up habe ich uebernommen (aber nicht getestet).
Mutig ;), hoffe es gibt keine unerwünschten Nebeneffekte. Mich wundert nur, warum das vorher auf "get" beschränkt war.

rudolfkoenig

#16
Weil get normalerweise was zurueckliefert, set aber nicht.

Btw: Kannst du auch die "Event cleared" Nachrichten generieren?

krikan

Zitat von: rudolfkoenig am 26 März 2015, 18:24:51
Btw: Kannst du auch die "Event cleared" Nachrichten generieren?
Nein, komischerweise kommen die nicht bzw. ich weiß nicht wie. In der Anleitung habe ich dazu nichts gefunden und das WWW hat mir auch noch keine weiteren Infos geliefert.

krikan

Zitat von: krikan am 26 März 2015, 18:40:03
Zitat von: rudolfkoenig am 26 März 2015, 18:24:51
Btw: Kannst du auch die "Event cleared" Nachrichten generieren?
Nein, komischerweise kommen die nicht bzw. ich weiß nicht wie. In der Anleitung habe ich dazu nichts gefunden und das WWW hat mir auch noch keine weiteren Infos geliefert.

Anleitung noch mal in Ruhe wg. XML-Config-Bearbeitung durchgelesen: Event cleared nutzt der Philio PST02 nicht. Man kann ein PIR Redetect Interval in Sekunden aktivieren. Nach Ablauf des Intervals wird die Bewegung erneut überwacht. Falls Bewegung, dann Telegramme andernfalls keins. Wenn keine Nachfolge- "Motion detected"-Event kommt, gibt es keine Bewegung mehr. Emulation in Fhem mit sequence möglich.