[Raspberry Pi] ZigBee: zigbee2mqtt einrichten, mosquitto broker installieren

zigbee2mqtt installieren

USB-Gerät an Raspberry anstecken und danach den Bezeichner ((z.B.: /dev/ttyUSB0) für die weitere Einrichtung ermitteln

ls -l /dev/serial/by-id/

Systemupdate durchführen

sudo apt-get update && sudo apt-get upgrade

NodeJS installieren

sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc

Yarn installieren

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install yarn -y

zigbee2mqtt von git clonen und Verzeichnisberechtigungen für User “pi” setzen

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt

zigbee2mqtt Konfiguration editieren

nano /opt/zigbee2mqtt/data/configuration.yaml

Konfiguration für lokale Ausführung des mqtt-Servers (mosquitto) und zigbee2mqtt (Frontend läuft auf localhost, port 8080 ohne Username und Passwort) – Einrückungen beachten!

homeassistant: false
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost
serial:
  port: /dev/ttyUSB0
advanced:
  network_key: GENERATE
  ikea_ota_use_test_url: true
  legacy_api: false
  log_level: debug
  homeassistant_legacy_entity_attributes: false
  legacy_availability_payload: false
frontend:
  port: 8080
device_options:
  legacy: false

Installation von zigbee2mqtt starten

cd /opt/zigbee2mqtt
npm ci

zigbee2mqtt als Service einrichten

sudo nano /etc/systemd/system/zigbee2mqtt.service

Dateiinhalt der Datei 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

Autostart einrichten

sudo systemctl enable zigbee2mqtt.service

reboot durchführen

reboot

Sytemdienst adminstrieren

# zigbee2mqtt starten
sudo systemctl start zigbee2mqtt

# zigbee2mqtt stoppen
sudo systemctl stop zigbee2mqtt

# zigbee2mqtt neu starten
sudo systemctl restart zigbee2mqtt

# Log anschauen
sudo journalctl -f -u zigbee2mqtt

# Manuell starten
# Achtung: wenn zigbee2mqtt schon als Dienst eingerichtet ist und läuft führt das manuelle Ausführen zu einem Fehler
# Error: Error while opening serialport 'Error: Error Resource temporarily unavailable Cannot lock port'
cd /opt/zigbee2mqtt
npm start

mosquitto broker einrichten

mosquitto installieren

sudo apt update && sudo apt upgrade
sudo apt install -y mosquitto mosquitto-clients

mosquitto service einrichten

sudo systemctl enable mosquitto.service

broker testen, Versionsnummer ausgeben

mosquitto -v

mosquitto Konfiguration einrichten

sudo nano /etc/mosquitto/mosquitto.conf

Inhalt der Konfigurationsdatei mosquitto.conf (Reihenfolge beachten!)

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /run/mosquitto/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

listener 1883
allow_anonymous true

zigbee2mqtt Frontend starten

mosquitto Konfiguration einrichten

http://localhost:8080/

neue Zigbee-Geräte anlernen

  • Button “Anlernen aktivieren (alle)”

Links