TRANSMIT_NO_ACK

Begonnen von Magic01, 15 Juli 2015, 20:14:38

Vorheriges Thema - Nächstes Thema

Magic01

Hi,

ich versuche hier gerade 2 ZWave Schalter zu schalten, beide schalten auch, allerdings bekomme ich immer TRANSMIT_NO_ACK

Hier ein Auszug aus dem Log:
2015.07.15 20:08:20 5: ZWDongle_Write 00 130b03250100050b
2015.07.15 20:08:20 5: SW: 010a00130b03250100050bc4
2015.07.15 20:08:21 5: ACK received, removing 010a00130b03250100050bc4 from sendstack
2015.07.15 20:08:21 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.15 20:08:21 5: SW: 06
2015.07.15 20:08:21 5: ZWaveDongel dispatch 011301
2015.07.15 20:08:21 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 00130b01
2015.07.15 20:08:21 5: SW: 06
2015.07.15 20:08:21 5: ZWaveDongel dispatch 00130b01
2015.07.15 20:08:21 4: ZWaveDongel CMD:ZW_SEND_DATA ID:01 ARG:
2015.07.15 20:08:21 2: ZWaveDongel transmit NO_ACK for 0b


Wenn ich das richtig lese ist das ACK auf die Schaltnachricht doch angekommen, die Nachricht wird ja aus dem Stack genommen.
Was dann kommt, kann ich leder nicht deuten.

Hat jemand ne Lösung dazu?

Grüße
Markus

krikan

#1
2015.07.15 20:08:21 5: ZWaveDongel dispatch 011301
Antwort des Dongle, dass Nachricht korrekt an Gerät verschickt wurde.

2015.07.15 20:08:21 5: ZWaveDongel dispatch 00130b01
ACK-Antwort des ZWave-Empfängergerätes ist nicht bzw. nicht rechtzeitig vor Timeout von ZW_SENDDATA beim Dongle angekommen -> Dongle meldet NO_ACK

mMn ist entweder eine Funkstörung vorhanden (Lange Funkstrecke, ..) oder die Route ist zu ungünstig.

Was sind das für Geräte?

Magic01

#2
mh, aber was bedeutet dann die Zeile
ACK received, removing 010a00130b03250100050bc4 from sendstack

Entfernungen habe ich schon geändert, nichts gebracht.
Es ist ein Everspring AN1582  und ein Fibaro Wall Plug FGWPE/F-101.

Kann man das timeout irgendwie beeinflussen?


krikan

Achtung, habe in meinem letzten Post editiert!

ACK received, removing 010a00130b03250100050bc4 from sendstack

Nachricht wurde korrekt in der Warteschlange des Dongle abgelegt.
Zitat
Entfernungen habe ich schon geändert, nichts gebracht.
Dann wird die Ursachensuche evtl. komplizierter.
Fehlt das ACK immer?
Sind die Routen optimiert?
Sind in den Logs über längere Zeit Auffälligkeiten?
Konfiguration und Assoziation OK?

ZitatKann man das timeout irgendwie beeinflussen?
Durch Änderung an 00_ZWDongle.pm. Aber ehrlich gesagt, haben bei meinem Tests fehlende ACK selten am timeout gelegen.

Ansonsten mal warten, ob es andere Lösungs-Ideen gibt.

krikan

Temporär solltest Du Timeout auch über den (undokumentierten) ZWDongle-Befehl "set <ZWDongle> timeouts" beeinflussen können.

rudolfkoenig

ZitatACK received, removing 010a00130b03250100050bc4 from sendstack
bedeutet, dass FHEM die Daten erfolgreich an die Firmware des USB-Sticks uebergeben hat.

ZitatZWDongle_Read ZWaveDongel: sending ACK, processing 011301
bedeutet, dass der USB-Stick die Daten gesendet hat

ZitatZWDongle_Read ZWaveDongel: sending ACK, processing 00130b01
bedeutet, dass der USB-Stick bis Ablauf des Timeouts im Firmware vom Ziel kein ACK bekommen hat.

Wenn die Geraete Schalten, dann haben sie die Nachricht bekommen, aber deren Antwort ist nicht (oder nicht rechtzeitig) beim Stick angekommen. MAn kann FHEM selbst dabei wenig ausrichten.

Die beiden timeouts Parameter sind warten auf ACK und warten auf das naechste Frame bei Multi-Frame Paketen,  die Einheit ist 10ms. Zurueckgeliefert werden die alten Werte, deswegen habe ich es von set nach get geschoben, verfuegbar ab den morgigen update.
Die Voreinstellung auf einer UZB1 ist 100 15 (geliefert als 0106640f). Bei dir scheint das geringer zu sein, bitte fuer die naechsten Logs "attr global mseclog" aktivieren.
Da timeouts zu aendern mir zu heikel ist, und ich nicht ganz sicher bin, dass mein Info korrekt ist, bleibt dieser Parameter undokumentiert.

