Zigbee Hub mit Raspberry Pi und Raspbee II


Auch wenn das Jahr 2020 in Summe besser abgeschrieben wird, das ein oder andere Vorhaben konnte dennoch umgesetzt werden. Und so kam es diesmal zu einem „funktionalen“ Weihnachtsgeschenk an meine Eltern: Die Vorbereitung für ein „Smart Home“ auf Basis von Home-Assistant, Phoscons Raspbee II-Modul und des Zigbee Protokolls.

Die Voraussetzungen zur Installation bei meinen Eltern könnten nicht stärker vom eigenen Haushalt abweichen: Es war nicht nur ist eine fast 30-fach größere Fläche abzudecken, sondern die Installation muss sich unauffällig, autonom und wartungsfrei verhalten. Die Abhängigkeit von Apps war (mangels geeigneter Telefone) ebenso zu vermeiden, wie proprieätere Cloud-Lösungen.

Zigbee Logo

Aufgrund der deutlich größeren, abzudeckenden Fläche und den eher mässigen Erfahrungen mit Homematic-Hardware im eigenen Haus, wurde mit Zigbee diesmal auf ein „Mesh“-Netzwerk gesetzt. Dabei sind die Geräte auch untereinander und nicht nur mit einer zentralen Stelle (sternförmig) vernetzt. Theoretisch und praktisch sind damit auch größere Entfernungen zwischen dem adressierten Endgerät und der steuernden Einheit (Router) möglich.

Primäres Ziel der Installation war eine „smarte“ Außenbeleuchtung von Mühle und Garten, welche bis dato noch über Wandschalter bzw. mechanische Uhrwerke in Schaltkästen geregelt ist. Weitere Anwendungsfälle (z.B. Steuerung der Teichfilter) werden folgen.

Hardware

Probleme mit USB 3.0

Eine Warnung vorweg, damit ich als einziger mir die Nächte um die Ohren geschlagen habe: Die Verwendung eines USB 3.0 Gerätes, z.B. eines USB-Sticks in unmittelbarer Nähe des Raspbee II führt zu vielfältigen Problemen. Die Ursache ist bekannt, scheint grundsätzlich zu sein und lässt sich mit einer USB-Verlängerung, Alu-Folie oder der Verwendung einer SD-Karte lösen.

Die notwendige Hardware habe ich rechtzeitig vor Weihnachten im Versandhandel organisiert. Dass Einzelhändler vor Ort entsprechende Gerätschaften im Regal haben ist eh schon un­wahr­scheinlich, spätestens mit dem 2. Lockdown war dann auch der Weg dorthin obsolet.

Zigbee Koordinatoren (auch als „Hub“ oder „Bridge“ vermarktet) gibt es zu Hauf. Die bekannteste Variante ist sicherlich die Philips Hue Bridge. Üblicherweise sind diese „Appliances“ auf Apps und Cloud-Services des Herstellers ausgerichtet. Im Bereich Heim-Automatisierung ist Zigbee aber nur eine Komponente von vielen und darum kam auch in diesem Projekt ein alter Bekannter zum Einsatz.

Raspberry Pi 4B 4GB

Es hat sich bei meinen eigenen Installation gezeigt, das die CPU eines Raspberry Pi 3 ausreichend potent ist, aber der Speicher gerade beim Einsatz mit Home Assistant schnell an seine Grenzen gerät. Darum habe ich zum Raspberry Pi 4B mit 4GB gegriffen, welcher für ca. 60 EUR erhältlich ist.

Erstmalig kamen dabei auch das Orignal Raspberry Pi USB-C Netzteil, sowie das passende Gehäuse zum Einsatz.

Der Setup erfolgte natürlich wieder „headless“ (via LAN), auf ein Micro-HDMI-Kabel konnte also verzichtet werden.

Raspbee II

Beim Raspbee II handelt es sich um die on-board-Variante eines Zigbee Coordinator Moduls von dresden-elektronik, welches unter der Marke Phoscon vertrieben wird. Es wird auf die General Purpose IO (GPIO)-Leiste eines Raspberry Pi gesteckt und als serielles Gerät angesprochen.

Mit an Bord ist außerdem eine batteriegestützte Real Time Clock, also eine Echtzeituhr. Die Einrichtung und Nutzung ist aus der Produktseite des Raspbee II beschrieben und sei hier nur am Rande erwähnt.

Phoscon Raspbee II Modul auf Produktverpackung
Phoscon Raspbee II

Die Installation auf dem Raspberry Pi ist denkbar einfach: Das Raspbee II-Modul wird auf das äußerste Ende der GPIO-Leiste gesteckt, so dass die eigentliche Platine über den Raspberry kommt und in Richtung USB-C-Port zeigt.

Das Modul baut sehr flach, so dass sowohl der Einsatz eines moderaten CPU-Kühlkörpers, als auch eines flachen Gehäuses möglich ist. Das Gehäuse sollte aber aus Kunststoff sein, um die Reichweite der Funksignale nicht unnötig zu reduzieren. Ich habe – wie gesagt – auf das Original gesetzt.

Raspberry Pi 4B mit aufgestecktem Raspbee II Modul
Phoscon II auf Raspberry Pi 4B (im Bild die 4GB-Version)

Wer lieber auf eine externe Lösung setzt, der kann statt des Raspbee II auch die USB-Variante namens Conbee II verwenden. Dann kommen allerdings andere Einstellungen zum Einsatz, die ich hier nicht beschreibe.

OSRAM Smart+ Classic E27 / Plug 01

Die beiden „Smart+ Bulbs“ von OSRAM wurden als Proof-of-Concept beschafft. Es handelt sich um „retrofit“ Leuchtmittel für die E27 Fassung mit steuerbarer Helligkeit. Mit einem Preis von rund 10 EUR pro Stück sind sie erschwinglich, aber auch ohne Schnick-Schnack. Im Betrieb sind sie aktuell unauffällig.

OSRAM Smart+ Classic E27 Produktverpackungen
OSRAM Smart+ Classic E27 Dimmable – Retrofit LED „Lampen“

Auch andere zertifizierte Zigbee-Leuchtmittel sollten funktionieren. Bei OSRAM gilt es aufzupassen, denn unter dem Schlagwort „Smart+“ werden auch andere Technologien wie WLAN oder Bluetooth vermarktet.

OSRAM Smart+ Outdoor Plug

Ebenfalls gekauft wurde ein OSRAM Smart+ Outdoor Plug, also eine Steckdose für den Außenbereich. Ein Riesen-Trümmer (siehe Aufmacher-Bild), obwohl mit Schutzart IP44 nur grundsätzlich gegen Wettereinfluß geschützt. In Zukunft kommen sicherliche schmalere Lösungen zum Einsatz, aber für den Moment war diese intern „Plug01“ genante Steckdose verfügbar und preislich attraktiv – gekauft.

In Summe haben die oben genannten Hardware und weitere Teile wie Gehäuse, Netzteil, SD-Karte ca. 130 EUR gekostet. Deutlich mehr als ein Philips Hue Starter Kit, aber auch deutlich flexibler, leistungsfähiger und ohne App- oder Cloud-Zwang.

Software

Ursprünglich hatte ich vor, erstmalig Home Assistant OS (vormals HASS.IO) zu verwenden, eine Distribution welche auf den Betrieb von Home Assistant ausgerichtet ist und auf Docker und einen „Supervisor“ setzt.

Leider ist es mir innerhalb der persönlichen Toleranzzeit (ca. 30min) nicht gelungen, eine nutzbare Installation zu erstellen. Durch das Supervisor-Konzept sind notwendige Eingriffe in das Betriebssystem bzw. die Kernel-Konfiguration nur aufwändig zu realisieren.

Raspbian Linux

