MQTT in Home Assistant
Home Assistant MQTT einrichten: Mosquitto Broker installieren, Tasmota-Geräte einbinden und Zigbee2MQTT konfigurieren.
Was ist MQTT?
MQTT (Message Queuing Telemetry Transport) ist ein leichtgewichtiges Nachrichtenprotokoll, das speziell für IoT-Geräte entwickelt wurde. Es arbeitet nach dem Publish/Subscribe-Prinzip: Geräte senden (publish) Nachrichten an ein Topic, und andere Geräte empfangen (subscribe) diese Nachrichten über einen zentralen Broker.
Anders als HTTP braucht MQTT nur minimale Bandbreite und funktioniert auch bei instabilen Verbindungen zuverlässig. Deshalb ist es der De-facto-Standard für Smart-Home-Kommunikation.
- Sensor (Publisher)
- Broker (Mosquitto)
- HA (Subscriber)
- Automation
Warum MQTT für Smart Home?
- Extrem schnell: Nachrichten werden in unter 10ms zugestellt, ideal für Echtzeit-Steuerung
- Energiesparend: Minimaler Overhead, perfekt für batteriebetriebene Sensoren
- Universell: Funktioniert mit Tasmota, ESPHome, Zigbee2MQTT, Node-RED und tausenden Geräten
- Entkoppelt: Sender und Empfänger müssen sich nicht kennen, maximale Flexibilität
- Retained Messages: Der Broker speichert die letzte Nachricht. Neue Subscriber erhalten sofort den aktuellen Wert
- Sicher: Unterstützt TLS-Verschlüsselung und Benutzer-Authentifizierung
MQTT-Konzepte verstehen
Topics: Die Adresse deiner Nachrichten
Topics sind hierarchische Pfade, die Nachrichten organisieren. Sie funktionieren wie Ordnerpfade:
1# Topic-Beispiele
2# Grundstruktur: bereich/raum/gerät/eigenschaft
3haus/wohnzimmer/temperatur # Temperaturwert
4haus/kueche/licht/status # Lichtstatus (on/off)
5haus/garten/bewaesserung/command # Steuerbefehl
6
7# Wildcards:
8haus/+/temperatur # + = ein Level (alle Räume)
9haus/# # # = alle darunter (alles im Haus)
10
11# Spezielle Topics:
12homeassistant/sensor/... # MQTT Auto-Discovery
13zigbee2mqtt/... # Zigbee2MQTT GeräteQoS: Quality of Service
| QoS Level | Bezeichnung | Zustellung | Anwendung |
|---|---|---|---|
| QoS 0 | At most once | Maximal 1x, kann verloren gehen | Sensor-Werte (häufige Updates) |
| QoS 1 | At least once | Mindestens 1x (evtl. doppelt) | Standard für die meisten Fälle |
| QoS 2 | Exactly once | Genau 1x (langsamer) | Kritische Steuerbefehle |
Retain und Last Will
Hinweis: Wenn eine Nachricht mit dem Retain-Flag gesendet wird, speichert der Broker sie. Jeder neue Subscriber erhält sofort den letzten Wert, perfekt für Statusanzeigen wie Temperatur oder Schaltzustand.
Hinweis: Ein Gerät kann beim Verbinden eine LWT-Nachricht hinterlegen. Bricht die Verbindung ab, sendet der Broker diese automatisch. So erkennt Home Assistant, wenn ein Gerät offline geht.
Mosquitto Broker installieren
- Add-on installieren: Einstellungen, Add-ons, Add-on Store, nach Mosquitto broker suchen
- Benutzer erstellen: Einstellungen, Personen, neuen Benutzer für MQTT erstellen (z.B. mqtt_user)
- Add-on konfigurieren: Mosquitto Add-on, Konfiguration Tab, Standard-Einstellungen reichen meist
- Add-on starten: Starten klicken, Watchdog und Autostart aktivieren
- Integration hinzufügen: Einstellungen, Geräte & Dienste, MQTT Integration wird automatisch erkannt
Mosquitto Konfiguration (erweitert)
1# Mosquitto Add-on Config (fortgeschritten)
2# Standard-Konfiguration (Add-on Konfiguration Tab)
3logins: [] # Leer = HA-Benutzer verwenden
4require_certificate: false
5certfile: fullchain.pem
6keyfile: privkey.pem
7customize:
8 active: true
9 folder: mosquitto
10
11# Für TLS-Verschlüsselung (mit Let's Encrypt):
12# certfile und keyfile auf deine Zertifikate zeigen lassen
13# Port 8883 wird automatisch aktiviert1# mosquitto/accesscontrollist (ACL)
2# Datei: /share/mosquitto/accesscontrollist
3# Zugriffsrechte pro Benutzer definieren
4
5# Standard-Benutzer: Lesen und Schreiben auf eigene Topics
6user mqtt_sensor
7topic readwrite sensor/#
8
9# Home Assistant: Vollzugriff
10user mqtt_ha
11topic readwrite #
12
13# Nur-Lesen für Monitoring
14user mqtt_monitor
15topic read #MQTT in Home Assistant konfigurieren
Automatische Discovery
Die meisten MQTT-Geräte (Tasmota, Zigbee2MQTT, ESPHome) unterstützen MQTT Auto-Discovery. Dabei sendet das Gerät seine Konfiguration an ein spezielles Topic, und Home Assistant erstellt automatisch die passenden Entities.
Neu in 2026.4: Die Discovery-Option
object_idwurde entfernt und durchdefault_entity_idersetzt. Falls du eigene Discovery-Payloads baust, passe die Konfiguration entsprechend an.
1{
2 "name": "Wohnzimmer Temperatur",
3 "unique_id": "sensor_wz_temp_01",
4 "device_class": "temperature",
5 "state_topic": "haus/wohnzimmer/sensor/temperatur",
6 "unit_of_measurement": "°C",
7 "value_template": "{{ value_json.temperature }}",
8 "device": {
9 "identifiers": ["sensor_wz_01"],
10 "name": "Wohnzimmer Multisensor",
11 "manufacturer": "DIY",
12 "model": "ESP32-DHT22"
13 }
14}Manuelle MQTT-Sensoren in configuration.yaml
Die YAML-Syntax für Sensoren und Integrationen wird im YAML-Konfiguration Guide ausführlich erklärt.
Breaking Change in 2026.4: Die Option
object_idwurde nach 6 Monaten Deprecation entfernt. Nutze stattdessendefault_entity_idin der MQTT-Konfiguration. In Discovery-Nachrichten wirdobject_ideinfach ignoriert.
1# MQTT Sensoren manuell definieren
2mqtt:
3 # Temperatursensor
4 sensor:
5 - name: "Aussentemperatur"
6 state_topic: "haus/aussen/temperatur"
7 unit_of_measurement: "°C"
8 device_class: temperature
9 value_template: "{{ value_json.temperature | round(1) }}"
10 json_attributes_topic: "haus/aussen/temperatur"
11 json_attributes_template: >
12 {{ {'humidity': value_json.humidity,
13 'battery': value_json.battery} | tojson }}
14
15 - name: "Regenmenge Heute"
16 state_topic: "haus/aussen/regen"
17 unit_of_measurement: "mm"
18 icon: "mdi:weather-rainy"
19 value_template: "{{ value_json.rain_mm }}"
20
21 # Binär-Sensoren (An/Aus)
22 binary_sensor:
23 - name: "Haustür"
24 state_topic: "haus/eingang/tuer"
25 device_class: door
26 payload_on: "open"
27 payload_off: "closed"
28
29 - name: "Bewegung Flur"
30 state_topic: "haus/flur/pir"
31 device_class: motion
32 payload_on: "1"
33 payload_off: "0"
34 off_delay: 120 # Nach 120s automatisch auf "off"
35
36 # Schalter (steuerbar)
37 switch:
38 - name: "Gartenpumpe"
39 state_topic: "haus/garten/pumpe/status"
40 command_topic: "haus/garten/pumpe/set"
41 payload_on: "ON"
42 payload_off: "OFF"
43 retain: true
44
45 # Licht (dimmbar)
46 light:
47 - name: "Schreibtischlampe"
48 state_topic: "haus/buero/lampe/status"
49 command_topic: "haus/buero/lampe/set"
50 brightness_state_topic: "haus/buero/lampe/brightness"
51 brightness_command_topic: "haus/buero/lampe/brightness/set"
52 brightness_scale: 255Tasmota-Geräte über MQTT
Tasmota ist eine beliebte Open-Source-Firmware für ESP8266/ESP32-basierte Geräte (Sonoff, Tuya, usw.). Nach dem Flashen kommunizieren sie über MQTT mit Home Assistant.
- Gerät mit Tasmota flashen: Über USB mit tasmota.github.io/install oder Tuya-Convert (OTA)
- WLAN konfigurieren: Mit dem Tasmota-Hotspot verbinden, WLAN-Daten eingeben
- MQTT konfigurieren: Web-UI, Configuration, MQTT: Broker-IP, Benutzer und Passwort eingeben
- Auto-Discovery aktivieren: Tasmota Console: SetOption19 0 (neues Discovery Format)
- In HA erkannt: Das Gerät erscheint automatisch unter Geräte & Dienste
1# Tasmota MQTT-Einstellungen (Web-UI)
2# Tasmota Configuration > MQTT:
3Host: 192.168.1.100 # IP deines HA-Servers
4Port: 1883
5Client: tasmota_steckdose
6User: mqtt_user
7Password: dein_passwort
8Topic: steckdose_buero
9
10# Wichtige Console-Befehle:
11# SetOption19 0 -> Neues HA Discovery Format
12# SetOption30 1 -> HA Discovery aktivieren
13# TelePeriod 30 -> Telemetrie alle 30 SekundenTasmota Energiemessung in HA
1# Tasmota Energiedaten auswerten
2# Tasmota sendet automatisch Energiedaten:
3# Topic: tele/steckdose_buero/SENSOR
4# Payload:
5# {
6# "ENERGY": {
7# "Power": 45,
8# "Voltage": 230,
9# "Current": 0.196,
10# "Today": 1.234,
11# "Total": 567.89
12# }
13# }
14
15# In HA als Template-Sensor:
16template:
17 - sensor:
18 - name: "Büro Steckdose Kosten Heute"
19 state: >
20 {{ (states('sensor.steckdose_buero_energy_today') | float * 0.35) | round(2) }}
21 unit_of_measurement: "EUR"
22 icon: "mdi:currency-eur"MQTT mit Zigbee2MQTT
Zigbee2MQTT verbindet Zigbee-Geräte über MQTT mit Home Assistant. Mehr zu den Funkprotokollen selbst findest du im Zigbee & Z-Wave Guide. Z2M ist die beliebteste Alternative zur ZHA-Integration und bietet mehr Kontrolle und Geräteunterstützung.
Vorteile:
- 3.000+ unterstützte Geräte
- Eigene Web-UI für Geräteverwaltung
- OTA-Firmware-Updates
- Gerätegruppen und Binding
- Aktive Community mit schnellem Support
Nachteile:
- Braucht Mosquitto MQTT als Voraussetzung
- Etwas komplexerer Setup als ZHA
- Separates Add-on neben HA
1# Zigbee2MQTT Konfiguration
2# /config/zigbee2mqtt/configuration.yaml
3homeassistant: true
4permit_join: false # Nur zum Pairen temporär auf true
5
6mqtt:
7 base_topic: zigbee2mqtt
8 server: mqtt://localhost:1883
9 user: mqtt_user
10 password: !secret mqtt_password
11
12serial:
13 port: /dev/ttyUSB0 # Dein Zigbee-Koordinator
14
15advanced:
16 network_key: GENERATE
17 pan_id: GENERATE
18 channel: 15 # Kanal mit wenig WLAN-Störung
19
20frontend:
21 port: 8080 # Web-UI auf Port 8080
22
23devices:
24 # Geräte werden automatisch hinzugefügt
25 '0x00158d0001234567':
26 friendly_name: 'wohnzimmer_sensor'
27
28groups:
29 '1':
30 friendly_name: 'alle_lichter_wohnzimmer'
31 devices:
32 - '0x00158d0001234568'
33 - '0x00158d0001234569'MQTT testen und debuggen
MQTT Explorer
MQTT Explorer ist ein kostenloses Desktop-Tool zum Visualisieren aller MQTT-Topics und Nachrichten. Unverzichtbar beim Debuggen.
HA-interne MQTT-Tools
1# MQTT-Nachrichten in HA testen
2# Entwicklerwerkzeuge > MQTT > Nachricht abhören:
3# Topic: haus/#
4# -> Zeigt alle eingehenden Nachrichten
5
6# Entwicklerwerkzeuge > MQTT > Nachricht senden:
7# Topic: haus/garten/pumpe/set
8# Payload: ON
9# -> Schaltet die Gartenpumpe ein
10
11# Automation zum MQTT-Debugging:
12automation:
13 - alias: "MQTT Debug Logger"
14 trigger:
15 - platform: mqtt
16 topic: "haus/#"
17 action:
18 - service: system_log.write
19 data:
20 message: >
21 MQTT: {{ trigger.topic }} = {{ trigger.payload }}
22 level: infoHäufige MQTT-Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Gerät verbindet nicht | Falsche Broker-Adresse oder Zugangsdaten | IP, Port, User und Passwort prüfen |
| Nachrichten kommen nicht an | Falsches Topic oder Firewall | MQTT Explorer nutzen, Topics prüfen |
| Gerät zeigt offline | LWT-Nachricht ausgelöst | Gerät-Verbindung und WLAN prüfen |
| Doppelte Entities | Discovery sendet mehrfach | Alte Discovery-Topics löschen |
| Werte veraltet | Kein Retain oder zu langes Intervall | Retain-Flag aktivieren, TelePeriod reduzieren |
Praxis-Beispiel: Kompletter MQTT-Sensor
Hier ein vollständiges Beispiel eines ESP32 mit DHT22 und MQTT, das Temperatur und Luftfeuchtigkeit an Home Assistant sendet:
1# ESPHome-Variante (empfohlen, statt Arduino)
2# ESPHome nutzt zwar nativ die API, kann aber auch MQTT:
3esphome:
4 name: aussen-sensor
5
6esp32:
7 board: esp32dev
8
9wifi:
10 ssid: !secret wifi_ssid
11 password: !secret wifi_password
12
13mqtt:
14 broker: 192.168.1.100
15 username: mqtt_user
16 password: !secret mqtt_password
17 topic_prefix: haus/aussen
18
19sensor:
20 - platform: dht
21 pin: GPIO4
22 model: DHT22
23 temperature:
24 name: "Temperatur"
25 humidity:
26 name: "Luftfeuchtigkeit"
27 update_interval: 30s
28
29 - platform: adc
30 pin: GPIO34
31 name: "Batterie"
32 unit_of_measurement: "%"
33 filters:
34 - calibrate_linear:
35 - 1.0 -> 0
36 - 3.3 -> 100Hinweis: Für eigene ESP-Geräte empfehle ich die native ESPHome-API statt MQTT, sie ist schneller, verschlüsselt und braucht keinen Broker. Nutze MQTT nur, wenn du das Gerät auch mit anderen Systemen (Node-RED, Grafana) verbinden willst.
Hinweis: Teste das Publish/Subscribe-Prinzip live in unserem MQTT Nachrichten-Simulator →
Häufige Fragen
Was ist MQTT und wofür brauche ich es?
MQTT ist ein leichtgewichtiges Nachrichtenprotokoll für IoT-Geräte. Geräte senden Nachrichten an Topics, ein zentraler Broker verteilt sie an alle Empfänger. In Home Assistant brauchst du MQTT vor allem für Zigbee2MQTT, Tasmota-Geräte und DIY-Projekte.
Wie installiere ich einen MQTT-Broker in Home Assistant?
Installiere das Add-on „Mosquitto broker" über den Add-on Store, lege einen eigenen Benutzer für MQTT an und starte das Add-on. Home Assistant erkennt den Broker danach automatisch und schlägt die MQTT-Integration vor. Die Standard-Einstellungen reichen für die meisten Setups.
Was bedeutet Retain bei MQTT?
Eine Nachricht mit Retain-Flag wird vom Broker gespeichert. Jeder neue Subscriber bekommt sofort den letzten Wert, statt auf die nächste Nachricht zu warten. Das ist praktisch für Statuswerte wie Temperatur oder Schaltzustände.
Wie teste ich, ob MQTT funktioniert?
In Home Assistant kannst du unter Entwicklerwerkzeuge, MQTT Nachrichten abhören und selbst senden. Mit dem Topic haus/# siehst du zum Beispiel alles, was unterhalb von „haus" ankommt. Für die große Übersicht ist der kostenlose MQTT Explorer am Desktop unverzichtbar.
Braucht ESPHome MQTT?
Nein. Eigene ESP-Geräte verbinden sich über die native ESPHome-API mit Home Assistant, die schneller und verschlüsselt ist und keinen Broker braucht. MQTT lohnt sich bei ESPHome nur, wenn du das Gerät auch mit anderen Systemen wie Node-RED oder Grafana verbinden willst.
Weiter lesen:
Passende Videos
Prime Day 2026: Die besten Smart-Home-Deals für Home Assistant
Prime Day 2026 Smart Home Deals für Home Assistant, von der 8-Euro-Steckdose bis 650 Euro Ersparnis. Meine 10 Favoriten mit HA-Integration im Check.
X-Sense Link+Pro: Rauchmelder in Home Assistant
Ich zeige dir, wie du X-Sense Rauchmelder, Wassermelder und Thermometer über HACS und MQTT in Home Assistant einbindest – inklusive fertiger Automationen.
Jackery SolarVault 3 Pro in Home Assistant integrieren
Ich zeige dir Schritt für Schritt, wie du den Jackery SolarVault 3 Pro per MQTT in Home Assistant integrierst – mit 52 Entities, YAML-Snippets und Energy Dashboard.
