Zigbee2MQTT & HomeAssistant für Noobs
Das schöne an Plattformen wie HomeAssistant oder openHAB ist, dass man nicht auf einen Hersteller beschränkt ist. Durch die Zahlreichen Add-Ons können wir bunt mischen. So hab ich z.B. Leuchten und Bewegungsmelder von Osram und Ikea, die mit Zigbee funken, Tuya-Geräte die per WLAN funken, und überall ist im Hintergrund das MQTT Protokoll. Meine neueste Anschaffung sind Fensterkontakte von Silvercrest, bzw. Lidl. In diesem Guide / Tutorial will ich euch zeigen, wie man Zigbee Devices in den HomeAssistant einbindet und das ohne zusätzliche Gateways. Außerdem gehen wir auf Automatisierungen ein.
Inhalt
Vorraussetzung
Natürlich braucht ihr einen laufenden MQTT Broker in eurem SetUp. Wie ihr Mosquitto unter HomeAssistant auf dem RaspberryPi einrichtet, gibt es in diesem Beitrag.
Hardware
Ganz ohne fähige Hardware kommen wir leider nicht aus. Wir brauchen einen Dongle. Bei $Amazon$ gibt es günstige, ich habe mich für den CC2531 entschieden. Dieser wird einfach in einen der USB Ports des RaspberryPi gestopft.
SetUp
Leider ist Zigbee2MQTT nicht von Haus aus im Add-On Store des HomeAssistant. Das ist aber kein Problem, wir können nämlich neue, eigene Repositories hinzufügen. Dazu gehen wir über Einstellungen (links im Menü) – Add-Ons, BackUp & Supervisor – und dann den Floating Button unten rechts in den Add-On Store.
Am oberen rechten Bildschirmrand sind die 3 Punkte für das erweiterte Menü und hier versteckt sich der Reiter „Repositories“. Diesen klicken wir an und ein Fenster öffnet sich.
Hier sehen wir die vorgemerkten Repos, wie ESP Home und die Community Add-Ons. Wir fügen einfach die folgende URL hinzu und speichern:
https://github.com/zigbee2mqtt/hassio-zigbee2mqtt
Nun können wir über die Suche nach dem Zigbee2MQTT Add-on ausschau halten und wie gewohnt installieren.
Wenn ihr den Toggle-Button entsprechend aktiviert, gibt es einen Schnellzugriff links im Menü. In jedem Fall wechseln wir auf die Benutzeroberfläche des Add-Ons und sehen: nichts….
Troubleshooting
Zunächst sollten wir einmal im Protokoll nachsehen, was das Problem sein könnte. Das finden wir zurück in der Add-On verwaltung und dann oben im Reiter „Protokoll“ Bei mir gab es einen Fehler mit dem „Herdsman“.
Wir können zunächst in der Konfiguration den Herdsman extra debuggen lassen. Das bedeutet, wir bekommen detailliertere Fehlermeldungen. Außerdem können wir das Frontend von Zigbee2MQTT auf einen extra Port legen, den wir außerhalb der HomeAssistant GUI erreichen und das mal testen. Dazu ergänze ich die Konfiguration (im Zigbee2MQTT Add-On) wie folgt:
zigbee_herdsman_debug: true
frontend:
port: 8099
Dann startet sich der Dienst neu, und wir können wieder ins Protokoll wechseln und schauen was sich getan hat.
Okay, also wird ein Pfad nicht gescheit gefunden. Das schreit danach, dass der Dongle nicht erkannt wird. Das Problem lässt sich aber leicht lösen. Wir brauchen dazu zunächst ein anderes Add-On: Das Terminal. Dazu suchen wir im Add-On Store des HomeAssistant nach Terminal und installieren das Add-On Terminal & SSH.
Terminal & SSH
Auch hier aktiviere ich den Schnellzugriff und wechsle in die Oberfläche des Add-Ons.
Ich habe nun des Zigbee2MQTT Dongle entfernt und wieder eingesteckt. Nun prüfe ich den internen Ereignislog des RaspberryPi mit dem folgenden Befehl:
dmesg
Das liefert mir die folgende Ausgabe. Man kann noch prüfen welchen Gruppen der Dongle zugeordnet ist, das ist aber nicht weiter wichtig. Das USB Device ist also vorhanden und wird erkannt. So weit so gut.
Zigbee2MQTT neu Konfigurieren
In dem Reiter „Konfiguration“, auf der gleichen Seite, wo auch das Protokoll für Zigbee2MQTT zu finden ist (Einstellungen – Add-Ons, … – Zigbee2MQTT) können wir die Zeilen bei Serial abändern:
serial:
port: /dev/ttyACM0
Der Dienst startet sich wieder neu. Siehe da: Es läuft:
Geräte hinzufügen
Üblicherweise werden Zigbee Geräte durch einen Factory-Reset in den Pairing Modus gebracht.
Bewegungsmelder
Osram Ledvance smart+ Motion Sensor
Der Bewegungsmelder von Osram (z.B. von $Amazon$) wird durch entfernen der Batterie auf die Werkseinstellung zurückgesetzt. Also öffnen wir die Rückseite. Ich nehme dazu eine Pinzette zur Hilfe, um den Schnapphaken vorsichtig von seiner Tasche zu lösen. Dann entfernen wir die Batterie, warten etwa 5 Sekunden und stecken diese dann wieder ein. Zum Schluss kommt die Kappe wieder drauf. Sobald das geschehen ist, hat homeAssistant bzw. Zigbee2MQTT das Gerät auch schon erkannt.
Ich gebe dem Gerät direkt den korrekten Namen und wechsle dann aufs Dashboard. Dort können wir direkt sehen, ob Bewegungen erkannt werden.
Das schöne am Osram Bewegungsmelder ist, dass er einen integrierten Temperaturfühler hat. Diesen können wir zum Dashboard hinzufügen und so die Temperatur des Raumes tracken, in dem der Sensor steht.
Bei mir soll er auf Bewegung im Flur reagieren und dann das Licht anschalten. Dazu könnt ihr weiter Unten im Abschnitt „Automatisierung“ weiterlesen.
Sonoff Motion Sensor – SNZB-03
Der Bewegungsmelder von Sonoff (z.B. von $Amazon$) hat einen kleinen Reset-Knopf, den man mit einer Nadel, einem Ohrring oder dem kleinen Hilfsdings für SIM-karten gut erreichen kann. Dieser muss für etwas 5 Sekunden gedrückt und gehalten werden, bis die eingebaute LED blinkt. Auch das funktionierte reibungslos, solange der Bewegungsmelder nicht zu weit weg vom Dongle war.
Silvercrest Tür- und Fensterkontakt
Die Smart Home Geräte von Lidl sind ziemlich preiswert und daher auf jedenfall einen Test wert. Ich habe mir die Kontakte zugelegt, um z.B. die Balkontür oder das Schlafzimmerfenster zu überwachen. Falls wir vergessen diese zu schließen und das Haus verlassen, gibt es eine Erinnerung aufs Smartphone. Um die Kontakte zu Koppeln hat es nicht gereicht, die Trennfolie zur Batterie zu entfernen. Ich musste mit dem beigelegten SIM-Karten Tool den Reset-Button betätigen und ziemlich in die Nähe des Kontaktes gehen. Dann hat das Koppeln aber sofort funktioniert.
Automatisierung
Ein Bewegungsmelder macht nicht so viel Sinn, wenn er nichts zu tun hat. Also soll dieser meine Leuchten im Flur schalten, sobald er Bewegung erkennt. Dass soll er aber nur machen, wenn es 2h vor Sonnenuntergang bzw. 2h nach Sonnenaufgang ist. Das ist doch ein perfektes Beispiel für eine Automation.
Wie Ihr IKEA Geräte in euer HomeAssistant einbindet, findet ihr in einem extra Artikel <hier/>. Ich hab allerdings das IKEA Gateway. Da die Tradfri-Leuchten auch auf Zigbee Standard funken, sollten diese aber auch mit dem Zigbee2MQTT Dongle zu koppeln sein.
Automatisierungen haben einen eigenen Bereich im Home Assitant. Diesen finden wir unter Einstellungen – Automatisierung (der zweite Button von Oben). Unten rechts ist wieder der große Floating-Button zum hinzufügen. Diese klicken wir natürlich direkt mal an.
Cool, es gibt eine Vorlage. Probieren wir diese doch direkt mal aus.
Wir können einen Namen vergeben, der aussagekräftig genug ist, um die Automatisierung später wieder zu finden. Denn mit der Zeit werden hier sicherlich nicht nur ein paar gelistet sein. Wir können dann die Entität für den Bewegungsmelder wählen. Bei mir ist es natürlich der Osram. Dann wählen wir einfach die Lichtquelle, die zu schalten ist. Alternativ lassen sich auch ganze Bereiche oder einzelne Entitäten schalten (Ein Gerät besteht aus mindestens einer, aber meistens mehreren Entitäten, ein Bereich aus mehreren Geräten). Dann gibt es noch den Time-Out wert, also wie lange die Leuchte nach der letzten Bewegung anbleiben soll. Das ist im Standard-Setting auf 120 Sekunden, also zwei Minuten eingestellt.
Meiner Meinung nach, macht diese Vorlage eher für ein Toiletten Szenario sinn. Also starten wir frisch, denn unsere Automation soll ja etwas komplexer werden.
Zunächst vergeben wir wieder einen aussagekräftigen Namen.
Dann müssen wir uns Überlegen, was passieren soll, wenn die Automation bereits läuft, und dann erneut getriggert wird. Ich nehme hier Neu Starten, da ich möchte, dass bei Erneuter bewegungserkennung, der Timer zurück gesetzt wird – Ähnlich wie die Vorlage.
Auslöser
Dann müssen wir einen Auslöser auswählen, also nehmen wir wieder den Bewegungsmelder und das ereignis, wenn Bewegung detektiert wird. Die Dauer lassen wir bei 0, da wir dieses Feature nicht verwenden möchten.
Bedingungen
Als Nächtes fügen wir unsere Bedingungen, also nur in der Nacht hinzu. Da ich jedoch das Zeitfenster um je 2h vergrößern will, müssen wir noch im Zeitformat hh:mm:ss (hours, minutes, seconds) das Offset hinzufügen.
Aktionen
Nun können wir noch Aktionen hinzufügen. Die erste ist, das Licht mit einer Helligkeit von 20% anzuschalten. (Mehr braucht es Nachts ja nicht, das ist wohl angenehmer für die Augen). Dann soll ein Timer über 5 Minuten laufen, und dann soll das Licht wieder ausgeschaltet werden. Hier kann man richtig kreativ werden.
Wir können zum Beispiel noch die Bedingung hinzufügen, dass das ausschalten nur ausgelöst wird, wenn die Leuchte auch eingeschaltet ist.
Szenen
Ein weiteres praktisches Tool sind die Szenen. Hier können wir für eine Vielzahl von Geräten voreinstellungen zusammenfassen, die wir dann in den Automationen gezielt ansteuern. Z.b. wenn ihr einen Filmabend Befehl erstellt, und bestimmte Leuchten mit bestimmer Farbe und Helligkeit dazu schalten wollt. Oder einen Party-Modus. Ihr versteht die Idee.
Ich hoffe ich konnte ein paar von euch Helfen, denn die Doku von Zigbee2MQTT auf GitHub geht nicht besonders offensichtlich auf die Konfiguration in HomeAssistant ein.
$ Die mit einem $ gekennzeichneten Links, sind Affiliate Links. Wenn du über diese in den Shop gelangst und etwas kaufst, bekomme ich eine kleine Provision
3 Kommentare
[…] von anderen Geräten nutzen möchte, muss sie direkt per ZigBee einbinden. Dazu kann man z.B. zigbee2mqtt benutzen oder eine ZigBee Integration des Home Assistant, wie z.B. […]
Hallo, erstmal dank für den Blog. Ich hab versucht das einzurichten, jedoch hab ich einen extra Raspberry mit einem Raspbee Module laufen (Deconz). Das funkttioniert auch, jedoch bekomm ich die Verbindung von Zigbee2Mqtt mit meinem Module nicht hin. Hast du da Erfahrung?
Servus,
nee ich benutze Momentan einfach das ZHA. Das funktioniert bei mir Einwandfrei.
LG