Viele Smart-Home-Geräte, Tasmota-Steckdosen, Zigbee2MQTT, Node-RED-Flows und eigene ESP32-Projekte tauschen ihre Daten über MQTT aus. Damit diese Geräte miteinander kommunizieren können, wird ein MQTT-Broker benötigt – in der Praxis meist Mosquitto.
In diesem Tutorial zeige ich beide üblichen Installationswege: den offiziellen Mosquitto Broker direkt als Home-Assistant-App sowie einen eigenständigen Mosquitto-Container, beispielsweise auf einem Unraid-Server.
Beide Varianten funktionieren zuverlässig. Welche davon besser passt, hängt vor allem davon ab, wie Home Assistant bei dir installiert ist und ob MQTT auch unabhängig von Home Assistant für weitere Dienste verfügbar sein soll.
- MQTT und die Aufgabe eines Brokers verstehen
- Den offiziellen Mosquitto Broker in Home Assistant installieren
- Einen eigenen Mosquitto-Server als Docker-Container auf Unraid einrichten
- Home Assistant sicher mit dem Broker verbinden
- Die Verbindung mit einer Testnachricht prüfen
- Typische Fehler schnell beheben
Inhalt
Grundlagen
Was ist MQTT?
MQTT ist ein leichtgewichtiges Nachrichtenprotokoll für Geräte im Netzwerk. Die Geräte senden ihre Werte nicht direkt aneinander, sondern verbinden sich mit einem zentralen Broker.
ESP32 / Tasmota / Node-RED
│
│ veröffentlicht Nachrichten auf Topics
▼
Mosquitto MQTT-Broker
│
│ verteilt Nachrichten an Abonnenten
▼
Home Assistant
Ein Gerät kann zum Beispiel einen Helligkeitswert auf dem Topic gerlcraft/outdoor_lux/illuminance veröffentlichen. Home Assistant abonniert dieses Topic und kann den Wert sofort als Sensor verwenden.
- Broker: nimmt MQTT-Nachrichten entgegen und verteilt sie weiter.
- Topic: die Adresse einer Nachricht, zum Beispiel
wohnzimmer/temperatur. - Publisher: ein Gerät oder Dienst, der eine Nachricht sendet.
- Subscriber: ein Gerät oder Dienst, der ein Topic abonniert.
Entscheidungshilfe
Welche Variante passt zu dir?
| Variante | Gut geeignet für | Besonderheit |
|---|---|---|
| Mosquitto als Home-Assistant-App | Home Assistant OS und eine einfache, reine Smart-Home-Installation | Die schnellste Einrichtung. Nicht bei Home Assistant Container verfügbar. |
| Mosquitto als eigener Docker-Container | Unraid, Docker, Node-RED, Zigbee2MQTT und eigene ESP32-Projekte | Bleibt unabhängig von Home Assistant und kann von mehreren Diensten verwendet werden. |
Wenn du Home Assistant auf Unraid als Container betreibst, ist die zweite Variante in der Regel die passendere und flexiblere Lösung.
01
Voraussetzungen
Für beide Varianten benötigst du Administratorzugriff auf Home Assistant sowie Zugriff auf dein lokales Netzwerk. Entscheide dich anschließend für eine der beiden Broker-Installationen – zwei MQTT-Broker sind für ein einzelnes Smart Home normalerweise nicht nötig.
- Methode 1: Home Assistant OS oder Home Assistant Supervised mit Zugriff auf den Add-on-Shop.
- Methode 2: ein Docker-Host, zum Beispiel ein Unraid-Server, mit dauerhaftem Speicherplatz für die Mosquitto-Daten.
- Eine feste IP-Adresse oder DHCP-Reservierung für den Server, auf dem Mosquitto läuft.
- Ein langes, eigenes Kennwort für MQTT.
Wichtig
MQTT niemals offen ins Internet stellen
Port 1883 ist für dein lokales Netzwerk gedacht. Lege dafür keine Portfreigabe im Router an und verwende keinen anonymen Zugriff. Für einen sicheren Fernzugriff auf dein Smart Home eignen sich VPN, Home Assistant Cloud oder ein korrekt abgesicherter Reverse-Proxy.
02
Methode 1: Mosquitto direkt in Home Assistant installieren
Diese Methode eignet sich für Home Assistant OS. Mosquitto läuft dabei als verwaltete Home-Assistant-App auf demselben System.
Mosquitto Broker installieren
- Öffne Einstellungen → Apps → App Installieren.
- Suche nach Mosquitto broker und öffne die offizielle App.
- Klicke auf Installieren.
- Aktiviere bei Bedarf Beim Start starten und Watchdog.
- Starte die App.
Wenn du die MQTT-Integration noch nicht eingerichtet hast, kannst du auch über Einstellungen → Geräte & Dienste → Integration hinzufügen → MQTT beginnen. Home Assistant kann den offiziellen Mosquitto Broker dabei direkt einrichten und die internen Zugangsdaten selbst verwalten.
03
Zusätzlichen MQTT-Benutzer anlegen
Home Assistant selbst verbindet sich automatisch mit dem offiziellen Broker. Für externe Geräte und Dienste wie Node-RED, Tasmota, Zigbee2MQTT oder eigene ESP32-Projekte legst du einen eigenen MQTT-Benutzer an.
Öffne in der Mosquitto-App den Reiter Konfiguration und trage zum Beispiel Folgendes ein:
logins:
- username: mqtt
password: "HIER_EIN_LANGES_EIGENES_PASSWORT_EINTRAGEN"
anonymous: false
customize:
active: false
Speichere die Konfiguration und starte die Mosquitto-App neu. Für Geräte im Heimnetz verwendest du anschließend die IP-Adresse oder den Hostnamen deines Home-Assistant-Systems, Port 1883 und die gerade angelegten Zugangsdaten.
Optional: ohne Benutzer und Passwort
Anonymer Zugriff beim Home-Assistant-Broker
Der Broker kann auch vollständig ohne Anmeldung betrieben werden. Jedes Gerät im selben Netzwerk kann sich dann ohne Benutzername und Kennwort verbinden. Für ein abgeschlossenes, vertrauenswürdiges Heimnetz kann das praktisch sein, ist aber weniger sicher.
Ersetze die Konfiguration im Mosquitto-Add-on dafür durch:
logins: [] anonymous: true customize: active: false
Danach speicherst du die Konfiguration und startest die Mosquitto-App neu. In Home Assistant sowie auf allen MQTT-Geräten bleiben Benutzername und Kennwort dann leer.
Hinweis
Home Assistant Container besitzt keine Add-on-Verwaltung
Wenn Home Assistant als Docker-Container auf Unraid, einem NAS oder einem Linux-Server läuft, steht der Add-on-Shop nicht zur Verfügung. In diesem Fall installierst du Mosquitto separat als Docker-Container – genau das zeigt die nächste Methode.
04
Methode 2: Eigenständigen Mosquitto-Server auf Unraid installieren
Ein eigener Mosquitto-Container ist unabhängig von Home Assistant. Dadurch kann derselbe Broker gleichzeitig von Home Assistant, Node-RED, Zigbee2MQTT, Tasmota und eigenen ESP32-Projekten verwendet werden. Ein Neustart von Home Assistant unterbricht den Broker dabei nicht.
Dauerhafte Ordner anlegen
Öffne auf deinem Unraid-Server ein Terminal und lege die drei benötigten Ordner an:
mkdir -p /mnt/user/appdata/mosquitto/config mkdir -p /mnt/user/appdata/mosquitto/data mkdir -p /mnt/user/appdata/mosquitto/log
In diesen Ordnern speichert Mosquitto seine Konfiguration, gespeicherte Nachrichten und Log-Dateien dauerhaft. Bei einem Container-Update bleiben sie erhalten.
05
Mosquitto konfigurieren und Benutzer erstellen
Erstelle die Datei /mnt/user/appdata/mosquitto/config/mosquitto.conf und füge diesen vollständigen Inhalt ein:
persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log listener 1883 allow_anonymous false password_file /mosquitto/config/passwordfile
Die Konfiguration aktiviert die dauerhafte Speicherung und erlaubt ausschließlich Benutzer mit Kennwort. Als Nächstes erzeugst du die Passwortdatei für den MQTT-Benutzer mqtt:
docker run --rm -it \ -v /mnt/user/appdata/mosquitto/config:/mosquitto/config \ eclipse-mosquitto:2 \ mosquitto_passwd -c /mosquitto/config/passwordfile mqtt
Du wirst danach zweimal nach einem Kennwort gefragt. Dieses wird nur als sicherer Hash in der Datei passwordfile gespeichert.
Optional: anonymer Docker-Broker
Auch der eigenständige Docker-Broker kann ohne MQTT-Benutzer betrieben werden. Verwende dafür diese vollständige Konfiguration für die Datei mosquitto.conf:
persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log listener 1883 allow_anonymous true
Die Zeile password_file /mosquitto/config/passwordfile muss in dieser Variante entfernt werden. Das Erstellen der Passwortdatei mit mosquitto_passwd ist dann nicht erforderlich. Nach dem Neustart des Containers trägst du bei Home Assistant und den MQTT-Geräten keinen Benutzer und kein Kennwort ein.
Wichtig: Diese Variante nur verwenden, wenn der Broker ausschließlich im vertrauenswürdigen lokalen Netzwerk erreichbar ist. Jeder Client im LAN kann sonst Nachrichten lesen und veröffentlichen.
Achtung
Der Parameter -c erstellt die Passwortdatei neu. Möchtest du später einen weiteren Benutzer ergänzen, verwendest du denselben Befehl ohne -c. Andernfalls würdest du die vorhandenen Benutzer überschreiben.
06
Docker-Container in Unraid erstellen
Erstelle in Unraid einen neuen Docker-Container mit dem Image eclipse-mosquitto:2. Lege folgende Pfad- und Portzuordnungen an:
| Container-Pfad | Host-Pfad | Typ |
|---|---|---|
/mosquitto/config | /mnt/user/appdata/mosquitto/config | Pfad |
/mosquitto/data | /mnt/user/appdata/mosquitto/data | Pfad |
/mosquitto/log | /mnt/user/appdata/mosquitto/log | Pfad |
1883 | 1883 | TCP-Port |
Als Netzwerkmodus ist Bridge mit der Portfreigabe 1883:1883 für die meisten Unraid-Installationen ausreichend. Aktiviere außerdem die automatische Neustart-Option des Containers.
Wenn du Docker Compose verwendest, kannst du alternativ diese Konfiguration einsetzen:
services:
mosquitto:
image: eclipse-mosquitto:2
container_name: mosquitto
restart: unless-stopped
ports:
- "1883:1883"
volumes:
- /mnt/user/appdata/mosquitto/config:/mosquitto/config
- /mnt/user/appdata/mosquitto/data:/mosquitto/data
- /mnt/user/appdata/mosquitto/log:/mosquitto/log
Starte den Container. Im Log sollte Mosquitto anschließend ohne Fehler starten und auf Port 1883 lauschen.
07
Home Assistant mit dem eigenständigen Broker verbinden
- Öffne in Home Assistant Einstellungen → Geräte & Dienste.
- Klicke auf Integration hinzufügen und suche nach MQTT.
- Als Broker trägst du die IP-Adresse deines Unraid-Servers ein, zum Beispiel
192.168.1.10. - Verwende den Port
1883sowie den Benutzermqttund dein selbst vergebenes Kennwort. - Schließe die Einrichtung ab.
Wenn Home Assistant und Mosquitto im selben Docker-Netzwerk liegen, kann auch der Container-Name verwendet werden. Für eine klare und wartungsarme Heimnetz-Konfiguration ist die feste IP-Adresse des Unraid-Servers jedoch meist die einfachere Wahl.
08
MQTT-Verbindung testen
Nach der Einrichtung kannst du direkt in Home Assistant prüfen, ob Nachrichten am Broker ankommen:
- Öffne Einstellungen → Geräte & Dienste → MQTT.
- Klicke auf Konfigurieren.
- Trage unter Auf ein Topic hören ein
#ein. - Klicke auf Lauschen starten.
Das Zeichen # steht für alle Topics. Sobald ein MQTT-Gerät eine Nachricht sendet, sollte sie hier sichtbar werden.
Alternativ kannst du mit den Mosquitto-Clients aus einem Linux-Terminal testen. Zuerst hörst du auf alle Nachrichten:
mosquitto_sub -h 192.168.1.10 -p 1883 -u mqtt -P "DEIN_PASSWORT" -v -t "#"
In einem zweiten Terminal veröffentlichst du eine Testnachricht:
mosquitto_pub -h 192.168.1.10 -p 1883 -u mqtt -P "DEIN_PASSWORT" \ -t "test/hello" -m "MQTT funktioniert"
Erscheint die Nachricht im ersten Terminal oder in Home Assistant, ist dein MQTT-Broker korrekt eingerichtet.
Häufige Probleme und Lösungen
Verbindung abgelehnt: nicht autorisiert
Fast immer stimmen Benutzername oder Kennwort nicht, oder ein Gerät versucht sich anonym zu verbinden.
- Benutzername und Kennwort in Home Assistant und auf dem Gerät exakt vergleichen.
- Prüfen, ob die Datei
passwordfileim Mosquitto-Konfigurationsordner vorhanden ist. - Den Mosquitto-Container oder die App nach jeder Konfigurationsänderung neu starten.
Home Assistant findet den Broker nicht
Prüfe zuerst, ob Mosquitto läuft und Port 1883 erreichbar ist. Bei einer Unraid-Installation ist als Broker die IP-Adresse des Unraid-Servers einzutragen – nicht die IP-Adresse des Home-Assistant-Containers.
- Container-Log auf Startfehler kontrollieren.
- Portfreigabe
1883:1883im Docker-Container überprüfen. - IP-Adresse und Netzwerkverbindung des Unraid-Servers prüfen.
Das Gerät erscheint nicht automatisch in Home Assistant
Eine funktionierende MQTT-Verbindung bedeutet zunächst nur, dass Nachrichten übertragen werden. Damit Geräte automatisch angelegt werden, müssen sie MQTT Discovery unterstützen und ihre Konfiguration unter einem Topic wie homeassistant/sensor/.../config veröffentlichen.
Für eigene Projekte sollten Discovery-Konfigurationen mit retain: true veröffentlicht werden. Dann erhält Home Assistant die Gerätebeschreibung auch nach einem Neustart wieder.
Nach einem Neustart sind MQTT-Geräte offline
Der Broker muss automatisch starten und unter derselben Adresse erreichbar bleiben. Verwende beim Docker-Container daher restart: unless-stopped beziehungsweise die automatische Neustart-Option von Unraid. Eine DHCP-Reservierung verhindert zusätzlich, dass sich die Server-IP ändert.
Zusammenfassung
Der Mosquitto Broker als Home-Assistant-App ist der einfachste Weg für Home Assistant OS. Die Installation, Updates und der Start werden direkt über Home Assistant verwaltet.
Ein eigenständiger Mosquitto-Container ist die flexiblere Lösung für Unraid- und Docker-Installationen. Er bleibt unabhängig von Home Assistant und steht gleichzeitig Node-RED, Zigbee2MQTT, Tasmota und eigenen ESP32-Projekten zur Verfügung.
In beiden Fällen solltest du den Broker nur im Heimnetz verwenden, anonyme Zugriffe deaktivieren und für alle Geräte sichere Zugangsdaten verwenden.
Weiterführende Links: Home Assistant MQTT-Integration · Mosquitto Broker App · Mosquitto-Konfigurationsreferenz
