[gelöst] [noch Verständnisprobleme] ZWave: No ACK from xyz after 5s for sentset

Begonnen von jsChris, 20 Juni 2020, 11:15:02

Vorheriges Thema - Nächstes Thema

jsChris

Moin,

seit einiger Zeit verfolgt mich im Log der Eintrag:
ZWave: No ACK from xyz after 5s for sentset

Im Grunde schienen aber alle Devices "normal" zu funktionieren.

Ich habe nun nach und nach gefühlt alle Beiträge zu diesem Thema im Forum gelesen und auch alles ausprobiert, von dem ich dachte, dass es helfen könnte.

- UZB Stick auf letzte Firmware Version updated (bei mir nur 5.7 - is doch recht alt der Stick)
- in der direkter Nähe zum Stick ein meshendes, kabelgebundenes Device aufgestellt und das gesamte Netzwerk neu ver-"neighbor"t, und zwar Stück für Stück vom UZB aus.
- in den Amazon Warenkorb eine neue Version des UZBs gepackt (aber noch nicht gekauft :) )

Das alles half gar nix.

Mir fiel aber bei meinen ganzen Versuchen das Netzwerk neu zu konfigurieren auf, dass der "No ACK" nur beim dimmen auftrat. Da kam mir doch der Verdacht, dass hier ein timing Problem vorliegt. Die Rückmeldungen vom Device werden vielleicht doch alle brav gesendet, aber der UZB kommt nicht nach?

Da fiel mir ein, dass ich in einem Beitrag von krikan folgendes gelesen hatte:


timeouts (SerialAPISetTimeouts) hat 2 Parameter:
1. Parameter = ackTimeout in 10ms
2. Parameter = byteTimeout in 10ms
FHEM setzt das beim Start relativ konservativ auf 1 Sekunden bzw. 150ms; bei anderen Programmen werden beide Werte teilweise mit 100ms gesetzt, also
Code: [Auswählen]
set <ZWDongle> timeouts 10 10


Und siehe da, nachdem ich nun den ackTimeout auf 20 gesetzt habe (set <ZWDongle> timeouts 20 10) sind die Logeinträge weg :)

Nun endlich zu meiner Frage, krikan schreibt hier "FHEM setzt das beim Start relativ konservativ (....)". Das hieße, dass meine Einstellung nach dem nächsten restart wieder weg wäre? Gut so oft starte ich fhem nicht neu, aber trotzdem möchte ich daran nicht denken müssen.

Wie könnte ich das automatisieren? Gibt es eine callback-function "afterstart", die in der MyUtils aufgerufen würde?

Vielleicht sehe ich auch einfach mal wieder den Wald vor lauter Bäumen nich...

Danke
Chris 

rudolfkoenig

In 00_ZWDongle.pm steht:
  ZWDongle_Set($hash, $name, ("timeouts", 100, 15));  # Sec relevant

offensichtlich wurden diese Werte fuer die Security-Implementierung angepasst.
Ich verstehe nicht, warum das Herabsetzten des Timeouts von 100 auf 20 die Meldungen verhindert.

Um es beim FHEM-Start zu aendern sollte ein
define zwdongle_timeouts notify global:INITIALIZED set ZWDongle timeouts 20 10
reichen.

jsChris

Hi Rudolf,

danke für deine Antwort und den Hinweis zum global:INITIALIZED. Peinlich, die global events kannte ich noch gar nicht. 

Gibt es denn einen Grund, warum set timeouts nicht in der CommandRef beschrieben ist? Könnte man den Befehl nicht dort mit aufnehmen?

Danke
Chris

jsChris

Hi Rudolf,

ich hab noch mal ein paar Tests gemacht. Du hast natürlich völlig Recht, das ergibt einfach keinen Sinn.

Und: es ist auch völlig egal, auf was ich die timeouts setze, auch wenn ich sie auf 100 15 zurück setze oder auf 200 15 hoch oder auf 1 15 runter - das macht alles keinen Unterschied. Die Meldung "NO ACK" bleibt weg.

Hm, VooDoo Computing...

Vielleicht ist es doch eher so, dass ich es endlich geschafft habe, das Netz so neu zu arrangieren, dass es jetzt wieder perfekt funktioniert. Merkwürdig.

lg
Chris