SWITCH_MULTILEVEL

Begonnen von cyberdwarf, 11 Januar 2013, 21:29:04

Vorheriges Thema - Nächstes Thema

cyberdwarf

Hallo zusammen,

ich probiere gerade ein Z-Stick mit einem düwi Funk-Schalter Zwischenstecker ZW ZSA 3500 und einem düwi Funk-Dimmer Zwischenstecker ZW ZDAN 300 aus.
Den Funk Schalter konnte ich problemlos einbinden, aber den Funk-Dimmer kann ich nicht schalten.
Wenn ich ein "set ZWDongle_0 createNode 2" ausführe, wird der Dimmer ganz brav unter ZWAVE angelegt.
Leider kann ich den Dimmer aber dann weder schalten noch dimmen. Es fehlt oben das "set".
Wenn ich ein "set ZWave_SWITCH_MULTILEVEL_2 on" ausführe, bekomme ich "Unknown set argument on, choose one of" zurück.

Ist ein "SWITCH_MULTILEVEL" (ZWDongle_0 nodeInfo_2 => ROUTING_SLAVE SWITCH_MULTILEVEL listening routing 40kBaud Vers:3 Security:0)
einfach nur noch nicht implementiert, oder habe ich etwas falsch gemacht?


Gruß
Torsten
RPi+COC | RFXtrx433 | HMLAN
fht80b, FHT80TF, S300TH, hms100-tf, EMFM, EMWZ
FS20:bs,di,piri,rsu,s4a,s6a,sm4,sm8,s8m,st,tfk
YCR-1000, ITL-230, HE877, HE878A, AB440
KD101, RGR918, TS15C_10, WGR918, WS2300
HM-LC-Sw1PBU-FM, HM-LC-BL1-FM
ZWAVE(Test)

rudolfkoenig

SWITCH_MULTILEVEL ist nicht implementiert, siehe auch 10_ZWave.pm: %zwave_class, was implementiert ist.

Details findet man im ZWave_CommandClassSpec.pdf (SDS11060), was auch auf dem Web zu finden ist.
Ich schlage folgendes vor:
   SWITCH_MULTILEVEL        => { id => '26' },
zu ersetzen mit
   SWITCH_MULTILEVEL        => { id => '26',
      set   => { off         => "0100",
                 on          => "01FF",
                 dim         => "01%02x", },
      get   => { swmStatus   => "02",     },
      parse => { "03.00.(.*)"=> '($1 == "00" ? "state:off" :
                                 ($1 == "ff" ? "state:on" :
                                               "dim:".hex($1)))',}, },


Insb. beim parse bin ich unsicher, da ich es nicht testen kann.
Laut Doku gibt es auch noch weitere Kommandos, die man gerne implementieren kann.
Falls es funktioniert, bitte Bescheid geben, ich check das dann ein.


cyberdwarf

Hallo Rudolf,

funktioniert! Ich kann on/off schalten, oder direkt das Lampen Symbol für on/off drücken.
Dimmen kann ich über die Werte 0-99. Danach steht hinter dem Device der Wert z.B. "dim 50".
Das mit dem parse habe ich nicht so ganz verstanden. Kannst du mir das kurz erklären?
Wenn ich set on ausführe ist state auf on, oder bezieht sich das auf das Dimmen?

Vielen Dank für die schnelle Hilfe.

Gruß Torsten
RPi+COC | RFXtrx433 | HMLAN
fht80b, FHT80TF, S300TH, hms100-tf, EMFM, EMWZ
FS20:bs,di,piri,rsu,s4a,s6a,sm4,sm8,s8m,st,tfk
YCR-1000, ITL-230, HE877, HE878A, AB440
KD101, RGR918, TS15C_10, WGR918, WS2300
HM-LC-Sw1PBU-FM, HM-LC-BL1-FM
ZWAVE(Test)

rudolfkoenig

Parse ist zum dekodieren der Antwort auf einem "get" notwendig.
Falls das nicht funktioniert, wuerde mir helfen debug-Ausgaben mit maximalen Loglevel zu sehen.

cyberdwarf

Dimmer

2013.01.13 12:00:51 5: Cmd: >get ZWave_SWITCH_MULTILEVEL_2 swmStatus<
2013.01.13 12:00:51 5: SW: 010800130202260205c5
2013.01.13 12:00:51 5: ZWDongle/RAW: /06
2013.01.13 12:00:51 5: ZWDongle/RAW: /0104011301e8
2013.01.13 12:00:51 5: SW: 06
2013.01.13 12:00:51 5: ZWDongle_Read ZWDongle_0: 011301
2013.01.13 12:00:51 5: ZWDongle_0 dispatch 011301
2013.01.13 12:00:51 5: ZWDongle/RAW: /01090004000203260363b5
2013.01.13 12:00:51 5: SW: 06
2013.01.13 12:00:51 5: ZWDongle_Read ZWDongle_0: 0004000203260363
2013.01.13 12:00:51 4: ZWDongle_0 APPLICATION_COMMAND_HANDLER 02 (03260363)
kommt nichts zurück


und zur Gegenprobe mit dem Schalter

2013.01.13 12:01:54 5: Cmd: >get ZWave_SWITCH_BINARY_3 swbStatus<
2013.01.13 12:01:54 5: SW: 010800130302250205c7
2013.01.13 12:01:54 5: ZWDongle/RAW: /06
2013.01.13 12:01:54 5: ZWDongle/RAW: /0104011301e8
2013.01.13 12:01:54 5: SW: 06
2013.01.13 12:01:54 5: ZWDongle_Read ZWDongle_0: 011301
2013.01.13 12:01:54 5: ZWDongle_0 dispatch 011301
2013.01.13 12:01:54 5: ZWDongle/RAW: /01090004000303250300d4
2013.01.13 12:01:54 5: SW: 06
2013.01.13 12:01:54 5: ZWDongle_Read ZWDongle_0: 0004000303250300
2013.01.13 12:01:54 4: ZWDongle_0 APPLICATION_COMMAND_HANDLER 03 (03250300)
2013.01.13 12:01:54 5: Triggering ZWave_SWITCH_BINARY_3 (1 changes)
2013.01.13 12:01:54 5: Notify loop for ZWave_SWITCH_BINARY_3 off
state:off
RPi+COC | RFXtrx433 | HMLAN
fht80b, FHT80TF, S300TH, hms100-tf, EMFM, EMWZ
FS20:bs,di,piri,rsu,s4a,s6a,sm4,sm8,s8m,st,tfk
YCR-1000, ITL-230, HE877, HE878A, AB440
KD101, RGR918, TS15C_10, WGR918, WS2300
HM-LC-Sw1PBU-FM, HM-LC-BL1-FM
ZWAVE(Test)

rudolfkoenig

> 2013.01.13 12:00:51 4: ZWDongle_0 APPLICATION_COMMAND_HANDLER 02 (03260363)
> kommt nichts zurück

Klar, mein Regexp "03.00.(.*)" trifft den Wert (03260363) nicht.
Versuch es mal bitte mit "032603(.*)" als regexp, das sollte klappen.
Ich habe die Aenderungen dokumentiert und eingecheckt.

Was fehlt ist eine bessere bzz. automatische Unterstuetzung des dimmers per slider in FHEMWEB, das muss man z.Zt. noch manuell basteln. Siehe auch commandref.html Beispiele bei webCmd.

cyberdwarf

"032603(.*)" funktioniert!
Jetzt habe ich das auch mit dem "parse" verstanden.
Den Slider habe ich mir aus einem webCmd und einem dummy gebastelt. Meintest du das so, oder geht es noch eleganter?

Danke und Gruß
Torsten
RPi+COC | RFXtrx433 | HMLAN
fht80b, FHT80TF, S300TH, hms100-tf, EMFM, EMWZ
FS20:bs,di,piri,rsu,s4a,s6a,sm4,sm8,s8m,st,tfk
YCR-1000, ITL-230, HE877, HE878A, AB440
KD101, RGR918, TS15C_10, WGR918, WS2300
HM-LC-Sw1PBU-FM, HM-LC-BL1-FM
ZWAVE(Test)

rudolfkoenig

Etwas "eleganteres" kenne ich im Moment auch nicht.
Eigentlich muesste das Modul selbst sowas zurueckliefern, damit Du das gar nichts machen musst, aber das fehlt noch in dem generischen Aufbau.

thunder

All,
dieser Thread kam wie gerufen. Ich stand gestern vor exakt der selben Aufgabenstellung :-)

