Einleitung
Willkommen zu meiner Anleitung, wie du MQTT in Home Assistant einrichtest. MQTT ist ein leichtgewichtiges Nachrichtenprotokoll, das besonders im Bereich Smart Home und IoT (Internet of Things) häufig eingesetzt wird. Ich nutze es für alles, das nicht mit ESPHome funktioniert. In diesem Artikel zeige ich dir Schritt für Schritt, wie du MQTT in Home Assistant integrierst, um dein Zuhause noch smarter zu machen.
Was ist MQTT?
MQTT ist ein einfaches Kommunikationsprotokoll, das speziell für das Internet der Dinge (IoT) entwickelt wurde. Es hilft Geräten wie Sensoren und Smart-Home-Geräten, miteinander zu reden. Ein Gerät sendet eine Nachricht an einen zentralen Server, den sogenannten Broker bei uns Mosquitto in Home Assistant. Dieser Broker verteilt dann die Nachricht an alle Geräte, die sich dafür interessieren. Das Protokoll ist sehr effizient und funktioniert gut, auch wenn die Netzwerkverbindung mal schwächer ist. Es sorgt dafür, dass wichtige Informationen zuverlässig ankommen. Viele Smart-Home-Geräte und IoT-Plattformen nutzen MQTT, weil es einfach und zuverlässig ist.
Voraussetzungen
Bevor wir starten, stelle sicher, dass du die folgenden Voraussetzungen erfüllst:
- Hardware: Ein Raspberry Pi oder ein anderer Server, auf dem Home Assistant laufen kann.
- Software: Home Assistant installiert und konfiguriert.
MQTT in Home Assistant einrichten
Nun richten wir MQTT in Home Assistant ein. Dafür verwenden wir den Mosquitto MQTT-Broker.
- Installation des MQTT-Brokers (Mosquitto)
- Gehe zu Supervisor -> Add-on Store.
- Suche nach „Mosquitto broker“ oder „MQTT und installiere das Add-on.
- Starte den Broker und aktiviere die Option „Start on boot“.
- Mosquitto broker ist ein Server, der die ganzen Nachrichten vom MQTT verwaltet und verteilt.
Einrichten eines separaten Nutzers:
- mein Tipp ist es einen separaten Nutzern anzulegen für MQTT.
- Notiere dir diesen Zugang gut z.B. in deinem Passwort Manager.
- Dieser benötigst du auch, wenn du z.B. Tasmota installieren möchtest.
- Dieser Nutzer mit Password ist dein Zugang zu MQTT.
- Alle Geräte wie eine Tasmota Steckdose und auch dein Home Assistant brauchen ein Nutzer mit Passwort um sich mit MQTT verbinden zu können
- diesen Nutzer in meinem Fall mqtt mit einem sicheren Passwort legen wir jetzt an.
- Auto Konfiguration:
- Bei manchen Installationen wird direkt bei „Benachrichtigungen“ erkannt, dass MQTT installiert worden ist
- Hier reicht es, auf Bestätigen zu klicken. Dann kann Schritt 2 Übersprungen werden.
2. Konfiguration der MQTT-Integration
- Gehe zu Konfiguration -> Integrationen.
- Klicke auf „Integration hinzufügen“ und suche nach „MQTT“.
- Füge die MQTT-Integration hinzu und konfiguriere sie mit den Standardwerten.
- Bitte jetzt den vorher angelegten Nutzer mqtt mit eurem festgelegtem Passwort eintragen.
- Damit verbindet sich Home Assistant mit dem MQTT Server (Broker) Mosquitto
Erste Schritte mit MQTT
Jetzt, da MQTT eingerichtet ist, testen wir die Verbindung, indem wir einfache Nachrichten senden und empfangen.
Hier zeige ich dir, wie du jetzt Tasmota einrichtest.
Tasmota einrichten
- bitte trage in Tasmota jetzt die IP ohne http deines Home Assistant Servers ein z.b. bei mir 192.168.1.13
- bitte trage den Nutzer und das PW, dass du vorher angelegt hast ein.
- dann sollte sich alles verbinden
MQTT direkt testen:
- MQTT-Nachricht senden
- Öffne das MQTT-Add-on und gehe zu den „MQTT Tools“.
- Sende eine Testnachricht an ein beliebiges Topic (z.B. „test/topic“).
- MQTT-Nachricht empfangen
- Verwende die gleichen MQTT-Tools, um Nachrichten zu abonnieren und die gesendete Nachricht zu empfangen.
Erweiterte Konfiguration
Nachdem die Grundkonfiguration funktioniert, erweitern wir das Setup um Sensoren und Aktoren.
- MQTT-Sensor hinzufügen
- Füge in der
configuration.yaml
-Datei einen MQTT-Sensor hinzu. Hier als Beispiel ein Switch für ein Thermostat und ein Sensor. Ich habe das Beispiel vereinfacht und hier siehst du, wie du z.b. die LED steuerst.
- Füge in der
mqtt:
switch:
- unique_id: led_gpio2
name: "LED GPIO2"
state_topic: "node1/led/status"
command_topic: "node1/led/set"
payload_on: "ON"
payload_off: "OFF"
state_on: "ON"
state_off: "OFF"
optimistic: true
qos: 0
retain: false
sensor:
- name: "Arbeitszimmer_RoomTemp"
state_topic: "p11/office/thermostat/roomtemp"
unique_id: thermostat_mqtt1_roomtemp
device_class: temperature
unit_of_measurement: "°C"
Troubleshooting und Tipps
Falls du auf Probleme stößt, können diese Tipps hilfreich sein:
- IP & Adresse: Bitte stelle sicher, dass alle deine Geräte, die MQTT nutzen wollen die richtige IP nutzen. Das ist die IP deines MQTT Servers. In der Regel ist das dein Home Assistant IP im Netzwerk. Wichtig ohne http sondern nur z.b. 192.168.1.13
- Verbindungsprobleme: Überprüfe die Broker-Logs auf Fehlermeldungen.
- Keine Nachrichten: Stelle sicher, dass die Topics korrekt abonniert und veröffentlicht werden.
Fazit
Mit MQTT und Home Assistant kannst du dein Smart Home erheblich erweitern und automatisieren. Die Einrichtung mag am Anfang etwas komplex erscheinen, aber mit dieser Anleitung solltest du gut vorbereitet sein. Probiere es aus und entdecke die vielen Möglichkeiten, die dir MQTT bietet.
Alkly
Ich zeigt dir, wie du selber ohne Programmierkenntnisse und Herstellerunabhängig dein Zuhause mit selbst gebauter Smart Home-Technologie smart machen kannst.
Die Einrichtung des MQTT-Gerätes funktioniert gut. HA kann also MQTT empfangen.
Die Einbindung des MQTT-Sensors noch des MQTT-Aktors in das Dashboard funktioniert mit diesem YAML code aber nicht. Das geht damit los, dass man sich für einen ‚type:‘ entscheiden muss, der MQTT-Nachrichten zulässt. Dann muß man die empfangenen strings irgendwie parsen – nach ‚ON‘ oder ‚OFF‘ z.B.
Danke für dein Hinweis! Passe ich an.
Ich habe jetzt schon ewig gesucht um Tasmota einzubinden mit flashen und ewigen Erklärungen und die Beschreibung hier ist einfach Spitzenklasse vielen dank für die Mühe das hat mit sehr geholfen DANKE …..
😀 das freut mich echt zu lesen! Ich hatte auch immer in der Entwickler Doku nachlesen müssen. Deshalb hab ich gedacht, schreib ich es einfach mal auf.
Welche Beziehung haben die Werte 16 und 26 in Deinen YAML-Zeilen zu den GPIO-Pins? Ich habe zum Test eine NodeMCU und möchte die LED an GPIO2 ein und ausschalten, weiß aber nicht, welche Werte ich als payload/state eintragen muss.
Die haben erstmal keine direkte Bedeutung.
Bei mir war es die Payload, die dem ESP sagt, welche Temperatur er einstellen soll.
Das Beispiel ist vermutlich etwas spezifisch. Ich hatte das so gemacht, dass der ESP 26 bekommt und dann den code so ausführt, dass er das Thermostat auf 26 grad stellt. Off war dann 16.
Ich pass das Beispiel mal an, das verwirrt sonst mehr.
Was möchtest du bauen?
Keine Chance, bricht immer ab. Fehlermeldung lautet immer: Bitte gib die Verbindungsinformationen deines MQTT-Brokers ein.
Keine Ahnung, was geändert werden muss. Wird nirgends erwähnt.
Hey, wo genau kommt der Fehler? Schick mir gern ein Screenshot via Email, ich pack die Lösung hier rein.