You are currently viewing Verständnis von MQTT Retained Messages.

Verständnis von MQTT Retained Messages.

Das Verhalten von Retain-Nachrichten in MQTT besteht darin, dass wenn ein MQTT-Client ein Topic mit Payload veröffentlicht, der MQTT-Broker diesen Payload so lange behält, bis er mit einem neuen Payload geändert wird.

Die Vorteile von MQTT Retain Nachrichten bestehen darin, dass jeder Abonnent, der das Topic abonniert, die zuletzt aktualisierte Nutzlast abonniert, auch wenn der Publisher die Nutzlast nicht kontinuierlich auf demselben Topic veröffentlicht. Wenn also die Nutzdaten zurückgehalten werden und ein beliebiger Teilnehmer dasselbe Topic abonniert, erhält er die zuletzt aktualisierten Nutzdaten.

Beispiel: Ein Temperatur sensor, der an einen ESP32 Mikrocontroller angeschlossen ist, und der ESP32 arbeitet als MQTT Client und veröffentlicht die Sensorwerte stündlich an den MQTT-Broker im Topic „LM35“ mit dem Retain-Flag. Wenn ein anderer MQTT Client, z.B. ‚MqttDesk‘, das gleiche Topic zwischen den Veröffentlichungsstunden abonniert, erhält er den Sensorwert, der bereits im Topic ‚LM35‚ gespeichert ist.

Im folgenden Video erfahren Sie mehr über die MQTT Retain-Nachrichten und wie man sie löscht und wie sie funktionieren.

MQTT QoS (Quality of Service) hat keinen Einfluss auf MQTT Retained Messages.

Wie kann man das Retain-Flag aus dem Topic löschen?

Wir können eine Null-Nutzlast zum Thema ‚LM35‚ veröffentlichen und diese Null-Nutzlast wird das Retain Flag vom Thema vom MQTT Broker löschen. Wenn nun ‚MqttDesk‚ das Topic ‚LM35‘ abonniert, wird es nichts erhalten, aber das nächste Mal, wenn ‚ESP32‚ das Topic veröffentlicht, die Nutzlast erhalten.

Schreibe einen Kommentar