Zigbee devices op Homebridge
Hieronder beschrijf ik hoe ik lekker bezig ben geweest met Zigbee devices zonder gebruik te maken van een bridge van een leverancier. Bijvoorbeeld Philips Hue. Reden is dat ik een aantal Wall plugs in voorgaande jaren heb aangeschaft, waaronder OSRAM Lightify Plug en INNR Plug. En de OSRAM Lightify plugs werken sinds een Philips Hue update niet goed meer. Ze geven aan disconnected te zijn. En na ze aangezet te hebben vallen ze weer uit. In andere woorden ik was er een beetje klaar mee.
Nu gebruik ik naast Philips HUE ook Domoticz in combinatie met RFX433 voor de 433 MHz klik-aan-klik-uit rommel en ook mijn draadloze SOMFY screens en markiezen aan te sturen. En ik heb laatst ook Homebridge op een server gezet zodat ik een selectie van Domiticz en Philips HUE devices, en zelfs ook mijn Tado thermostaat knoppen te kunnen bedienen. Hierbij opgemerkt dat ik nu toch wel actief ben alle klik-aan-klik-uit zooi de nek om te draaien.
Dus zoekend naar een oplossing voor die OSRAM Lightify Plugs kwam ik op het zigbee2mqtt project. Nu was ik al eerdere aan het rommelen geweest met MQTT (Mosquitto) om de koppeling tussen Homebridge en Domoticz dus ik was uitermate geinteresseerd in deze oplossing. Verder zag ik ook dat er een “Homebridge Zigbee2mqtt” plugin is en een plugin voor Domoticz. Dus helemaal top.
Eerste voorbereiding is de hardware
Schaf een CC2531 USB stick aan. Die kan je hier bestellen:
https://www.bitsandparts.nl/Zigbee-Xbee/ZigBee-CC2531-USB-stick-dongle/p1859316 en vergeet ook niet deze aan te schaffen https://www.bitsandparts.nl/Zigbee-Xbee/ZigBee-CC2531-USB-stick-dongle-verloop-kabel-board/p1859317
En je moet ook bedenken natuurlijk waar je deze USB stick aan gaat hangen en waar je de software installeert.
In mijn geval is dit beide een Raspberry PI 4. Echter voor het flashen van de USB stick heb ik een reserve Raspberry PI 3B+ gebruikt.
Kijk op de website van https://www.zigbee2mqtt.io en volg het flash linkje.
In mijn geval een alternatieve methode om de usb stick te flashen met een Raspi: https://www.zigbee2mqtt.io/information/alternative_flashing_methods.html
Kreeg nog wel een bekabelingsfout tijdens het aansluiten van de Raspi maar na het reseaten van de kabels werkte het helemaal top.
ZIGBEE2MQTT software
Hier gebruikte ik de aanwijzingen van:
https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html
Omdat ik Homebridge al op deze host een keer gedraait had stond npm er al op.
# Clone Zigbee2MQTT repository
sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
# Install dependencies (as user "pi")
cd /opt/zigbee2mqtt
npm ci
En zoals aangegeven op de page wel een berg warnings maar alles ging zoals verwacht.
Zie hier mijn initiele /opt/zigbee2mqtt/data/configuration.yaml
homeassistant: false permit_join: false mqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost' serial: disable_led: true port: /dev/ttyACM0 advanced: network_key: GENERATE
Die disable_led: true heb ik later toegevoegd om dat het groene ledje wel heel erg irritant in mijn ogen scheen. Met deze optie gaat hij uit na het starten van de software.
Omdat ik een systemd operating system heb (raspian buster) heb ik ook het voorbeeld stukje van systemd overgenomen.
vi /etc/systemd/system/zigbee2mqtt.service
en dan:
[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Daana met systemctl enable zigbee2mqtt en vervolgens systemctl start zigbee2mqtt starten.
Homebridge Zigbee2mqtt plugin
Zoals ik eerder meldde in Homebridge de “Homebridge Zigbee2mqtt plugin” geïnstalleerd.
{ "mqtt": { "base_topic": "zigbee2mqtt", "server": "mqtt://127.0.0.1:1883", "reject_unauthorized": false, "keepalive": 60, "version": 4 }, "platform": "zigbee2mqtt" }
Restart de homebridge server en het is klaar voor de nieuwe devices.
Ontkoppelen van Hue en registreren
Om je zigbee spullen aan de zigbee2mqtt te kunnen hangen kan je ze het beste eerst verwijderen van Hue. Vergeet overigens de permit_join niet op true te zetten. En daarna een factory reset doen. Voor de OSRAM Plug en de INNR plug is dat een kwestie van de schakelaar 5 seconden vast houden tot ze beginnen te klikken. Je moet hem wel een beetje in de buurt van de USB stick houden om te kunnen registreren. Dat gaat verder van zelf daarna. Enige is wel dat je een hexadecimale lang getal naam voor je device krijgt, maar dat kan je aanpassen. Als je een apparaat heb geregistreerd zal je zien dat je in de configuration.yaml file een device opgenomen wordt. Op die plek kan je dan hem ook een friendly name geven.
Je moet na wijzigingen in de configation.yaml file wel zigbee2mqtt herstarten.
Assistant voor zigbee2mqtt
zigbee2mqtt_assistant
to be continued…