zigbee2mqtt - Installation auf 3 Arten

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

zigbee2mqtt - Installation auf 3 Arten
zigbee2mqtt - Installation auf 3 Arten
  • 29.05.2024
  • Level 2
  • Software
  • Zigbee

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

Hausbau-Kurs

Hier findest Du die fünfte Generation des Raspberry Pi. Darunter findest Du das passende Gehäuse, Netzteil und SD-Karte.

Raspberry Pi 5 4GB Quad-Core ARMA76 (64 Bits - 2,4 GHz) **

offizielles Gehäuse für Raspberry Pi 5, Raspberry Pi 5 Gehäuse, rot/weiß **

offizieller Raspberry Pi 5 USB-C Netzteil 27W, USB-C Power Supply, weiß **

SanDisk 64 GB Extreme PRO microSDXC-Karte + SD-Adapter + RescuePRO Deluxe, bis zu 200 MB/s, mit A2 App Performance, UHS-I, Class 10, U3, V30 **

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
Info: Ab dieser Stelle weiche ich von der offiziellen Anleitung etwas ab, da ich gerne einen separaten Linux-Benutzer für zigbee2mqtt nutzen möchte. Daher werden die Befehle auch mit sudo -u ausgeführt. Das ist nicht unbedingt nötig, aber ich mag die saubere Trennung je Dienst.
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
Info: Im Video habe ich die Basis-Konfiguration genutzt und nicht die Beispiel-Konfiguration kopiert. Das würde ich mittlerweile aber empfehlen, da so direkt mehr Einstellungen aktiv werden und man z.B. das Frontend nicht manuell aktivieren muss! Außerdem werden dann mit weiteren Optionen direkt neue Schlüssel für das Netzwerk usw. generiert.
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):

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

Info: Wie Du sicher weißt, sind Home Assistant Add-Ons auch nur Docker-Container. Allerdings werden die Images extra für Home Assistant gebaut (und sind somit nicht die gleichen wie von Docker-Hub). Die Applikation darin ist aber genau die gleiche! Nur hat man mit der Konfiguration (Volumes, Ports, ...) der Container nichts zu tun.

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.


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.

Du willst mehr?

Smart-Home-Trainings von A-Z

Steig' noch tiefer in die Themen ein und meistere Deine Projekte! Über 14.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos