Logo
Lisa Schneider
Der Lichtbefehl kommt per App an, der Sensorwert aber fehlt. Beides lief über denselben Broker, doch nur eine Nachricht hat überlebt.

Ein Temperatursensor meldet Lücken im Verlauf, etwa wenn die WLAN-Verbindung kurz abbricht. Der Schaltbefehl an die Steckdose kommt dagegen zuverlässig an, manchmal sogar doppelt.

MQTT heißt das Protokoll, über das IoT-Geräte Nachrichten austauschen. Geräte senden und empfangen dabei nicht direkt untereinander, sondern immer über einen zentralen Broker, der alle Nachrichten annimmt und verteilt. Jede Nachricht bekommt eine QoS-Stufe mit: QoS steht für Quality of Service und legt fest, wie stark sich Absender und Broker um die Zustellung bemühen. Der Unterschied zwischen Sensorwert und Befehl entsteht also schon beim Senden, nicht zufällig unterwegs.

Ein Sensor veröffentlicht alle paar Minuten den Wert im Topic wohnzimmer/temperatur, etwa mit QoS 0. QoS 0 sendet die Nachricht und vergisst sie: Ohne Bestätigung bleibt eine verlorene Nachricht verloren. Weil die nächste Messung bald folgt, ist das verschmerzbar. Der Schaltbefehl an die Steckdose geht mit QoS 1: Der Broker bestätigt jede Nachricht, und fehlt die Bestätigung, sendet der Client erneut. So kommt der Befehl mindestens einmal an, Duplikate sind möglich. Damit ein Duplikat nicht doppelt schaltet, setzt der Empfänger einen Zielszustand statt eines Zählschritts. QoS 2 liefert genau einmal, braucht dafür aber einen vierstufigen Handshake mit mehr Zeit und Volumen.

So prüft man es: Im Log des Clients die QoS-Stufe neben jedem Publish und Subscribe nachsehen. Dann gezielt die Verbindung unterbrechen und zählen, welche Nachrichten ankommen.

QoS heißt nicht „besser ist immer höher“, sondern „passend zum Inhalt“. Messwerte dürfen fehlen, Befehle müssen ankommen.

📌 QoS 0/1/2 · Broker · Duplikate

📚 IoT von Grund auf · Tag 5 von 30
#mqtt #iot #esp32
16 Std vor

Noch keine Antworten!

Es scheint, dass diese Veröffentlichung noch keine Kommentare enthält. Um auf diese Veröffentlichung von Lisa Schneider zu antworten, klicken Sie unten darunter auf