Schwerpunkte

Lightweight M2M-Protokoll

Ohne viel Overhead ins IoT

13. April 2021, 09:30 Uhr   |  Marcel Graber, steinel.ch

Ohne viel Overhead ins IoT
© metamorworks | Shutterstock

Wie werden Geräte am besten mit dem Internet of Things verbunden? – Das weniger bekannte Lightweight-M2M-Protokoll verbindet den passenden Funktionsumfang mit geringem Overhead und sorgt so für die Schonung des Akkus batteriebetriebener Geräte.

Projekte im Industrial- und Consumer-IoT-Umfeld sind spannend und vielfältig. Viele Disziplinen gleichzeitig sind gefragt: Hardware- und Antennendesign, Industrialisierung, Kommunikation, LowPower, Visualisierung und Steuerung, Cloud-Integration, Firmware-Entwicklung, Updates und vieles mehr. Der Technologie-Mix wächst stetig und viele Standards und Allianzen kämpfen um Marktanteile. Ein bislang noch nicht so bekanntes Protokoll ist das LwM2M – das Lightweight Machine-to-Machine-Protokoll.

Wächst ein Projekt über die Phase des Prototyps hinaus, stellen sich in einem IoT-Projekt Fragen, die das gesamte Design und die Kosten maßgeblich beeinflussen können:

  • Wie werden die Geräte bei der Produktion automatisch initialisiert (Bootstrapping)?
  • Wie wird eine neue Firmware auf dem IoT-Gerät installiert?
  • Wie können die Remote Devices zentral gesteuert, zum Beispiel aktiviert oder deaktiviert werden?
  • Was passiert mit den Daten, wenn ein IoT-Gerät gerade schläft?
  • Gibt es Standards zum Übertragen von Sensordaten, so dass diese ohne Anpassungen an einer bestehenden Serverumgebung einfach getauscht oder ergänzt werden können?
  • Wie können Daten zwischen IoT-Gerät und Server sicher übertragen werden?

Glücklicherweise muss das Rad nicht neu erfunden werden. LwM2M, ein Standard für M2M-Kommunikation, liefert Antworten auf diese Fragen und vieles mehr.

Spezialfall Machine-to-Machine

Machine-to-Machine, oder kurz M2M, ist ein automatisierter Informationsaustausch zwischen verschiedenen Endgeräten. Sensoren und Aktoren kommunizieren über verschiedene Zugangsnetze (wie Mobilfunk, Bluetooth, WiFi, 802.15.4) mithilfe des Internets mit einem Server (Leitstelle/SCADA, Cloud, Datenbank, Workflow-Engine).

Eine M2M-Kommunikation ist eine Punkt-zu-Punkt Verbindung. Ein Temperatursensor sendet über das Mobilfunknetz seine Daten in eine Datenbank und kommuniziert so direkt mit dem Datenbankserver. IoT-Kommunikation kann aber auch in einem Verbund direkt funktionieren. Als Beispiel kann eine Leuchte mit integriertem Bewegungssensor einen Steuerbefehl an Leuchten derselben Leuchtengruppe weitersenden und diese einschalten. Gerade im industriellen Umfeld ist M2M das zentrale Thema. Ausgeklügelte Prozesse, Machine-Learning und Visualisierungen laufen auf einer zentralen Infrastruktur, an welche IoT-Devices über M2M Daten ausgetauscht werden.

Leichtgewichtig, aber trotzdem funktionsstark

LwM2M ist ein M2M-Protokoll mit Fokus auf IoT-Devices: Sichere, sparsame Datenübertragung, LowPower und Fehlertoleranz sind dabei zentrale Designanforderungen. Viele der aktuellen Funkmodule (WiFi, LTE, NB-IoT, Cat-M, ...) unterstützen bereits LwM2M. Durch diese Unterstützung ist ein Projekt mit industriellen Anforderungen sehr schnell umgesetzt. Vielfach ist die Integration von LwM2M aus Sicht des Firmware-Entwicklers reduziert auf ein paar Zeilen AT-Befehle.

LwM2M nutzt UDP und COAP als Transportprotokolle. Die Verschlüsslung der Daten erfolgt mittels DTLS. Der LwM2M-Standard definiert Ressourcen, welche im Stil einer Internet-Webadresse (REST) adressiert werden und Operatoren wie Read, Write, Execute, Observe usw. um mit diesen Ressourcen umzugehen (siehe Kasten).

Registriert sich ein IoT-Device am Server, meldet es, welche Objekte es unterstützt. Der LwM2M-Standard definiert viele vordefinierte Objekte. Durch diese vordefinierten Objekte kann sich zum Beispiel ein Tracking IoT-Device mit dem Objekt 6 beim Server melden und der Server weiß, dass es sich um Tracking-Daten handelt und in welchem Format diese gesendet werden.

Alternativen

MQTT ist sicherlich der bekannteste Vertreter für IoT-Projekte und M2M-Kommunikation und wird von vielen Cloud-Plattformen unterstützt. MQTT definiert jedoch nur einen Kommunikationskanal und löst keine der eingangs gestellten Fragen.

LwM2M lässt durch seine aktive Steuerung eine viel grössere Flexibilität zu. Es kann in Echtzeit entschieden werden, wann der Server welche Daten von welchem IoT-Device haben möchte. Das Verhalten eines IoT-Geräts kann so zum Beispiel jederzeit angepasst werden, auch wenn es schon lange in Betrieb ist.

Eine sparsame Datenübertragung ist in IoT-Projekten meistens ein zentrales Thema. Jedes Byte, das durch einen Protokoll-Overhead transferiert werden muss, belastet die Batterie und steht meistens auch in einem direkten Verhältnis zu den Kosten für die übertragene Datenmenge. LwM2M hat darum die ganze Protokolldefinition auf dieses Ziel ausgelegt.

Der Autor

Marcel Graber ist Development Engineer Electronics and Firmware bei steinel.ch.

Die LwM2M-Befehlssyntax
So werden Befehle für das LwM2M-Protokoll formuliert:
Read /3/0/0 Der Server möchte vom IoT-Device die Information »Manufacturer« erhalten.
Execute /3/0/4 Der Server möchte das IoT-Device neu starten (Reboot).
Observe /6/0 Der Server möchte über alle Veränderungen in der Location (GNSS) informiert werden.
Die Adressierung der Ressourcen erfolgt über die Object-ID bzw. Ressource-ID. In den ersten beiden Beispielen wurde das Objekt mit der ID 3 (/3/x/x), das Objekt »Device« angesprochen.Die Adressierung der Ressourcen erfolgt über die Object-ID bzw. Ressource-ID. In den ersten beiden Beispielen wurde das Objekt mit der ID 3 (/3/x/x), das Objekt »Device« angesprochen.

 

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Das könnte Sie auch interessieren

Verwandte Artikel

Steinel Vertrieb GmbH, Steinel Solutions AG