- Deutsch (de)
- English (en)
In der Heimautomatisierung ist ZIGBEE eine Alternative zur WiFi-basierten Kommunikation und bereits gut in Home Assistant integriert. Auch dank der niedrigen Leistungsaufnahme und der Mesh-Fähigkeiten findet man es in kommerziellen Produkten wie TRADFRI von IKEA oder HUE von Philips. In der DIY-Welt ist es noch nicht so weit verbreitet wie WiFi (z. B. ESP8266- oder ESP32-Module). Aber ich konnte eine recht einfache und flexible Lösung finden und nutzen. Hier die Beschreibung…
Übrigens wurde die Idee zu diesem Projekt durch ZIGBEE-Impulszähler und WATERIUS angeregt.
Es gibt 3 Arten von ZigBee-Geräten:
Um ZIGBEE einzurichten, benötigt man mindestens ein ZigBee-Koordinator-Gerät. In meinem Fall verwende ich YELLOW von Home Assistant, bei dem ein ZIGBEE-Modul (Silicon Labs MGM210P Mighty Gecko) bereits verbaut ist. Ebenfalls gebräuchlich ist Zigbee2MQTT mit einem unterstützten ZIGBEE-Adapter der eigenen Wahl. Diesen Ansatz verwende ich nur zu Debug-Zwecken.
Um ein DIY-Zigbee-Gerät (Endgerät oder Router) zu bauen, benötigen wir ein programmierbares Zigbee-Modul. Es gibt mehrere Module auf dem Markt, ich verwende jedoch E18-MS1-PCB von Chengdu Ebyte Elec Tech. Es basiert auf dem CC2530 von Texas Instruments, etwas veraltet, aber günstig und leicht erhältlich.
Für DIY-Geräte muss man der Koordinator-Software unter Umständen beibringen, wie sie mit den eigenen Zigbee-Daten umgehen soll. In Home Assistant überbrücken Quirks die funktionale Lücke, die entsteht, wenn ein DIY-Gerät von der ZCL-Spezifikation abweicht, indem sie Abweichungen und Ausnahmen durch das Parsen benutzerdefinierter Nachrichten zu und von Zigbee-Geräten behandeln.
Ein ähnlicher Ansatz existiert für Zigbee2MQTT durch Einbetten einer JavaScript-basierten externen Gerätebeschreibung.
Um eine Reihe von Anwendungen abzudecken, habe ich eine Standard-Platine entworfen, die den Anschluss von Sensoren und/oder Aktoren über GPIO, I²C oder UART ermöglicht. Meistens mit Pegelwandler, um 5V- und 3,3V-Schnittstellen zu ermöglichen.
Die fertige Platine ist mit einer Größe von 44,5 x 24mm sehr kompakt. Oben sieht man die Programmierschnittstelle (J1) und einen Taster (SW1). Die gelbe LED (LED1) dient als Anzeige. Eine 5V-Stromversorgung kann über einen 2-poligen JST-Stecker (J7) oder Micro-USB angeschlossen werden. Ein 3,3V-Regler ist ebenfalls verbaut. Die UART-Schnittstelle hat einen Signalpegel von 5V, der I²C-Bus ist standardmäßig 3,3V. Der Pegel der beiden zusätzlichen GPIOs kann per Jumper zwischen 3,3V und 5V ausgewählt werden. Alle 4-poligen XH-Anschlüsse (J3-J6) stellen einen Stromversorgungspin bereit, sodass ein Sensor direkt angeschlossen werden kann.
Lange habe ich gezögert, auf ZIGBEE umzusteigen, da die Firmware-Entwicklung eine Herausforderung sein könnte. Es gibt viele öffentliche Schritt-für-Schritt-Anleitungen, aber es scheint keine Out-of-the-Box-Aufgabe zu sein. Ich konnte jedoch einige Projekte finden, die die PTVO-Firmware nutzen. Das Firmware-Tool ermöglicht es, ein ZIGBEE-Gerät (muss auf einem TI-SOC basieren) mit einfach konfigurierbarer Funktionalität zu erstellen, einschließlich Ein-/Ausgängen, ADC, Impulszähler/-generator, I²C und externen Sensoren.
Nach einigen Tests war ich beeindruckt und überzeugt, wie einfach es ist, ein ZIGBEE-Gerät einzurichten. Dieses Tool erzeugt nicht nur die Binärdatei (.hex), die direkt auf das ZIGBEE-Modul programmiert werden kann, sondern generiert auch die benutzerdefinierten Dateien für den Koordinator der Wahl (z. B. Quirks für Home Assistant). Es muss keine einzige Codezeile programmiert werden.
Ein erstes Anwendungsbeispiel wird hier beschrieben.
Um die Firmware auf das ZIGBEE-Modul zu programmieren, benötigen wir einen Programmieradapter wie den SmartRF04EB von Texas Instruments. Um Geld zu sparen, kann man auch eine der chinesischen Kopien im Online-Shop der Wahl kaufen.
Fünf Pins der DEBUG-Schnittstelle (Stecker J1) müssen einzeln mit dem Programmiergerät verbunden werden.
Die Programmiersoftware SmartRF Flash Programmer kann von der TI-Webseite heruntergeladen werden (außerhalb der USA ist eine kurze Exportkontrolle erforderlich). Die Software ist selbsterklärend.
Wir sind nicht an das öffentliche Wassernetz angeschlossen, sondern nutzen eine eigene Tauchpumpe in Kombination mit einem 2000-Liter-Wassertank. Um den Wasserverbrauch zu messen, benötigen wir einen Wasserzähler. Eine ideale Herausforderung für das neue ZIGBEE-Modul.
Dieser Sensor sitzt in unserer 1/2„-Wasserleitung und enthält ein Flügelrad, das misst, wie viel Flüssigkeit hindurchgeflossen ist. Ein integrierter magnetischer Hall-Effekt-Sensor gibt bei jeder Umdrehung einen elektrischen Impuls aus. Die Sensorsignale können direkt an J3 angeschlossen werden.
Die Einrichtung der PTVO-Firmware ist sehr einfach. Einfach P21 als Zähler definieren und das Intervall auf 60 Sekunden setzen. Jeder Impuls länger als 1ms an P21 wird gezählt.
Nach dem Pairing sendet die PTVO-Firmware den Zählerwert an den Koordinator. In meinem Fall liefert der Sensor 360 Impulse pro Liter. Diese Berechnung sowie der Tagesverbrauch lassen sich leicht in Home Assistant durchführen. Die folgenden Beispiele zeigen die Ergebnisse:
Dieser Sensor ist nun seit mehr als 2 Monaten ohne Probleme installiert. Vielen Dank an PTVO für sein großartiges Firmware-Tool.
Wenn dir meine Artikel gefallen, kannst du gerne einen Cappuccino oder Ähnliches spenden…