Zigbee2MQTT ist ein genialer Dienst, um Zigebee-Geräte via MQTT im Smarthome einzubinden und über Home Assistant, Node Red und viele andere Plattformen zu steuern.
Für die Installation in Proxmox zu, gibt es im Grunde zwei Möglichkeiten:
- Manuell in einem neuen oder bereits vorhanden Container
- Deutlich schneller und einfacher per Script
Wir verwenden in diesem Tutorial das beliebte Skript von tteck, für die manuelle Installation hilft dir die offizielle Anleitung oder mein Guide für den Raspberry.
USB Adapter anschließen
- Verbinde den Zigbee USB Adapter (Conbee II, Sonoff, …) über einen freien USB-Port mit deinem Proxmox Server.
- Gehe in die Server-Konsole und such nach dem Stick
- Als Antwort sollte der Adapter mit Name und Port erscheinen, in meinem Fall ein ConBee II an ttyACM0
# USB Gateway suchen ls -l /dev/serial/by-id
# Ausgabebeispiel .... Jul 2 18:03 usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE266XXXX-if00 -> ../../ttyACM0
Script ausführen
Wurde der Adapter erfolgreich aufgelistet, können wir mit der Installation beginnen.
# Starte das Script bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zigbee2mqtt.sh)"
Wie bei allen Scripten von tteck, haben wir die Wahl zwischen automatischer und manueller Installation. Da wir meistens die Container ID und IP direkt festlegen möchte, ist der manuelle Weg die bessere Wahl. Die empfohlene Einstellungen sind:
- Privileged mode: ja – erspart die manuelle Einbindung des USB-Sticks (USB Passthrough)
- RAM: 1 GB
- CPU: 1-2
- Disk Size: mindestens 2 GB
Als Orientierung: Meine kleine Installtion auf dem Futro S740 mit ConBee II und 10 Zigbee-Geräten benötigt derzeit grob 140 MB Arbeitsspeicher, durchschnittlich 2 % CPU und knapp 2 GB.
Version auswählen
Im Laufe des Vorgangs werden wir nach der gewünschten Version von Zigbee2MQTT gefragt. Für den produktiven Einsatz ist ein „N“ für Nein bzw. einfach Enter, vermutlich die beste Entscheidung, ansonsten wähle „Y“, um die neuste Beta auszutesten.
# N oder Enter für den aktuellen Release, y für die Entwicklungsversion Switch to Edge/dev branch? (y/N)
Kurz darauf sollte das Setup dann auch fehlerfrei mit „Completed Successfully!“ enden und der Container gestartet in der Server-Ansicht erscheinen.
Zigbee2MQTT Konfiguration
- Wechsle in die Shell des neuen Containers
- Überprüfe, ob der Zigbee Adapter auch hier erscheint
- Kopiere den Namen des Adapters in die Zwischenablage oder temporär in einen Texteditor
- Öffne die configuration.yaml
# USB Gateway suchen ls -l /dev/serial/by-id # Config öffnen nano /opt/zigbee2mqtt/data/configuration.yaml
configuration.yaml
In der noch sehr leeren Konfigurationsdatei gibt es drei besonders wichtige Punkte, den Rest einfach mit Hilfe der offiziellen Anleitung nach Bedarf anpassen.
Frontend aktivieren
Im einfachsten Fall reicht auch der Eintrag: „frontend: true“, du kannst aber auch einen anderen Port (Standard ist: 8080) wählen und das Interface mit einem Passwort absichern.
#Minimal frontend: true #oder frontend: port: 8080 auth_token: geheim
MQTT-Server
Die Mindestanforderung für die MQTT-Verbindung sind die Adresse des Servers und der Base-Topic.
mqtt: base_topic: zigbee2mqtt server: 'mqtt://192.168.123.123:1883'
Adapter
Nun geht es zum Adapter: als Port nehmen wir /dev/serial/by-id/ + den vorhin gefunden Namen des USB-Dongles.
erial: port: /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE266XXXX-if00 adapter: deconz #nur für ConBee II notwendig #adapter: ezsp #für Sonoff Zigbee 3.0 USB Dongle Plus V2
Anstelle des Namens könnten wir auch direkt den Port angeben, z.B. port: /dev/ttyACM0 (solange sich dieser nicht durch irgendwelche Einstellung später noch ändern sollte).
Beispielkonfiguration
frontend: true port: 8080 #oder Wunschport homeassistant: true # bei Bedarf permit_join: false # keine Automatische Anmeldung von Zigbeegeräten erlauben mqtt: # entsprechend Konfiguriren base_topic: zigbee2mqtt server: 'mqtt://192.168.123.123:1883' user: usr password: pwd keepalive: 60 reject_unauthorized: true version: 4 serial: port: /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE266XXXX-if00 adapter: deconz #nur für ConBee II notwendig #adapter: ezsp #für Sonoff Zigbee 3.0 USB Dongle Plus V2 advanced: pan_id: GENERATE network_key: GENERATE channel: 20
Zigbee2MQTT starten
Der erste Start erfolgt per cd /opt/zigbee2mqtt && npm start, dabei sollten viele grüne Statuszeilen ausgegeben werden, insbesondere: Stick ist da, MQTT-Server verbunden und das Webinterface online.
# Starten cd /opt/zigbee2mqtt npm start
Start mit Boot einrichten
Als wichtiger Dienst soll Zigbee2mqtt natürlich immer automatisch nach einem Neustart ausgeführt werden. Breche die aktuelle Ausführung mit CTRL-C ab, um wieder in die Kommandozeile zu gelangen und aktiviere den Autostart.
# Start abbrechen / zurück zur Eingabe CTRL + C # Dienst registrieren systemctl enable zigbee2mqtt.service # Dienst einmal starten systemctl start zigbee2mqtt
Webinterface
Geschafft! Nach wenigen Sekunden sollte nun das Webinterface unter der IP des Containers und des zuvor gewählten Port erreichbar sein.