Also kam wieder Raspbian Linux zum Einsatz, welches auch als „Raspbian Pi OS“ vermarktet wird. Die eigentliche Installation beschreibe ich an dieser Stelle nicht mehr, es finden sich bereits entsprechende Artikel in diesem Blog. Die 32-Bit „lite“-Variante ohne Desktop ist ausreichend.

Bevor das fertige Installationsmedium (SD-Karte) in den Raspberry gesteckt und dieser gestartet wird, sollten noch folgende Änderungen am Inhalt der ersten Partition vorgenommen werden. Dabei ist ein Editor zu verwenden, welcher Zeichenkodierung und Zeilen-Enden beibehält. Unter Windows können das z.B. Wordpad oder Visual Studio Code sein:

  1. aus der Datei cmdline.txt wird folgender Eintrag entfernt:
    console=serial0,115200
  2. die Datei config.txt wird um folgende Zeilen ergänzt (die Leerzeile am Dateiende muss erhalten bleiben):
    enable_uart=1
    core_freq=250
    dtoverlay=miniuart-bt

Optional kann noch eine (leere) Datei namens „ssh“ angelegt werden, damit ein Login via Secure Shell möglich ist. Danach kann die SD-Karte in den Raspberry Pi und dieser mit Strom versorgt werden. Nach einigen Sekunden bis Minuten sollte ein neuer Host „raspberrypi“ im heimischen Netz auftauchen.

Docker

Docker ist eine Plattform zur Prozess-Virtualisierung mithilfe von Containern. Sie erleichtert den Betrieb von Home Assistant erheblich, weil hier Abhängigkeiten auf Bibliotheken und Versionen des Betriebssystems vermieden werden.

Die Installation von Docker habe ich bereits in einem eigenen Artikel beschrieben: Docker und Raspbian auf einem Raspberry Pi.

Home Assistant

Home Assistant ist meine bevorzugte Plattform zur Heim-Automatisierung, da sie einfach zu installieren ist (insbesondere unter Verwendung von Docker). Kein Grund also nach einer Alternative für das neue Projekt zu suchen.

Wurden das Raspberry Pi OS (AKA Raspbian) und die Docker-Umgebung korrekt aufgesetzt (inkl. Neustart), so ist die Ausführung von Home-Assistant ein Klacks.

Im Wesentlichen gibt es zu meinem Artikel „Home Assistant mit Docker auf Raspberry Pi betreiben“ nur eine relevante Änderung: Der Zugriff auf das Raspbee II Modul muss durch das „mappen“ des entsprechenden seriellen Devices in den Container ermöglicht werden. Der vollständige Aufruf lautet also:

docker run -d \
  --name=home-assistant \
  --restart=always \
  --publish 8123:8123 \
  -v $PWD/home-assistant:/config \
  -v /etc/localtime:/etc/localtime:ro \
  --device=/dev/ttyAMA0 \
  homeassistant/home-assistant:stable

Hinweis: Alternativ zu „–publish 8123:8123“ kann „–net=host“ verwendet werden. Dies bindet den den Home Assistant Container an das Netzwerk des Hosts und es werden beim Start Integrationen zu allen im Netzwerk gefundenen Geräten angeboten.

ZHA Integration

Finaler Schritt der Einrichtung ist die Installation und Konfiguration des Zigbee Coordinators in Home Assistant. Dazu gibt es für das Raspee II Modul zwei Möglichkeiten:

  1. direkte Kommunikation mit dem Modul über die „Zigbee Home Automation“-Integration
  2. indirekte Kommunikation über einen zwischengeschalteten deCONZ-Service und die entsprechende „deCONZ“ Integration.

Ich habe mich für Variante 1 entschieden, weil sie keine weitere Abhängig­keit erzeugt und für meine Zwecke ausreichend ist. Sie kann auch die Firmware für OSRAM/Ledvance und IKEA-Leuchten „over the air“ aktualisieren.