Vielen Dank erstmal!

Jetzt fiel mir allerdings auf, dass FHEM nicht mitbekommt wenn ich manuell schalte/dimme. ich habe mir auch schon des angesprochene PDF durchgelesen, finde aber die Zahlenwerte für die entsprechenden Kommandos nicht um den entsprechenden Multilevel Switch Report zu implementieren (geschweige von meinen mangelhaften Perl Kenntnissen ;-) )

Könntet Ihr mit da bitte einen kleinen Tipp geben?

Danke!

rudolfkoenig

Ich habe die o.g. Aenderungen (+reportOn/reportOff) jetzt eingecheckt, ist per update verfuegbar.

Manuelle Aenderungen sollten nach einem "reportOn" vom Geraet gemeldet werden und dank den Parse Eintrag in events umgewandelt werden. Das ist alles nur Theorie, da ich kein Geraet habe. Finde ich auch doof, dass die Konstanten in dem PDF nicht hinterlegt sind, ich habe sie aus AZW extrahiert (Vorgaenger von ZWave.me).

thunder

Wow! Vielen Dank für die schnelle Reaktion!

Ich habe den update ausgeführt, die Kommandos werden ausgeführt allerdings sehe ich kein Reporting...


Welche Infos kann ich liefern um das Problem zu debuggen?

rudolfkoenig

Steht doch weiter oben: "debug-Ausgaben mit maximalen Loglevel". Also
attr global verbose 5, und dann schalten.

Falls nichts in der log steht, dann vermute ich, dass das Geraet das reportOn nicht mitbekommen hat, oder reporting fuer eine andere Zentrale konfiguriert ist (mWn kann nur ein Empfaenger fuer solche reports eingetragen sein). Das kann man wiederum mit dem association Kommandos und Bedienungsanleitung pruefen.

thunder

Ok folgender Output:
Eingabe von set <device> reportOn

2013.01.18 17:37:31 5: Cmd: >set zw1 reportOn<
2013.01.18 17:37:31 0: SW: 0109001303032603FF053a
2013.01.18 17:37:31 5: Triggering zw1 (1 changes)
2013.01.18 17:37:31 5: Notify loop for zw1 reportOn
2013.01.18 17:37:31 5: ZWDongle/RAW: /06
2013.01.18 17:37:31 5: ZWDongle/RAW: /0104011301e8
2013.01.18 17:37:31 0: SW: 06
2013.01.18 17:37:31 0: ZWDongle_Read zwif: 011301
2013.01.18 17:37:31 5: zwif dispatch 011301

Leider ein Eintrag im Logfile nach manuellem Schalten...

thunder

Sooorry Tippfehler :-(
Zitat von: thunder schrieb am Fr, 18 Januar 2013 21:59Ok folgender Output:
Eingabe von set <device> reportOn

2013.01.18 17:37:31 5: Cmd: >set zw1 reportOn<
2013.01.18 17:37:31 0: SW: 0109001303032603FF053a
2013.01.18 17:37:31 5: Triggering zw1 (1 changes)
2013.01.18 17:37:31 5: Notify loop for zw1 reportOn
2013.01.18 17:37:31 5: ZWDongle/RAW: /06
2013.01.18 17:37:31 5: ZWDongle/RAW: /0104011301e8
2013.01.18 17:37:31 0: SW: 06
2013.01.18 17:37:31 0: ZWDongle_Read zwif: 011301
2013.01.18 17:37:31 5: zwif dispatch 011301

Leider kein Eintrag im Logfile nach manuellem Schalten...

rudolfkoenig

Damit ist der Abschnitt "Falls nichts..." meines Antwortes abzuarbeiten :)