Wie oft wird ein abgesetzter Befehl wiederholt?

Begonnen von tomspatz, 18 Januar 2016, 12:06:12

Vorheriges Thema - Nächstes Thema

tomspatz

Hoffe das es in das Unterforum passt.
Ich habe ausschließlich z-wave Komponenten.
Bei meiner Heizungssteuerung werden um 7.30 Uhr an drei verschiedene Thermostate ein setpointHeating mit der passenden Temperatur abgesetzt.
Das z-wave Netzwerk ist "eng" vernetzt.
Ab und zu passiert es 2016.01.18 07:30:00 2: ZWave set HeizungSchlafzimmer setpointHeating 20
2016.01.18 07:30:00 3: set HeizungSchlafzimmer setpointHeating 20 : Scheduled for sending after WAKEUP
2016.01.18 07:30:00 3: HeizungSchlafzimmerReglerNotify return value: Scheduled for sending after WAKEUP
2016.01.18 07:30:00 2: ZWave set HeizungWohnzimmer setpointHeating 21
2016.01.18 07:30:00 3: set HeizungWohnzimmer setpointHeating 21 : Scheduled for sending after WAKEUP
2016.01.18 07:30:00 3: HeizungWohnzimmerReglerNotify return value: Scheduled for sending after WAKEUP
2016.01.18 07:30:00 2: ZWave set HeizungBuero setpointHeating 20
2016.01.18 07:30:00 3: set HeizungBuero setpointHeating 20 : Scheduled for sending after WAKEUP
2016.01.18 07:30:00 3: HeizungBueroReglerNotify return value: Scheduled for sending after WAKEUP
2016.01.18 07:33:46 2: ZWDongle_ProcessSendStack: no ACK, resending message 010c001308054301010114250896
2016.01.18 07:33:53 2: ZWDongle_ProcessSendStack: no ACK, resending message 010c001309054301010115250997


In meinem Verständnis "Funk" Problem z-wave Stick.
In diesem Falle wird der Befehl dann nicht abgesetzt.
Obwohl zwei mal wiederholt.
Verstehe ich das richtig?
Was könnte ich dagegen tun?

rudolfkoenig

Dieser "no ACK" wird gemeldet, weil der Stick sich weigert, ein Befehl zu bestaetigen, ich vermute, der Stick ist verklemmt bzw. Firmware Problem, und ich weiss noch nicht, ob/wie ich das fixen soll. Wie lange dauert es, bis man eine weitere Nachricht erfolgreich losschicken kann?

Kannst Du bitte pruefen, ob "get ZWDongle_0 raw 8" (SERIAL_API_SOFT_RESET) zu einem komplett verklemmten Dongle fuehrt wie bei krikan, was nur per ausstecken/einstecken wiederbelebt werden kann? Falls nicht, dann koennte man ein SERIAL_API_SOFT_RESET in solchen Faellen losschicken, falls der Benutzer das per Attribut bestellt.

tomspatz

Ich denke das er sofort wieder reagiert. Der Log geht direkt so weiter.
Wobei die neighbourUpdates von mir kam.

2016.01.18 07:59:45 2: ZWave get HeizungBuero battery
2016.01.18 07:59:45 2: ZWave get HeizungSchlafzimmer battery
2016.01.18 07:59:45 2: ZWave get HeizungWohnzimmer battery
2016.01.18 07:59:45 2: ZWave get HeizungBad battery
2016.01.18 07:59:45 2: ZWave get HeizungKueche battery
2016.01.18 07:59:45 3: Atdanfoss: Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
2016.01.18 08:29:45 2: ZWave get HeizungBuero battery
2016.01.18 08:29:45 2: ZWave get HeizungSchlafzimmer battery
2016.01.18 08:29:45 2: ZWave get HeizungWohnzimmer battery
2016.01.18 08:29:45 2: ZWave get HeizungBad battery
2016.01.18 08:29:45 2: ZWave get HeizungKueche battery
2016.01.18 08:29:45 3: Atdanfoss: Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
2016.01.18 08:52:09 2: ZWave set FunkDose2 neighborUpdate
2016.01.18 08:52:15 2: ZWave get FunkDose2 neighborList
2016.01.18 08:52:19 2: ZWave: No ACK from FunkDose2 after 10s for sent:4811
2016.01.18 08:52:29 2: ZWave: No ACK from FunkDose2 after 10s for sent:80110100
2016.01.18 08:52:31 2: ZWave get FunkDose2 neighborList
2016.01.18 08:52:55 2: ZWave set FunkDose2 on
2016.01.18 08:52:57 2: ZWave set FunkDose2 off
2016.01.18 08:53:06 2: ZWave set FunkDose1 neighborUpdate
2016.01.18 08:53:15 2: ZWave get FunkDose1 neighborList
2016.01.18 08:53:18 2: ZWave: No ACK from FunkDose1 after 10s for sent:4806
2016.01.18 08:53:25 2: ZWave get FunkDose1 neighborList
2016.01.18 08:53:28 2: ZWave: No ACK from FunkDose1 after 10s for sent:80060100
2016.01.18 08:53:38 2: ZWave: No ACK from FunkDose1 after 10s for sent:80060100
2016.01.18 08:53:47 2: ZWave get FunkDose1 neighborList
2016.01.18 08:54:08 2: ZWave set FunkDose1 on
2016.01.18 08:54:09 2: ZWave set FunkDose1 off


Ein get ZWDongle_0 raw 8 bringt dieses.

2016.01.18 14:26:43 2: ZWDongle_ProcessSendStack: no ACK, resending message 01020087d
2016.01.18 14:26:44 2: ZWDongle_ProcessSendStack: no ACK, resending message 01020087d
2016.01.18 14:26:45 2: ZWDongle_ProcessSendStack: no ACK, resending message 01020087d
2016.01.18 14:26:46 2: ZWDongle_ProcessSendStack: no ACK, resending message 01020087d
2016.01.18 14:26:46 1: ERROR: max send retries reached, removing 01020087d from dongle sendstack
2016.01.18 14:29:45 2: ZWave get HeizungBuero battery
2016.01.18 14:29:45 2: ZWave get HeizungSchlafzimmer battery
2016.01.18 14:29:45 2: ZWave get HeizungWohnzimmer battery
2016.01.18 14:29:45 2: ZWave get HeizungBad battery
2016.01.18 14:29:45 2: ZWave get HeizungKueche battery
2016.01.18 14:29:45 3: Atdanfoss: Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
Scheduled for sending after WAKEUP
2016.01.18 14:34:09 2: ZWave set HeizungBuero setpointHeating 22
2016.01.18 14:34:09 3: set HeizungBuero setpointHeating 22 : Scheduled for sending after WAKEUP
2016.01.18 14:34:09 3: HeizungBueroReglerNotify return value: Scheduled for sending after WAKEUP
2016.01.18 14:45:01 2: ZWave set HeizungBuero setpointHeating 20
2016.01.18 14:45:01 3: set HeizungBuero setpointHeating 20 : Scheduled for sending after WAKEUP
2016.01.18 14:45:01 3: HeizungBueroReglerNotify return value: Scheduled for sending after WAKEUP


Danach schein es aber weiterhin normal zu reagieren.

2016-01-18 14:34:41 PRESENCE AnwesendTom abwesend
2016-01-18 14:34:41 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:35:07 readingsGroup BatterieStatus HeizungBad.battery: image/svg+xml         inkscape:connector-curvature="0" />                             
2016-01-18 14:35:07 readingsGroup BatterieStatusProzent HeizungBad.battery: 80 %
2016-01-18 14:35:07 ZWave HeizungBad battery: 80 %
2016-01-18 14:35:07 ZWave HeizungBad setpointTemp: 20.0 C heating
2016-01-18 14:35:07 ZWave HeizungBad ccsOverride: no, unused
2016-01-18 14:35:07 ZWave HeizungBad wakeup: notification
2016-01-18 14:35:17 PRESENCE AnwesendTom abwesend
2016-01-18 14:35:17 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:36:00 PRESENCE AnwesendTom abwesend
2016-01-18 14:36:00 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:36:20 readingsGroup BatterieStatus HeizungWohnzimmer.battery: image/svg+xml                                     
2016-01-18 14:36:20 readingsGroup BatterieStatusProzent HeizungWohnzimmer.battery: 77 %
2016-01-18 14:36:20 ZWave HeizungWohnzimmer battery: 77 %
2016-01-18 14:36:20 ZWave HeizungWohnzimmer setpointTemp: 22.0 C heating
2016-01-18 14:36:20 ZWave HeizungWohnzimmer ccsOverride: no, unused
2016-01-18 14:36:20 ZWave HeizungWohnzimmer wakeup: notification
2016-01-18 14:36:36 PRESENCE AnwesendTom abwesend
2016-01-18 14:36:36 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:37:20 PRESENCE AnwesendTom abwesend
2016-01-18 14:37:20 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:37:28 readingsGroup BatterieStatus HeizungKueche.battery: image/svg+xml                                     
2016-01-18 14:37:28 readingsGroup BatterieStatusProzent HeizungKueche.battery: 81 %
2016-01-18 14:37:28 ZWave HeizungKueche battery: 81 %
2016-01-18 14:37:28 ZWave HeizungKueche setpointTemp: 20.0 C heating
2016-01-18 14:37:28 ZWave HeizungKueche ccsOverride: no, unused
2016-01-18 14:37:29 ZWave HeizungKueche wakeup: notification
2016-01-18 14:37:43 readingsGroup BatterieStatus HeizungBuero.battery: image/svg+xml                                 
2016-01-18 14:37:43 readingsGroup BatterieStatusProzent HeizungBuero.battery: 73 %
2016-01-18 14:37:43 ZWave HeizungBuero battery: 73 %
2016-01-18 14:37:43 ZWave HeizungBuero setpointTemp: 20.0 C heating
2016-01-18 14:37:43 ZWave HeizungBuero ccsOverride: no, unused
2016-01-18 14:37:43 ZWave HeizungBuero wakeup: notification
2016-01-18 14:37:56 PRESENCE AnwesendTom abwesend
2016-01-18 14:37:56 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:38:00 ZWave HeizungBuero CMD: ZW_APPLICATION_UPDATE
2016-01-18 14:38:29 ZWave TemperaturFuehlerBad temperature: 23.12 C
2016-01-18 14:38:32 PRESENCE AnwesendTom abwesend
2016-01-18 14:38:32 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:38:36 readingsGroup BatterieStatus HeizungSchlafzimmer.battery: image/svg+xml       "path9"    inkscape:connector-curvature="0" />                             
2016-01-18 14:38:36 readingsGroup BatterieStatusProzent HeizungSchlafzimmer.battery: 76 %
2016-01-18 14:38:36 ZWave HeizungSchlafzimmer battery: 76 %
2016-01-18 14:38:36 ZWave HeizungSchlafzimmer setpointTemp: 20.0 C heating
2016-01-18 14:38:36 ZWave HeizungSchlafzimmer ccsOverride: no, unused
2016-01-18 14:38:36 ZWave HeizungSchlafzimmer wakeup: notification
2016-01-18 14:39:08 PRESENCE AnwesendTom abwesend
2016-01-18 14:39:08 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:39:44 PRESENCE AnwesendTom abwesend
2016-01-18 14:39:44 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:40:03 readingsGroup BatterieStatus HeizungBad.battery: image/svg+xml         inkscape:connector-curvature="0" />                             
2016-01-18 14:40:03 readingsGroup BatterieStatusProzent HeizungBad.battery: 80 %
2016-01-18 14:40:03 ZWave HeizungBad battery: 80 %
2016-01-18 14:40:03 ZWave HeizungBad setpointTemp: 20.0 C heating
2016-01-18 14:40:03 ZWave HeizungBad ccsOverride: no, unused
2016-01-18 14:40:03 ZWave HeizungBad wakeup: notification
2016-01-18 14:40:20 PRESENCE AnwesendTom abwesend
2016-01-18 14:40:20 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:40:56 PRESENCE AnwesendTom abwesend
2016-01-18 14:40:56 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:41:15 readingsGroup BatterieStatus HeizungWohnzimmer.battery: image/svg+xml       ath9"    inkscape:connector-curvature="0" />                             
2016-01-18 14:41:15 readingsGroup BatterieStatusProzent HeizungWohnzimmer.battery: 77 %
2016-01-18 14:41:15 ZWave HeizungWohnzimmer battery: 77 %
2016-01-18 14:41:15 ZWave HeizungWohnzimmer setpointTemp: 22.0 C heating
2016-01-18 14:41:15 ZWave HeizungWohnzimmer ccsOverride: no, unused
2016-01-18 14:41:15 ZWave HeizungWohnzimmer wakeup: notification
2016-01-18 14:41:32 PRESENCE AnwesendTom abwesend
2016-01-18 14:41:32 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:42:08 PRESENCE AnwesendTom abwesend
2016-01-18 14:42:08 PRESENCE AnwesendTom presence: abwesend
2016-01-18 14:42:20 ZWave TemperaturFuehlerBuero temperature: 21.25 C
2016-01-18 14:42:22 readingsGroup BatterieStatus HeizungKueche.battery: image/svg+xml       "    inkscape:connector-curvature="0" />                             
2016-01-18 14:42:22 readingsGroup BatterieStatusProzent HeizungKueche.battery: 81 %
2016-01-18 14:42:22 ZWave HeizungKueche battery: 81 %
2016-01-18 14:42:22 ZWave HeizungKueche setpointTemp: 20.0 C heating
2016-01-18 14:42:22 ZWave HeizungKueche ccsOverride: no, unused
2016-01-18 14:42:22 ZWave HeizungKueche wakeup: notification
2016-01-18 14:42:37 readingsGroup BatterieStatus HeizungBuero.battery: image/svg+xml                                 
2016-01-18 14:42:37 readingsGroup BatterieStatusProzent HeizungBuero.battery: 73 %
2016-01-18 14:42:37 ZWave HeizungBuero battery: 73 %
2016-01-18 14:42:37 ZWave HeizungBuero setpointTemp: 22.0 C heating
2016-01-18 14:42:37 ZWave HeizungBuero ccsOverride: no, unused
2016-01-18 14:42:37 ZWave HeizungBuero wakeup: notification

krikan

Zwischenfrage: Was ist das für ein Zwave-Dongle? AEOTEC?

tomspatz

#4
Z-WaveME ZME_UZB1
ZWDongle_0 version => Z-Wave 3.99 STATIC_CONTROLLER
/dev/ttyACM0@115200

reicht das ?

krikan

Danke, erst einmal ja. Kann dann bei mir auch noch mal probieren. Hatte damals auch mit dem UZB1 getestet. Jeweils mit dem Ergebnis: Wiederbelebung nach  SERIAL_API_SOFT_RESET nur durch stromlos machen vom Dongle.

tomspatz

Ich habe den gar nicht wiederbelebt. Alles so laufen lassen.

krikan

Zitat von: tomspatz am 18 Januar 2016, 17:28:43
Ich habe den gar nicht wiederbelebt. Alles so laufen lassen.
Genau das wundert mich eben.  :) Rudi hatte es bereits geschrieben, dass es bei mir anders war und ich will es einfach noch mal testen. Habe mir Dein log aber auch nicht näher angesehen; wird Rudi sicherlich machen.

rudolfkoenig

Ich haette gerne den Log mit "attr global verbose 5" und "attr global mseclog", sonst muss ich viel raten.

krikan

Aktueller Test zu SERIAL_API_SOFT_RESET:
Sowohl Vision als auch UZB1 (V5.04) arbeiten unter Raspian nach SoftReset problemlos weiter. Kein Hängenbleiben oder ähnliches.
UZB1 unter Win10 führt den Befehl aus; FHEM bleibt aber hängen und lässt sich nur durch kill des Perl-Prozesses beenden. Log unter Win10:
2016.01.18 19:35:06.551 4: ZWDongle get ZWDongle_0 raw 08
2016.01.18 19:35:06.551 5: ZWDongle_Write 0008 ()
2016.01.18 19:35:06.551 5: SW: 01030008f4
2016.01.18 19:35:06.554 4: ZWDongle_ReadAnswer arg:raw regexp:^0108
2016.01.18 19:35:06.554 5: ACK received, removing 01030008f4 from dongle sendstack
2016.01.18 19:35:09.307 1: PERL WARNING: Use of uninitialized value $InBytes in numeric gt (>) at ./FHEM/00_ZWDongle.pm line 701.

Warnung (Verlust USB-Verbindung?) entspricht der heute hier gemeldeten:  http://forum.fhem.de/index.php/topic,47724.msg393866.html#msg393866

Im 400er zwapi finde ich SERIAL_API_SOFT_RESET nicht mehr und ich meine ozw nutzt die Funktion wegen der neueren Controller nur noch sehr eingeschränkt. Quelle zu letzterem suche ich und finde ich hoffentlich auch...

tomspatz

@rudolfkoenig
ZitatIch haette gerne den Log mit "attr global verbose 5" und "attr global mseclog", sonst muss ich viel raten.
Bedeutet das ich muss diese Attribute setzen und dann hoffen das der Fehler wieder auftritt? Oder wirkt das auf die "alten" Logfiles?

@krikan
So wie ich es verstehe benutzen wir völlig verschiedene Systeme. Bei mir lauft fhem auf Raspbian Wheezy.
Mein z-wave USB Stick hat eine alte Firmware ?? hoffe das ich das so richtig interpretiere.
Sollte man diese nicht auch auf den aktuellsten Stand bringen?

LG
Tom

rudolfkoenig

ZitatBedeutet das ich muss diese Attribute setzen und dann hoffen das der Fehler wieder auftritt?
Ja.

@krikan: offensichtlich macht SERIAL_API_SOFT_RESET ein USB-Reset, und FHEM behandelt USB-Reset unter Windows nicht richtig. Ich werde es anschauen, habe aber kein "echtes" Windows zum Testen zur Verfuegung.
Kannst du bitte in 10_ZWave.pm/ZWDongle_Ready vor "return ($InBytes>0);" folgendes einfuegen:
if(!defined($InBytes)) {
  DevIo_Disconnected($hash);
  return 0;
}


und nochmal testen? Funktioniert ZWave@FHEM unter Windows sonst genauso wie unter Linux?

krikan

#12
Zitat von: rudolfkoenig am 19 Januar 2016, 07:27:28
Ich werde es anschauen, habe aber kein "echtes" Windows zum Testen zur Verfuegung.
[...]
und nochmal testen? Funktioniert ZWave@FHEM unter Windows sonst genauso wie unter Linux?
Win7/10 nutze ich als ZWave/EnO-Testsystem und habe dort bisher keine Problem feststellen können. Auch SECURITY-Einbindungstests für Andreas habe ich damit durchgeführt. Es läuft problemlos. Nur jetzt besagte Warnung, die aber mMn unwesentlich ist und ich nur zur Vollständigkeit dokumentiert habe. Werde in den nächsten Tagen testen und berichten.

@tomspatz:
ZitatSo wie ich es verstehe benutzen wir völlig verschiedene Systeme. Bei mir lauft fhem auf Raspbian Wheezy.
Bei mir unter anderem auch; siehe oben
ZitatMein z-wave USB Stick hat eine alte Firmware ?? hoffe das ich das so richtig interpretiere.
Sollte man diese nicht auch auf den aktuellsten Stand bringen?
Kein Ratschlag dazu  ;). Ich mache Update nur, da ich (immer wieder) mit den Controller Commands am Teststick UZB1 experimentiere. Also nichts, was mMn im Produktivsystem zwingend notwendig ist.

krikan

@Rudi: 
SERIAL_API_SOFT_RESET ist doch 0x08. Also muss der Befehl doch "get ZWDongle_0 raw 08" lauten und nicht "get ZWDongle_0 raw 8"!? Mit "08" komme ich dann auch mit dem Vision-Stick auf Raspbian zu meinem alten Testergebnis: Wiederbelebung nur durch ab- und wiederanstecken. Gestern hatte ich bei Raspbian laut Log nur mit 8 abgefragt. Mit UZB1 und Win habe ich noch nicht geschafft zu testen, wobei ich dort laut Log 08 getestet hatte...

rudolfkoenig

Mit 08 hast du natuerlich recht.

Bei meinem geht ein "get zwd raw 08" mit Husten und Roecheln (will sagen disconnected/reappeared, CAN received, und ein paar no ACK) durch, danach scheint das Geraet normal zu funktionieren.
Nach diesen Erfahrungen tendiere ich dazu, _kein_ automatisches soft reset abzusetzen.