Hier beschreibe ich, wie ich Proxmox auf einem LXC mit Docker Compose Z2M installiere und betreibe. Es gibt viele Anleitungen, bei denen man den Stick in vielen Schritten einstecken kann. Das war für meine Anwendung zu umständlich. Vor allem, wenn man den Stick austauschen will.
Als erstes braucht man einen LXC-Container mit Ubuntu oder Debian, auf dem Docker und Docker-Compose installiert sind. Weil es so einfach ist, habe ich auch Portainer auf dem Container installiert.
Den SkyConnect habe ich mit der Proxmox-Gui durchgeschleust. Als erstes steckt man den SkyConnect ein und gibt in der Konsole des Hosts den Befehl ls -la /dev/serial/by-id/
ein. Das Ergebnis ist die Ausgabe:
lrwxrwxrwx 1 root root 13 Aug 26 11:25 usb-Nabu_Casa_SkyConnect_v1.0_5c842085a396ed11b713c698a7669f5d-if00-port0 -> ../../ttyUSB0
Diese Ausgabe benötigen wir im nächsten Schritt.
Klicke nun auf den Container und wähle Ressourcen
. Klicke auf Hinzufügen
und wähle Device Passthrough
.
Dort die Ausgabe mit vollständigem Pfad einfügen:
/dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_5c842085a396ed11b713c698a7669f5d-if00-port0
Klicke auf Erweitert und gib dem Gerät die Zugriffsrechte 0666.
Jetzt kannst du den Container neu starten. In der Konsole des Containers kannst du mit dem Befehl ls -la /dev/serial/by-id/
überprüfen, ob die Übertragung funktioniert hat. Das Ergebnis sieht dann so aus:
Die docker-compose.yaml sieht dann so aus:
version: '3.8'
services:
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
restart: unless-stopped
volumes:
- /volume1/z2m/data:/app/data
- /run/udev:/run/udev:ro
ports:
# Frontend port
- 8080:8080
environment:
- TZ=Europe/Berlin
devices:
# Make sure this matched your adapter location
#- /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 #conbee2
- /dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_5c842085a396ed11b713c698a7669f5d-if00-port0:/dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_5c842085a396ed11b713c698a7669f5d-if00-port0
Achtet beim Mapping, dass ihr bei beiden Pfaden denselben Pfad angebt.
Starten Sie nun den Stack bzw. die Docker-Compose-Datei. Dieser wird einen Fehler ausgeben. Er legt aber den Ordner mit den Konfigurationsdateien an. Diese müssen wir im nächsten Schritt editieren.
Öffnet im LXC über die Konsole die Z2M Config:
nono /volume1/z2m/data/configuration.yaml
Ergänzt dort die Datei mit folgenden Einträgen:
mqtt:
base_topic: zigbee2mqtt
server: mqtt://DeineIP:1883
user: USERNAME
password: PASSWORT
keepalive: 60
reject_unauthorized: true
version: 4
serial:
port: >-
/dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_5c842085a396ed11b713c698a7669f5d-if00-port0
adapter: ember
Nun kann der Z2M-Container erneut gestartet werden. Wenn alles richtig konfiguriert wurde, bereits ein MQTT-Server läuft und keine Port-Konflikte vorliegen, sollte Z2M normal starten.
Bei Fragen, melden