ZigBee2MQTT vs. ZHA: Inbetriebnahme und Übersiedelung
Zuerst Phoscon, dann Zigbee2MQTT (Z2M) und zuletzt Zigbee Home Automation (ZHA): Ich habe alle drei ZigBee-Gateway-Softwarelösungen mit Home-Assistant ausgiebig getestet und verwende jetzt ZHA, was auch das primäre Thema dieses Artikels ist. Der Wechsel von einer Gateway-Lösung zur anderen kann abhängig von der Anzahl an verbundenen Geräten durchaus etwas anstrengend sein. Als Beispiel musste ich beim Umstieg von Phoscon auf ZigBee2MQTT alle Geräte neu verbinden, was speziell bei den Unterputzdimmern nicht wirklich lustig ist. Der Umstieg von Zigbee2MQTT zu ZHA ist wesentlich einfacher verlaufen, da die sich die Geräte großteils von selbst in ZHA gemeldet haben. Zigbee2MQTT hat bei mir über ein Jahr ohne Probleme funktioniert, daher wäre der Umstieg eigentlich gar nicht notwendig gewesen. Der Grund für den Umstieg war mehr die Neugierde und um die unterschiedlichen Lösungen vergleichen zu können.
Was ist ZHA?
ZHA (Zigbee Home Automation) ist eine Home Assistant Integration für die direkte Verbindung von Zigbee-Geräten in Home Assistant. Für die Kommunikation verwendet ZHA eine Open-Source-Python-Bibliothek zigpy, welche einen hardwareunabhängigen Zigbee-Stack implementiert. Alle mit zigpy kompatiblen Koordinatoren können mit ZHA verwendet werden.
Wechsel von Zigbee2MQTT zu ZHA: Schritt für Schritt
Backup
Als Erstes sollte für den Wechsel in Zigbee2MQTT ein Backup erstellt werden. An dieser Stelle musste ich feststellen, dass das Backup des Conbee II -Stick kein Coordinator-Backup enthält, siehe: www.zigbee2mqtt.io/guide/adapters/#notes. Beim Backup eines Zigbee-Coordinator mit einem Chip von Texas Instruments (CC2530/CC2531/CC2538/CC2652/CC1352) wird in der ZIP-Datei ein File mit dem Namen: coordinator_backup.json angelegt. Für den Conbee-Stick kann zwar auch ein Backup erstellt werden, eben aber ohne der coordinator_backup.json-Datei. Die Datei kann, oder in meinem Fall könnte, für einen Restore in Home Assistant verwendet werden. Zum Erstellen des Backups existiert in Zigbee2MQTT unter "Einstellungen", "Tools" der Button: "download_z2m_backup":
Zugriff auf den Zigbee-Coordinator anpassen
Ich betreibe Home Assistant als Container in Docker. Die docker-compose-Datei beinhaltet alle notwendigen Container für den Betrieb von Home Assistant und dessen benötigter Services, siehe: Home-Assistant Docker Conbee 2: ZHA,Zigbee2MQTT,deCONZ.
Vor der Umstellung auf ZHA habe ich für Zigbee2MQTT zusätzlich zum eigentlichen Home Assistant Container diese beiden Container gestartet:
- Mosquitto (MQTT-Broker) und
- Zigbee2MQTT
Der Container Zigbee2MQTT hat den Conbee-Stick über "devices" in den Container gemappt. Nachdem die Kommunikation mit dem ZigbeeCoordinator von Home Assistant mit ZHA direkt übernommen wird, kann das Device vom Container zigbee2mqtt entfernt und zum Home Assistant Container hinzugefügt werden:
Zunächst habe ich die beiden Container zigbee2mqtt und mosquitto noch nicht entfernt, damit ich in Zigbee2MQTT noch nachsehen kann, wie die Geräte darin verbunden sind. Nachdem bei meinem Setup bestimmte andere Geräte MQTT für die Kommunikation verwenden, werde ich den MQTT-Broker vorerst ohnehin noch behalten. Zigbee2MQTT werde ich in Zukunft nicht mehr benötigen und daher nach dem Übersiedeln der Zigbeegeräte aus der Konfiguration entfernen. Wer an dieser Stelle ein neues Betriebssystem verwendet, muss die Rechte für den Zugriff auf /dev/ttyACM0 im OS anpassen:
sudo gpasswd -a $USER dialout
Die Änderungen können über den docker-compose-Befehl aktiviert werden:
docker compose up -d
Integration hinzufügen
ZHA kann in den Einstellungen und mit "Integration hinzufügen" aktiviert werden: Zigbee Home Automation:
Durch das Mapping auf den Home Assistant Container meldet sich der ConBee II Stick an dieser Stelle:
Im Anschluss könnte das zuvor erstellte Backup eingespielt werden. Wie bereits erwähnt aber nicht für den ConBee II:
Etwas verzweifelt habe ich den Menüpunkt: "Radio-Einstellungen beibehalten" ausgewählt:
Und siehe da, die Geräte tauchen nach und nach in Home Assistant auf:
Zwar haben sich nicht alle Geräte wieder gemeldet, dennoch musste ich keinen der Unterputz-Aktoren zurücksetzen, was schon mal einen wesentlichen Gewinn zu meinem ersten Umstieg von Phoscon zu Zigbee2MQTT darstellt. Die meisten Aquara Temperatursensoren tauchten nach mehrmaligen Drücken auf dem Verbindungsknopf auf, einige musste ich aber dennoch neu einlernen.
Geräte neu benennen
Leider haben alle Geräte einen neuen Namen in Home-Assistant bekommen, was mir dennoch einiges an Arbeit beschert hat. Damit ich alle bestehenden Lovelance-Cards ohne Anpassung weiterverwenden kann, habe ich allen Geräten dessen ursprünglichen Namen wieder gegeben. Dazu musste ich das alte MQTT-Gerät jeweils als Erstes löschen:
Die neuen Verbindungen tauchen jetzt unter Zigbee Home Automation auf:
Das Gerät selbst kann über "Einstellungen bearbeiten" umbenannt werden:
Die Entitäten wurden bei dieser Aktion leider nicht geändert und mussten von mir gesondert bearbeitet werden:
Aus den neuen Namen konnte ich zudem nicht ableiten um welches Gerät es sich handelt, daher habe ich in der MQTT-Integration ein Diagnostic-File heruntergeladen. Die Datei enthält die ursprünglichen Namen und IDs der Geräte, wodurch ich diese nachschlagen konnte.
Die ID kann unter "Geräteinformation" und Zigbee Info angezeigt werden:
In den Diagnostik-Informationen der ursprüngliche Name und die ID ohne ":" gelistet.
Wie kann ein neues Zigbee-Gerät zu Home Assistant hinzugefügt werden?
Neue Geräte können über Einstellungen / Gerät hinzufügen / Zigbee-Gerät hinzufügen mit Home Assistant gepaart werden.
Geräte direkt binden
Damit die Zigbee-Geräte direkt von einem Schalter per Funk gesteuert werden können, gibt es die Möglichkeit diese direkt zu binden. Dazu habe ich zunächst eine Gruppe erstellt:
Gruppe für die Geräte erstellen die geschaltet werden sollen:
Schalter: Zigbee-Gerät verwalten:
Und die zuvor erstellte Gruppe binden:
Je nachdem welche Geräte sich in der Gruppe befinden, funktionierte das direkte Binden bei mir nicht immer. Als Beispiel konnte meine Innr LED-Stripe nur gepaart werden, indem ich in die Gruppe zuerst eine Hue Bulb gegeben habe, damit den Taster gebunden und die Bulb mit der LED-Stripe ausgetauscht habe.
Visualisieren
In Einstellungen / Integration kann mit Konfigurieren und Visualisieren das Zigbee-Netzwerk und dessen Verbindungen angezeigt werden.
Netzwerkeinstellungen: Backup in Home Assistant
In Home Assistant kann über die ZHA Integration ein Backup der Netzwerkeinstellungen erstellt werden.
Zudem wäre es möglich die Einstellungen auf einen anderen Koordinator zu übertragen.
Vergleich Zigbee Home Automation und Zigbee2MQTT
Was sind die Vorteile von ZHA im Vergleich zu Zigbee2MQTT?
- Das ZHA-Setup ist im Vergleich zu Zigbee2MQTT schlanker. Durch das Verwenden von MQTT als Netzwerkprotokoll sind beim Einsatz von Zigbee2MQTT zusätzliche Services für die Kommunikation notwendig. Die Daten werden nicht direkt, sondern von Zigbee2MQTT an einen MQTT-Broker übertragen, welcher die Daten an Home Assistant kommuniziert.
Was sind die Vorteile von Zigbee2MQTT im Vergleich zu ZHA ?
- MQTT ist ein offenes Netzwerkprotokoll und kann auch außerhalb von Home Assistant eingesetzt werden.
- Nachdem ZigBee2MQTT in einem eigenen Docker-Container betrieben werden kann, läuft die Verbindung zu den Geräten weiter, auch wenn Home-Assistant neu gestartet wird.
Welche Zigbee Gateway Software unterstützt mehr Geräte: Zigbee2MQTT oder ZHA?
- Zigbee2MQTT listet eine Anzahl an offiziell unterstützten Geräten: 3819 von 440 Herstellern, siehe: www.zigbee2mqtt.io/supported-devices/. Für ZHA gibt es keine offizielle Aussage, dennoch ist davon auszugehen, dass die Anzahl ähnlich hoch sein dürfte. Funktionen abseits des Zigbee-Standards werden in ZHA über entsprechende Anpassungen (Quirks) zur Verfügung gestellt, siehe: https://github.com/zigpy/zha-device-handlers. Zigbee-Geräte, die sich an den offiziellen Standard halten funktionieren ohne einer Anpassung (Quirks). Aus diesem Grund werden mehr Geräte unterstützt als in dem Projekt angeführt. Das Konzept der benutzerdefinierten Quirks-Implementierungen ist ähnlich dem Konzept der Zigbee-Herdsman-Umsetzer, wie sie von Zigbee2MQTT verwendet werden.
Fazit
Wer seine ZigBee-Geräte in Home Assistant einbinden möchte, findet mit ZHA eine einfache und solide Lösung. Die Alternative Zigbee2MQTT hingegen basiert auf einem offenen Netzwerkprotokoll, was beim Einsatz mit Home Assistant ein etwas aufwendigeres Setup voraussetzt. Obwohl beide Systeme wunderbar funktionieren, würde ich - speziell für eine Neuinstallation - ZHA empfehlen.
{{percentage}} % positiv