NEWS
MQTT-Adapter 8.1.2: Regelmäßiger ECONNRESET
-
Hallo zusammen,
ich beobachte wiederkehrende Verbindungsabbrüche meines ioBroker-MQTT-Adapters zu EMQX Cloud und suche nach einer technischen Erklärung.
Umgebung:
iobroker.mqtt 8.1.2
Node.js v24.22.1, js-controller 7.2.5
EMQX Cloud, MQTT über TLS auf Port 8883
Client-ID: womoraspi
Fehlerbild:
18:05:46.855 Reconnected to ...
18:05:46.956 Connected to ...
18:22:27.103 Client error: Error: read ECONNRESETDer Abbruch erfolgt damit rund 1.000 Sekunden nach erfolgreicher Wiederverbindung. Ähnliche Zeitabstände traten wiederholt auf. Bei einem Messintervall von einer Minute ist der Fehler während meiner bisherigen Beobachtung nicht aufgetreten; nach Umstellung auf zehn Minuten trat er erneut auf. Ein kausaler Zusammenhang ist noch nicht bewiesen.
Zum Vergleich lief ein Python-Testclient mit Paho, TLS und Keep-Alive 60 Sekunden über mehr als drei Stunden stabil. Dieser Testclient hat allerdings keine Topics abonniert und keine Nachrichten veröffentlicht.
Meine Fragen:
**Ist ein solches periodisches ECONNRESET bei dieser Adapter-/Node.js-Version bekannt?
Gibt es im Adapter oder in MQTT.js einen Timeout bzw. Verbindungsmechanismus, der einen Abbruch nach ungefähr 1.000 Sekunden erklären könnte?**
Wie lässt sich zuverlässig feststellen, ob EMQX die Verbindung beendet oder ob der TCP-Reset auf Client- bzw. Netzwerkseite entsteht?
Ich möchte zunächst die Ursache eingrenzen, bevor ich Einstellungen ändere. Für Hinweise zu relevanten Debug-Logs, Adapteroptionen oder bekannten Issues wäre ich dankbar.
Viele Grüße
(von KI Auswertung erstellt !)
-
-
Mir geht es in diesem Beitrag um eine konkrete technische Frage zum MQTT-Adapter und den wiederkehrenden
ECONNRESET-Fehlern. Die Zeitpunkte und Protokolle habe ich nachvollziehbar dokumentiert.Ich nutze KI als Unterstützung bei der Recherche. Entscheidend ist jedoch die technische Ursache des Problems.
Wer dazu konkrete Hinweise oder eigene Erfahrungen hat, ist herzlich eingeladen, diese beizutragen. Eine Diskussion über den Einsatz von KI hilft bei der eigentlichen Fragestellung hingegen nicht weiter.
-
-
Mir geht es in diesem Beitrag um eine konkrete technische Frage zum MQTT-Adapter und den wiederkehrenden
ECONNRESET-Fehlern. Die Zeitpunkte und Protokolle habe ich nachvollziehbar dokumentiert.Ich nutze KI als Unterstützung bei der Recherche. Entscheidend ist jedoch die technische Ursache des Problems.
Wer dazu konkrete Hinweise oder eigene Erfahrungen hat, ist herzlich eingeladen, diese beizutragen. Eine Diskussion über den Einsatz von KI hilft bei der eigentlichen Fragestellung hingegen nicht weiter.
Wer dazu konkrete Hinweise oder eigene Erfahrungen hat, ist herzlich eingeladen, diese beizutragen. Eine Diskussion über den Einsatz von KI hilft bei der eigentlichen Fragestellung hingegen nicht weiter.
Da stimme ich dir voll zu. Das sollte auch keine solche Diskussion werden. Ich habe @bluefox explizit gepingt da er den Adapter am besten kennt und da helfen kann. das war der Zweck meines Postings. Der letzte Satz war explizit Kursiv markiert da er nur darauf anspielen sollte dass die intensiv im Entwicklungsbereich eingesetzte AI ev- auch was beitragen kann um das Problem zu lösen.
Also ganz kalr - keinerlei Kritik an dir oder deinen Werkzeugen. Sorry, wenn das falsch ankam.
Und Danke für die deine ausführlichen Infos. -
Hallo zusammen,
ich beobachte wiederkehrende Verbindungsabbrüche meines ioBroker-MQTT-Adapters zu EMQX Cloud und suche nach einer technischen Erklärung.
Umgebung:
iobroker.mqtt 8.1.2
Node.js v24.22.1, js-controller 7.2.5
EMQX Cloud, MQTT über TLS auf Port 8883
Client-ID: womoraspi
Fehlerbild:
18:05:46.855 Reconnected to ...
18:05:46.956 Connected to ...
18:22:27.103 Client error: Error: read ECONNRESETDer Abbruch erfolgt damit rund 1.000 Sekunden nach erfolgreicher Wiederverbindung. Ähnliche Zeitabstände traten wiederholt auf. Bei einem Messintervall von einer Minute ist der Fehler während meiner bisherigen Beobachtung nicht aufgetreten; nach Umstellung auf zehn Minuten trat er erneut auf. Ein kausaler Zusammenhang ist noch nicht bewiesen.
Zum Vergleich lief ein Python-Testclient mit Paho, TLS und Keep-Alive 60 Sekunden über mehr als drei Stunden stabil. Dieser Testclient hat allerdings keine Topics abonniert und keine Nachrichten veröffentlicht.
Meine Fragen:
**Ist ein solches periodisches ECONNRESET bei dieser Adapter-/Node.js-Version bekannt?
Gibt es im Adapter oder in MQTT.js einen Timeout bzw. Verbindungsmechanismus, der einen Abbruch nach ungefähr 1.000 Sekunden erklären könnte?**
Wie lässt sich zuverlässig feststellen, ob EMQX die Verbindung beendet oder ob der TCP-Reset auf Client- bzw. Netzwerkseite entsteht?
Ich möchte zunächst die Ursache eingrenzen, bevor ich Einstellungen ändere. Für Hinweise zu relevanten Debug-Logs, Adapteroptionen oder bekannten Issues wäre ich dankbar.
Viele Grüße
(von KI Auswertung erstellt !)
@franzda Im Adapter gibt es keinen Timer, der nach etwa 1000 s etwas macht. Der Client übergibt an MQTT.js nur
keepalive(Standard 10 s),reconnectPeriod(Standard 10 s),connectTimeout(Standard 30 s),cleanundrejectUnauthorized. Ein ECONNRESET heißt, dass von außen ein TCP-RST gekommen ist. MQTT.js oder der Adapter beenden die Verbindung in so einem Fall sauber und erzeugen kein RST. Der Reset kommt also vom Broker oder von etwas auf dem Weg dorthin.Fragen bzw. Ansätze:
- Welcher Wert steht bei dir in den Instanzeinstellungen bei Keep-Alive? Wenn er deutlich höher als 60 ist und nur alle 10 Minuten etwas gesendet wird, passt das gut zu deiner Beobachtung (1 Minute stabil, 10 Minuten nicht). Ein NAT oder Mobilfunk-Gateway (der Name "womoraspi" klingt nach Wohnmobil und LTE) wirft untätige Verbindungen gern nach einer festen Zeit raus. Stell testweise 30 oder 60 ein, so wie bei deinem Paho-Test.
- Hat der Paho-Test eine andere Client-ID benutzt? Wenn irgendwo ein zweiter Client mit
womoraspiverbindet, wirft EMQX die alte Session raus (Takeover). - Am zuverlässigsten siehst du es in der EMQX-Cloud-Konsole: Dort steht beim Client das Ereignis zum Disconnect mit Grund (z. B. keepalive_timeout, takenover, kicked). Steht da nichts oder nur ein unspezifischer Socket-Fehler, liegt es eher am Netzwerk.
- Auf dem Pi selbst mitschneiden, dann siehst du, wer das RST schickt und ob vorher PINGREQ/PINGRESP laufen:
sudo tcpdump -i any -nn port 8883 -w mqtt.pcapDazu die Instanz auf Loglevel debug stellen und die Zeilen rund um den nächsten Abbruch als Text posten.
-
Wer dazu konkrete Hinweise oder eigene Erfahrungen hat, ist herzlich eingeladen, diese beizutragen. Eine Diskussion über den Einsatz von KI hilft bei der eigentlichen Fragestellung hingegen nicht weiter.
Da stimme ich dir voll zu. Das sollte auch keine solche Diskussion werden. Ich habe @bluefox explizit gepingt da er den Adapter am besten kennt und da helfen kann. das war der Zweck meines Postings. Der letzte Satz war explizit Kursiv markiert da er nur darauf anspielen sollte dass die intensiv im Entwicklungsbereich eingesetzte AI ev- auch was beitragen kann um das Problem zu lösen.
Also ganz kalr - keinerlei Kritik an dir oder deinen Werkzeugen. Sorry, wenn das falsch ankam.
Und Danke für die deine ausführlichen Infos.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden