Home Assistant · Unraid · MQTT
Nachdem ich mein Home-Assistant-Setup etwas entschlackt habe, war einer der ersten Dienste, die ich ausgelagert habe, der Mosquitto MQTT Broker. In diesem Beitrag zeige ich, warum ich Mosquitto auf meinem Unraid-Server als eigenen Docker-Container betreibe und wie Home Assistant damit verbunden wird.
Kurz gesagt
Home Assistant bleibt bei mir die zentrale Oberfläche für Geräte, Zustände und Automationen. Mosquitto übernimmt sauber getrennt die MQTT-Kommunikation. Unraid stellt die Container-Plattform bereit.
Unraid
└── Docker
├── Mosquitto
├── Node-RED
├── InfluxDB
├── Grafana
└── Frigate
Warum ich Mosquitto ausgelagert habe
Am Anfang ist es bequem, möglichst viel direkt in Home Assistant laufen zu lassen. Add-on installieren, starten, einrichten und fertig. Für kleinere Setups ist das völlig in Ordnung.
Bei mir wurde das System mit der Zeit aber größer. Es kamen mehr Geräte, mehr Automationen, mehr Datenpunkte und weitere Dienste dazu. Irgendwann wollte ich die einzelnen Aufgaben klarer voneinander trennen.
Home Assistant
Zentrale Oberfläche, Geräteverwaltung, Dashboards und einfache Automationen.
Mosquitto
Stabiler MQTT Broker für die Kommunikation zwischen Geräten und Diensten.
Node-RED
Komplexere Logik, Flows, Bedingungen und gut nachvollziehbares Debugging.
Der Mosquitto Broker ist dabei eine wichtige Basis. Wenn Home Assistant neu startet oder ich daran arbeite, soll MQTT nicht automatisch davon betroffen sein. Genau deshalb läuft Mosquitto bei mir als eigener Docker-Container auf Unraid.
Warum Unraid dafür gut passt
Unraid ist bei mir ohnehin die zentrale Plattform für mehrere Dienste. Home Assistant, Node-RED, Mosquitto, InfluxDB, Grafana und weitere Container laufen auf dem Homeserver. Dadurch ist es für mich logisch, auch MQTT sauber dort zu betreiben.
Der Vorteil: Jeder Dienst bleibt für sich wartbar. Ich kann Home Assistant aktualisieren, ohne Mosquitto anzufassen. Ich kann Mosquitto prüfen, ohne in den Home-Assistant-Logs suchen zu müssen. Und ich kann meine Container-Struktur sauber über Unraid verwalten.
Mein Ziel: Nicht alles komplizierter machen, sondern die Struktur klarer bekommen. Jeder Dienst soll genau das machen, wofür er gedacht ist.
Meine Ordnerstruktur unter Unraid
Für Mosquitto nutze ich unter Unraid eine typische appdata-Struktur. Dadurch bleiben Konfiguration, Daten und Logs auch dann erhalten, wenn der Container aktualisiert oder neu erstellt wird.
/mnt/user/appdata/mosquitto/config
/mnt/user/appdata/mosquitto/data
/mnt/user/appdata/mosquitto/log
config
Hier liegt die Mosquitto-Konfiguration, zum Beispiel die mosquitto.conf und die Passwortdatei.
data
In diesem Ordner speichert Mosquitto persistente Daten, falls Persistence aktiviert ist.
log
Hier können Mosquitto-Logs abgelegt werden, wenn man sie zusätzlich als Datei speichern möchte.
Mosquitto als Docker-Container
Als Docker-Image nutze ich:
eclipse-mosquitto:2
Die wichtigsten Container-Pfade sind:
Host-Pfad: /mnt/user/appdata/mosquitto/config
Container-Pfad: /mosquitto/config
Host-Pfad: /mnt/user/appdata/mosquitto/data
Container-Pfad: /mosquitto/data
Host-Pfad: /mnt/user/appdata/mosquitto/log
Container-Pfad: /mosquitto/log
Für den normalen MQTT-Betrieb reicht in den meisten Fällen Port 1883. Optional kann zusätzlich Port 9001 für WebSockets genutzt werden. Für meine Home-Assistant-Anbindung ist aber vor allem 1883 relevant.
1883 TCP = MQTT
9001 TCP = MQTT über WebSocket, optional
Mosquitto-Konfiguration
Im Ordner /mnt/user/appdata/mosquitto/config liegt die Datei mosquitto.conf. Eine einfache Grundkonfiguration kann so aussehen:
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd
persistence true
persistence_location /mosquitto/data/
log_dest stdout
log_dest file /mosquitto/log/mosquitto.log
Wichtig: Mit allow_anonymous false dürfen sich Clients nicht anonym verbinden. Geräte und Dienste brauchen also Benutzername und Passwort. Das ist im Heimnetz nicht immer zwingend, aber deutlich sauberer.
MQTT-Benutzer anlegen
Damit Home Assistant sich später verbinden kann, braucht Mosquitto einen Benutzer. Im Mosquitto-Container kann man dafür eine Passwortdatei anlegen.
mosquitto_passwd -c /mosquitto/config/passwd homeassistant
Danach wird ein Passwort abgefragt. Wenn später weitere Benutzer ergänzt werden sollen, nutzt man den Befehl ohne -c, damit die bestehende Passwortdatei nicht überschrieben wird.
mosquitto_passwd /mosquitto/config/passwd weiterer_user
Nach dem Anlegen oder Ändern der Passwortdatei sollte der Mosquitto-Container einmal neu gestartet werden.
Home Assistant mit dem externen Broker verbinden
In Home Assistant wird anschließend die MQTT-Integration eingerichtet. Dabei wird nicht mehr ein internes Add-on verwendet, sondern der externe Mosquitto Broker auf Unraid.
Einstellungen
→ Geräte & Dienste
→ Integration hinzufügen
→ MQTT
Die Daten sehen ungefähr so aus:
Broker: IP-Adresse deines Unraid-Servers
Port: 1883
Benutzer: homeassistant
Passwort: dein MQTT-Passwort
Beispiel:
Broker: 192.168.178.50
Port: 1883
Die IP-Adresse muss natürlich zur eigenen Unraid-Installation passen. Sinnvoll ist eine feste IP-Adresse oder eine DHCP-Reservierung im Router, damit sich die Adresse des Servers nicht plötzlich ändert.
Testen, ob MQTT funktioniert
Nach dem Einrichten sollte geprüft werden, ob Home Assistant den Broker sauber erreicht. In Home Assistant kann man unter der MQTT-Integration testen, ob Nachrichten veröffentlicht oder empfangen werden können.
Ein einfaches Test-Topic könnte zum Beispiel so aussehen:
test/gerlcraft
Später können eigene Topics dazukommen, zum Beispiel für Shellys, ESP32-Projekte oder eigene Sensoren.
shelly/...
esp32/...
homeassistant/...
Nicht vergessen: Wenn vorher ein anderer MQTT Broker verwendet wurde, müssen auch die Geräte und Dienste auf den neuen Broker zeigen. Sonst sucht man später an der falschen Stelle nach Fehlern.
Warum das gut zu Node-RED passt
Node-RED und MQTT passen für mich sehr gut zusammen. In Node-RED kann ich MQTT-Nachrichten abonnieren, auswerten, verändern und wieder veröffentlichen. Gerade bei komplexeren Logiken ist das deutlich angenehmer als verschachtelte Automationen.
Ein typischer Ablauf kann so aussehen:
Sensor sendet MQTT-Wert
→ Mosquitto empfängt die Nachricht
→ Node-RED verarbeitet die Logik
→ Home Assistant zeigt den Status an
→ Gerät oder Automation reagiert
Das ist sauber nachvollziehbar und lässt sich gut debuggen. Genau deshalb bleibt MQTT bei mir eine zentrale Kommunikationsschicht zwischen den einzelnen Diensten.
Was man beachten sollte
- Der Unraid-Server sollte eine feste IP-Adresse haben.
- Die Mosquitto-Zugangsdaten sollten sauber dokumentiert werden.
- Die Ordner unter
appdatasollten ins Backup aufgenommen werden. - Geräte und Dienste müssen auf den neuen Broker umgestellt werden.
- Nach Änderungen an der Passwortdatei sollte der Container neu gestartet werden.
Mein Fazit
Mosquitto als eigenen Docker-Container auf Unraid zu betreiben, passt für mein Setup deutlich besser, als alles direkt in Home Assistant laufen zu lassen.
Home Assistant bleibt dadurch schlanker. Mosquitto läuft unabhängig. Node-RED kann sauber mit MQTT arbeiten. Und Unraid übernimmt die Rolle als zentrale Plattform für meine Dienste.
Für kleine Smart-Home-Setups ist das nicht zwingend notwendig. Aber sobald das System wächst, lohnt sich diese Trennung meiner Meinung nach.
Weitergedacht
Home Assistant bleibt die Zentrale – aber nicht jeder Dienst muss darin laufen.
Für mich ist die Auslagerung von Mosquitto ein weiterer Schritt zu einem saubereren Smart-Home-Setup. Nicht komplizierter, sondern besser getrennt und leichter wartbar.


Schreibe einen Kommentar