Hallo,
ich schalte 2 ZWave Devices zusammen an und aus wie folgt:
# turn on lights at sunset and off at 22:00
define AutoLightsOn at *{sunset("HORIZON=-3")} set FrontPorchLights,OutdoorLowVoltageLights on
define AutoLightsOff at *22:00 set FrontPorchLights,OutdoorLowVoltageLights off
Sehr oft ist eines der Devices nicht an oder aus (ich sollte erwähnen das die Devices nicht ihren Status melden wie schon in einem anderen Thread diskutiert). Gibt es eine Möglichkeit das "set" n-Mal pollt und checked ob die Devices tatsächlich ihren Zusand geändert haben?
Hallo
ich habe seit gestern (21.01.2014) ein ähnliches Problem
Ich habe einen Zwischenstecker der um 01:00 Uhr aus schaltet und um 06:15 Uhr wieder einschalten soll gestern und auch heute Morgen war er aus
Einschalten mit fhem geht leider nicht
Ich bin schon am suchen weis aber nicht weiter denn wen ich den Z-Stick S2 von Aeon Labs am Macbook anstecke (habe ich die Testversion von Indigo6 installiert) kann ein und aus Schalten
Nach dem zurückstecken an den Linux Server geht es wieder für 10 15 Minuten und danach das selbe wieder
Wie ist das bei dir
Danke
Ein-/Ausschalten über fhem ist bei mir kein Problem (ich habe auch den Z-Stick S2 von Aeon Labs mit einem RaspPi) - Ich kann mir nur vorstellen das es bei mir damit zusammenhängt das ich zwei zwave Devices zur exakt gleichen Zeit schalte und das meine (bzw. fast alle zwave devices in den USA) ihren Zustand nicht zurückmelden. Fhem zeigt in meinem Fall an das die Devices aus sind - sind sie aber nicht. Wäre interessant zu wissen das das "set" tatsächlich macht.
Siehst du den USB stick noch nach 15 Minuten (lsusb)? irgendweche errors in /var/log/messages oder in den fhem logs?
Hallo
das ist ja das komische lsusb zeigt den Stick an
keine Meldung im Log (/var/log/messages bzw. /var/log/syslog)
Ich habe jetzt noch herausgefunden das ich nach Neustadt von fhem genau einmal schalten kann (egal ob ein oder aus) und danach ist die Kommunikation weg
wenn ich aber mit get den swbstatus basicstatus oder was weis ich alles abfrage kann ich das so oft machen wie ich will wenn ich aber Schalte geht nichts mehr und es wird auch kein status zurück gemeldet wenn ich am Zwischenstecker einschalte
War das immer so oder hast du irgendwelche neuen Devices hinzugefügt und seit dem geht es nicht mehr?
Ich habe unlaengst einen Fix eingebaut, der das Schalten von mehreren ZWave-Geraeten mit einem set fuer mich ermoeglicht hat. Ist euer FHEM up-to-date? Es waere auch moeglich, dass wegen diesem Fix das Schalten nicht mehr funktioniert, da ich auf eine Rueckmeldung vom Stick warte, bovor ich die naechsten Daten sende. Wenn ihr "list zwDongle" eingibt, was steht bei SendStack?
ZitatWäre interessant zu wissen das das "set" tatsächlich macht.
attr zwdongle verbose 5
Hallo
seit heute geht es anscheinend wieder (zumindest jetzt)
Ich mache fast täglich die Updates
Der Server macht jeden Tag um 7:00 Uhr einen Neustadt
hier die Ausgabe von list ZWDongle_0
Internals:
CFGFN /opt/fhem/FHEM/zwave.cfg
CallbackNr 0
Clients :ZWave:
DEF /dev/zwave@115200
DeviceName /dev/zwave@115200
FD 13
NAME ZWDongle_0
NR 65
PARTIAL
READ_TS 1390473920.89196
STATE Initialized
TYPE ZWDongle
homeId 0161de03
Matchlist:
1:ZWave .*
Readings:
2014-01-22 21:38:30 caps Vers:3 Rev:7 ManufID:0086 ProductType:0002 ProductID:0001 SERIAL_API_GET_INIT_DATA,SERIAL_API_APPL_NODE_INFORMATION,APPLICATION_COMMAND_HANDLER,ZW_GET_CONTROLLER_CAPABILITIES,SERIAL_API_SET_TIMEOUTS,SERIAL_API_GET_CAPABILITIES,ZW_SET_SLEEP_MODE,ZW_SEND_NODE_INFORMATION,ZW_SEND_DATA,ZW_SEND_DATA_MULTI,ZW_GET_VERSION,ZW_SEND_DATA_ABORT,ZW_R_F_POWER_LEVEL_SET,MEMORY_GET_ID,MEMORY_GET_BYTE,MEMORY_PUT_BYTE,MEMORY_GET_BUFFER,ZW_GET_NODE_PROTOCOL_INFO,ZW_REPLICATION_COMMAND_COMPLETE,ZW_REPLICATION_SEND_DATA,ZW_ASSIGN_RETURN_ROUTE,ZW_DELETE_RETURN_ROUTE,ZW_REQUEST_NODE_NEIGHBOR_UPDATE,ZW_APPLICATION_UPDATE,ZW_ADD_NODE_TO_NETWORK,ZW_CREATE_NEW_PRIMARY,ZW_SET_LEARN_MODE,ZW_ASSIGN_SUC_RETURN_ROUTE,ZW_ENABLE_SUC,ZW_REQUEST_NETWORK_UPDATE,ZW_SET_SUC_NODE_ID,ZW_DELETE_SUC_RETURN_ROUTE,ZW_GET_SUC_NODE_ID,ZW_REDISCOVERY_NEEDED,ZW_REQUEST_NODE_INFO,ZW_REMOVE_FAILED_NODE_ID,ZW_IS_FAILED_NODE
2014-01-22 21:38:52 ctrlCaps PRIMARY
2014-01-23 11:45:20 homeId HomeId:0161de03 CtrlNodeId:01
2014-01-22 21:39:26 nodeInfo_1 STATIC_CONTROLLER STATIC_CONTROLLER listening 40kBaud Vers:3 Security:0
2014-01-22 21:39:45 nodeInfo_2 SLAVE SWITCH_BINARY listening routing 40kBaud Vers:3 Security:0
2014-01-22 21:40:06 nodeInfo_4 ROUTING_SLAVE sleeping routing 40kBaud Vers:3 Security:0
2014-01-23 10:39:18 nodeInfo_5 ROUTING_SLAVE SWITCH_BINARY listening routing 40kBaud Vers:4 Security:0
2014-01-22 21:40:43 nodeInfo_6 ROUTING_SLAVE SWITCH_BINARY listening routing 40kBaud Vers:4 Security:0
2014-01-22 22:51:19 nodeList 1,2,4,5,6
2014-01-22 21:42:14 version Z-Wave 2.78 STATIC_CONTROLLER
SendStack:
Attributes:
room 90_System
verbose 5
Ich habe jetzt heute meine neuen Geräte noch hinzugefügt und auch die Zwischenstecker gehen (da habe ich zwar noch ein anderes Problem aber dazu gibt es dann einen neuen Eintrag
Danke
Franz
hier ist mein Ergebnis von "list zwDongle":
list ZWDongle_0
Internals:
CallbackNr 0
Clients :ZWave:
DEF /dev/ttyUSB0@115200
DeviceName /dev/ttyUSB0@115200
FD 11
NAME ZWDongle_0
NR 22
PARTIAL
RAWMSG 011301
READ_TS 1390502995.50391
STATE Initialized
TYPE ZWDongle
ZWDongle_0_MSGCNT 99
ZWDongle_0_TIME 2014-01-23 10:49:55
homeId 0184c73d
Matchlist:
1:ZWave .*
Readings:
2014-01-22 14:34:55 homeId HomeId:0184c73d CtrlNodeId:01
Attributes:
room Office
Interessanterweise werden bei mir die devices nicht gelistet und sendstack sehe ich auch nicht - ich werde am Wochenende mal ein update machen.
Hallo
die Geräte werden nur deshalb angezeigt weil ich zuvor get nodeinfo gemacht hatte
Hier nochmal nach dem update:
list ZWDongle_0
Internals:
CallbackNr 0
Clients :ZWave:
DEF /dev/ttyUSB0@115200
DeviceName /dev/ttyUSB0@115200
FD 11
NAME ZWDongle_0
NR 22
PARTIAL
RAWMSG 0004000603250300
READ_TS 1390504880.59993
STATE Initialized
TYPE ZWDongle
ZWDongle_0_MSGCNT 8
ZWDongle_0_TIME 2014-01-23 11:13:43
homeId 0184c73d
Matchlist:
1:ZWave .*
Readings:
2014-01-23 11:13:41 homeId HomeId:0184c73d CtrlNodeId:01
2014-01-23 11:20:56 nodeInfo_1 STATIC_CONTROLLER STATIC_CONTROLLER listening 40kBaud Vers:3 Security:0
2014-01-23 11:21:03 nodeInfo_2 ROUTING_SLAVE SWITCH_BINARY listening routing 40kBaud Vers:4 Security:0
2014-01-23 11:21:08 nodeInfo_3 ROUTING_SLAVE THERMOSTAT listening routing 40kBaud Vers:3 Security:0
2014-01-23 11:21:14 nodeInfo_5 ROUTING_SLAVE SWITCH_BINARY listening routing 40kBaud Vers:4 Security:0
2014-01-23 11:21:20 nodeInfo_6 ROUTING_SLAVE SWITCH_BINARY listening routing 40kBaud Vers:4 Security:0
2014-01-23 11:19:46 nodeList 1,2,3,5,6
SendStack:
Attributes:
room Office
Habe auch das Problem das von meinen Jalousien nach dem Update nur ein Schaltvorgang möglich war - danach ging nichts mehr.
Vermute daher einen Zusammenhang mit dem Fix.
die letzten Zeilen im Log:
2014.01.23 20:06:57 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:03 ARG:03200363
2014.01.23 20:07:36 2: ZWave set BueroFenster off
2014.01.23 20:07:36 5: SW: 01090013030326010005c7
2014.01.23 20:07:36 5: ZWDongle/RAW: /060104011301e8
2014.01.23 20:07:36 5: SW: 06
2014.01.23 20:07:36 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 20:07:36 5: ZWDongle_0 dispatch 011301
2014.01.23 20:08:14 2: ZWave get BueroFenster swmStatus
Habe im ZWDongle_Write den Zweig mit ""# SEND_DATA, wait for ACK" deaktiviert - danach geht es wieder.
sieht so aus als ob bei mir nun auch nichts mehr geht nach dem update - Ein Schaltvorgang und dann ...
2014.01.23 11:42:37 2: ZWave set FrontPorchLights off
2014.01.23 11:42:37 5: SW: 01090013060325010005c1
2014.01.23 11:42:37 5: ZWDongle/RAW: /060104011301e8
2014.01.23 11:42:37 5: SW: 06
2014.01.23 11:42:37 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 11:42:37 5: ZWDongle_0 dispatch 011301
2014.01.23 11:42:55 2: ZWave set OutdoorLowVoltageLights off
2014.01.23 11:44:59 2: ZWave set FrontPorchLights on
2014.01.23 11:44:59 2: ZWave set OutdoorLowVoltageLights on
2014.01.23 11:45:08 2: ZWave set FrontPorchLights off
2014.01.23 11:45:08 2: ZWave set OutdoorLowVoltageLights off
2014.01.23 11:45:17 2: ZWave set FrontPorchLights off
2014.01.23 11:45:25 2: ZWave set OutdoorLowVoltageLights off
ZitatHabe im ZWDongle_Write den Zweig mit ""# SEND_DATA, wait for ACK" deaktiviert - danach geht es wieder.
In der Tat - dann geht es wieder:
set FrontPorchLights,OutdoorLowVoltageLights on
set FrontPorchLights,OutdoorLowVoltageLights off
set FrontPorchLights off
set OutdoorLowVoltageLights off
2014.01.23 12:06:31 2: ZWave set FrontPorchLights on
2014.01.23 12:06:31 5: SW: 0109001306032501FF053e
2014.01.23 12:06:31 2: ZWave set OutdoorLowVoltageLights on
2014.01.23 12:06:31 5: SW: 0109001305032501FF053d
2014.01.23 12:06:31 5: ZWDongle/RAW: /060104011301e818
2014.01.23 12:06:31 5: SW: 06
2014.01.23 12:06:31 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 12:06:31 5: ZWDongle_0 dispatch 011301
2014.01.23 12:06:31 4: ZWDongle_0: CANCEL received, retransmitting.
2014.01.23 12:06:31 5: SW: 0109001306032501FF053e
2014.01.23 12:06:31 5: ZWDongle/RAW: /06
2014.01.23 12:06:31 5: ZWDongle/RAW: /0104011301e8
2014.01.23 12:06:31 5: SW: 06
2014.01.23 12:06:31 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 12:06:31 5: ZWDongle_0 dispatch 011301
2014.01.23 12:06:38 2: ZWave set FrontPorchLights off
2014.01.23 12:06:39 5: SW: 01090013060325010005c1
2014.01.23 12:06:39 2: ZWave set OutdoorLowVoltageLights off
2014.01.23 12:06:39 5: SW: 01090013050325010005c2
2014.01.23 12:06:39 5: ZWDongle/RAW: /060104011301e818
2014.01.23 12:06:39 5: SW: 06
2014.01.23 12:06:39 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 12:06:39 5: ZWDongle_0 dispatch 011301
2014.01.23 12:06:39 4: ZWDongle_0: CANCEL received, retransmitting.
2014.01.23 12:06:39 5: SW: 0109001306032501FF053e
2014.01.23 12:06:39 5: ZWDongle/RAW: /06
2014.01.23 12:06:39 5: ZWDongle/RAW: /0104011301e8
2014.01.23 12:06:39 5: SW: 06
2014.01.23 12:06:39 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 12:06:39 5: ZWDongle_0 dispatch 011301
2014.01.23 12:06:44 2: ZWave set FrontPorchLights off
2014.01.23 12:06:44 5: SW: 01090013060325010005c1
2014.01.23 12:06:44 5: ZWDongle/RAW: /060104011301e8
2014.01.23 12:06:44 5: SW: 06
2014.01.23 12:06:44 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 12:06:44 5: ZWDongle_0 dispatch 011301
2014.01.23 12:06:52 2: ZWave set OutdoorLowVoltageLights off
2014.01.23 12:06:52 5: SW: 01090013050325010005c2
2014.01.23 12:06:52 5: ZWDongle/RAW: /060104011301e8
2014.01.23 12:06:52 5: SW: 06
2014.01.23 12:06:52 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 12:06:52 5: ZWDongle_0 dispatch 011301
@larry: kannst Du das Gleiche bitte mit mseclog protokollieren? Und diese Geraete sind welche ohne Rueckmeldung? fhem-me: sind deine Geraete mit Rueckmeldung?
Dumme Frage - was ist mseclog?
Stimmt, dumme Frage: http://fhem.de/commandref.html#mseclog :)
Ich hab's grad mal bei mir getestet. Das Schalten von zwei Devices schaltet manchmal nur das erste, danach laufen get Befehle oft in Timeout. Bei einem Test hatte es aber funktioniert. Meine Devices melden den Status zurück.
Ist mir bisher nicht aufgefallen da ich aktuell alle devices einzeln steuere.
Hier mein Ergebnis mit mseclog - In meinem Fall geben die Devices keinen Status
Folgende Kommandos:
set FrontPorchLights,OutdoorLowVoltageLights on
set FrontPorchLights,OutdoorLowVoltageLights off
set FrontPorchLights off
set OutdoorLowVoltageLights off
2014.01.23 14:27:32.059 5: ZWDongle/RAW: /01090004000603250300d101090004000603250300d1
2014.01.23 14:27:32.061 5: SW: 06
2014.01.23 14:27:32.063 5: ZWDongle_Read ZWDongle_0: 0004000603250300
2014.01.23 14:27:32.065 5: ZWDongle_0 dispatch 0004000603250300
2014.01.23 14:27:32.067 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:06 ARG:03250300
2014.01.23 14:27:32.077 5: SW: 06
2014.01.23 14:27:32.079 5: ZWDongle_Read ZWDongle_0: 0004000603250300
2014.01.23 14:27:32.080 5: ZWDongle_0 dispatch 0004000603250300
2014.01.23 14:27:32.082 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:06 ARG:03250300
2014.01.23 14:27:32.095 5: ZWDongle/RAW: /01090004000603250300d1
2014.01.23 14:27:32.096 5: SW: 06
2014.01.23 14:27:32.098 5: ZWDongle_Read ZWDongle_0: 0004000603250300
2014.01.23 14:27:32.100 5: ZWDongle_0 dispatch 0004000603250300
2014.01.23 14:27:32.102 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:06 ARG:03250300
2014.01.23 14:29:36.427 2: ZWave set FrontPorchLights on
2014.01.23 14:29:36.429 5: SW: 0109001306032501FF053e
2014.01.23 14:29:36.438 2: ZWave set OutdoorLowVoltageLights on
2014.01.23 14:29:36.440 5: SW: 0109001305032501FF053d
2014.01.23 14:29:36.451 5: ZWDongle/RAW: /060104011301e818
2014.01.23 14:29:36.453 5: SW: 06
2014.01.23 14:29:36.455 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 14:29:36.456 5: ZWDongle_0 dispatch 011301
2014.01.23 14:29:36.458 4: ZWDongle_0: CANCEL received, retransmitting.
2014.01.23 14:29:36.460 5: SW: 0109001306032501FF053e
2014.01.23 14:29:36.464 5: ZWDongle/RAW: /06
2014.01.23 14:29:36.468 5: ZWDongle/RAW: /0104011301e8
2014.01.23 14:29:36.469 5: SW: 06
2014.01.23 14:29:36.471 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 14:29:36.473 5: ZWDongle_0 dispatch 011301
2014.01.23 14:29:49.012 2: ZWave set FrontPorchLights off
2014.01.23 14:29:49.014 5: SW: 01090013060325010005c1
2014.01.23 14:29:49.024 2: ZWave set OutdoorLowVoltageLights off
2014.01.23 14:29:49.026 5: SW: 01090013050325010005c2
2014.01.23 14:29:49.036 5: ZWDongle/RAW: /060104011301e818
2014.01.23 14:29:49.038 5: SW: 06
2014.01.23 14:29:49.040 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 14:29:49.042 5: ZWDongle_0 dispatch 011301
2014.01.23 14:29:49.043 4: ZWDongle_0: CANCEL received, retransmitting.
2014.01.23 14:29:49.045 5: SW: 0109001306032501FF053e
2014.01.23 14:29:49.049 5: ZWDongle/RAW: /06
2014.01.23 14:29:49.052 5: ZWDongle/RAW: /0104011301e8
2014.01.23 14:29:49.054 5: SW: 06
2014.01.23 14:29:49.056 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 14:29:49.057 5: ZWDongle_0 dispatch 011301
2014.01.23 14:30:07.368 2: ZWave set FrontPorchLights off
2014.01.23 14:30:07.370 5: SW: 01090013060325010005c1
2014.01.23 14:30:07.381 5: ZWDongle/RAW: /060104011301e8
2014.01.23 14:30:07.382 5: SW: 06
2014.01.23 14:30:07.384 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 14:30:07.386 5: ZWDongle_0 dispatch 011301
2014.01.23 14:30:25.623 2: ZWave set OutdoorLowVoltageLights off
2014.01.23 14:30:25.625 5: SW: 01090013050325010005c2
2014.01.23 14:30:25.636 5: ZWDongle/RAW: /060104011301e8
2014.01.23 14:30:25.638 5: SW: 06
2014.01.23 14:30:25.640 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.23 14:30:25.641 5: ZWDongle_0 dispatch 011301
Zitatsind deine Geraete mit Rueckmeldung
Habe leider keine Info über die Protokolldetails.
Mein System ist im Aufbau - sind derzeit zwei Düwi ZW ESJ Jalusieschalter - werden wie Dimmer angesteuert.
Kommt auf die TODO-Liste (oben). Wenn jemand was sinnvolles beitragen kann (z.Bsp. wie ZWDongle sich verhalten soll), dann freue ich mich.
ZitatKommt auf die TODO-Liste (oben). Wenn jemand was sinnvolles beitragen kann (z.Bsp. wie ZWDongle sich verhalten soll), dann freue ich mich.
Nur noch mal Zusammengefasst da es ja mehrere Probleme gab:
1) In der aktuelle Version von 00_ZWDongle.pm (4525 2014-01-02) muss Zeile 369-398 deaktiviert werden da es eine kann das nach einem set nichts mehr geht
2) Das Schalten von zwei Devices schaltet manchmal nur das erste
3) Support von Devices die keinen Status melden: Ich könnte mir hier verschieden Verbesserungen vorstellen:
a) set: sollte prüfen ob sich der Status auch ändert. Optionale Definition von numberOfRetrys, timeBetweenRetrys
b) Automatisches Polling Intervall bei der Device Definition einstellbar. z.B. attr poll msec
c) Automatischer check ob ein Device Status meldet (a) könnte dann automatisch gemacht werden)
Du meinst vmtl. Zeile 396.
Diese Zeilen (bzw. SendStack) ist deswegen reingekommen, damit ich meine zwei AN158 mit einem Befehl schalten kann. Das funktioniert seitdem auch sehr zuverlaessig, vorher hat es nie geklappt. Die Aenderung bewirkt, dass FHEM nach einem Befehl auf einem ACK vom Stick wartet (^00(04|13)), bevor es mit dem zweiten weitermacht. Ohne diese Aendrung verwirft der Stick das Paket, und das passiert bei dir. Ich vermute dass mein Verfahren nicht korrekt ist, bzw. es funktioniert nicht mit allen Sticks oder allen ZWave Geraeten. Wie man das korrekt macht, weiss ich noch nicht.
Kann man nicht wenn man ein neues Device hinzufügt einen Test machen ob es das Device ein ACK sendet oder nicht?
Schlag mal vor wie. Oder noch besser: probier es aus, und schick mir ein Patch :)
Ich habe noch nicht die Doku gefunden, der mir erklaert, wie ich mit dem Stick reden soll.
@larry: dein Stick antwortet auf dem Befehl "nur" mit einem "011301". Meiner mit "011301", "00133100" und "00040009032503ff", wobei letzteres vom Geraet direkt kommt (Status: an), die ersten beiden kann ich nicht einordnen. Wenn man dem Stick nach der ersten 011301 die zweite Nachricht schickt, dann quittiert er sie mit 18 (CANCEL). Man koennte ihn daraufhin solange mit der naechsten Nachricht stopfen, bis er endlich nicht mehr CANCEL sondern ACK (06) sagt, aber ich finde das ist erstens nicht die feine Art, und zweitens scheint das bei mir die Uebertragung zu stoeren, da die Geraete-Acks spaeter eintreffen.
Die vorherige Loesung (was ihr ausgebaut habt), hat nach einem 0013.* oder 0004.* die zweite Nachricht geschickt: klappt natuerlich bei mir ohne Probleme, und bei dir nicht. Ich habe das jetzt so umgebaut (und eingecheckt), dass die zweite Nachricht nach 0.1 Sekunden gesendet wird (unabhaengig von Stick-Antwort), das scheint bei mir auch ohne Probleme zu tun, bitte testen.
Fuer nicht Eingeweihte: eingecheckt: sofort in SVN verfuegbar, fuer update erst ab naechsten Morgen um 7:45
Der Patch von gestern verhindert mehrfach-gets wie
define sm2get notify sm2:wakeup:.notification get sm2.02,sm2.03 smStatus
Hoffentlich habe ich das gerade gefixed.
Auch neu: bei einem Checksum-Fehler wird per NACK das Senden der Daten neu angefordert.
Da sowas bei mir selten auftritt, dauert nun 'ne Weile, bis es getestet ist.
Zitat von: rudolfkoenig am 26 Januar 2014, 16:36:09
Hoffentlich habe ich das gerade gefixed.
Ja, geht nach update aus SVN.
Updated auch zu Version 4736 2014-01-25.
set lampe1, lampe2, off schaltet immer noch nur ein Device und ich bekomme jetzt bei get swbStatus timeouts:
ZWave get FrontPorchLights swbStatus
2014.01.26 08:33:04.408 5: SW: 010800130602250205c2
2014.01.26 08:33:04.412 5: ZWDongle/RAW: /06
2014.01.26 08:33:04.415 5: ZWDongle/RAW: /0104011301e8
2014.01.26 08:33:04.417 5: SW: 06
2014.01.26 08:33:04.419 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.26 08:33:04.420 5: ZWDongle_0 dispatch 011301
2014.01.26 08:33:04.551 5: ZWDongle/RAW: /010500130501ed
2014.01.26 08:33:04.553 5: SW: 06
2014.01.26 08:33:04.555 5: ZWDongle_Read ZWDongle_0: 00130501
2014.01.26 08:33:04.556 5: ZWDongle_0 dispatch 00130501
2014.01.26 08:33:04.558 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:01 ARG:
2014.01.26 08:33:04.559 2: ZWDongle_0 ERROR: SEND_DATA returned 01
@larry, get swbStatus: hast Du gestern die Version aus SVN oder update verwendet? Wenn letzteres, dann heute erneut versuchen.
@Mx112: was genau geht ?
@larry, mehrfach-set: Kannst Du bitte den Timeout in 00_ZWDongle.pm (0.1, kommt zweimal vor) schrittweise auf 0.5 aendern, und schauen ab wann es klappt? Kannst Du mir bitte ein Log-Mitschnitt der Schaltvorgaenge (nicht get) geben?
Zitat von: rudolfkoenig am 27 Januar 2014, 10:46:49
@Mx112: was genau geht ?
Sowohl mehrfach-get als auch mehrfach-set gehen nach dem update aus dem SVN.
get device1,device2 swbStatus
set device1,device2 on
Hab hier Devices die den Status zurückmelden "reportedState:".
Habe es heute nochmal upgedated: 00_ZWDongle.pm 4751 2014-01-26 15:32:03Z
Mit dieser Version gehen mehrfach set und get:
2014.01.27 08:56:45.250 2: ZWave set OutdoorLowVoltageLights on
2014.01.27 08:56:45.252 5: SW: 0109001305032501FF053d
2014.01.27 08:56:45.263 2: ZWave set FrontPorchLights on
2014.01.27 08:56:45.273 5: ZWDongle/RAW: /060104011301e8
2014.01.27 08:56:45.274 5: SW: 06
2014.01.27 08:56:45.277 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:56:45.278 5: ZWDongle_0 dispatch 011301
2014.01.27 08:56:45.354 5: SW: 0109001306032501FF053e
2014.01.27 08:56:45.358 5: ZWDongle/RAW: /06
2014.01.27 08:56:45.362 5: ZWDongle/RAW: /0104011301e8
2014.01.27 08:56:45.363 5: SW: 06
2014.01.27 08:56:45.365 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:56:45.367 5: ZWDongle_0 dispatch 011301
2014.01.27 08:57:38.714 2: ZWave set OutdoorLowVoltageLights off
2014.01.27 08:57:38.716 5: SW: 01090013050325010005c2
2014.01.27 08:57:38.726 2: ZWave set FrontPorchLights off
2014.01.27 08:57:38.736 5: ZWDongle/RAW: /060104011301e8
2014.01.27 08:57:38.738 5: SW: 06
2014.01.27 08:57:38.740 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:57:38.741 5: ZWDongle_0 dispatch 011301
2014.01.27 08:57:38.819 5: SW: 01090013060325010005c1
2014.01.27 08:57:38.823 5: ZWDongle/RAW: /06
2014.01.27 08:57:38.827 5: ZWDongle/RAW: /0104011301e8
2014.01.27 08:57:38.828 5: SW: 06
2014.01.27 08:57:38.830 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:57:38.832 5: ZWDongle_0 dispatch 011301
2014.01.27 08:58:45.842 2: ZWave get OutdoorLowVoltageLights swbStatus
2014.01.27 08:58:45.844 5: SW: 010800130502250205c1
2014.01.27 08:58:45.849 5: ZWDongle/RAW: /06
2014.01.27 08:58:45.852 5: ZWDongle/RAW: /0104011301e8
2014.01.27 08:58:45.853 5: SW: 06
2014.01.27 08:58:45.855 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:58:45.857 5: ZWDongle_0 dispatch 011301
2014.01.27 08:58:45.864 5: ZWDongle/RAW: /010500130500ec
2014.01.27 08:58:45.865 5: SW: 06
2014.01.27 08:58:45.867 5: ZWDongle_Read ZWDongle_0: 00130500
2014.01.27 08:58:45.869 5: ZWDongle_0 dispatch 00130500
2014.01.27 08:58:45.871 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.01.27 08:58:45.873 5: ZWDongle/RAW: /01090004000503250300d2
2014.01.27 08:58:45.874 5: SW: 06
2014.01.27 08:58:45.876 5: ZWDongle_Read ZWDongle_0: 0004000503250300
2014.01.27 08:58:45.878 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:05 ARG:03250300
2014.01.27 08:58:45.886 2: ZWave get FrontPorchLights swbStatus
2014.01.27 08:58:45.888 5: SW: 010800130602250205c2
2014.01.27 08:58:45.893 5: ZWDongle/RAW: /06
2014.01.27 08:58:45.896 5: ZWDongle/RAW: /0104011301e8
2014.01.27 08:58:45.897 5: SW: 06
2014.01.27 08:58:45.899 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:58:45.901 5: ZWDongle_0 dispatch 011301
2014.01.27 08:58:45.908 5: ZWDongle/RAW: /010500130500ec
2014.01.27 08:58:45.909 5: SW: 06
2014.01.27 08:58:45.911 5: ZWDongle_Read ZWDongle_0: 00130500
2014.01.27 08:58:45.913 5: ZWDongle_0 dispatch 00130500
2014.01.27 08:58:45.915 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.01.27 08:58:45.917 5: ZWDongle/RAW: /01090004000603250300d1
2014.01.27 08:58:45.918 5: SW: 06
2014.01.27 08:58:45.920 5: ZWDongle_Read ZWDongle_0: 0004000603250300
2014.01.27 08:58:45.922 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:06 ARG:03250300
hmm - zu frueh gefreut - scheint doch noch nicht zu funktionieren. Gestern gingen die ProchLights nicht an und vorgestern nicht aus. Im log sieht man aber nicht ungewoehnliches.
ZWave set FrontPorchLights on
2014.01.28 17:31:12.038 5: SW: 0109001306032501FF053e
2014.01.28 17:31:12.068 5: ZWDongle/RAW: /060104011301e8
2014.01.28 17:31:12.070 5: SW: 06
2014.01.28 17:31:12.072 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.28 17:31:12.073 5: ZWDongle_0 dispatch 011301
2014.01.28 17:36:33.009 2: ZWave set OutdoorLowVoltageLights on
2014.01.28 17:36:33.012 5: SW: 0109001305032501FF053d
2014.01.28 17:36:33.041 5: ZWDongle/RAW: /060104011301e8
2014.01.28 17:36:33.043 5: SW: 06
2014.01.28 17:36:33.045 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.28 17:36:33.047 5: ZWDongle_0 dispatch 011301
Seltsam ist das ich neuerdings dies bekomme:
2014.01.28 18:12:23.577 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.01.28 18:12:23.579 5: SW: 06
2014.01.28 18:12:23.581 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.01.28 18:12:23.582 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.01.28 18:12:23.584 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.01.28 18:12:26.849 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.01.28 18:12:26.851 5: SW: 06
2014.01.28 18:12:26.853 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.01.28 18:12:26.855 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.01.28 18:12:26.856 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
Wegen verpasster Schaltvorgaenge faellt mir nur ein, dass ohne Rueckmeldung ich nicht so recht weiss, was FHEM tun sollte. Kommst Du mit 0.2 Sekunden (s.o) besser zurecht?
Wegen ZW_APPLICATION_UPDATE: damit teilen Geraete die Zwave-Geraeteklassen (siehe classes Attribut) mit. Ich hoffe nicht, dass das ein indirekter Hinweis vom Geraet an FHEM ist, dass FHEM etwas anders senden soll.
0.3 scheint zu funktionieren. Ich bekomme aber nun noch mehr ZW_APPLICATION_UPDATE Messages:
2014.02.01 22:05:00.019 2: ZWave set FrontPorchLights off
2014.02.01 22:05:00.021 5: SW: 01090013060325010005c1
2014.02.01 22:05:00.032 5: ZWDongle/RAW: /060104011301e8
2014.02.01 22:05:00.034 5: SW: 06
2014.02.01 22:05:00.036 5: ZWDongle_Read ZWDongle_0: 011301
2014.02.01 22:05:00.037 5: ZWDongle_0 dispatch 011301
2014.02.01 22:18:31.587 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:18:31.589 5: SW: 06
2014.02.01 22:18:31.591 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:18:31.593 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:18:31.594 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:19:10.111 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:19:10.113 5: SW: 06
2014.02.01 22:19:10.115 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:19:10.117 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:19:10.118 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:28:56.088 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:28:56.090 5: SW: 06
2014.02.01 22:28:56.092 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:28:56.093 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:28:56.095 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:28:56.834 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:28:56.836 5: SW: 06
2014.02.01 22:28:56.838 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:28:56.839 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:28:56.841 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:28:58.100 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:28:58.102 5: SW: 06
2014.02.01 22:28:58.104 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:28:58.106 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:28:58.107 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
Bei meinen Jalousien nutze ich on-for-timer mit 0.4 oder 0.6 um die Neigung einzustellen.
Bei der Abarbeitungsrate von 0.2 oder höher ist die Neigung nicht immer wie ich es erwarten würde.
Habe nun eine andere Strategie ausprobiert:
- ZWave_HandleSendStack rufe ich direkt aus ZWave_Parse nach ZW_SEND_DATA mit ID 00 auf
- der InternalTimer wird explizit bei Verarbeitung gelöscht
- der Timerwert steht bei mir nun bei 0.5 wird i.d.R jedoch nicht mehr benötigt
Folgende Anpassungen waren notwendig:
00_ZWDongle.pm
sub
ZWave_HandleSendStack($)
{
my $hash = shift;
shift @{$hash->{SendStack}};
RemoveInternalTimer($hash); # remove timer to avoid re-trigger
return if(!@{$hash->{SendStack}});
ZWDongle_Write($hash, "00", $hash->{SendStack}->[0], 1);
InternalTimer(gettimeofday()+0.5, "ZWave_HandleSendStack", $hash, 0);
}
10_ZWave.pm
sub
ZWave_Parse($$@)
...
} elsif($cmd eq "ZW_SEND_DATA") {
if ($id ne "00") {
Log3 $ioName, 2, "$ioName ERROR: SEND_DATA returned $id";
} else {
ZWave_HandleSendStack($iodev);
}
...
habe vorsichtshalber aus ZWDongle_ReadAnswer($$$) folgende Zeile auskommentiert
# shift @{$hash->{SendStack}}; # Hope this is right.
mein erfolgreicher Testfall war
set Jalousie1 on-for-timer 0.2; set Jalousie2 on-for-timer 0.2
Habs eingecheckt, testen konnte ich es aber nicht.
Kannst Du bitte pruefen, ob ich es richtig gemacht habe?
Mich interessiert auch, ob "get" von Batterie betriebenen Geraeten noch funktioniert.
ein GET auf einem Batterie betriebene Gerät sieht für mich mal OK aus.
siehe Log von meinem einzigen Batterie betriebenen Gerät (Fibaro Rauchmelder)
2014.04.19 11:28:10.770 2: ZWave get ZWave_a1_15 smStatus
..
2014.04.19 11:30:01.683 2: ZWave get ZWave_a1_15 alarm
..
2014.04.19 11:40:10.973 5: ZWDongle/RAW: /010c0004000f063105012200d33a
2014.04.19 11:40:10.975 5: SW: 06
2014.04.19 11:40:10.977 5: ZWDongle_Read ZWDongle_0: 0004000f063105012200d3
2014.04.19 11:40:10.979 5: ZWDongle_0 dispatch 0004000f063105012200d3
2014.04.19 11:40:10.981 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:063105012200d3
2014.04.19 11:40:10.986 5: SW: 010800130f02310405d9
2014.04.19 11:40:11.010 5: ZWDongle/RAW: /060104011301e8
2014.04.19 11:40:11.012 5: SW: 06
2014.04.19 11:40:11.014 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.19 11:40:11.016 5: ZWDongle_0 dispatch 011301
2014.04.19 11:40:11.235 5: ZWDongle/RAW: /010500130500ec
2014.04.19 11:40:11.237 5: SW: 06
2014.04.19 11:40:11.239 5: ZWDongle_Read ZWDongle_0: 00130500
2014.04.19 11:40:11.241 5: ZWDongle_0 dispatch 00130500
2014.04.19 11:40:11.243 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.04.19 11:40:11.247 5: ZWDongle/RAW: /010c0004000f063105012200d33a
2014.04.19 11:40:11.249 5: SW: 06
2014.04.19 11:40:11.251 5: ZWDongle_Read ZWDongle_0: 0004000f063105012200d3
2014.04.19 11:40:11.253 5: ZWDongle_0 dispatch 0004000f063105012200d3
2014.04.19 11:40:11.254 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:063105012200d3
2014.04.19 11:40:11.260 5: SW: 010900130f039c01010570
2014.04.19 11:40:11.284 5: ZWDongle/RAW: /060104011301e8
2014.04.19 11:40:11.285 5: SW: 06
2014.04.19 11:40:11.287 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.19 11:40:11.289 5: ZWDongle_0 dispatch 011301
2014.04.19 11:40:11.302 5: ZWDongle/RAW: /010500130100e8
2014.04.19 11:40:11.304 5: SW: 06
2014.04.19 11:40:11.306 5: ZWDongle_Read ZWDongle_0: 00130100
2014.04.19 11:40:11.308 5: ZWDongle_0 dispatch 00130100
2014.04.19 11:40:11.310 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.04.19 11:40:11.343 5: ZWDongle/RAW: /010d0004000f079c020f010000006e
2014.04.19 11:40:11.345 5: SW: 06
2014.04.19 11:40:11.347 5: ZWDongle_Read ZWDongle_0: 0004000f079c020f01000000
2014.04.19 11:40:11.349 5: ZWDongle_0 dispatch 0004000f079c020f01000000
2014.04.19 11:40:11.350 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:079c020f01000000
Deine Änderung war beim FHEM Update noch nicht dabei - schaue noch beim SVN drüber ...
Nach Tests musste ich noch den Timeout von 0.5 auf 1 verlängern. Mein RPi legt wohl manchmal eine 1/2 Gedenksekunde ein so dass der InternalTimer zu früh aufräumt und das nächste set nachdrückt was zu einem retransmit führt.
2014.04.18 16:26:04.297 2: ZWave set Buero.Jalousie.Tuer off
2014.04.18 16:26:04.319 5: ZWDongle/RAW: /060104011301e8
2014.04.18 16:26:04.320 5: SW: 06
2014.04.18 16:26:04.323 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.18 16:26:04.325 5: ZWDongle_0 dispatch 011301
2014.04.18 16:26:04.329 5: ZWDongle/RAW: /010500130100e8
2014.04.18 16:26:04.331 5: SW: 06
2014.04.18 16:26:04.333 5: ZWDongle_Read ZWDongle_0: 00130100
2014.04.18 16:26:04.335 5: ZWDongle_0 dispatch 00130100
2014.04.18 16:26:04.336 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.04.18 16:26:04.337 4: send pending messages
2014.04.18 16:26:04.339 5: SW: 01090013020326010005c6
-> weiss nicht was mein RPi so lange treibt aber vergeht mehr als eine 1/2 Sekunde ohne ein Log-Eintrag
2014.04.18 16:26:04.902 2: ZWave set Buero.Jalousie.Fenster on
2014.04.18 16:26:04.921 2: ZWave set Buero.Jalousie.Tuer on
2014.04.18 16:26:04.940 5: SW: 0109001303032601FF0538
2014.04.18 16:26:04.946 5: ZWDongle/RAW: /060104011301e818
2014.04.18 16:26:04.948 5: SW: 06
2014.04.18 16:26:04.950 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.18 16:26:04.952 5: ZWDongle_0 dispatch 011301
2014.04.18 16:26:04.954 4: ZWDongle_0: CANCEL received, retransmitting.
2014.04.18 16:26:04.955 5: SW: 0109001303032601FF0538
aber mit 1 Sekunde Timeout läuft bei mir bisher alles super.
*** update ***
Habe im SVN die Änderungen angeschaut. Sieht gut aus.
ABER: im Aufruf vom InternalTimer in ZWDongle_Write($$$@) bitte auch noch den Timeout anpassen.
(das hatte ich in meinem Post vergessen, sorry)
Der Timeout kann lieber etwas größer sein da er nur im Ausnahmefall benötigt wird.
Ein Timeout von 1 Sekunde ist problematisch, weil mWn die Batterie-Geraete nur eine Sekunde nach dem letzten Telgramm wach sind, habs aber trotzdem uebernommen. Weiterhin ist es deutlich merkbar, sollte also wirklich nur in Ausnahmefaellen zuschlagen.
Bist du sicher, dass die Gedenksekunde beim RPi nicht dem Dongle geschuldet ist? Oder der USB-Bus ist belegt, der RPi hatte damit manchmal Probleme. Oder ist das kein Thema mehr?