zigbee2mqtt - Installation auf 3 Arten
Nachdem ich in den letzten Wochen verschiedene Zigbee Ethernet-Coordinator vorgestellt hatte, folgt jetzt ein Video zur Software zigbee2mqtt. Das Projekt gibt es schon sehr lange und stellt eine Alternative zu ZHA (in Home Assistant) oder dem Zigbee-Adaper im ioBroker dar. Für eine Variante muss man sich also entscheiden. Alles hat Vor- und Nachteile.
Was Du benötigst:
- Ein System auf welchem zigbee2mqtt installiert werden soll (z.B. einen Raspberry Pi 5). Alternativ (und eventuell einfacher) ist eine Installation per Docker.
- Eine Funk-Schnittstelle (Interface) zu Zigbee. Für einen Überblick schau am besten mal hier vorbei. Ich nutze in diesem Beitrag eine Ethernet-Variante von cod.m **. Alternativen sind die SMLight SLZB-06 Varianten. z.B. der SLZB-06 **
- Ein paar Zigbee-Komponenten, welche in der Liste der unterstützten Geräte stehen. Aktuell werden 3586 von 430 Herstellern unterstützt!
Video
Hier findest Du die fünfte Generation des Raspberry Pi. Darunter findest Du das passende Gehäuse, Netzteil und SD-Karte.
Installation
Bevor Du startest, brauchst Du einen MQTT-Broker in deinem Netzwerk. Ich nutze am liebsten Mosquitto. Eine weitere Möglichkeit ist zum Beispiel FlashMQ. Falls Du gar nicht weißt was MQTT eigentlich ist und warum ich das Protokoll so stark finde, biete ich dir mit dem MQTT-Grundlagen-Kurs einen kurzen Einstieg in die Thematik. Dort ist auch die Installation der Software unter Debian (und auch als Container unter Synology) erklärt. Du weißt jetzt also was ein MQTT-Broker ist und wie MQTT arbeitet, richtig?
Da meine Mosquitto-Installation nur authentifizierte Benutzer zulässt, lege ich noch einen separaten Benutzer an:
sudo mosquitto_passwd -b /etc/mosquitto/mosquitto_passwords zigbee2mqtt cjkFgbKaqRjHmTgM
sudo service mosquitto restart
Unter Debian / Raspberry Pi OS
Da die Software in JavaScript/TypeScript programmiert wurde, muss nodejs auf dem System installiert werden. Aktuell empfohlen ist die LTS-Version 20.x. Bitte schau in die offizielle Anleitung, ob mittlerweile eine neuere Version empfohlen wird.
sudo apt update
sudo apt full-upgrade
sudo curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs git make g++ gcc libsystemd-dev make
sudo useradd -m -s /usr/sbin/nologin "zigbee-mqtt"
sudo mkdir -p /opt/zigbee2mqtt
sudo chown -R zigbee-mqtt:zigbee-mqtt /opt/zigbee2mqtt
cd /opt/zigbee2mqtt
sudo -u zigbee-mqtt git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git .
sudo -u zigbee-mqtt npm ci
sudo -u zigbee-mqtt npm run build
sudo -u zigbee-mqtt cp /opt/zigbee2mqtt/data/configuration.example.yaml /opt/zigbee2mqtt/data/configuration.yaml
So sieht meine Config jetzt aus:
sudo nano /opt/zigbee2mqtt/data/configuration.yaml
homeassistant: false
permit_join: false
frontend: true
mqtt:
base_topic: zigbee2mqtt
server: mqtt://localhost
user: zigbee2mqtt
password: cjkFgbKaqRjHmTgM
serial:
port: tcp://10.10.9.252:6638
baudrate: 115200
advanced:
network_key: GENERATE
pan_id: GENERATE
ext_pan_id: GENERATE
MQTT-Benutzer anlegen
Ich lege gerne für jeden Dienst einen eigenen Benutzer in meinem MQTT-Broker an. Den Nutzernamen und das Passwort kann man frei wählen - es muss nur mit der Config (siehe oben) übereinstimmen.
Den Nutzer für Mosquitto habe ich wie folgt angelegt (weiteres dazu im MQTT-Grundlagen-Kurs):
sudo mosquitto_passwd -b /etc/mosquitto/mosquitto_passwords zigbee2mqtt cjkFgbKaqRjHmTgM
sudo service mosquitto restart
Autostart konfigurieren
sudo nano /etc/systemd/system/zigbee2mqtt.service
[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
Environment=NODE_ENV=production
Type=notify
ExecStart=/usr/bin/node index.js
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
StandardError=inherit
WatchdogSec=10s
Restart=always
RestartSec=10s
User=zigbee-mqtt
[Install]
WantedBy=multi-user.target
sudo systemctl enable zigbee2mqtt.service
sudo systemctl start zigbee2mqtt
systemctl status zigbee2mqtt.service
Docker (z.B. Synology Container Manager)
Die Docker-Images enthalten bereits alles, was man für die Applikation braucht. Daher müssen diese nur heruntergeladen werden (als Image) und dann wird einfach ein neuer Container erstellt. Dabei halte ich mich einfach an die Dokumentation.
Aber: Ich brauche das Volume für /run/udev
natürlich nicht! Außerdem habe ich keinen Stress damit, irgendwelche USB-Geräte an den Container durchzureichen! Denn die Kommunikation mit meinem Interface läuft ja über das Netzwerk. Und mit diesem Darf der Container ja kommunizieren.
Home Assistant Add-On
Auf GitHub wird erklärt, wie man das Add-On hinzufügen kann. Das läuft über ein separates Repository. Die Repository-Url lautet:
https://github.com/zigbee2mqtt/hassio-zigbee2mqtt
Das Add-On wird danach dann installiert wie jedes andere Add-On auch. Bei der Konfiguration wird dann noch der Port zu unserem Netzwerk-Interface (also dem cod.m CZC) hinterlegt. In meinem Fall ist das:
port: tcp://10.10.9.252:6638
baudrate: 115200
Auch wenn zigbee2mqtt jetzt als Docker-Container im Home Assistant OS läuft, ist es die gleiche Anwendung. Nur etwas schöner integriert, weil man direkt über die Seitenleiste darauf zugreifen kann.
Links
Transparenz-Hinweis (Level 2)
Für diesen Beitrag wurden mir Produkte kostenfrei zur Verfügung gestellt! Es wurden keinerlei Bedingungen, Richtlinien oder Vorgaben bezüglich der Inhalte, welche ich in meiner Bewertung äußern darf, auferlegt.
Darüber hinaus habe ich keine zusätzliche Vergütung erhalten.