MQTT2 zeigt LWT offline das Device ist aber alive

Begonnen von Pulsar07, 12 September 2023, 09:21:39

Vorheriges Thema - Nächstes Thema

Pulsar07

Habe mehrere unterschiedliche selber gebaute Devices auf Basis von ESP8266, die alle LWT implementiert haben. Nutze die MQTT-PubSubClient-Library in der aktuellsten Version (was nicht viel heißt) und den MQTT2 Server.

Habe in der letzten Zeit immer mal wieder den Effekt, dass im FHEM ein Device als offline angezeigt wird, obwohl das Device normal arbeitet. Also lediglich das LWT Reading geht nach offline. Die Devices laufen danach absolut problemlos weiter und alle Werte werden per MQTT übertragen und aktualisiert, nur das LWT reading bleibt auf offline stehen !?
 
Mir ist nicht klar, wovon der LWT State im Server abhängt. Wird bei MQTT nur ein spezieller "MQTT heartbeat" zur State-Auswertung herangezogen. 

Es ist auch echt seltsam, dass ich dieses Verhalten bisher nie gesehen habe.

Vielleich kann jemand von Euch etwas Licht ins Dunkel bringen.

Gruß Rainer

PatrickR

Hi,

LWT setzt das Topic auf den gewünschten Wert, wenn der Broker die Verbindung zum Gerät verliert. Wenn die Verbindung wieder da ist, ändert der Broker nichts.

Das Topic wieder auf ok/online usw. zu setzen musst Du selbst erledigen und auch auf retain achten.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Pulsar07

Hi Patrik,

das ist es !!! Habe aus komplett aus den Augen verloren, dass man das "willTopic" (so in der PubSubClient-Lib genannt) explizit auf den "online"-Wert setzten muss. Da die Devices per WLAN und schlechten Empfangsbedingungen im Keller auch mal die Verbindung verlieren können, muss der Wert beim reconnect auch wieder auf "online" gesetzt werden.
Bin davon ausgegangen, dass das der Server macht, aber eigentlich vollkommen klar, das er das gar nicht machen kann. Der kennt diesen Wert ja gar nicht !!!

Herzlichen Dank

Gruß Rainer