"MQTT Lovely"...Kang Min-ah, cute Ball Hearts
seen from China
seen from United States

seen from United States

seen from Germany
seen from Germany
seen from United States

seen from Italy

seen from Singapore
seen from Russia
seen from Indonesia
seen from South Korea

seen from Australia
seen from Germany

seen from Germany
seen from Kazakhstan
seen from Macao SAR China

seen from Brazil
seen from China
seen from Bulgaria

seen from Iraq
"MQTT Lovely"...Kang Min-ah, cute Ball Hearts
* 🇧🇷 ProgESP 01 acionando rele via MQTT Dash ------------------------------ youtube.com/ProjetosEletronicos ------------------------------ 🇺🇸 ProgESP 01 triggering rele via MQTT Dash ------------------------------ #esp8266 #esp01 #iot #servidor #web #mqtt #dash #controle #internet #maker #makers #diy #geek #arduino #arduinouno #arduinonano #eletronica #eletrônica #projeto protótipo #walproj #projetoseletronicos #projetosmaker #hardware (em Projetos Eletronicos) https://www.instagram.com/p/CCCo4UCj8hX/?igshid=18r3fvqyb2v5k
Quick project! This is my MQTT controlled Latching Relay. The MQTT broker is my Raspberry Pi. I use it via SSH through my Linux. That way I can control everything from a single screen! To activate the relay, I publish a boolean command in the right topic on the broker (in this case, test/relay). I'll connect several of these modules (ESP8266) to the raspberry pi broker (Mosquitto).
Wifi temperature logger aka “NodeMcu Arduino IDE MQTT DHT11 Node”. Part 2 (ESP8266 sketch)
In this part of the tutorial we will look closer the esp8266 sketch that will send the temperature info to our server.
Read More...
IoT 3D printed anemometer and wind vane with ESP8266 Wemos d1 mini project, hall effect us1881 sensor, TEPT4400 phototransistor, publish data to MQTT broker
DIY smart heating with OpenHAB: pilot wire control, Wi-Fi sensors and MQTT integration. Read the full article
MQTT Explorer installieren und Broker visuell analysieren
Nachdem wir im letzten Beitrag einen eigenen MQTT-Broker mit Mosquitto MQTT Broker eingerichtet und erste Nachrichten über die Konsole gesendet haben, wird es nun deutlich komfortabler.
Die Arbeit mit mosquitto_pub und mosquitto_sub ist zwar ideal für den Einstieg, stößt aber schnell an ihre Grenzen – vor allem, wenn viele Topics und Nachrichten gleichzeitig im Spiel sind.
Genau hier kommt der MQTT Explorer ins Spiel und bringt endlich Übersicht in dein MQTT-System.
https://youtu.be/TkPLVbkcoE4
Mit diesem Tool kannst du:
- alle Topics deines Brokers übersichtlich als Baumstruktur anzeigen - Nachrichten in Echtzeit verfolgen - Payloads analysieren und bearbeiten - eigene Nachrichten direkt versenden
In diesem Beitrag zeige ich dir Schritt für Schritt, wie du den MQTT Explorer installierst und deinen Broker visuell analysierst.
MQTT Explorer installieren (Windows, macOS & Linux)
Den MQTT Explorer kannst du unter Windows, macOS sowie verschiedenen Linux-Distributionen wie Ubuntu installieren. Wichtig ist dabei: Das Tool benötigt eine grafische Oberfläche (GUI) – auf reinen Server-Systemen ohne Desktop-Umgebung lässt es sich daher nicht direkt ausführen.
MQTT Explorer - download der Versionen für die Betriebssysteme Windows, macOS, Ubuntu und Linux
Verbindung zum MQTT Broker herstellen
Nach dem Start des MQTT Explorer richten wir im nächsten Schritt die Verbindung zu unserem Broker ein.
Dazu legst du zunächst eine neue Verbindung an und vergibst einen beliebigen Namen, z. B. „RaspberryPi MQTT“ oder „Lokaler Broker“.
MQTT Explorer - Connection zum Raspberry Pi
Anschließend trägst du die IP-Adresse deines MQTT-Brokers ein. In meinem Fall läuft der Mosquitto MQTT Broker auf einem Raspberry Pi im lokalen Netzwerk.
Die wichtigsten Einstellungen im Überblick:
- Host: IP-Adresse deines Brokers (z. B. 192.168.x.x oder localhost) - Port: Standardmäßig 1883
Der Default-Port 1883 bleibt in den meisten Fällen unverändert. Solltest du jedoch einen Docker-Container verwenden, bei dem der Port umgeleitet wurde (z. B. -p 1884:1883), musst du hier den entsprechend gemappten Port eintragen.
Status des Docker Containers - MQTT Broker Mosquitto
Optional kannst du zusätzlich:
- Benutzername und Passwort setzen (falls konfiguriert) - eine sichere Verbindung (TLS) nutzen
Nachdem du alle Einstellungen vorgenommen hast, kannst du die Verbindung speichern und direkt herstellen.
MQTT Explorer - Benutzername und Passwort - sowie Verbindung herstellen
Erste Topics und Nachrichten im MQTT Explorer beobachten
Nachdem die Verbindung erfolgreich hergestellt wurde, wird es spannend: Der MQTT Explorer zeigt dir nun alle vorhandenen Topics deines Brokers in einer übersichtlichen Baumstruktur an. Und solltest du numerische Werte senden so werden diese in einem Liniendiagramm visualisiert.
MQTT Explorer - Auflistung der Topics im Baum
Ich habe auf meinem Raspberry Pi bereits einige Nachrichten an die Topics sensor/humidity, sensor/temp sowie house/door/bell gesendet. Die zuletzt gesendeten Werte werden nun im MQTT Explorer übersichtlich im Topic-Baum dargestellt.
MQTT Explorer - Übersicht der Topicss
Nachrichten direkt im MQTT Explorer senden
Mit dem MQTT Explorer kannst du nicht nur Topics beobachten, sondern auch selbst Nachrichten versenden.
Dazu wählst du zunächst das gewünschte Topic im Baum aus. Auf der rechten Seite findest du anschließend den Bereich „Publish“.
MQTT Explorer - publish auf ein topic
Hier kannst du festlegen, in welchem Format die Daten gesendet werden sollen. Zur Auswahl stehen unter anderem:
- raw (reiner Text) - XML - JSON
Anschließend gibst du deine Daten in das Eingabefeld ein, zum Beispiel:
{ "temperature": 22.5, "humidity": 60 }
Mit einem Klick auf die Schaltfläche „PUBLISH“ wird die Nachricht an den Broker gesendet und direkt an alle Subscriber ausgeliefert.
In meinem Fall ist das unter anderem wieder mein Raspberry Pi, der die Daten empfängt und weiterverarbeitet.
Retained Messages verstehen und gezielt löschen
Beim Arbeiten mit MQTT kann es passieren, dass beim Verbinden zu einem Topic sofort eine alte Nachricht angezeigt wird – selbst wenn gerade keine neue gesendet wurde.
MQTT Explorer - Ansicht der vorhandenen Retained Messages
Dieses Verhalten liegt an sogenannten Retained Messages.
Die „alten“ Nachrichten lassen sich im MQTT Explorer besonders einfach löschen – in vielen Fällen genügt bereits ein Klick. Zudem erkennst du auf einen Blick, in welchen Topics noch Retained Messages vorhanden sind, und kannst diese gezielt entfernen.
Das bietet einen großen Vorteil, um den eigenen MQTT-Broker sauber und übersichtlich zu halten.
Dennoch solltest du prüfen, warum Nachrichten überhaupt dauerhaft gespeichert bleiben: Werden diese regelmäßig nicht abgeholt, kann das ein Hinweis darauf sein, dass ein angebundenes System nicht mehr aktiv ist oder nicht mehr benötigt wird.
Hinweis: Wenn du die Schaltfläche zum Löschen eines Topics im MQTT Explorer verwendest, wird dieses lediglich aus der Baumansicht entfernt. Das Topic selbst existiert weiterhin auf dem Broker.
Sobald erneut eine Nachricht auf dieses Topic veröffentlicht wird, erscheint es automatisch wieder im MQTT Explorer und die Daten werden wie gewohnt an alle Subscriber ausgeliefert. Bereits angebundene Subscriber werden durch das Entfernen in der Oberfläche nicht beeinflusst.
Fazit
Mit dem MQTT Explorer hast du ein äußerst hilfreiches Werkzeug kennengelernt, um deinen MQTT Broker nicht nur zu überwachen, sondern aktiv damit zu arbeiten.
Du kannst:
- Topics und deren Struktur übersichtlich analysieren - Nachrichten in Echtzeit verfolgen - eigene Daten direkt senden (Publish) - numerische Werte visualisieren - Retained Messages gezielt verwalten und löschen
Gerade für Einsteiger, aber auch für fortgeschrittene Projekte, bietet der MQTT Explorer einen großen Mehrwert beim Debugging und beim Verständnis von MQTT.
Ausblick
Im nächsten Beitrag verlassen wir die reine Analyse und bringen echte Hardware ins Spiel: Wir verbinden einen ESP32 mit unserem MQTT Broker und senden erste Sensordaten.
MQTT einfach erklärt: Was ist MQTT und warum ist es perfekt für IoT?
MQTT ist das Kommunikationsprotokoll für IoT-Projekte – egal ob du mit einem ESP32 Sensordaten überträgst, ein Dashboard mit Node-RED aufbaust oder komplexe Smart-Home-Systeme betreibst.
Doch nicht nur im Hobbybereich spielt MQTT eine Rolle: Auch in Enterprise-Projekten, Industrieanwendungen und skalierbaren Cloud-Systemen ist MQTT längst etabliert. Immer dann, wenn viele Geräte zuverlässig und effizient miteinander kommunizieren müssen, kommt dieses Protokoll ins Spiel.
👉 MQTT ist ein leichtgewichtiges Publish/Subscribe-Protokoll zur Übertragung von Nachrichten zwischen Geräten.
https://youtu.be/UScUhc0y6AU
Dieser Beitrag ist der Auftakt zu einer mehrteiligen MQTT-Serie.
Wir starten mit den Grundlagen und bauen direkt ein erstes kleines Testsystem auf. In den folgenden Teilen greifen wir dann Daten aus verschiedenen smarten Systemen ab, übertragen diese per MQTT und verarbeiten sie weiter – z. B. in Node-RED oder eigenen Anwendungen.
Was bedeutet MQTT eigentlich?
Bevor wir tiefer einsteigen, stellt sich erstmal eine einfache Frage: 👉 Wofür steht MQTT eigentlich?
MQTT steht für Message Queuing Telemetry Transport.
Klingt im ersten Moment etwas sperrig – lässt sich aber ziemlich einfach herunterbrechen:
- Message → es werden Nachrichten übertragen - Queuing → Nachrichten werden nicht direkt von Gerät zu Gerät gesendet, sondern über eine zentrale Stelle gesammelt und verteilt - Telemetry → meist Sensordaten (z. B. Temperatur, Luftfeuchte, Statuswerte) - Transport → die Übertragung zwischen Geräten
Vereinfacht gesagt bedeutet das: MQTT ist ein Protokoll, das speziell dafür entwickelt wurde, Daten effizient zwischen Geräten auszutauschen, ohne dass diese direkt miteinander verbunden sein müssen.
Und genau das macht es so interessant für IoT-Projekte.
Ein Mikrocontroller wie ein ESP32 kann seine Daten einfach „in den Raum senden“, ohne zu wissen, wer diese später empfängt – sei es ein Dashboard, eine Datenbank oder ein anderes Gerät.
Damit das Ganze funktioniert, braucht MQTT im Hintergrund eine zentrale Instanz, die alle Nachrichten entgegennimmt und verteilt.
Genau diese Rolle übernimmt der sogenannte Broker.
Und genau diesen setzen wir jetzt gemeinsam auf.
MQTT Broker – Mosquitto mit Docker Compose
Damit wir unser Testsystem sauber und dauerhaft betreiben können, benötigen wir einen sogenannten MQTT-Broker. Dieser übernimmt die zentrale Rolle in unserem Setup und verteilt später alle Nachrichten zwischen den Geräten.
Eine der bekanntesten und leichtgewichtigen Lösungen ist Eclipse Mosquitto.
Eine sehr gute und ausführliche Beschreibung zum offiziellen Docker-Image findest du direkt auf Docker Hub: https://hub.docker.com/_/eclipse-mosquitto
Image herunterladen
Zunächst laden wir uns das offizielle Image:
docker pull eclipse-mosquitto Docker Compose Datei erstellen
Jetzt erstellen wir eine eigene Docker-Compose-Datei:
nano mosquitto-docker-compose.yml
Füge folgenden Inhalt ein:
services: mosquitto: image: eclipse-mosquitto container_name: mosquitto restart: unless-stopped ports: - "1883:1883" volumes: - ./mosquitto/config:/mosquitto/config - ./mosquitto/data:/mosquitto/data - ./mosquitto/log:/mosquitto/log mosquitto.conf anlegen
Die Datei mosquitto.conf wird nicht automatisch erstellt und muss daher einmalig von dir angelegt werden.
Zuvor muss jedoch die Verzeichnisstruktur angelegt werden, dafür gibt es zwei Möglichkeiten:
Variante 1: Der bequeme Weg
Du kannst den Container einmal kurz starten, damit die Verzeichnisstruktur automatisch angelegt wird:
docker compose -f mosquitto-docker-compose.yml up -d
Anschließend stoppst du den Container wieder:
docker compose -f mosquitto-docker-compose.yml down
👉 Danach sind die benötigten Ordner vorhanden und du kannst die Konfigurationsdatei hinzufügen.
Variante 2: Manuell anlegen
Alternativ kannst du die Struktur direkt selbst erstellen:
mkdir mosquitto; cd mosquitto; mkdir config; mkdir data; mkdir log; Berechtigungen auf die Verzeichnisse geben
Damit der Mosquitto Broker Service in die Verzeichnisse schreiben kann, müssen die berechtigungen angepasst werden.
sudo chown -R 1883:1883 config sudo chown -R 1883:1883 data sudo chown -R 1883:1883 log Konfigurationsdatei erstellen
Im Verzeichnis: ./mosquitto/config legst du nun die Datei mosquitto.conf an:
edit ./mosquitto/config/mosquitto.conf listener 1883 allow_anonymous true persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log
Editor - mosquitto.conf Broker erneut starten
Jetzt kannst du den Container wieder starten:
docker compose -f mosquitto-docker-compose.yml up -d Status prüfen docker compose -f mosquitto-docker-compose.yml ps
MQTT Broker Mosquitto gestartet Logs anzeigen docker compose -f mosquitto-docker-compose.yml logs -f
Ausgabe der Logdatei des Mosquitto Brokers im Docker Container
Zugriff auf den MQTT Broker im Docker Container
Da wir den MQTT-Broker in einem Docker-Container betreiben, müssen wir für einige Befehle direkt innerhalb des Containers arbeiten.
Dafür können wir uns eine interaktive Shell im Container öffnen.
In den Container wechseln
Zunächst schauen wir uns an, wie unser Container heißt:
docker ps --format "{{.Names}}"
Ausgabe der Containernamen in der Konsole mit docker ps
In der Regel haben wir ihn bereits mosquitto genannt.
Nun wechseln wir in den Container:
docker exec -it mosquitto sh
Zugriff auf die Shell in einem Docker Container mit docker exec
Erstes Praxisbeispiel: Temperaturwert senden und empfangen
Nachdem unser MQTT-Broker läuft und wir Zugriff auf den Container haben, schauen wir uns jetzt ein erstes praxisnahes Beispiel an.
Ein klassisches Beispiel: Temperaturwerte.
Mosquitto MQTT Broker - Beispiel - Temperatur - Publisher und Subscriber Terminal 1 – Publisher
Der Publisher sendet eine Nachricht an den MQTT-Broker. Dieser verteilt die Nachricht anschließend automatisch an alle Subscriber, die das entsprechende Topic abonniert haben.
mosquitto_pub -h localhost -t sensor/temperature -m "22.5"
Gibt es keinen Subscriber für dieses Topic, wird die Nachricht zwar vom Broker entgegengenommen, aber nicht gespeichert und somit verworfen.
Retain-Flag
Mit dem Parameter retain kannst du dieses Verhalten beeinflussen.
Wird dieser auf true gesetzt, speichert der Broker die letzte gesendete Nachricht und liefert sie automatisch an neue Subscriber aus, sobald diese das Topic abonnieren.
mosquitto_pub -h localhost -t sensor/temperature -m "22.5" -r
Beispiel - senden einer MQTT Nachricht mit retain flag
Hinweis: Es wird dabei immer nur die letzte Nachricht gespeichert. Sobald eine neue Nachricht mit gesetztem Retain-Flag gesendet wird, ersetzt diese die vorherige.
Terminal 2 – Subscriber
Der Subscriber lauscht auf ein bestimmtes Topic und empfängt automatisch alle Nachrichten, die darauf veröffentlicht werden.
In unserem Beispiel ist das Topic:
sensor/temperature
Der Subscriber wird mit folgendem Befehl gestartet:
mosquitto_sub -h localhost -t sensor/temperature
Sobald nun eine Nachricht auf dieses Topic gesendet wird, erscheint sie direkt im Terminal.
Wichtig zu verstehen: Der Subscriber muss den Publisher nicht kennen. Er „hört“ einfach auf das Topic und bekommt alle Nachrichten, die dort ankommen.
Topics strukturieren: Geräte und Sensoren gruppieren
Ein großer Vorteil von MQTT ist die Möglichkeit, Topics hierarchisch zu strukturieren. Dazu werden die einzelnen Ebenen mit einem / getrennt.
So lassen sich Geräte und Sensoren logisch gruppieren, zum Beispiel nach Ort und Funktion:
erdgeschoss/steckdosen erdgeschoss/lampen erdgeschoss/kueche/steckdosen erdgeschoss/kueche/lampen erdgeschoss/kueche/sensoren/temperatur erdgeschoss/kueche/sensoren/luftfeuchtigkeit erdgeschoss/wohnstube/steckdosen erdgeschoss/wohnstube/lampen erdgeschoss/wohnstube/sensoren/temperatur erdgeschoss/wohnstube/sensoren/luftfeuchtigkeit
Wildcards in MQTT: Mehrere Topics gleichzeitig abonnieren
Bisher haben wir einzelne Topics gezielt abonniert, zum Beispiel:
mosquitto_sub -h localhost -t erdgeschoss/kueche/lampen
Doch was passiert, wenn wir nicht nur einen Raum, sondern mehrere gleichzeitig überwachen möchten?
👉 Genau hier kommen sogenannte Wildcards ins Spiel.
Beispiel: Alle Lampen im Erdgeschoss
Mit folgendem Topic kannst du alle Lampen im Erdgeschoss abonnieren:
mosquitto_sub -h localhost -t erdgeschoss/+/lampen
Damit würdest du z. B. folgende Topics empfangen:
- erdgeschoss/kueche/lampen - erdgeschoss/wohnstube/lampen
Beispiel - senden und empfangen von Nachrichten mit Wildcard auf einem Topic Wildcard # – mehrere Ebenen gleichzeitig abonnieren
Neben der + Wildcard gibt es noch eine zweite, sehr mächtige Möglichkeit: die # Wildcard
Bedeutung von #
Die Wildcard # steht für beliebig viele Ebenen innerhalb eines Topics. Damit kannst du komplette Bereiche auf einmal abonnieren.
Wichtige Regel
Die # Wildcard darf nur am Ende eines Topics stehen.
Beispiel - Wildcard auf einer Ebene zu einem Topic in MQTT
Typischer Effekt bei Retained Messages
Wenn du ein Topic abonnierst und sofort alte Nachrichten angezeigt bekommst, liegt das in der Regel an sogenannten Retained Messages.
alte Nachrichten vom MQTT Broker
Der MQTT-Broker speichert dabei die letzte Nachricht pro Topic, wenn diese mit dem Retain-Flag (-r) gesendet wurde.
Beispiel
Du abonnierst: mosquitto_sub -h localhost -t erdgeschoss/# -v
👉 Und erhältst direkt mehrere Nachrichten, obwohl aktuell nichts gesendet wurde.
alte Nachrichten vom MQTT Broker welche via Retain Flag gesendet wurden Warum passiert das?
Für jedes Topic unterhalb von erdgeschoss/... kann eine retained Nachricht gespeichert sein.
Zum Beispiel:
- erdgeschoss/kueche/lampen - erdgeschoss/kueche/sensoren/temperatur - erdgeschoss/wohnstube/lampen
👉 Für jedes dieser Topics wird die letzte gespeicherte Nachricht sofort ausgeliefert.
Retained Nachrichten löschen
Um eine retained Nachricht zu löschen, sendest du einfach eine leere Nachricht auf das gleiche Topic – ebenfalls mit gesetztem Retain-Flag:
mosquitto_pub -h localhost -t erdgeschoss/kueche/lampen -n -r
Alternativ:
mosquitto_pub -h localhost -t erdgeschoss/kueche/lampen -m "" -r
Fazit
Wenn du das Prinzip von Publish und Subscribe einmal verstanden hast und weißt, wie Topics aufgebaut sind und mit Wildcards funktionieren, ist der Einstieg in MQTT bereits geschafft.
Viele Dinge wirken am Anfang vielleicht etwas abstrakt – spätestens nach den ersten eigenen Tests wird jedoch schnell klar, wie einfach und flexibel dieses System eigentlich ist.
Gerade die Möglichkeit, Daten unabhängig voneinander zu senden und zu empfangen, macht MQTT so leistungsfähig und perfekt für IoT-Projekte.
Ausblick
Im nächsten Beitrag gehen wir einen Schritt weiter in die Praxis:
Ich zeige dir anhand eines ESP32, wie du echte Sensordaten erfassen und auf ein MQTT-Topic senden kannst.
Diese Daten werden wir anschließend weiterverarbeiten – zum Beispiel in Node-RED oder anderen Anwendungen.
👉 Damit baust du dir Schritt für Schritt dein eigenes kleines IoT-System auf.
FAQ – MQTT einfach erklärt
Was ist MQTT einfach erklärt?
MQTT ist ein leichtgewichtiges Kommunikationsprotokoll, mit dem Geräte Nachrichten untereinander austauschen können.
Dabei senden Geräte ihre Daten an ein sogenanntes Topic, ohne zu wissen, wer diese empfängt. Andere Geräte können diese Topics abonnieren und die Daten verarbeiten.
Was ist ein MQTT Broker?
Ein MQTT-Broker ist die zentrale Instanz im System.
Er nimmt Nachrichten von Sendern (Publishern) entgegen und verteilt diese an alle Empfänger (Subscriber), die das entsprechende Topic abonniert haben.
Ein häufig verwendeter Broker ist Eclipse Mosquitto.
Was ist ein Topic bei MQTT?
Ein Topic ist eine Art „Adresse“ oder „Kanal“, über den Nachrichten gesendet werden.
Beispiel: sensor/temperature
Geräte können gezielt auf bestimmte Topics hören und so nur die für sie relevanten Daten empfangen.
Was bedeutet Publish und Subscribe? - Publish bedeutet, eine Nachricht an ein Topic zu senden - Subscribe bedeutet, ein Topic zu abonnieren und Nachrichten zu empfangen
Dieses Prinzip nennt man Publish/Subscribe-Modell.
Was ist der Unterschied zwischen MQTT und HTTP?
Der wichtigste Unterschied liegt im Kommunikationsmodell:
- HTTP arbeitet mit Anfrage und Antwort (Request/Response) - MQTT arbeitet mit Publish/Subscribe
MQTT ist dadurch deutlich effizienter und besser für IoT-Projekte geeignet, bei denen viele Geräte gleichzeitig Daten austauschen.
Was sind Wildcards in MQTT?
Wildcards ermöglichen es, mehrere Topics gleichzeitig zu abonnieren.
- + steht für genau eine Ebene - # steht für mehrere Ebenen (nur am Ende erlaubt)
Beispiel: erdgeschoss/+/lampen
Damit können alle Lampen in verschiedenen Räumen gleichzeitig empfangen werden.
Was ist das Retain-Flag bei MQTT?
Mit dem Retain-Flag kann eine Nachricht beim Broker gespeichert werden.
Neue Subscriber erhalten diese Nachricht sofort, sobald sie das Topic abonnieren.
👉 Wichtig: Es wird immer nur die letzte Nachricht gespeichert.
Wann sollte ich MQTT einsetzen?
MQTT eignet sich besonders gut für:
- Systeme mit vielen Geräten - IoT-Projekte mit Mikrocontrollern (z. B. ESP32) - Smart Home Anwendungen - Echtzeit-Datenübertragung Kann ich mehrere Geräte gleichzeitig verbinden?
Ja, genau das ist einer der größten Vorteile von MQTT. Mehrere Publisher und Subscriber können gleichzeitig über einen einzigen Broker kommunizieren.