Was ist MQTT?
MQTT steht für Message Queuing Telemetry Transport — ein schlankes Kommunikationsprotokoll das speziell für IoT-Geräte und Smart-Home-Anwendungen entwickelt wurde. Es wurde 1999 für die Ölpipeline-Überwachung entwickelt und ist heute der Standard für alles zwischen ESP32, Sensoren und Home Assistant.
MQTT ist so beliebt weil es extrem ressourcenschonend ist: selbst ein kleiner Mikrocontroller mit WLAN kann problemlos MQTT-Nachrichten senden.
Wie funktioniert MQTT?
MQTT arbeitet nach dem Publish/Subscribe-Prinzip:
- Broker — Der zentrale Server (z.B. Mosquitto), der alle Nachrichten verwaltet
- Publisher — Ein Gerät das Nachrichten veröffentlicht (z.B. ein Temperatursensor)
- Subscriber — Ein Gerät das Nachrichten empfängt (z.B. Home Assistant)
- Topic — Der “Kanal” für eine Nachricht (z.B.
zuhause/wohnzimmer/temperatur)
| Rolle | Funktion | Beispiel |
|---|---|---|
| Broker | Empfängt und verteilt Nachrichten | Mosquitto auf dem NAS/Server |
| Publisher | Sendet Daten zu einem Topic | ESP32 mit Temperatursensor |
| Subscriber | Empfängt Daten von einem Topic | Home Assistant, Node-RED |
Topic-Struktur
Topics sind hierarchisch mit / aufgebaut. Mit Wildcards kannst du mehrere Topics gleichzeitig abonnieren:
| Topic | Bedeutung |
|---|---|
zuhause/wohnzimmer/temperatur | Temperatur im Wohnzimmer |
zuhause/+/temperatur | Temperatur in allen Räumen (+ = ein Level) |
zuhause/# | Alle Daten aus dem Haus (# = alles darunter) |
ESP32 als MQTT-Publisher
So sendest du Sensordaten vom ESP32 per MQTT:
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "DeinWLAN";
const char* password = "DeinPasswort";
const char* mqttServer = "192.168.1.100"; // Broker-IP
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
WiFi.begin(ssid, password);
client.setServer(mqttServer, 1883);
}
void loop() {
if (!client.connected()) {
client.connect("ESP32-Sensor");
}
float temp = 22.5; // Beispielwert
client.publish("zuhause/wohnzimmer/temperatur",
String(temp).c_str());
delay(10000); // alle 10 Sekunden
} MQTT mit Home Assistant
Home Assistant hat MQTT nativ integriert. Du brauchst:
- Mosquitto Broker als Add-on installieren (in HA direkt verfügbar)
- MQTT Integration in HA einrichten
- Geräte die auf MQTT-Topics publishen werden automatisch erkannt (wenn sie das Home Assistant Discovery-Format verwenden)