Sobald Home Assistant läuft, auf Port 8123 erreichbar ist und man die Basis-Einrichtung vorgenommen hat (Benutzer, Standort, Zeitzone, etc.), geht es über den Pfad „Einstellungen -> Integrationen“ zur Schaltfläche „+ Integration Hinzufügen“

Im resultierenden Dialog sucht man nach „zig“ (oder „zigbee“) und wählt das Ergebnis „Zigbee Home Automation“ aus.

Dialog zur Suche einer Home Assistant Integration
Dialog zum Finden und Einrichten einer neuen Integration

Im folgenden Dialog ist das serielle Gerät für das Raspbee II Modul zu wählen. Der einzig angebotene Wert an dieser Stelle sollte /dev/ttyAMA0 sein.

Konfigurationsdialog ZHA Integration (1)
Einrichtung der ZHA Integration, Auswahl des seriellen
Geräts

Nach der Auswahl wird das serielle Gerät analysiert und es wird automatisch das deCONZ-Protokoll für die Kommunikation zwischen Raspberry Pi und dem Modul gewählt (auch ohne dedizierte deCONZ Installation nach Variante 2).

Konfigurationsdialog ZHA Integration (2)
Einrichtung der ZHA Integration, Auswahl des Bereichs

Mit der (optionalen) Auswahl eines Bereichs (also der Position des Raspberry Pi im Haus) ist die Installation abgeschlossen. Home Assistant ist nun bereit Zigbee-Geräte abzufragen und zu steuern.

Natürlich müssen die Geräte noch am Coordinator angelernt werden, dies ist aber in der Dokumentation der Integration beschrieben. Der schnellste Weg ist über Einstellungen -> Geräte und der Auswahl des Zigbee Coordinator. Alternativ kann auch Einstellungen -> Integrationen und die Auswahl der ZHA Integration verwendet werden.

Dialog Übersicht Zigbee Koordinator
(Eine) Möglichkeit neue Zigbee-Geräte anzulernen

Fazit

Die Installation von Hard- und Software war – wenn man von der USB-Problematik absieht – überraschend einfach, was natürlich meinem technischen Hintergrund und den Erfahrung im eigenen Haus geschuldet ist.

Das Raspbee II-Modul ist in der Installation idiotensicher und im Betrieb stabil. Seine Bauform erlaubt den Aufbau eines kompakten Zigbee Hubs mit deutlichem Mehrwert gegenüber einer fertigen „Appliance“, wie der Hue-Brige.

Die Zigbee-Geräte verhalten sich bis dato unauffällig und funktionieren einfach. Das Anlernen und die Visualiserung des Netzes in Home Assistent sind ein absolutes Plus.

Weiterführende Informationen

Produkte*


3 Antworten zu “Zigbee Hub mit Raspberry Pi und Raspbee II”

  1. Hallo,
    Danke für die tolle Doku – hat bei mir „großteils“ geklappt.
    Frage: das rpi-update für docker ist wohl eine Fleißaufgabe, oder? Ich bin recht neu beim Raspberry – und überall sonst wird gewarnt vor rpi-update.
    Was mich wirklich aufgehalten hat: die Stromversorgung für den Raspi hat nicht gepasst – low-voltage Warnungen habe ich aber geflissentlich ignoriert weil: lief eh. ABER: die Kommunikation mit raspbee II hat aus diesem Grund dann nicht funktioniert. Hab‘ ewig an der Konfiguration gespielt, bie ich das gecheckt hab‘ … 😉

    • Das rpi-update findet auf OS-Ebene statt, nicht in Docker. Meines Wissens ist der explizite Aufruf von rpi-update gar nicht mehr notwendig, sondern in das übliche apt update, apt upgrade integriert.

      Tatsächlich bewege ich mich aber gerade vom RPI4/Raspbee II als Zigbee-Plattform weg, hin zu einem x86 Mini-PC und einem USB-Dongle. Der aktuelle Setup baut zwar schön kompakt, der die Reichweite ist nicht so gut und die SD-Karte macht auch schon wieder schlapp.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert