Was ist MQTT und wozu brauche ich es?

Veröffentlicht von Lukas am

Aufmerksame Leser meines Blogs wissen, dass ich immer mal wieder auf eine ganz bestimmte Technologie zu sprechen komme. Sie dient dem Austausch von Nachrichten. Doch was steckt dahinter? Was ist MQTT? Und wozu brauche ich es?

Ich möchte in diesem Artikel gerne einiges an Grundlagen vermitteln. Grundlagen, die auch für das Smart Home interessant sind, da die Technologie gerade hier immer wieder zum Einsatz kommt. Dabei geht es mir nicht darum, alles bis ins letzte Detail zu beleuchten. Vielmehr möchte ich, dass du dir ein Grundverständnis aneignen kannst, wie bestimmte Kommunikationswege im Smart Home funktionieren. Das hilft dir dabei, deine eigene Hausautomation besser zu verstehen und ein Gefühl dafür zu entwickeln, wo es klemmt, wenn es einmal zu Problemen kommen sollte.

Alles was ich dir in diesem Artikel erkläre, basiert entweder auf meinen eigenen Erkenntnissen oder meinem Fachwissen aus der IT. Wie ich dir schon öfter erzählt habe, bin ich nicht nur Blogger. Primär bin ich Softwareentwickler (mit Leidenschaft). Hierfür habe ich Wirtschaftsinformatik studiert, wodurch ich tiefe Einblicke in viele unterschiedliche Bereiche erhalten habe.

Dieses Wissen einstauben zu lassen, wäre zu schade. Daher teile ich es mit dir in meinem Blog und ganz besonders an dieser Stelle.

Was ist MQTT?

MQTT ist ein offenes Netzwerkprotokoll zur Machine-to-Machine-Kommunikation. Das bedeutet, dass über dieses Protokoll unterschiedliche Geräte ihre Nachrichten austauschen. Zu diesen Geräten können Computer, aber auch Geräte aus dem Smart Home zählen. MQTT steht dabei für Message Queuing Telemetry Transport. Bei Bedarf können die Nachrichten über das TLS-Protokoll (früher: SSL) verschlüsselt werden.

Ursprünglich entwickelt wurde MQTT im Jahr 1999, ist aber seit 2013 als Protokoll für das Internet der Dinge standardisiert. Zum Internet der Dinge gehören dabei zum Beispiel Haushaltsgeräte, die sich über das Internet vernetzen und steuern lassen. Wenn du demnach eine Kaffeemaschine mit Appsteuerung in deinem Zuhause stehen hast, bist du auf alle Fälle ein Nutzer des Internet der Dinge.

Wie auch bei anderen Formen der Vernetzung, gibt es bei MQTT einen Server und mehrere Clients. In diesem Fall bezeichnet man den Server als Broker, welcher sämtliche Nachrichten empfängt und von dem Clients die Nachrichten abrufen können. Dabei sind die Nachrichten aufgeteilt in unterschiedliche Topics. Topics bündeln somit zusammengehörige Informationen, können aber wiederum eigene Topics enthalten. Innerhalb von Topics befinden sich dann die eigentlichen Nachrichten, welche man – du ahnst es – als Messages bezeichnet.

Damit die Nachrichten zum richtigen Empfänger gelangen, können die Clients bestimmte Topics abonnieren. Das bedeutet, dass jeder Client dem Broker mitteilt, für welche Nachrichten er sich interessiert. Trifft nun eine solche Nachricht ein, leitet der Broker diese an alle Abonnenten weiter. Der Sender der Nachricht muss diese nur einmal an den Broker verschicken. An wen die Nachrichten weitergeleitet werden, interessiert den Sender der Nachricht nicht. Er weiß es auch nicht.

Zuletzt aktualisiert 26.04.2024 / (*) Affiliate Links / (**) Affiliate Links, Preis kann abweichen (andere Plattform) / Bilder von der Amazon Product Advertising API / Der angegebene Preis kann seit der letzten Aktualisierung gestiegen sein.

MQTT im Smart Home

Für das Smart Home gibt es grob umrissen zwei Anwendungsfälle, die den Einsatz von MQTT in meinen Augen rechtfertigen.

Der erste Anwendungsfall betrifft Geräte und Software, die nicht unmittelbar mit dem eigenen System kompatibel ist. So bietet zum Beispiel der air-Q-Luftsensor zum Zeitpunkt der Erstellung des Artikels keine unmittelbare Einbindung in ioBroker. Über das MQTT-Protokoll ist das Gerät jedoch dazu in der Lage, seine Messwerte mitzuteilen. ioBroker wiederum kann diese Nachrichten empfangen und weiterverarbeiten. MQTT agiert damit gewissermaßen als Connector beziehungsweise Plattform, um zwei unterschiedliche Systeme miteinander zu kombinieren.

Gerade auf diese Weise können an das eigene Smart Home sehr flexibel Geräte angeschlossen werden, ohne dass hierfür ein eigener Adapter notwendig ist oder es eine spezielle Integration geben muss.

Im zweiten Anwendungsfall geht es vielmehr um die Vernetzung verschiedener Systeme. So kann zum Beispiel im eigenen Smart Home ioBroker als Server eingesetzt werden, während OpenHAB als Zweitsystem eigene Aufgaben übernimmt. Um nun einen direkten Austausch zwischen beiden Systemen zu ermöglichen oder beide Systeme über die Änderung eines Zustands zu informieren, kann MQTT zum Einsatz kommen. Beide Systeme sind so nicht direkt voneinander abhängig und können auch ohne einander ihre Aufgabe fortsetzen. So ist es auch denkbar, dass eines der Systeme abgeschaltet wird, während das zweite ohne Störung weiter betrieben wird.

In einem Mehrfamilienhaus können so auch spezielle Informationen untereinander ausgetauscht werden, ohne dass es hierfür eine direkte Vernetzung der Systeme geben muss. Gerade diesen Fall finde ich persönlich extrem spannend.

… und in der Industrie

Neben dem Smart Home findet MQTT auch immer weiter Einzug in die Industrie. Gerade durch die Vernetzung verschiedener Maschinen und dem daraus entstehenden Aufwand für die Kommunikation, eignet sich ein zentraler Broker hervorragend zur Verteilung der Nachrichten.

Ein großer Vorteil ist dabei natürlich, dass an MQTT angeschlossene Systeme nicht direkt ausfallen müssen, sobald andere Geräte einer Störung unterliegen. Im Grunde ist es nur wichtig, dass die Verbindung zum MQTT-Broker aufrecht erhalten werden kann.

Was außerdem ein großer Vorteil sein kann ist, dass MQTT-Broker miteinander verbunden werden können. So ist es zum Beispiel denkbar, dass jede Fabrikhalle ihren eigenen Broker besitzt, welcher wiederum die Nachrichten an einen zentralen Broker weiterleitet. So können auch bei einer Störung in der Verbindung die einzelnen Fabrikgebäude weiterarbeiten, während die Verbindung zum zentralen Broker repariert wird. Notwendig hierfür ist jedoch eine sogenannte MQTT Bridge.

Nützliche Software für MQTT

Auf dem Markt gibt es diverse Programme, die für die Nutzung von MQTT empfohlen wird. Dabei den Überblick zu behalten ist sehr schwierig und grenzt an eine große Herausforderung. Jedoch gibt es einige Tools, die man sich beim Einsatz des Protokolls genauer ansehen sollte.

Bei meinem eigenen MQTT-Broker setze ich zum Beispiel voll auf Mosquitto. Hierbei handelt es sich um einen Open Source Broker, der verschiedene MQTT-Protokolle implementiert. Da er kostenfrei in der Nutzung ist, eignet er sich in meinen Augen hervorragend für das eigene Smart Home. Er ist außerdem so entwickelt, dass er sowohl auf schwachen Rechnern (beispielsweise einem Raspberry Pi), aber auch auf großen Servern eingesetzt werden kann. Welche Hardware hier notwendig ist, hängt natürlich auch von der Anzahl der Abonnenten und den versendeten Nachrichten ab. In größeren Betrieben wird man aus diesem Grund wohl eher kaum einen Raspberry Pi als Broker vorfinden. In einem Privathaushalt jedoch eher wenig einen großen Rackserver.

Eine weitere nützliche Software ist der sogenannte MQTT-Explorer (Zur Software). Hierbei handelt es sich um ein Tool, mit dem man Nachrichten aus dem Broker auslesen und an diesen versenden kann. Sie stellt damit eine Schnittstelle dar, die gerade bei der Einrichtung durchaus nützlich sein kann.

Mit dieser Technologie gebaut

Für einen kleinen Eindruck aus der Praxis, habe ich ein Projekt und ein konkretes Produkt. Beides wurde mit MQTT realisiert und zeigt, wie unterschiedlich die Anwendungsfälle sein können und vor allem, wie flexibel MQTT sein kann.

Ein ziemlich cooles Projekt ist der MQTT-Chat. Hierbei handelt es sich um einen kleinen HTML-Client, der sich mit einem vorhandenen MQTT-Broker verbindet. Über diesen ist dann zu erkennen, ob ein Benutzer sich gerade im Chatraum befindet. Sollte das der Fall sein, können Konversationen begonnen werden. Es ist quasi wie ein Gruppenchat in WhatsApp, bei dem jeder eingeloggte Benutzer mitlesen kann. Der Chat stellt zwar keine ernstzunehmende Konkurrenz für Kommunikationsplattformen dar, zeigt aber sehr schön das Potenzial von MQTT.

Ein konkretes Produkt, bei dem auf MQTT gesetzt wird, sind die Saug- und Wischroboter von iRobot. Diese kommunizieren mit einem von iRobot gehosteten MQTT-Broker (ich meine sogar bei AWS). Über diesen Broker gelangen dann sämtliche Informationen von deinem Roboter in die App und umgekehrt. Gerade das Beispiel zeigt, dass sogar große Unternehmen diese Technologie erkannt haben und sie in der Praxis einsetzen. Mir zeigt das wiederum, dass MQTT durchaus eine ernstzunehmende Technologie ist, die auch im Smart Home durchaus ihre Vorteile haben kann. Denn klar ist auf jeden Fall, dass ein Unternehmen nicht wahllos auf eine Technologie setzt, sondern sich intensiv mit Vor- und Nachteilen beschäftigt, bevor eine Entscheidung fällt.


Lukas

Hi, ich bin Lukas, ein leidenschaftlicher Wirtschaftsinformatiker und Smart Home-Enthusiast. Seit Jahren teile ich meine Erfahrungen und Kenntnisse über Hausautomation und Digitalisierung auf meinem Blog. Meine fachliche Expertise in IT-Systemen und Netzwerken ermöglicht es mir, komplexe Smart Home-Lösungen zu entwerfen und zu implementieren, speziell mit dem Einsatz von ioBroker. Mein persönliches Smart Home-Projekt, das ich auf einem selbst konfigurierten Server-Cluster in meinem Keller betreibe, ist ein Zeugnis meiner Fähigkeiten und meines Engagements für intelligente Technologie. In meinem Blog erkundest du die faszinierende Welt der Hausautomation, mit besonderem Fokus auf ioBroker, und erhältst Einblicke in die neuesten Trends und besten Praktiken. Ob du ein Anfänger oder ein erfahrener Smart Home-Nutzer bist, hier findest du nützliche Tipps, um dein Zuhause sicherer, komfortabler und effizienter zu gestalten. Folge mir auf Social Media über die Links oben, um keine Updates zu verpassen. Ich freue mich darauf, dich auf der Reise zu einem fortschrittlichen und vollwertigen Smart Home zu begleiten!

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert