MQTT: Socket error i.V.m. Z-Wave


#1

Hallo,
ich verwende Homegear mit MAX! und Z-Wave Geräten.
Homegear version 0.7.38-2757
Wenn ich nur das MAX! Protokoll verwende und das Z-Wave Protokoll deaktiviere, verbindet sich Homegear problemlos mit meinem Mosquitto Broker.
Sobald ich jedoch das Z-Wave Protokoll wieder einschalte, schafft es Homegear erst nach einer guten halben Stunde voller Fehler sich mit dem Broker zu verbinden. Nach jedem Neustart / Upgrade geht das Prozedere von neuem los.

Mosquitto schickt folgenden Eintrag:

mosquitto[8350]: New connection from 127.0.0.1 on port 1883.
mosquitto[8350]: New client connected from 127.0.0.1 as homegear (c1, k60, u'odroid').
mosquitto[8350]: Socket error on client homegear, disconnecting.

Der Error log von Homegear sieht folgendermaßen aus:

03/12/19 12:30:19.954 MQTT Client: Error: No response received to packet: 3B3D0038686F6D65676561722F6F64726F69642F706C61696E2F392F312F5A57415645504C55535F494E464F2E5A2D574156452B5F56455253494F4E011031
03/12/19 12:30:19.954 MQTT Client: MQTT Client Warning: No PUBACK received.
03/12/19 12:30:24.958 MQTT Client: Warning: Connection to MQTT server closed.

Dabei ist es völlig unerheblich welches Z-Wave Gerät das betreffende Paket mit Fehler es betrifft.
Ich hab schon versucht das betroffene Gerät aus meinem Netzwerk zu entfernen, dann springt die Nachricht (die hex kodierte) aufs nächste Gerät über.

Im normalen log mit Debuglevel 10 sind die Einträge etwas länger, aber geben keinen weiteren Hinweis auf den Fehler:

03/13/19 12:46:28.547 Debug: Connecting to host 127.0.0.1 on port 1883...
03/13/19 12:46:28.549 Debug: Connected to host 127.0.0.1 on port 1883. Client number is: 34
03/13/19 12:46:31.694 Module ZWave: Z-Wave serial queues: Try to send packet for online device
03/13/19 12:46:31.694 Module ZWave: Z-Wave serial queues: No packets to send!
03/13/19 12:46:33.545 MQTT Client: Error: No response received to packet: 3B3D0038686F6D65676561722F6F64726F69642F706C61696E2F362F312F5A57415645504C55535F494E464F2E5A2D574156452B5F56455253494F4E009831
03/13/19 12:46:33.547 Debug: MQTT packet received: 20020000
03/13/19 12:46:33.547 MQTT Client: Debug: Packet received: 20020000
03/13/19 12:46:33.547 MQTT Client: Debug: Received CONNACK.
03/13/19 12:46:33.547 MQTT Client: Info: Successfully connected to MQTT server using protocol version 4.
03/13/19 12:46:33.548 Info: Subscribing to topic homegear/odroid/rpc/#
03/13/19 12:46:33.548 MQTT Client: Debug: Sending: 821A009D0015686F6D65676561722F6F64726F69642F7270632F2301
03/13/19 12:46:33.549 Debug: MQTT packet received: 9003009D01
03/13/19 12:46:33.549 MQTT Client: Debug: Packet received: 9003009D01
03/13/19 12:46:33.549 MQTT Client: Debug: Received SUBACK.
03/13/19 12:46:33.549 Info: Subscribing to topic homegear/odroid/set/#
03/13/19 12:46:33.549 MQTT Client: Debug: Sending: 821A009E0015686F6D65676561722F6F64726F69642F7365742F2301
03/13/19 12:46:33.550 Debug: MQTT packet received: 9003009E01
03/13/19 12:46:33.550 MQTT Client: Debug: Packet received: 9003009E01
03/13/19 12:46:33.551 MQTT Client: Debug: Received SUBACK.
03/13/19 12:46:33.551 Info: Subscribing to topic homegear/odroid/value/#
03/13/19 12:46:33.551 MQTT Client: Debug: Sending: 821C009F0017686F6D65676561722F6F64726F69642F76616C75652F2301
03/13/19 12:46:33.552 Debug: MQTT packet received: 9003009F01
03/13/19 12:46:33.552 MQTT Client: Debug: Packet received: 9003009F01
03/13/19 12:46:33.552 MQTT Client: Debug: Received SUBACK.
03/13/19 12:46:33.552 Info: Subscribing to topic homegear/odroid/config/#
03/13/19 12:46:33.553 MQTT Client: Debug: Sending: 821D00A00018686F6D65676561722F6F64726F69642F636F6E6669672F2301
03/13/19 12:46:33.553 Debug: MQTT packet received: 900300A001
03/13/19 12:46:33.554 MQTT Client: Debug: Packet received: 900300A001
03/13/19 12:46:33.554 MQTT Client: Debug: Received SUBACK.
03/13/19 12:46:33.646 MQTT Client: Debug: Sending: 3B3D0038686F6D65676561722F6F64726F69642F706C61696E2F362F312F5A57415645504C55535F494E464F2E5A2D574156452B5F56455253494F4E009831
03/13/19 12:46:33.648 MQTT Client: Warning: Connection to MQTT server closed.

#2

Wie hast Du denn Homegear mit dem Broker verbunden? Funk oder Kabel?

ZWave funkt meines Wissens auch auf 868 MHz, genau wie Max!. Das dürfte aber nichts mit dem IP-Protokoll zum Broker zu tun haben.

Mit welchen Adaptern hast Du denn Max! und ZWave angebunden und wie sind diese konfiguriert?


#3

Homegear und Broker laufen auf dem selben System, siehe IP (127.0.0.1).

Genau, die Steuerung der Geräte funktioniert problemlos, ich kann mich nur nicht mit meinem Broker verbinden

Max! ist mit einem nanoCUL, ZWave mittels ZWave USB Stick, ich glaube von ZWay. Da die Steuerung, das Anlernen und sonst alles jedoch problemlos funktioniert, glaube ich nicht, dass das Problem hier liegt.


#4

Ach. Klar. Hast du mal die externe IP versucht?


#5

Also beide über USB. Kann es sein, dass die Reihenfolge der seriellen Geräte durcheinanderkommt?


#6

Die externe ist nicht freigegeben, der Broker funktioniert nur innerhalb des Netzwerks.
Allerdings sind drei weitere Geräte mit dem Broker verbunden und das klappt problemlos.

Wie gesagt, Steuerung etc. funktioniert problemlos. Es gibt keinen Fehler, dass er die USB Geräte, oder die MAX! / ZWave Geräte nicht ansprechen oder steuern kann. Der Fehler ist einzig, dass Homegear kein PUBACK nach dem publishen der Nachricht zum Broker bekommt und deshalb die Verbindung schließt.
Die Verbindung an sich besteht und funktioniert, siehe log.


#7

Natürlich. Aber doch nicht mit 127.0.0.1. Das ist localhost/loopback. Das funktioniert nur auf dem einen Gerät. Ich meinte die externe Adresse deines Netzwerkgerätes, nicht die öffentliche Adresse deines Netzwerkes.

Da du mit ipv4 arbeitest, hast du ipv6 überall deaktiviert?


#8

Nein, allerdings laufen deine Lösungsvorschläge darauf hinaus, dass ich gar keine Verbindung aufbauen kann.
Gemäß Log schafft er es jedoch, und wenn ich ZWave ausschalte bzw kein Gerät verbunden habe dann verbindet er sich sogar ohne Probleme, daher kann die Verbindung an sich nicht das Problem sein.


#9

Nein. Dein Problem ist, wenn ZWave an ist, funktioniert die IP-Verbindung nur teilweise/fehlerhaft.
Protokolle, die erstmal nichts miteinander zu tun haben.

Ich versuche zu ergründen, was an deine Einstellungen besonders ist, um dem Problem auf den Grund zu gehen. Entschuldige bitte, dass ich dir nicht einfach die Lösung präsentiere. :roll_eyes:


#10

So war das ja auch nicht gemeint, ich wollte nur vermeiden, dass wir uns falsch verstehen und aufs falsche Problem konzentrieren.

Besonders ist, dass er sich mit dem Server verbindet und auch mehrere Nachrichten published, er jedoch immer bei einer kein PUBACK vom Server bekommt.
Interessanterweise regelt sich das Problem nach mehreren hundert Versuchen und er stellt die Verbindung her.