MQTT Last Will – UNS Basics

Inhalt

Für die sichere Übertragung von Daten in einem Industrial Unified Namspace (UNS) ist eine stabile und zuverlässige Kommunikation entscheidend. Doch was geschieht, wenn ein Gerät unerwartet die Verbindung verliert? An dieser Stelle kommt MQTT Last Will ins Spiel. Im Folgenden wird die Funktionsweise dieses digitalen „Abschiedsbriefs“ genauer betrachtet.

 

Was ist MQTT Last Will?

Innerhalb des MQTT-Protokolls fungiert ein MQTT Last Will als eine Art Sicherheitsnetz für den Fall, dass ein Client die Verbindung zum Broker unbeabsichtigt verliert (Disconnect). Es handelt sich dabei um eine spezielle Nachricht, die der Client beim Verbindungsaufbau beim Broker hinterlegt. Sollte der Client die Verbindung dann unvorhergesehen verlieren, übernimmt der Broker die Verantwortung und veröffentlicht diese Last Will Nachricht im Namen des Clients. In MQTT sind ungeplante Disconnets wie folgt spezifiziert:

  1. I/O-Fehler oder Netzwerkfehler: Der Broker stell Probleme mit der Ein-/Ausgabe oder der Netzwerkverbindung fest.
  2. Fehlgeschlagene Kommunikation innerhalb des Keep-Alive-Zeitraums: Der Client antwortet nicht innerhalb des festgelegten Keep-Alive-Zeitraums.
  3. Client schließt die Verbindung ohne DISCONNECT: Der Client beendet die Netzwerkverbindung, ohne ein DISCONNECT-Paket zu senden.
  4. Broker schließt die Verbindung aufgrund eines Protokollfehlers: Der Broker schließt die Netzwerkverbindung aufgrund eines Protokollfehlers.
  5. DISCONNECT Message mit dem return code „disconnect-with-will-message“: Ein Client beendet die Verbindung mit spezieller Last Will Message, nur für MQTT v5.0.

 

Wie funktioniert MQTT Last Will?

Die Unterscheidung zwischen geplanten und ungeplanten Disconnects erfolgt durch das MQTT-Disconnect-Paket. Ein sauberer Disconnect durch den Client beinhaltet dieses Disconnect-Paket, während ein unerwarteter Verbindungsabbruch das Paket nicht enthält. Bei erkanntem unerwartetem Verbindungsabbruch sendet der Broker die Last Will Nachricht an alle Subscriber. Dabei speichert der Broker das MQTT Last Will des Clients, bis der Client geplant die Verbindung trennt.

MQTT Last Will Message
Dieser Mechanismus ermöglicht eine klare Unterscheidung zwischen geplanten und ungeplanten Verbindungsabbrüchen. Während ein Client bei einem geplanten Disconnect eine Nachricht auf einem bestimmten Topic senden kann, um seinen Status zu kommunizieren, signalisiert die Veröffentlichung des MQTT Last Will durch den Broker einen unerwarteten Ausfall. Dabei ist ein MQTT Last Will eine reguläre Nachricht mit allen üblichen Attributen wie QoS, Retained-Flag und Topic.

 

Einsatz im Unified Namespace (UNS)

Der Einsatz eines MQTT Last Will bietet im Kontext des Unified Namespace (UNS) die folgenden zwei Vorteile.

1. Zuverlässigkeit

  • Topics werden nicht in einem undefinierten Zustand belassen, wenn ein Client die Verbindung verliert.
  • Zudem werden andere Clients benachrichtigt, wenn ein Client unerwartet ausfällt.
  • Beispiel: Ein Gerät sendet regelmäßig seinen Status auf ein Topic innerhalb des UNS. Im Falle eines unerwarteten Ausfalls veröffentlicht der Broker das MQTT Last Will des Geräts, das eine „Offline“-Nachricht auf einem entsprechenden Status-Topic enthält. Diese Nachricht kann als Retained-Nachricht markiert werden, sodass auch neue Clients, die sich später verbinden, über den Offline-Status des Geräts informiert werden. Somit ist die Statusmeldung sehr zuverlässig und kritische Use-Cases können diese Information nutzen.

2. Statusverfolgung im UNS

  • Das MQTT Last Will kann verwendet werden, um den Status eines Systems im UNS zu aktualisieren, wenn das System offline geht.
  • Dies ermöglicht es anderen Clients, angemessen auf den Ausfall zu reagieren und gegebenenfalls Maßnahmen zu ergreifen.
  • Beispiel: Nutzen Sie die Möglichkeit, Last Will Messages als Indikator für abgelaufene Sessions zu verwenden, indem Sie das Will Delay Interval größer als das Session Expiry Interval setzen. Dies ermöglicht eine frühzeitige Erkennung inaktiver Clients, selbst bei einem kontrollierten Disconnect (mittels DISCONNECT-Paket und Reason Code 0x04).

 

Fazit

Das MQTT Last Will ist ein leistungsstarkes Werkzeug, um die Zuverlässigkeit und Statusverfolgung in MQTT-basierten Systemen zu gewährleisten. Insbesondere im Kontext des Unified Namespace ermöglicht es eine klare Kommunikation über den Zustand von Geräten und Komponenten, selbst wenn diese unerwartet ausfallen.

Über i-flow: i-flow ist ein Unternehmen für industrielle Software mit Sitz in Süddeutschland. Wir bieten produzierenden Unternehmen die weltweit intuitivste Software zur Vernetzung von Fabriken. Täglich über 400 Millionen Datenoperationen in produktionskritischer Umgebung demonstrieren nicht nur die Skalierbarkeit der Software, sondern auch das tiefe Vertrauen, das unsere Kunden in i-flow setzen. Unser Erfolg basiert auf enger Zusammenarbeit mit Kunden und Partnern weltweit, darunter namhafte Fortune-500-Unternehmen und Branchenführer wie Bosch.

Jetzt selbst ausprobieren - Kostenlose Testversion

Überzeugen Sie sich in einem Test selbst von den unbegrenzten Möglichkeiten, die Sie mit i-flow erhalten. Jetzt 30 Tage kostenfrei testen, auf Ihren Systemen.

Ihre Frage wurde nicht be­antwortet? Kontaktieren Sie uns.

Es gilt unsere Datenschutzerklärung.

Ihr Kontakt:

Marieke Severiens (i-flow GmbH)
content@i-flow.io