ZWAVE fällt immer wieder aus

Begonnen von uwek, 13 Dezember 2017, 09:45:50

Vorheriges Thema - Nächstes Thema

uwek

Hallo,

ich betreibe FHEM auf einem rpi3 mit einem UZB-Stick. Seit einigen Tagen kommt es immer wieder vor, dass von den Sensoren und Zwischensteckern nichts mehr bei FHEM ankommt. Im Log (verbose 3) ist nichts auffälliges zu sehen. Ein reopen des ZWAVE-Dongles behebt das Problem temporär.

Am rpi hängt neben dem UZB auch noch ein CUL868 und ein HM-MOD-RPI-PCP.

Ich weiß nicht so Recht, wo ich anfangen soll zu suchen.
Kann mir jemand auf die Sprünge helfen?

Vielen Dank und Gruß,
Uwe


digiart

Bei mir war es so, das der ZWave-Dongle sehr empfindlich war, wenn sich am USB irgendetwas geändert hat.
Ich hatte den Dongle zuerst direkt an einem Raspberry stecken, dann habe ich ihn über einen Netzteil-versorgten USB-Hub angeschlossen.
Danach habe ich FHEM auf einen HP MicroServer übersiedelt, den Dongle zuerst über den USB-Hub, danach auch direkt angeschlossen. Ich habe den Dongle, wenn die Datenübertragung nicht funktioniert hat, einfach abgezogen und wieder angesteckt.
Als ich aber dann eine externe HDD an den Server angeschlossen habe, hat auch das nicht mehr geholfen.

Nun habe ich den Dongle an einem Raspberry Pi Zero hängen, und mittels socat mit dem Server verbunden. Das funktioniert eigentlich schon länger störungsfrei.

Ich vermute, es ist ein Problem zwischen USB-Treiber und USB-Dongle oder eine schlechte Versorgungsspannungsfilterung im Dongle selbst.
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

A.Harrenberg

Hi,
Zitat von: uwek am 13 Dezember 2017, 09:45:50
Am rpi hängt neben dem UZB auch noch ein CUL868 und ein HM-MOD-RPI-PCP.
wie hast Du die Geräte in FHEM definiert? Über /dev/serial/by-id?
Mach doch mal ein list der drei Devices.

Wenn Du mehrere Geräte die über die normalen Namen definiert sind (z.B: ttyAMA0 und ttyAMA1) und die sich mal vom USB-Bus verabschieden und wieder zurückmelden, dann kann es sein das die Reihenfolge anders ist. Funktionieren denn die beiden anderen Device weiter?

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

uwek

Hallo,

Danke für die Antworten.

Ich habe nun mal USB-Kabel mit Ferritkern für die Stromversorgung des Raspi und auch zum ZWAVE Dongle verwendet.
Kann man Störungen über die Stromversorgung irgendwie im Log erkennen, z.B. mit verbose 5?

Die USB Devices habe ich per id eingebunden:

define CUL CUL /dev/serial/by-id/usb-busware.de_CUL868-if00 1234
define ZWDongle_1 ZWDongle /dev/serial/by-id/usb-0658_0200-if00@115200

Das Problem mit vertauschten USB-Geräten hatte ich vorher tatsächlich schon. Dieses Problem tritt nicht mehr auf.

Nun beobachte ich erst mal, ob die neuen USB-Kabel Besserung bringen.

Viele Grüße,
Uwe

Das HM-MOD-RPI-PCB Modul steckt auf dem Raspi und wird per UART über YAHM (HMCCU) angesprochen.

uwek

Hallo,

das Problem besteht weiterhin.
Als Notlösung überwache ich die ZWave Events per DOIF und wenn einige Minuten nichts mehr ankommt, mache ich ein reopen.

defmod check.ZWAVE DOIF (["^ZW."]) (set ZWDongle_1 reopen)
attr check.ZWAVE do resetwait
attr check.ZWAVE wait 320


Das klappt soweit.

Nun habe ich folgende Beobachtung gemacht:
Es kommt immer mal wieder vor, das exakt im Stundentakt folgende Meldung im Log erscheint

ZWDongle_1: SOF missing (got 2d instead of 01)

Danach kommt kein ZWave Event mehr an. Nach einem reopen läuft es wieder

Nun habe ich zwei Fragen:
1. Was kann man an der Meldung "SOF missing ..." ableiten? Aus den Foreneinträgen werde ich leider nicht so richtig schlau.
2. Wie müsste eine DOIF-Bedingung aussehen, um auf "ZWDongle_1: SOF missing ..." im Log zu reagieren?

Vielen Dank und Gruß,
Uwe

rudolfkoenig

ZitatWas kann man an der Meldung "SOF missing ..." ableiten?
Dass die empfangenen Daten nicht dem Spec enstprechen. Entweder, weil sie auf dem USB-Bus verlorengegangen sind, oder weil der Controller spinnt.

ZitatWie müsste eine DOIF-Bedingung aussehen, um auf "ZWDongle_1: SOF missing ..." im Log zu reagieren?
Keine Ahnung, das ist eine Frage fuer die DOIF Jungs in dem passenden Forumsbereich. Mit notify:
define nSof notify ZWDongle_1:.SOF.missing.* set ZWDongle_1 reopen
attr nSof readLog