📡 · IoT-Protokoll

MQTT: Das Publish/Subscribe-Protokoll für IoT

MQTT ist das Rückgrat der Heimautomation. Leichtgewichtig, zuverlässig auch bei schlechter Verbindung, und perfekt für Sensoren, Aktoren und alles was Echtzeitdaten sendet – von Zigbee-Geräten bis zum selbst gebauten Sensor.

MosquittoBrokerPublish/SubscribeQoSTopics

MQTT-Grundkonzepte: Broker, Topics, QoS

MQTT basiert auf drei Kernkonzepten:

  • Broker: Der zentrale Server (meist Mosquitto) – empfängt Nachrichten und leitet sie an Subscriber weiter. Alle Geräte verbinden sich mit dem Broker, nicht direkt miteinander.
  • Topics: Hierarchische Pfade die Nachrichten kategorisieren. haus/wohnzimmer/temperatur, haus/+/temperatur (alle Räume), haus/# (alles im Haus).
  • QoS (Quality of Service): 0 = fire and forget, 1 = mindestens einmal, 2 = genau einmal. Für Sensor-Daten reicht QoS 0, für Schaltbefehle empfiehlt sich QoS 1.
# MQTT mit Python (paho-mqtt) import paho.mqtt.client as mqtt client = mqtt.Client() client.connect("192.168.1.10", 1883) # Senden client.publish("haus/wohnzimmer/licht", "ON") # Empfangen def on_message(client, userdata, msg): print(f"{msg.topic}: {msg.payload.decode()}") client.subscribe("haus/#") client.on_message = on_message client.loop_forever()

Mosquitto einrichten und mit Home Assistant verbinden

Mosquitto ist der Standard-Broker – läuft als Docker Container, braucht minimal Ressourcen:

  • Installation: Via Docker Compose in Sekunden. Konfiguration in `mosquitto.conf`: Authentifizierung aktivieren, anonymous-Zugriff deaktivieren.
  • Home Assistant Integration: In HA unter Einstellungen → Integrationen → MQTT den Broker eintragen. Danach erscheinen MQTT-fähige Geräte automatisch via Discovery.
  • Zigbee2MQTT: Verbindet Zigbee-Koordinator (USB-Dongle) mit Mosquitto. Jedes Zigbee-Gerät publiziert seinen Status auf einem MQTT-Topic, Befehle werden gesendet.

Mit n8n gibt es MQTT-Trigger-Nodes – Workflows starten automatisch wenn ein bestimmtes Topic eine Nachricht erhält. Ideal für KI-gestützte Reaktionen auf Sensordaten.

MQTT-Debugging und Best Practices

Praktische Tipps für den stabilen MQTT-Betrieb:

  • MQTT Explorer: Desktop-Tool zum Visualisieren aller Topics und Messages – unverzichtbar beim Debuggen neuer Geräte
  • Retained Messages: Letzter bekannter Wert wird gespeichert – neue Subscriber bekommen sofort den aktuellen Status, nicht erst die nächste Nachricht
  • Last Will Testament: Broker sendet eine definierte Nachricht wenn ein Client unerwartet die Verbindung verliert – nützlich für Online/Offline-Tracking
  • Topic-Struktur: Frühzeitig eine konsistente Struktur festlegen (location/device/property) – nachträglich ändern ist mühsam

Häufige Fragen zu MQTT

Nein – für Heimautomation reicht lokales Netzwerk. Der Mosquitto-Broker sollte NICHT direkt aus dem Internet erreichbar sein. Für Remote-Zugriff: VPN (Tailscale, WireGuard) nutzen statt Port 1883 zu öffnen.

MQTT ist ein dauerhaftes bidirektionales Protokoll (TCP, persistent connection) – ideal für viele kleine Nachrichten mit niedrigem Overhead. Webhooks sind HTTP-Requests per Event – gut für seltene Events zwischen Internet-Services. Für IoT ist MQTT klar überlegen.

Mosquitto auf einem Raspberry Pi verwaltet problemlos hunderte Geräte mit tausenden Nachrichten pro Minute. Für Heimautomation ist das nie der Bottleneck. Ab zehntausenden gleichzeitiger Verbindungen würde man über EMQX oder HiveMQ nachdenken.

Erlaubt MQTT direkt im Browser – nützlich für Web-Dashboards die Echtzeit-Daten anzeigen ohne Server-Polling. Mosquitto unterstützt WebSocket-Listener parallel zum normalen MQTT-Port. Die meisten IoT-Dashboards nutzen dieses Feature.