Zigbee2MQTT Raspberry Pi

Vor einer Weile habe ich schon ein Video zu dem Zigbee2MQTT gemacht dieses will ich jetzt an dieser Stelle nochmal aufgreifen bzw. updaten.

Es gibt mehrere Möglichkeiten wie Ihr Zigbee2MQTT installieren könnt, auf nem Linux Rechner oder im Docker, als HomeAssistant Addon usw.. Ich behandle hier die Installation auf einem Raspberry Pi wobei darauf schon openhabian läuft.

1. Vorbereitungen:

Zuerst bringen wir unser System auf den aktuellen Stand:

sudo apt-get update
sudo apt-get upgrade
sudo reboot

Jetzt könnt Ihr den Zigbee Coordinator (USB Stick) am Raspberry Pi anschließen und mit dieser Zeile kontrollieren ob dieser auch erkannt wird:

ls -l /dev/ttyACM0

Ihr solltet in etwa so eine Ausgabe bekommen

crw-rw---- 1 root dialout 166, 0 May 16 19:15 /dev/ttyACM0

Falls das Gerät erkannt wurde können wir mit der eigentlichen Installation beginnen.

Falls ihr jedoch eine Ausgabe wie ls: cannot acces ´/dev/ttyACM0´ bekommt probiert:

dmesg |grep tty

Hier könnt Ihr sehen das der USB Stick erkannt wurde und dieser aber auf dem Port ttyUSB0 läuft. Bei einer erneute Kontrolle mit:

ls -l /dev/ttyUSB0

bekommen wir dann auch hier diese Ausgabe:

2. Download & Installation der benötigten Software:

Als erstes benötigen wir das Node.js repository dieses holen wir uns mit:

sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

und installieren es mit:

sudo apt-get install -y nodejs git make g++ gcc

Als nächsten Schritt kontrollieren wir ob und welche Versionen von node & npm installiert wurden mit:

node --version
npm --version

Falls Ihr hier eine Ausgabe wir z.b. V16.X & 7.X bekommt ist alles korrekt installiert.

Dann Klonen wir uns das Zigbee2MQTT Repository – Vorsicht hier gab es bei einigen schon Probleme – Ihr müsst zuerst einen Ordner in diesem Verzeichnis anlegen /opt/zigbee2mqtt (Tipp benutzt dazu das Programm WinSCP):

mkdir /opt/zigbee2mqtt

jetzt kann das Repository in dieses Verzeichnis geklont werden mit:

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt

Dann vergeben wir noch die Rechte, auch hier Vorsicht. Falls ihr openhabian benutzt habt ihr euch warsch. auch mit openhabian als User in Putty bzw. dem Terminal eingeloggt dann muss diese Zeile abgeändert werden.

Ursprüngliche Zeile

sudo chown -R pi:pi /opt/zigbee2mqtt

bei openhabian als User ändern in:

sudo chown -R openhabian:openhabian /opt/zigbee2mqtt

Jetzt können wir installieren mit:

cd /opt/zigbee2mqtt
npm ci

Wenn alles reibungslos läuft bekommt Ihr nach einer weile eine Ausgabe wie … diese bekommen, einige Warnungen sind ok und sollten euch nicht weiter verunsichern.

Wenn Ihr als letzte Zeile diese hier bekommt ist alles in Ordnung:

Jetzt müssen wir die configuration.yml Datei konfigurieren dazu gebt ihr diesen Befehl ein und öffnet somit die Datei im Nano Texteditor.

nano /opt/zigbee2mqtt/data/configuration.yaml

Hier fügt Ihr dann z.b. euren MQTT Broker und weitere Einstellungen ein, mein MQTT Broker läuft z.b. auf Port 192.168.2.193.

Bei dem port: /dev/ttyACM0 kommt es jetzt darauf an wo euer Zigbee Stick erkannt wurde, wie oben zu sehen kann es auch sein das der Port /dev/ttyUSB0 ist diesen müsst ihr dann hier in der configuration.yaml ändern.

# MQTT settings
mqtt:
  # MQTT base topic for Zigbee2MQTT MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://localhost'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

# Serial settings
serial:
  # Location of the adapter (see first step of this guide)
  port: /dev/ttyACM0

3. Erster Zigbee2MQTT start:

Um jetzt Zigbee2MQTT starten zu können wechselt Ihr wieder in das Verzeichnis zigbee2mqtt

cd /opt/zigbee2mqtt
npm start

Beim ersten Start kann das schon ein bisschen dauern aber dann bekommt Ihr diese Ausgabe

und schon läuft Zigbe2MQTT!

3. Automatischer Start einrichten:

Jetzt benötigen wir noch eine systemctl Datei um den Zigbee Broker nach einen reboot automatisch zu starten.

Dazu erstellen wir einen neue Datei mit:

sudo nano /etc/systemd/system/zigbee2mqtt.service
[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/bin/npm start
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
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Hier bei dieser Datei müsst Ihr dann bei Verwendung von openhabian als User wieder den User=pi in openhabian austauschen.

Die Datei speichern und schließen.

Dann starten mit:

sudo systemctl start zigbee2mqtt

und den Status kontrollieren mit:

systemctl status zigbee2mqtt.service

Wenn alles soweit funktioniert können wir das Script „scharfschalten“ (evtl. ist zwischenzeitlich ein reboot notwendig)

sudo systemctl enable zigbee2mqtt.service

Nun habt Ihr Zigbee2MQTT installiert!

Nützliche Befehle:

# Stopping Zigbee2MQTT
sudo systemctl stop zigbee2mqtt

# Starting Zigbee2MQTT
sudo systemctl start zigbee2mqtt

# View the log of Zigbee2MQTT
sudo journalctl -u zigbee2mqtt.service -f

Update Zigbee2MQTT auf die neuste Version

# Stop Zigbee2MQTT and go to directory
sudo systemctl stop zigbee2mqtt
cd /opt/zigbee2mqtt

# Backup configuration
cp -R data data-backup

# Update
git checkout HEAD -- npm-shrinkwrap.json
git pull
npm ci

# Restore configuration
cp -R data-backup/* data
rm -rf data-backup

# Start Zigbee2MQTT
sudo systemctl start zigbee2mqtt

Ein Gedanke zu “Zigbee2MQTT Raspberry Pi

Schreibe einen Kommentar

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