TKBHome TZ66D Dual Wall Switch

Begonnen von mattwire, 07 Mai 2015, 12:11:16

Vorheriges Thema - Nächstes Thema

mattwire

Hallo,  I have one of these switches installed in my home and it seems not supported by fhem (no events / state is reported).

Details:
http://www.pepper1.net/zwavedb/uploads/resources/6cc8de405f9496fbd9ed2545fb4320a10ebeff80.pdf
model: Wenzhou TKB Control System TZ66D Dual Wall Switch
modelConfig: wenzhou/tz66d.xml
modelId: 0118-0102-1020
classes: SWITCH_BINARY ASSOCIATION SWITCH_ALL CONFIGURATION POWERLEVEL VERSION MANUFACTURER_SPECIFIC

In my setup it is ID 15 (0f) on a Aotec ZWave dongle.  Raw output below:
Left switch off-on-off-on-off-on-off then Right switch off-on-off-on-off-on-off
2015.05.07 10:58:42 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:42 5: SW: 06
2015.05.07 10:58:42 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:42 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:42 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:42 5: ZWDongle/RAW: /01090004000f03200100df
2015.05.07 10:58:42 5: SW: 06
2015.05.07 10:58:42 5: ZWDongle_Read ZWDongle_0: 0004000f03200100
2015.05.07 10:58:42 5: ZWDongle_0 dispatch 0004000f03200100
2015.05.07 10:58:42 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:03200100
2015.05.07 10:58:42 4: ZWave_SWITCH_BINARY_15: BASIC 03200100 generated no event
2015.05.07 10:58:45 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:45 5: SW: 06
2015.05.07 10:58:45 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:45 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:45 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:45 5: ZWDongle/RAW: /01090004000f032001ff20
2015.05.07 10:58:45 5: SW: 06
2015.05.07 10:58:45 5: ZWDongle_Read ZWDongle_0: 0004000f032001ff
2015.05.07 10:58:45 5: ZWDongle_0 dispatch 0004000f032001ff
2015.05.07 10:58:45 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:032001ff
2015.05.07 10:58:45 4: ZWave_SWITCH_BINARY_15: BASIC 032001ff generated no event
2015.05.07 10:58:47 5: ZWDongle/RAW: /011700040002116006013202213400000000000000000000bd
2015.05.07 10:58:47 5: SW: 06
2015.05.07 10:58:47 5: ZWDongle_Read ZWDongle_0: 00040002116006013202213400000000000000000000
2015.05.07 10:58:47 5: ZWDongle_0 dispatch 00040002116006013202213400000000000000000000
2015.05.07 10:58:47 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:02 ARG:116006013202213400000000000000000000
2015.05.07 10:58:48 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:48 5: SW: 06
2015.05.07 10:58:48 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:48 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:48 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:48 5: ZWDongle/RAW: /011700040002116006023202213400000000000000000000be
2015.05.07 10:58:48 5: SW: 06
2015.05.07 10:58:48 5: ZWDongle_Read ZWDongle_0: 00040002116006023202213400000000000000000000
2015.05.07 10:58:48 5: ZWDongle_0 dispatch 00040002116006023202213400000000000000000000
2015.05.07 10:58:48 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:02 ARG:116006023202213400000000000000000000
2015.05.07 10:58:49 5: ZWDongle/RAW: /01090004000f03200100df
2015.05.07 10:58:49 5: SW: 06
2015.05.07 10:58:49 5: ZWDongle_Read ZWDongle_0: 0004000f03200100
2015.05.07 10:58:49 5: ZWDongle_0 dispatch 0004000f03200100
2015.05.07 10:58:49 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:03200100
2015.05.07 10:58:49 4: ZWave_SWITCH_BINARY_15: BASIC 03200100 generated no event
2015.05.07 10:58:49 5: ZWDongle/RAW: /0110000400020a32022134000000000000c6
2015.05.07 10:58:49 5: SW: 06
2015.05.07 10:58:49 5: ZWDongle_Read ZWDongle_0: 000400020a32022134000000000000
2015.05.07 10:58:49 5: ZWDongle_0 dispatch 000400020a32022134000000000000
2015.05.07 10:58:49 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:02 ARG:0a32022134000000000000
2015.05.07 10:58:50 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:50 5: SW: 06
2015.05.07 10:58:50 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:50 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:50 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:50 5: ZWDongle/RAW: /01090004000f032001ff20
2015.05.07 10:58:50 5: SW: 06
2015.05.07 10:58:50 5: ZWDongle_Read ZWDongle_0: 0004000f032001ff
2015.05.07 10:58:50 5: ZWDongle_0 dispatch 0004000f032001ff
2015.05.07 10:58:50 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:032001ff
2015.05.07 10:58:50 4: ZWave_SWITCH_BINARY_15: BASIC 032001ff generated no event
2015.05.07 10:58:52 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:52 5: SW: 06
2015.05.07 10:58:52 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:52 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:52 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:52 5: ZWDongle/RAW: /01090004000f03200100df
2015.05.07 10:58:52 5: SW: 06
2015.05.07 10:58:52 5: ZWDongle_Read ZWDongle_0: 0004000f03200100
2015.05.07 10:58:52 5: ZWDongle_0 dispatch 0004000f03200100
2015.05.07 10:58:52 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:03200100
2015.05.07 10:58:52 4: ZWave_SWITCH_BINARY_15: BASIC 03200100 generated no event
2015.05.07 10:58:53 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:53 5: SW: 06
2015.05.07 10:58:53 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:53 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:53 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:53 5: ZWDongle/RAW: /01090004000f032001ff20
2015.05.07 10:58:53 5: SW: 06
2015.05.07 10:58:53 5: ZWDongle_Read ZWDongle_0: 0004000f032001ff
2015.05.07 10:58:53 5: ZWDongle_0 dispatch 0004000f032001ff
2015.05.07 10:58:53 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:032001ff
2015.05.07 10:58:53 4: ZWave_SWITCH_BINARY_15: BASIC 032001ff generated no event
2015.05.07 10:58:55 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:55 5: SW: 06
2015.05.07 10:58:55 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:55 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:55 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:55 5: ZWDongle/RAW: /01090004000f03200100df
2015.05.07 10:58:55 5: SW: 06
2015.05.07 10:58:55 5: ZWDongle_Read ZWDongle_0: 0004000f03200100
2015.05.07 10:58:55 5: ZWDongle_0 dispatch 0004000f03200100
2015.05.07 10:58:55 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:03200100
2015.05.07 10:58:55 4: ZWave_SWITCH_BINARY_15: BASIC 03200100 generated no event
2015.05.07 10:58:57 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:57 5: SW: 06
2015.05.07 10:58:57 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:57 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:57 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:58:58 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:58:58 5: SW: 06
2015.05.07 10:58:58 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:58:58 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:58:58 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:59:01 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:59:01 5: SW: 06
2015.05.07 10:59:01 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:59:01 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:59:01 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:59:02 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:59:02 5: SW: 06
2015.05.07 10:59:02 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:59:02 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:59:02 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:59:03 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:59:03 5: SW: 06
2015.05.07 10:59:03 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:59:03 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:59:03 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:59:04 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:59:04 5: SW: 06
2015.05.07 10:59:04 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:59:04 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:59:04 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:59:06 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:59:06 5: SW: 06
2015.05.07 10:59:06 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:59:06 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:59:06 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672
2015.05.07 10:59:08 5: ZWDongle/RAW: /01100049840f0a0410012585277073867242
2015.05.07 10:59:08 5: SW: 06
2015.05.07 10:59:08 5: ZWDongle_Read ZWDongle_0: 0049840f0a04100125852770738672
2015.05.07 10:59:08 5: ZWDongle_0 dispatch 0049840f0a04100125852770738672
2015.05.07 10:59:08 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:0f ARG:0a04100125852770738672

krikan

Please add BASIC to attr classes and try out. Probably you have to try this with old 10_ZWave.pm from http://sourceforge.net/p/fhem/code/8510/.
Command Class BASIC is not in NIF (http://www.pepper1.net/zwavedb/device/341)

@rudolfkoenig:
Is
"..2001(.*)"=> '"basicReport:$1"
also necassary in CC BASIC 10_ZWave.pm for remotes?

rudolfkoenig

Dont understand the question.

The remote sends 03200300 for off, 032003ff for on, and 022002 (basicGet) if you press the middle button.
..2001(.*) should be called basicSet, as 01 is the "set id" for Basic V1, but I have not seen a device yet sending basicSet to the controller. The report id is 03, as in ..0203(.*)

rudolfkoenig

Zitatbut I have not seen a device yet sending basicSet to the controller.
Have to correct myself: I've just seen it in the log from mattwire, sorry for my ignorance.
I've added ..2001(.*) to the parse section, so you'll get basicSet events (if updated tomorrow after 08:00)

But I still wonder how the second switch is supposed to work, there is no MULTI_CHANNEL class as in other cases.

krikan

If you get BASIC message you should use a notify to get the right state for left/rigt. This corresponds to my understanding of https://github.com/OpenZWave/open-zwave/wiki/Basic-Command-Class
But how?


mattwire

@rudolfkoening: Hi, I have updated with your changes and now I get the following:

state: basicSet 00 or state: basicSet ff

I have added BASIC to the list of classes

micha80

Hallo zusammen,
Kann es sein, dass mit der Änderung der Status jetzt nicht mehr korrekt auf on/off bzw Open/closed gesetzt wird?
Meine notify schlagen nicht mehr an :(

Ist das jetzt das "final" Release? Oder wird morgen wieder basicReport eingeführt?

(Sorry mattwire for not writing in english)

rudolfkoenig

I've only added a new event (basicSet), which until now was only logged at level 4 in the fhem-log.
I cannot imagine that this change disables existing notifies.
Please attach a log on verbose level 5 here for more details.

krikan

@micha80:
Wenn Du mehr Infos liefern würdest, könnte ich Dir vielleicht helfen  ;)
Welches Gerät? Log mit verbose 5? Was passiert jetzt/vorher?
Aber vielleicht hat Rudi so auch Ideen....

micha80

#9
FIBARO FGMS001 Motion Sensor
stateFormat: Temp:temperature Helligkeit:luminance Status:state

ergibt heute:
Temp:21.7 C Helligkeit:9 Lux Status:basicSet 00

ergab (vor)gestern (hab die alte 10_Zwave.pm nochmal verwendet):
Temp:21.7 C Helligkeit:9 Lux Status:open

ist das bei euch nicht so?

(Freitag abend und ihr "arbeitet" noch?  ;) )


EDIT:(in global verbose 5 kommt nichts anderes)

2015.05.08 19:03:12 5: Triggering DG_MotionSensor (2 changes)
2015.05.08 19:03:12 5: Notify loop for DG_MotionSensor open

==> DG_MotionSensor-2015-05.log <==
2015-05-08_19:03:12 DG_MotionSensor open
2015-05-08_19:03:12 DG_MotionSensor reportedState: open


aber aha, da verstecken sie sich:

2015.05.08 19:08:52 4: DG_MotionSensor: BASIC 032001ff generated no event
2015.05.08 19:08:52 4: DG_MotionSensor: MULTI_CHANNEL 03600d01 generated no event
2015.05.08 19:09:53 4: DG_MotionSensor: BASIC 03200100 generated no event
2015.05.08 19:09:53 4: DG_MotionSensor: MULTI_CHANNEL 03600d01 generated no event

rudolfkoenig

@micha80 Ich vermute, dass dein Sensor hinter einem SENSOR_BINARY eine BASIC Nachricht schickt, letzteres wurde bisher verschwiegen. Kannst du bitte eine Nachricht mit verbose 5 hier anhaengen?
@krikan: falls ich mit der Theorie Recht haben sollte, hast du eine Ahnung, wie man aus dem Schlamassel rauskommt?

micha80

#11
okay. für meinen Fibaro Door Sensor muß ich die Äußerung zurücknehmen.
da war ich selber kreativ, wobei auch hier die Frage wäre, ob das über ein notify gemacht werden muß?


define n_Door_Sensor_state_update notify z_Door_Sensor {\
  if ( "$EVENT" eq "basicReport: ff"){\
    fhem ("sleep 0.1;;setstate z_Door_Sensor open;;setreading z_Door_Sensor state open");;\
  }\
  if ( "$EVENT" eq "basicReport: 00"){\
    fhem ("sleep 0.1;;setstate z_Door_Sensor closed;;setreading z_Door_Sensor state closed");;\
  }\
  }\
}


EDIT: Logs siehe vorhergehenden Post.

krikan

Zitat von: rudolfkoenig am 08 Mai 2015, 19:17:22
falls ich mit der Theorie Recht haben sollte, hast du eine Ahnung, wie man aus dem Schlamassel rauskommt?
Micha80 kann ich gerade nicht folgen.
Aber ich fände es bei ZWave grds. besser, wenn state nie durch 10_ZWave.pm gesetzt würde und man auf stateformat zurückgreifen muss.  Weiß aber nicht, ob das in Fhem nicht ein nogo ist, kannst Du besser beurteilen. Insbesondere state in SENSOR_BINARY hat mich schon häufiger geärgert. BASIC ist auch nur eine Krücke, wenn ich das oben von mir in openzwave verlinkte richtig interpretiere.

micha80

#13
stateformat? du meinst eventmap?

ich hätte schon gern, on/off bzw open/closed im state, wozu sollte der sonst gut sein?
(Was waren deine Probleme? Wie frägt du Bewegungsmelder dann in notifies usw ab? Vielleicht ist meine Denke auch Falsch...)

Aber im Moment bin ich nicht in der Lage, den wirklichen code-change zu finden :(
Kann ja nicht sein, dass (vor?)gestern "state:open" gesetzt wurde, und heute nicht mehr.

p.s. für alle, die auch gerade ein Feierabend Bier trinken: Prost! :)

rudolfkoenig

@micha80: bitte lieber neue Posts erstellen, statt alte zu modifizieren, da ich nachtraegliche Aenderungen nicht immer mitkriege.

Nach "attr global verbose 5" muss man die raw Daten vom Dongle sehen koennen, und genau die will ich haben.
Christian meint wirklich stateFormat, und will damit sagen, dass jeder Benutzer damit spezifizieren muss, was als Status (STATE) angezeigt wird, das Modul liefert dazu nur Input. Bin (noch?) nicht dafuer, weil damit insb. Anfaenger zunaechst auf der Oberflaeche nichts funktionierendes haben, nicht mal ein Steckdosenschalter zeigt damit was an.

Ich habe aber jetzt vom basicSet/basicGet state entfernt, wenigstens damit sollte es keine Probleme mehr geben.

Btw. aus "CLASS XXXX generated no event" im Log ist inzwischen ein "UNPARSED CLASS XXXX" Event geworden, damit man auf Nachrichten reagieren kann, auch wenn sie noch nicht in das Modul aufgenommen wurden.
Weiss jemand was "MULTI_CHANNEL 03600d01" bedeutet?