MQTT reconnect wenn Broker weg ist

Chris

New member
Hallo zusammen,

ich habe seit letzter Woche den Nano und bin äusserst angetan!

Ich versuche nun das Wunderding via MQTT mit FHEM im Gespann zum Laufen zu bekommen und stolpere über eine Eigenheit, die mir das Testen doch arg erschwert. Wenn der Broker einmal weg ist (was z.B. immer der Fall ist wenn man in FHEM die Konfig ändert und einen "reread" = Neustart macht), dann verliert der Nano dauerhaft die Verbindung. Er macht keinen automatischen reconnect wenn der Broker wieder da ist sondern sendet einfach nicht mehr. Nur aus- und wieder Einschalten des Nano hilft.

Übersehe ich hier etwas? Oder ist ein Auto-reconnect nicht spezifiziert oder umgesetzt? Falls letzteres - das wäre noch ein grossartige Ergänzung, auch vor dem Hintergrund, dass ja auch nur die Netzwerkverbindung mal weg sein könnte...

Danke schonmal, Chris
 

s.ochs

BOFH
Hi Chris, erstmal schön zu hören, dass dir das Nano gefällt 👍

Zum Auto-Reconnect bei mqtt: Ich habe eigentlich einen Auto-Reconnect bei Verlust der Verbindung eingebaut, allerdings mit einer Verzögerung von aktuell 300s, damit es nicht zu einer ständigen Disconnect-Connect-Schleife kommt. Kann jetzt sein, dass du so lange nicht gewartet hast oder, dass ich noch einen Fehler in der Programmierung habe. Dann müsstest du mal die Serielle Schnittstelle für ein LOG mitlaufen lassen und mir schicken, dann können wir uns das mal ansehen.

Gruß
Steffen
 

Chris

New member
Hi Steffen,

ich habe es eben getestet - leider findet auch nach deutlich über 5 Minuten kein automatischer reconnect statt.
Wenn Du mir sagst, wie ich das Logging anschalte, kann ich das gerne nochmal mit Log testen.

Insgesamt wäre es super, wenn man entweder die reconnect-Zeit individuell setzen könnte oder wahlweise einen Reconnect-Button in der Weboberfläche hätte - die 300s sind beim Testen doch arg lang und auf Dauer geht das wiederholte Ein- und Ausschalten auf den Schiebeschalter.

(Für's Verständnis - warum kann der Nano nicht einfach, sozusagen "asynchron", weiter im festgelegten Zyklus die MQTT Messages senden - unabhängig davon, ob der Broker da ist? Braucht es tatsächlich einen echten Reconnect?)

Gruß,
Chris
 

Phantomias2006

Entwickler
Hi Steffen,

ich habe es eben getestet - leider findet auch nach deutlich über 5 Minuten kein automatischer reconnect statt.
Wenn Du mir sagst, wie ich das Logging anschalte, kann ich das gerne nochmal mit Log testen.

Insgesamt wäre es super, wenn man entweder die reconnect-Zeit individuell setzen könnte oder wahlweise einen Reconnect-Button in der Weboberfläche hätte - die 300s sind beim Testen doch arg lang und auf Dauer geht das wiederholte Ein- und Ausschalten auf den Schiebeschalter.

(Für's Verständnis - warum kann der Nano nicht einfach, sozusagen "asynchron", weiter im festgelegten Zyklus die MQTT Messages senden - unabhängig davon, ob der Broker da ist? Braucht es tatsächlich einen echten Reconnect?)

Gruß,
Chris
Den reconnect „Button“ hast du... DEINE-IP/reboot
🤪

Edit: Steffen sagt: DEINE-IP/restart
 
Zuletzt bearbeitet:

s.ochs

BOFH
Fast ;)

IP/restart
Post automatically merged:

(Für's Verständnis - warum kann der Nano nicht einfach, sozusagen "asynchron", weiter im festgelegten Zyklus die MQTT Messages senden - unabhängig davon, ob der Broker da ist? Braucht es tatsächlich einen echten Reconnect?)
Ohne Gegenstelle "hängt" sich der Sendeprozess auf und blockt den ESP komplett. Die komplette WiFi-Übertragung läuft beim ESP ja "neben" dem eigentlichen Hauptprozess (Single-Core), sobald da was nicht passt, ist der ESP nur noch am Resetten.

ich habe es eben getestet - leider findet auch nach deutlich über 5 Minuten kein automatischer reconnect statt.
Wenn Du mir sagst, wie ich das Logging anschalte, kann ich das gerne nochmal mit Log testen.

Insgesamt wäre es super, wenn man entweder die reconnect-Zeit individuell setzen könnte oder wahlweise einen Reconnect-Button in der Weboberfläche hätte - die 300s sind beim Testen doch arg lang und auf Dauer geht das wiederholte Ein- und Ausschalten auf den Schiebeschalter.
Dank dir fürs Testen. Ich hau gleich (in 1 - 2h) mal das Update v1.0.2 raus, da setz ich den Auto-Reconnect runter auf 30s. Im Normalfall setzt der Broker ja nicht ständig aus. Fürs Log verbindest du dein Nano mit einem PC/Mac und öffnest die Serielle Schnittstelle, z.B. mit Putty, siehe hier: Link
Die Serielle Ausgabe lässt du einfach mitlaufen. Bei Verbindung zum Broker solltest du ein "c:MQTT" im Log sehen, sobald der Broker wegfällt dann ein "d:MQTT". Wenn der Reconnect einsetzt solltest du ein "t:MQTT" sehen, im Idealfall dann gefolgt von "c:MQTT".

Wenn das Update da ist, sag ich dir nochmal Bescheid.
 
Zuletzt bearbeitet:

s.ochs

BOFH
So, bitte mal testen: Softwareversion v1.0.2
Das Update startest du mit IP/update im Browser und dann die Version eintragen und starten. Ich habe den kompletten mqtt-Verbindungsprozess nochmal überarbeitet. An meinem Broker klappt der Auto-Reconnect nach 30 s, also bitte mal schauen, ob es bei dir auch geht. So lang mqtt aktiviert ist, führt das Nano jetzt alle 30 s einen Verbindungsversuch aus, bis eine Verbindung steht. Das mit dem LOG brauchst du dann nur noch, wenn der Auto-Reconnect bei dir nicht klappen sollte.
 
Oben Unten