Startseite / Wiki / MQTT
Smart Home

MQTT

MQTT ist das meistgenutzte Protokoll für Smart-Home-Geräte und IoT. Wie es funktioniert, was Broker und Topics sind und wie du es mit Home Assistant nutzt.

15. Jänner 2025

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)
RolleFunktionBeispiel
BrokerEmpfängt und verteilt NachrichtenMosquitto auf dem NAS/Server
PublisherSendet Daten zu einem TopicESP32 mit Temperatursensor
SubscriberEmpfängt Daten von einem TopicHome Assistant, Node-RED

Topic-Struktur

Topics sind hierarchisch mit / aufgebaut. Mit Wildcards kannst du mehrere Topics gleichzeitig abonnieren:

TopicBedeutung
zuhause/wohnzimmer/temperaturTemperatur im Wohnzimmer
zuhause/+/temperaturTemperatur 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:

mqtt-sensor.ino
#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:

  1. Mosquitto Broker als Add-on installieren (in HA direkt verfügbar)
  2. MQTT Integration in HA einrichten
  3. Geräte die auf MQTT-Topics publishen werden automatisch erkannt (wenn sie das Home Assistant Discovery-Format verwenden)

Tipp

#mqtt #home-assistant #iot #smart-home #broker #mosquitto #esp32