Magic01

Hi,

also der weiter weg positionierte Fibaro Schalter liefert manchmal ein ACK, aber nur selten.
Ich habe eben noch mal probiert und geloggt:

2015.07.16 10:18:40.755 2: ZWave set sz_Licht off
2015.07.16 10:18:40.755 5: ZWDongle_Write 00 130b03250100050b
2015.07.16 10:18:40.757 5: SW: 010a00130b03250100050bc4
2015.07.16 10:18:41.123 5: ACK received, removing 010a00130b03250100050bc4 from sendstack
2015.07.16 10:18:41.223 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.16 10:18:41.223 5: SW: 06
2015.07.16 10:18:41.226 5: ZWaveDongel dispatch 011301
2015.07.16 10:18:41.623 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 00130b01
2015.07.16 10:18:41.625 5: SW: 06
2015.07.16 10:18:41.628 5: ZWaveDongel dispatch 00130b01
2015.07.16 10:18:41.629 4: ZWaveDongel CMD:ZW_SEND_DATA ID:01 ARG:
2015.07.16 10:18:41.630 2: ZWaveDongel transmit NO_ACK for 0b
2015.07.16 10:18:46.210 2: ZWave set sz_Licht on
2015.07.16 10:18:46.211 5: ZWDongle_Write 00 130b032501FF050b
2015.07.16 10:18:46.212 5: SW: 010a00130b032501FF050b3b
2015.07.16 10:18:46.329 5: ACK received, removing 010a00130b032501FF050b3b from sendstack
2015.07.16 10:18:46.359 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.16 10:18:46.360 5: SW: 06
2015.07.16 10:18:46.362 5: ZWaveDongel dispatch 011301
2015.07.16 10:18:46.797 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 00130b01
2015.07.16 10:18:46.798 5: SW: 06
2015.07.16 10:18:46.822 5: ZWaveDongel dispatch 00130b01
2015.07.16 10:18:46.825 4: ZWaveDongel CMD:ZW_SEND_DATA ID:01 ARG:
2015.07.16 10:18:46.825 2: ZWaveDongel transmit NO_ACK for 0b
2015.07.16 10:19:40.205 2: ZWave set LichtArbeitszimmer off
2015.07.16 10:19:40.210 5: ZWDongle_Write 00 130c03250100050c
2015.07.16 10:19:40.219 5: SW: 010a00130c03250100050cc4
2015.07.16 10:19:40.300 5: ACK received, removing 010a00130c03250100050cc4 from sendstack
2015.07.16 10:19:40.397 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.16 10:19:40.398 5: SW: 06
2015.07.16 10:19:40.405 5: ZWaveDongel dispatch 011301
2015.07.16 10:19:40.408 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.16 10:19:40.409 5: SW: 06
2015.07.16 10:19:40.411 5: ZWaveDongel dispatch 011301
2015.07.16 10:19:40.781 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 00130c01
2015.07.16 10:19:40.782 5: SW: 06
2015.07.16 10:19:40.784 5: ZWaveDongel dispatch 00130c01
2015.07.16 10:19:40.785 4: ZWaveDongel CMD:ZW_SEND_DATA ID:01 ARG:
2015.07.16 10:19:40.786 2: ZWaveDongel transmit NO_ACK for 0c
2015.07.16 10:20:04.912 2: ZWave set LichtArbeitszimmer on
2015.07.16 10:20:04.912 5: ZWDongle_Write 00 130c032501FF050c
2015.07.16 10:20:04.913 5: SW: 010a00130c032501FF050c3b
2015.07.16 10:20:05.175 5: ACK received, removing 010a00130c032501FF050c3b from sendstack
2015.07.16 10:20:05.204 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.16 10:20:05.205 5: SW: 06
2015.07.16 10:20:05.206 5: ZWaveDongel dispatch 011301
2015.07.16 10:20:05.712 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 00130c01
2015.07.16 10:20:05.713 5: SW: 06
2015.07.16 10:20:05.715 5: ZWaveDongel dispatch 00130c01
2015.07.16 10:20:05.715 4: ZWaveDongel CMD:ZW_SEND_DATA ID:01 ARG:
2015.07.16 10:20:05.716 2: ZWaveDongel transmit NO_ACK for 0c
2015.07.16 10:21:14.962 1: OutTemp (19.7) lower than MayaTemp (24.7)
2015.07.16 10:21:29.758 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 0004000b083202211200000000
2015.07.16 10:21:29.758 5: SW: 06
2015.07.16 10:21:29.760 5: ZWaveDongel dispatch 0004000b083202211200000000
2015.07.16 10:21:29.762 4: ZWaveDongel CMD:APPLICATION_COMMAND_HANDLER ID:0b ARG:083202211200000000
2015.07.16 10:21:37.215 2: ZWave set LichtArbeitszimmer on
2015.07.16 10:21:37.217 5: ZWDongle_Write 00 130c032501FF050c
2015.07.16 10:21:37.218 5: SW: 010a00130c032501FF050c3b
2015.07.16 10:21:37.470 5: ACK received, removing 010a00130c032501FF050c3b from sendstack
2015.07.16 10:21:37.500 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.16 10:21:37.500 5: SW: 06
2015.07.16 10:21:37.502 5: ZWaveDongel dispatch 011301
2015.07.16 10:21:37.914 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 00130c01
2015.07.16 10:21:37.915 5: SW: 06
2015.07.16 10:21:37.917 5: ZWaveDongel dispatch 00130c01
2015.07.16 10:21:37.917 4: ZWaveDongel CMD:ZW_SEND_DATA ID:01 ARG:
2015.07.16 10:21:37.918 2: ZWaveDongel transmit NO_ACK for 0c
2015.07.16 10:22:05.455 2: ZWave set sz_Licht off
2015.07.16 10:22:05.456 5: ZWDongle_Write 00 130b03250100050b
2015.07.16 10:22:05.457 5: SW: 010a00130b03250100050bc4
2015.07.16 10:22:05.673 5: ACK received, removing 010a00130b03250100050bc4 from sendstack
2015.07.16 10:22:05.701 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 011301
2015.07.16 10:22:05.702 5: SW: 06
2015.07.16 10:22:05.704 5: ZWaveDongel dispatch 011301
2015.07.16 10:22:06.132 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 00130b01
2015.07.16 10:22:06.132 5: SW: 06
2015.07.16 10:22:06.134 5: ZWaveDongel dispatch 00130b01
2015.07.16 10:22:06.135 4: ZWaveDongel CMD:ZW_SEND_DATA ID:01 ARG:
2015.07.16 10:22:06.136 2: ZWaveDongel transmit NO_ACK for 0b
2015.07.16 10:22:36.272 4: ZWDongle_Read ZWaveDongel: sending ACK, processing 0004000b083202211200000000
2015.07.16 10:22:36.272 5: SW: 06
2015.07.16 10:22:36.274 5: ZWaveDongel dispatch 0004000b083202211200000000
2015.07.16 10:22:36.276 4: ZWaveDongel CMD:APPLICATION_COMMAND_HANDLER ID:0b ARG:083202211200000000


Das sind jetzt mehrer Schaltvorgänge - allerdings hatte ich jetzt keine ACKs.

Ich habe aber auch noch die Idee, dass das ganze an dem ZW Stick liegen könnte, das ist nämlich nen no name OEM stick in einer beta Version, nichts finales. Ich denke ich muss mir da vielleicht mal was vernünftiges gönnen...

rudolfkoenig

Dein Stick wartet 0.4 Sekunden, bis der ACK ausgeloest wird, evtl. lohnt sich den timeout auf 1 oder (wie im ZWave Doku steht) auf 1.5 Sekunden zu setzen. Bei einem Beta-Stick haette ich weniger Skrupel beim Setzen der Parameter.

krikan

Zitat von: rudolfkoenig am 16 Juli 2015, 10:52:02
Dein Stick wartet 0.4 Sekunden, bis der ACK ausgeloest wird, evtl. lohnt sich den timeout auf 1 oder (wie im ZWave Doku steht) auf 1.5 Sekunden zu setzen. Bei einem Beta-Stick haette ich weniger Skrupel beim Setzen der Parameter.
Zwischenfrage: Wird in 00_ZWDongle.pm in ZWDongle_DoInit($) das Timeout nicht bei der Initalisierung auf 1 Sek festgelegt? Der Beta-Stick ignoriert es dann doch..

rudolfkoenig

@Christian: Danke fuer den Hinweis, das habe ich schon ganz verdraengt.
Ja, du hast dann wohl recht, und das Setzen per Hand kann man auch lassen.
Und ich habe damit keine Ahnung, was die Voreinstellung auf dem UZB1 war.

krikan

#10
@Markus:
Wenn der Everspring AN1582 wirklich das (vorsichtig formuliert) nicht optimale SDK 5 nutzt (siehe bspw. http://wiki.zwaveeurope.com/index.php?title=SDK_Versions_and_Explorer_Frames) und der Stick "Beta" ist, sind das nicht ideale Voraussetzungen für ein stabiles Netz.

Im übrigen habe ich bei mir festgestellt, dass der Funkempfang "Dongle->Gerät" häufig noch funktioniert, wenn "Gerät->Dongle" bereits nicht mehr funktioniert. Testen kann man Funkstrecken mit Class POWERLEVEL.