Direkt zum Inhalt
PekawayPekaway
VAN PI und ZigBee

VAN PI und ZigBee

ZigBee ist eine Spezifikation für drahtlose Netzwerke mit geringem Datenaufkommen und geringem Stromverbrauch. Die erste Version kam bereit 2004 auf den Markt und wurde seitdem stetig weiterentwickelt. In unserem VanPI System benutzen wir zur Kommunikation zwischen den verschiedenen Softwarebausteinen Zigbee2MQTT, welches eine Bridge für Geräte von verschiedensten Herstellern darstellt. Zusätzlich benötigen wir einen Zigbee Koordinator, dafür benutzen wir den „Sonoff Zigbee Gateway, ZBDongle-E USB Zigbee 3.0 USB Dongle Plus“, diesen gibt es bereits vorgeflasht mit der Zigbee-Koordinator-Firmware bei den gängigen Online-Händlern.

Somit steht der drahtlosen Kommunikation mit vielen Schaltern und Sensoren nichts mehr im Weg.

Kleine Anmerkung: Zigbee2MQTT wird standardmäßig in der neuen, bald erscheinenden VAN PI Version v1.1.0 installiert sein.

Installation

Ist der Koordinator per USB mit dem Raspberry verbunden, lassen wir uns die entsprechende Location mithilfe von „ls –l /dev/serial/by-id“ zur Überprüfung anzeigen.
Zigbee2MQTT benötigt einige Abhängigkeiten, diese sind bereits installiert, da wir sie für andere Software ebenfalls verwenden. Die Abhängigkeiten sind nodejs, git, make, g++ und gcc und können mit den Befehlen
sudo curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash –
Und
sudo apt-get install -y nodejs git make g++ gcc
installiert werden, falls benötigt.
Dann erstellen wir einen neuen Ordner für Zigbee2MQTT und übergeben die Rechte an unseren Benutzer:
sudo mkdir /opt/zigbee2mqtt
sudo chown -R ${USER}: /opt/zigbee2mqtt
Wir klonen Zigbee2MQTT aus dem Github Repository:
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
Und installieren dort die benötigten Abhängigkeiten mit npm:
cd /opt/zigbee2mqtt
npm ci
Eventuell aufkommende Fehlermeldungen können wir ignorieren.

Konfiguration

Bevor wir Zigbee2MQTT starten, bearbeiten wir die configuration.yaml Datei, um sie für unser System anzupassen:

nano /opt/zigbee2mqtt/data/configuration.yaml

Dort kommt folgender Inhalt rein:

homeassistant: false

permit_join: true

mqtt:

base_topic: zigbee2mqtt

server: mqtt://localhost:1883

serial:

port: /dev/ttyACM0

advanced:

network_key: GENERATE

log_level: info

log_output:

- console

frontend:

port: 8099

experimental:

new_api: true

homeassistant_legacy_entity_attributes: false

legacy_api: false

legacy_availability_payload: false

device_options:

legacy: false

Systemd.service

Damit Zigbee2MQTT automatisch beim Bootvorgang startet und im Hintergrund läuft, erstellen wir einen Systemservice

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

Und füllen diese Datei mit dem folgenden Inhalt:

[Unit]

Description=zigbee2mqtt

After=network.target

[Service]

Environment=NODE_ENV=production

ExecStart=/usr/bin/npm start

WorkingDirectory=/opt/zigbee2mqtt

StandardOutput=null

StandardError=inherit

Restart=always

RestartSec=10s

User=pi

[Install]

WantedBy=multi-user.target

Danach können wir unsere Konfiguration prüfen, indem wir Zigbee2MQTT starten

sudo systemctl start zigbee2mqtt.service

systemctl status zigbee2mqtt.service

Wenn alles funktioniert, stellen wir ein, dass der Service automatisch beim Systemboot gestartet wird:

sudo systemctl enable zigbee2mqtt.service

Frontend

Das Frontend können wir nun über den Port (8099) erreichen, den wir in unserer configuration.yaml angegeben haben. Dazu geben wir im Browser die IP-Adresse des Raspberrys ein, gefolgt von einem Doppelpunkt und dem Port. Also beispielsweise „192.168.1.131:8099"

Anlernen

Zum Anlernen von Zigbee Geräten müssen wir die „Anlernen aktivieren“ Funktion einschalten, danach werden Geräte automatisch gefunden, sobald diese Daten senden. Einige Geräte muss man dafür aufwecken, wie zum Beispiel Schalter. Danach werden sie automatisch von Zigbee2MQTT erkannt und zur Verfügung gestellt. Im Bereich „Logs“ können wir die Aktivitäten mitverfolgen.

Node-RED

Um die Daten in Node-RED zu verarbeiten, installieren wir über die Palette „node-red-contrib-zigbee2mqtt“. In dieser konfigurieren wir den MQTT-Server (localhost), das Base-Topic (zigbee2mqtt) und den Port (1833). Dazu stellen wir in einer Zigbee2MQTT-In-Node das angeschlossene Gerät ein, dessen Daten wir erhalten wollen. Schon können wir mit unseren Geräten kommunizieren und mit diesen weiterarbeiten.

Links

Hier findet ihr die configuration.yaml und die systemd.service Dateien, die wir in unserem Setup benutzen:

https://git.pekaway.de/Vincent/vanpi/-/tree/main/pi4 Geräte, die von Zigbee2MQTT unterstützt werden:

https://www.zigbee2mqtt.io/supported-devices/

node-red-contrib-zigbee2mqtt:

https://flows.nodered.org/node/node-red-contrib-zigbee2mqtt

Hinterlasse einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht..

weitere Tutorials

OpenSource needs Support

werde jetzt Patron

Mehr Projekte, mehr Tutroials und mehr unterstütze Geräte. Unsere Community wächst und freut sich auch über deine Unterstützung. Werde also jetzt Patron um immer die neuesten Inhalte zu erhalten und gleichzeitig das VAN PI Projekt zu unterstützen.

Patron werden
Warenkorb 0

Dein Warenkorb ist leer

Beginn mit dem Einkauf