Seit einigen Monaten habe ich ja hier eine Homea Asistant Instanz am Laufen und als ich damit angefangen habe, habe ich mir auch schon ein wenig Hardware fürs Smarthome besorgt, nämlich eine LED RGB-Lampe und eine Zigbee-Bridge von Sonoff. Wohl wissend, dass ich diese Bridge erst mal mit einer Opeen Source Firmware flashen muss bevor das sich mit Home Assistatnt verträgt. Und dann hatte ich wie immer wenig Zeit. Doch diese Woche ist HackWeek und mein Arbeitgeber ermöglicht es mir, Dinge zu probieren die ich schon lange mal machen wollte. Also habe ich dann mal gemacht.
Vorbereitungen
Zunächst mal muss man die Zigbee Bridgte öffnen un die Platine rausholen. Was man dann vor sich hat ist in diesem Blogartikel recht gut beschrieben. Also erst mal die Lötstation rausgeholt und eine 5-polige Pfostenleiste auf die Platine gelötet, damit wir über diese Verbindung die Firmware flashen können. Zum Flashen braucht man dann noch einen USB zu Serial Adapter an den ich auch noch einen extra GND-Pfosten angelötet habe. Dann wird das Serial-Interface mit einem Flachbandkabel aus der Bastelkiste mit der Bridge verbunden und die USB-Verbindung hergestellt. Das sieht dann so aus:
Backup der Original-Firmware
Bevor ich jetzt aber irgend eine Firmware darauf nagele wollte ich erst mal ein Backup der Sonoff-Firmware erstellen die auf der Bridge ist. Um ESP-Firmwarte zu sichern habe ich mir eine Anleitung herausgesucht. Die Funktioniert auch so weit, dass ich mit
1 |
esptool.py --port /dev/ttyUSB0 flash_id |
ohne Probleme die Infos zum Controller auslesen konnte. Aber das eigentliche Auslesen der Firmware mit
1 |
esptool.py --port /dev/ttyUSB0 -b 460800 read_flash 0 0x400000 sonoff-firmware.bin |
wollte einfach nicht funktionieren, es gab immer wieder Fehlermeldungen dass keine Verbindung herstellbar war.
Dann ist es mir langsam gedämmert, das man vielleicht noch mehr tun muss, nämlich den Taster an der Bridge drücken und dann das USB-Kabel einstecken. Damit wird der Microcontroller in den Programmiermodus versetzt und man kann die Firmware auslesen. Dieser Kniff ist später auch wichtig wenn wir die neue Firmware flashen wollen.
Firmare flashen
Zum Flashen der Firmware habe ich mich an die oben verlinkte Anleitung gehalten und das ganze mit dem Tasmota Web Flash Tool gemacht. Das hat auch problemlos funktioniert, ählich wie wenn ich in ESPHome meine Microcontroller mit Firmware flashe.
Firmware drauf, was nun?
Als nächster Schritt kann man das „Programmierkabel“ abziehen und die Bridge wieder über den integrierten USB-Port mit Strom versorgen, danach am Smartphone mit dem WiFi-Access-Point verbinden den die unkonfigurierte Firmware aufmacht. Dort WiFi-Zugangsdaten für daheim eingeben und das Ding startet neu und ist am PC auch mit dem Browser erreichbar.
Doch dann gingen die Probleme los. Weder mit ZHA Integration noch mit Zigbee2MQTT komme ich voran, Home Assistant macht einfach nix oder sagt nur lapidar „Fehler“. Ich habe auch keine Ahnung was die Firmware kann, ich habe nochmals von vorne begonnen, neu geflashed, selbes Ergebnis.
Wenn ich die Taste an der Bridge drücke, dann sehe ich in deer Consoile im Webbrowser von Tasmota dass man damit Power „on“ und „off“ macht mehr ist nicht.
Ich bin schier am Verzweifeln, denn mein Unterbewusstsein sagt mr, da fehlt noch was. Also wieder Google anwerfen. Dort finde ich einen anderen Blogartikel der dann auch beschreibt, wie man eine „coordinator firmware“ flashed.
Das habe ich dann gemacht und ja, irgendwie klappte es oder auch nicht. Ich habe dann jedenfalls mal die Auto-Configuration auf „Sonoff ZBPro“ ohne TCP eingestellt, denn dann managed die Bridge selbst ihre Zigbee-Verbindungen. Und dann braucht es schlicht Geduld, denn bis die Zigbee-Buttons im Main-Menü der Firmware bedienbar sind dauert es ein paar Sekunden. Und hey, jetzt kann ich plötzlich auf „Zigbee Permit Join“ drücken und meine angesteckte Leuchte hört auf zu blinken und verindet sich mit der Bridge. Super.
Nur in Home Assistant geht immer noch nichts. Also wieder zurück auf „Sonfo ZBPro TCP“ damti die Verbindungen von Home Assistant verwaltet werden und dazu reicht es dann, das Zigbee2MQTT-Addon von Github im Home Assistant zu installieren. In der Konfiguration stellt man dann unter „serial“ folgendes ein:
1 |
port: tcp://192.168.0.101:8888 |
Die IP-Adresse hier ist die der Zigbee-Bridge und der Port 8888 ist das was man im Protokoll sieht, wo die Bridge lauscht. Nun heißt es wieder Geduld haben, denn nach ein paar Sekunden mit Ausflügen nach „502 Bad Gateway“ sieht man die Zigbee2MQTT Benutzeroberfläche und kann dort auch den Pairing-Modus aktivieren.
Nächstes Problem war, dass die Lampe vom vorheringen Versuch schon eingebunden war, ich die also nochmals in den Anlernmodus versetzen musste. Das geht, indem man sie mehrfach im Sekundentakt ein und auschaltet. Dann fängt sie wieder an zu blinken.
Erfolg!
Und dann war sie da, die Lampe im Home Assistant. Ein wenig in der Detail-Konfiguration gespielt und dann kann man sogar die Farben einstellen. Für meine Versuche habe ich die Lampe mal in eine Fassung mit Kabel aus dem Baumarkt geschraubt, die hatte ich noch von der Hausrenovierung von vor 25 Jahren rumliegen.
Im Home Assistant Dashobard sieht das Bedienfeld für die Leuchte erst mal ganze einfach aus:
Hier sieht man also nur die Voreingestellte Helligkeit und man kann die Lampe durch klicken auf das Lampen-Symbol ein- und ausschalten. Klickt man auf die 3 Punkte rechts oben geht ein noch komfortableres Bedienfeld auf:
Man kann also die Lampe ein- und ausschalten, die Helligkeit setuern, ebenso die Farbe über einen Farbwähler oder über die Buttons mit dne Liebglingsfarben, außerdem kann man noch die Farbtemperatur steuern. Und wer will kann sogar Effekte damti machen.
Als nächstes werde ich mir einen Zigbee-Bewegungsmelder besorgen und mal sehen, ob ich mit dem dann die Leuchte automatisieren kann, also immer wenn sich was bewegt geht diese für eine definierte Zeit an und danch wieder aus. Mein heutiges Ziel habe ich jedenfalls erreicht, Zigbee funktioniet auf meinem Home Assistant.