Bei einem Setup für Home Assistant mit externem MQTT-Broker steht der Broker außerhalb Ihres Hauses, sodass Geräte im Ferienhaus, in der Werkstatt oder in der Wohnung von Verwandten mit derselben Home-Assistant-Instanz sprechen können, ohne Portweiterleitung oder VPN. In diesem Leitfaden verbinden Sie Home Assistant über TLS mit einem Cloud-Broker, organisieren Topics für mehrere Standorte und binden alternativ das lokale Mosquitto-Add-on per Bridge an die Cloud an, damit lokale Geräte weiterarbeiten, wenn das Internet ausfällt.
Warum ein externer Broker
Das Mosquitto-Add-on ist nicht ohne Grund die Standardwahl: Es ist lokal, schnell und einfach. Unpraktisch wird es, wenn sich Geräte nicht in Ihrem Heimnetz befinden:
- Ein Sensor in einer zweiten Immobilie muss Ihr Heimnetz erreichen, was Portweiterleitung, dynamisches DNS und einen aus dem Internet erreichbaren Broker bedeutet, oder ein VPN auf batteriebetriebener Hardware.
- Mehrere Home-Assistant-Instanzen (Ihre, die Ihrer Eltern) können sich nicht ohne Weiteres einen Gerätebestand teilen.
- Andere Anwendungen, etwa ein Grafana-Stack auf einem Server oder eine mobile App, brauchen einen eigenen Zugangsweg.
Ein externer Broker kehrt die Richtung um. Jeder Client, einschließlich Home Assistant, verbindet sich ausgehend mit demselben MQTT-Broker in der Cloud. In Ihrem Zuhause lauscht nichts, und alle Standorte sind gleichberechtigt.
| Ansatz | Lokale Geräte bei Internetausfall | Entfernte Geräte | Komplexität |
|---|---|---|---|
| Nur lokales Mosquitto | Funktionieren | Benötigen VPN oder Portweiterleitung | Gering |
| Direkt zum Cloud-Broker | Melden nichts bis zur Wiederverbindung | Funktionieren überall | Gering |
| Lokales Mosquitto per Bridge zur Cloud | Funktionieren | Funktionieren überall | Mittel |
Wählen Sie die direkte Verbindung, wenn die meisten Geräte entfernt sind oder Ihnen Einfachheit wichtig ist. Wählen Sie die Bridge, wenn kritische lokale Automatisierungen (Licht, Heizung) von MQTT-Geräten im Haus abhängen.
Option 1: Home Assistant direkt mit dem Cloud-Broker verbinden
Broker und Zugangsdaten anlegen
Registrieren Sie sich im ConnectMQ-Portal, legen Sie einen Broker an und notieren Sie den generierten Benutzernamen, das Passwort und die Client-ID. Erstellen Sie getrennte Zugangsdaten für Home Assistant und für jedes entfernte Gerät, damit Sie einzelne widerrufen können, ohne die anderen anzufassen.
Bevor Sie Home Assistant anfassen, testen Sie die Zugangsdaten von einem Computer aus:
mosquitto_sub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs \
-u YOUR_USERNAME -P YOUR_PASSWORD -i YOUR_CLIENT_ID \
-t "sites/#" -v
Unter macOS mit Homebrew ersetzen Sie --capath /etc/ssl/certs durch --cafile mit Verweis auf ein CA-Bundle, zum Beispiel $(brew --prefix)/etc/ca-certificates/cert.pem. Wenn sich dieser Befehl verbindet und still wartet, sind Zugangsdaten und TLS-Pfad in Ordnung.
Die Integration konfigurieren
- Aktivieren Sie in Ihrem Home-Assistant-Benutzerprofil den Erweiterten Modus. Ohne ihn sind Client-ID und TLS-Optionen ausgeblendet.
- Gehen Sie zu Einstellungen > Geräte & Dienste > Integration hinzufügen > MQTT (oder konfigurieren Sie Ihren bestehenden MQTT-Eintrag neu).
- Geben Sie ein:
- Broker:
broker.connectmq.com - Port:
8883 - Benutzername / Passwort: die Zugangsdaten für Home Assistant
- Client-ID: die ausgegebene Client-ID, exakt
- Validierung des Broker-Zertifikats: Auto
- Transport: TCP
- MQTT-Protokoll: 5 (oder 3.1.1; beide werden unterstützt)
- Broker:
- Absenden und prüfen, ob die Integration als verbunden angezeigt wird.
Die Validierung Auto nutzt den CA-Speicher des Systems, der dem vom Broker präsentierten Let's-Encrypt-Zertifikat vertraut. Wählen Sie für eine Internetverbindung niemals Aus. Falls Ihr Netzwerk ausgehend Port 8883 blockiert, stellen Sie den Transport auf WebSockets mit Port 8084 und Pfad /mqtt um; das läuft über HTTPS-ähnlichen Verkehr, den die meisten Firewalls zulassen. Mehr dazu unter MQTT über WebSocket.
Ein entferntes Gerät
Ein entfernter ESP32 veröffentlicht mit eigenen Zugangsdaten auf demselben Broker:
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <PubSubClient.h>
WiFiClientSecure net;
PubSubClient mqtt(net);
void setup() {
WiFi.begin("CABIN_WIFI", "CABIN_WIFI_PASSWORD");
while (WiFi.status() != WL_CONNECTED) delay(250);
net.setCACert(ISRG_ROOT_X1); // Let's-Encrypt-Root, PEM-String an anderer Stelle definiert
mqtt.setServer("broker.connectmq.com", 8883);
}
void loop() {
if (!mqtt.connected()) {
if (mqtt.connect("YOUR_CLIENT_ID", "YOUR_USERNAME", "YOUR_PASSWORD",
"sites/cabin/boiler-room/availability", 1, true, "offline")) {
mqtt.publish("sites/cabin/boiler-room/availability", "online", true);
} else {
delay(5000);
return;
}
}
mqtt.loop();
static unsigned long last = 0;
if (millis() - last > 60000) {
last = millis();
mqtt.publish("sites/cabin/boiler-room/climate", "{\"temperature\":6.4,\"humidity\":71}");
}
}
Das ESP32-MQTT-Tutorial zeigt, wie Sie das Root-Zertifikat einbetten. In Home Assistant definieren Sie den Sensor in YAML oder lassen das Gerät sich über Home Assistant MQTT Discovery selbst anmelden.
Topic-Design für mehrere Standorte
Bei vielen Standorten auf einem Broker gehört der Standort an den Anfang:
sites/<site>/<room>/<device>/<measurement-or-command>
sites/home/livingroom/climate
sites/cabin/boiler-room/climate
sites/cabin/boiler-room/availability
sites/workshop/compressor/power
Vorteile: ein Wildcard pro Standort (sites/cabin/#), einfache Bridge-Regeln und klare Zuständigkeiten im ConnectMQ-Topic-Explorer. Belassen Sie Discovery-Configs unter dem Standardpräfix homeassistant/, und wenn sich zwei Home-Assistant-Instanzen den Broker teilen, geben Sie jeder ein eigenes Discovery-Präfix, damit sie nicht die Entitäten der jeweils anderen übernehmen. Dasselbe Prinzip – zuerst der Ort, dann das Gerät – trägt in der Industrie den Unified Namespace (UNS): Dort bildet die ISA-95-Hierarchie Werk, Bereich, Linie und Zelle die Topic-Ebenen, etwa acme/werk-muenchen/montage/linie-1/zelle-3/temperatur.
Option 2: Das Mosquitto-Add-on per Bridge an die Cloud anbinden
Eine Bridge ist eine Verbindung von Ihrem lokalen Mosquitto zum externen Broker, die ausgewählte Topics in eine oder beide Richtungen weiterleitet. Home Assistant und lokale Geräte sprechen weiter mit dem lokalen Broker, sodass Automatisierungen Internetausfälle überstehen, während entfernte Standorte über die Bridge erscheinen.
- Aktivieren Sie in der Konfiguration des Mosquitto-Add-ons die benutzerdefinierte Konfiguration:
customize:
active: true
folder: mosquitto
- Erstellen Sie
/share/mosquitto/bridge.conf(zum Beispiel mit dem File-Editor- oder Samba-Add-on):
connection connectmq
address broker.connectmq.com:8883
bridge_protocol_version mqttv311
remote_clientid YOUR_CLIENT_ID
remote_username YOUR_USERNAME
remote_password YOUR_PASSWORD
bridge_capath /etc/ssl/certs
bridge_insecure false
cleansession true
try_private false
notifications false
restart_timeout 10 60
# lokale Hausdaten gehen nach oben, entfernte Standorte kommen herunter
topic sites/home/# out 1
topic sites/cabin/# in 1
topic sites/workshop/# in 1
- Starten Sie das Add-on neu und suchen Sie im Log nach einer Zeile, die meldet, dass die Bridge verbunden ist.
try_private false wird empfohlen, wenn die Gegenseite keine weitere Mosquitto-Instanz ist. Falls das Add-on in Ihrer Version das CA-Verzeichnis nicht findet, laden Sie das PEM von ISRG Root X1 nach /share/mosquitto/ herunter und verwenden stattdessen bridge_cafile /share/mosquitto/isrgrootx1.pem. Bridgen Sie niemals # in beide Richtungen; das erzeugt Schleifen und Duplikate.
Die Bridge ist eine Standardfunktion von Mosquitto und agiert als gewöhnlicher MQTT-Client des Cloud-Brokers; sie funktioniert daher mit jedem verwalteten MQTT-Broker, der TLS und Zugangsdaten akzeptiert.
Die Verbindung überwachen
Sobald Home Assistant von einem externen Broker abhängt, sollten Verbindungsprobleme sichtbar werden. Geben Sie jedem entfernten Gerät ein Availability-Topic mit einer retained online-Nachricht und einem Last Will offline, und verwenden Sie es in Ihren Entitätsdefinitionen, damit entfernte Sensoren als nicht verfügbar erscheinen, statt veraltete Werte anzuzeigen. Eine einfache Home-Assistant-Automatisierung, die Sie benachrichtigt, wenn die Availability-Entität eines entfernten Standorts zehn Minuten lang nicht verfügbar bleibt, erkennt Stromausfälle und Routerdefekte in der zweiten Immobilie. Auf Broker-Seite zeigt der Live-Topic-Explorer, ob ein Standort noch veröffentlicht, und Schwellwert-Alarmregeln können kritische Werte überwachen, etwa eine frostgefährdete Temperatur in der Hütte.
Sicherheits-Checkliste
- TLS für jede Internetverbindung (8883 oder 8084), niemals unverschlüsseltes 1883 mit echten Zugangsdaten.
- Ein Satz Zugangsdaten pro Standort oder Gerät; widerrufen statt alles zu rotieren.
- Client-IDs müssen zu den ausgegebenen Zugangsdaten passen; ConnectMQ bindet sie aneinander und sperrt IPs nach wiederholten fehlgeschlagenen Anmeldungen.
- Veröffentlichen Sie Türschlosszustände, Alarmcodes oder Anwesenheitsdaten niemals auf einem öffentlichen MQTT-Broker, der nur für Tests und Prototypen gedacht ist; halten Sie sie auf Ihrem privaten Broker.
- Halten Sie Befehls-Topics eng gefasst und lassen Sie Geräte nur bekannte Werte akzeptieren.
Die allgemeinen Prinzipien finden Sie unter MQTT-Sicherheit: Best Practices.
Fehlerbehebung
| Symptom | Ursache | Lösung |
|---|---|---|
| „Not authorized“ im Log | Falsches Passwort oder falsche Client-ID | Zugangsdaten erneut kopieren; Client-ID muss exakt übereinstimmen |
| Zertifikatsprüfung fehlgeschlagen | Validierung auf benutzerdefiniert ohne CA gestellt oder sehr altes System | Validierung Auto verwenden; Betriebssystem aktualisieren |
| Verbindet sich und bricht alle paar Sekunden ab | Dieselbe Client-ID wird von zwei Clients genutzt | Jedem Client eigene Zugangsdaten geben |
| Bridge verbunden, aber keine Daten | Topic-Muster passen nicht | Muster mit den echten Topics im Topic-Explorer vergleichen |
| Doppelte Nachrichten | Topic in beide Richtungen gebridget | Für überlappende Muster in oder out statt both verwenden |
Home Assistant mit ConnectMQ verbinden
Erstellen Sie unter app.connectmq.com einen kostenlosen Serverless-Broker, ganz ohne Kreditkarte. Der kostenlose Plan unterstützt bis zu 25 Verbindungen, genug für Home Assistant, eine Bridge und eine Reihe entfernter Geräte, und Sie können später upgraden, ohne Topics zu ändern. ConnectMQ betreibt den Broker, erneuert Zertifikate und isoliert Ihren Datenverkehr. Weitere Projekte finden Sie im Leitfaden zur IoT-Automatisierung und in der grundlegenden Home Assistant MQTT-Einrichtung.
Häufig gestellte Fragen
Funktionieren meine Automatisierungen nicht mehr, wenn das Internet ausfällt?
Bei einer direkten Cloud-Verbindung werden MQTT-Entitäten erst wieder aktualisiert, wenn die Verbindung zurück ist. Wenn lokale Automatisierungen von MQTT-Geräten abhängen, nutzen Sie die Mosquitto-Bridge, damit lokaler Datenverkehr das Haus nie verlässt.
Muss ich Ports an meinem Router öffnen?
Nein. Home Assistant, die Bridge und entfernte Geräte verbinden sich alle ausgehend mit dem externen Broker, daher sind keine eingehenden Ports erforderlich.
Können sich zwei Home-Assistant-Instanzen einen externen Broker teilen?
Ja. Geben Sie jeder Instanz eigene Zugangsdaten und ein eigenes Discovery-Präfix und organisieren Sie Topics nach Standort, damit jede Instanz nur abonniert, was sie braucht.
Welchen Port sollte ich verwenden, wenn 8883 blockiert ist?
Verwenden Sie Secure WebSocket auf Port 8084 mit dem Pfad /mqtt, was Home Assistant über die Transportoption WebSockets unterstützt.



