Schlanke Protokolle im LPWAN: MQTT, CoAP und LwM2M

Ein wichtiger Faktor für den Energieverbrauch eines IoT-Devices ist die Menge an Daten, die bei jeder Kommunikation übertragen werden. Je mehr Daten, desto länger muss das Gerät aktiv bleiben und desto größer ist der Stromverbrauch. Neben netzbasierten Methoden wie PSM und eDRX, die auf Netzebene die Aktivitätsintervalle eines Gerätes bestimmen, lässt sich mit der Wahl des richtigen Kommunikationsprotokolls ebenso ordentlich Energie einsparen und PSM oder eDRX vielleicht sogar überflüssig machen.


Blogreihe "Stromsparen im mobilen LPWAN"


Im Gegensatz zu PSM und eDRX, dessen Funktionen individuell vom Netzbetreiber abhängen, ist die Wahl des Kommunikationsprotokolls unabhängig davon und gilt universell. Eine gute Voraussetzung für die Skalierung eines Produkts sowie den Massenrollout, denn dem Entwickler kann es am Ende egal sein, welche SIM-Karte und welcher Netzanbieter am Ende verwendet wird.


MQTT: Schlank, aber nicht schlank genug

Das Message Queuing Telemetry Transport (MQTT) Protokoll wurde bereits 1999, lange bevor überhaupt vom Internet der Dinge sprach, für den Einsatz im Bereich Maschine-zu-Maschine (M2M) Kommunikation konzipiert. Es ist heute ein Standardprotokoll für die Gerätekommunikation. Für den Datentransport nutzt MQTT das Transport Control Protocol (TCP). Die Kommunikation funktioniert dabei nach dem Client/Server-Modell. Das IoT Gerät ist dabei der Client und spricht mit einem als „Broker“ gekennzeichneten Server, beispielsweise ein Cloud-Service, wie er auch von Amazon Web Service (AWS) bereitgestellt wird.

Ein Kernelement von MQTT ist es, seine Daten über so genannte „Themen“ zu organisieren. Das Thema ist eine Zeichenfolge, die hierarchisch sortiert wird. In unserem Beispiel der Wetterstation könnte z.B. „ weatherstation_a/temperature/ground “ für den Temperatursensor der Wetterstation A am Boden stehen, während „ weatherstation_a/temperature/air “ für einen Temperatursensor der Luft derselben Wetterstation stehen würde. Je nachdem, welcher Wert nun abgerufen werden soll, können die Applikationen diese Themen abonnieren und die dort hinterlegten Daten abrufen.

Der Nachteil dieser Zeichenfolgen: Sie können lang werden und damit steigt auch die Menge an Daten, die der Sensor überträgt. Bei einfachen Sensoren bei denen Rechenpower und Energieverbrauch streng limitiert sind, kann diese Architektur zum Problem werden, denn sie ist immer noch zu verschwenderisch.


CoAP: Schlanker auch dank UDP

Das „Constrained Application Protocol“ (CoAP) geht mit seinen Ressourcen sparsamer um. Anders als MQTT setzt es auf das „User Datagram Protocol“ (UDP). UPD ist im Gegensatz zu TCP ein verbindungsloses, paketorientiertes Protokoll. Während bei TCP alle Datenpakete nummeriert beim Empfänger ankommen und der Empfang bestätigt werden muss, bevor das nächste Datenpaket auf die Reise geht, schickt UDP die Datenpakete alle hintereinander los, ohne zusätzliche Fehlerkontrolle. Das spart Aufwand, Zeit und Energie.

CoAP eignet sich also überall dort, wo Geräte stark auf ihren Ressourcenverbrauch achten müssen. So verfügen Batterie-betriebene Geräte in der Regel über einfache Hardware mit wenig Rechenleistung. Sie sollen auch keine komplexen Rechenoperationen durchführen, sondern gesammelte Daten möglichst simpel und schnell an ihr Ziel befördern und dabei so wenig Energie wie möglich verbrauchen.


LwM2M: Der Newcomer auf CoAP Basis

Mit Lightweight M2M (LwM2M) hat man auf die Nachfrage im Markt für einen gemeinsamen Standard für das Management von stromsparenden Geräten im Internet der Dinge reagiert. Entwickelt wurde LwM2M von der Open Mobile Alliance und ist noch recht jung. LwM2M wurde erstmals im Februar 2017 vorgestellt.


Was ist LwM2M?

Lightweight M2M basiert auf CoAP und vereinfacht und standardisiert das Gerätemanagement im Internet der Dinge. Es ist also nicht nur für die Nachrichtenübermittlung konzipiert, sondern beinhaltet auch Elemente zur Geräteverwaltung.

Für den Informationsaustausch zwischen Gerät und Plattform verwendet LwM2M ein standardisiertes und vom jeweiligen Gerätehersteller unabhängiges Datenmodell. Das Modell ist hierarchisch in drei Objekt-Ebenen eingeteilt: Objekt, Objekt-Instanz und Ressource. Jedes Objekt bekommt eine eindeutige ID zugeteilt, die dann zu einem Pfad und einer CoAP URL kombiniert werden.

Lightweight M2M ist die moderne Antwort auf das doch in die Jahre gekommene MQTT. Trotzdem wird LwM2M noch nicht vollständig von relevanten IoT-Cloud-Plattformen wie AWS oder Azure unterstützt. Anders als MQTT, bei dem es nur um die reine Nachrichtenübermittlung geht, kann LwM2M mehr:

  1. Sicheres Bootstrapping: Der Mechanismus, um ein Gerät sicher und mit allen notwendigen Schlüsseln und Zertifikaten mit der Management Plattform zu verbinden.

  2. Fernwartung: Die Möglichkeit, das Gerät aus der Ferne zu konfigurieren oder bestimmte Funktionen auszuführen.

  3. Firmware Update: Die Durchführung einer sicheren Aktualisierung der Firmware über das Netz (Over-the-Air-Update) um das Gerät mit neuen Funktionen zu versorgen oder Funktionsfehler zu korrigieren.

  4. Fehlermanagement: Dem Gerät ermöglichen, Fehlfunktionen zu melden.

  5. Reporting: Die Möglichkeit, Statusveränderungen zu melden und Abfragen aktueller Konfigurationseinstellungen zu ermöglichen.


Man kann sich LwM2M in etwa so wie einen Webbrowser vorstellen, der aus dem reinen HTTP-Transportprotokoll zusätzliche Mehrwertdienste ermöglicht. CoAP, die Kommunikationsgrundlage von LwM2M, ist gar nicht so weit vom Hypertext Transfer Protokoll (HTTP) entfernt.

Im dritten Teil unserer Blogreihe erfahren Sie, wie sich die Verwendung schlanker Protokolle auf den Energieverbrauch auswirkt.