du solltest beim Erstellen des Containers darauf achten, dass du einen privilegierten Container erzeugst, damit du direkten Zugriff auf den USB-Stick erhältst. Das erspart einiges an Arbeit und wird in einem Heimnetz, dass nicht nach außen geöffnet ist, denke ich vom Sicherheitsaspekt locker zu verkraften sein. Auch macht es die Fehlersuche einfacher, wenn du dich mit Linux nicht richtig auskennst.
Wenn es zwingend ein unprivilegierter Container sein, so musst du den USB-Stick über den Proxmox-Host durchreichen.
Ansonsten habe ich Zigbee2MQTT in einem Proxmox-Container laufen und nach dem Update auf die aktuelle Modul-Version keinerlei Probleme.
… nicht, wenn das erforderliche „Proxmox/Linux“ Wissen fehlt
Also, ich habe mit einem Helperscript ZigBee2Mqtt heruntergeladen und jetzt einen laufenden Container. Der Container hat eine statische IP.
Mit der Konsole habe ich ein data-Verzeichnis erstellt und eine für mich passende configuration.yaml erzeugt.
Das IP-Symconmodul habe ich noch nicht installiert und den vorhandenen LAN-Konfigurator auch noch nicht eingeschaltet.
Trotzdem habe ich gehofft, durch „restart“ des Containers und IP:8080 im Browser auf die Zigbee2MQTT Oberfläche zu kommen.
Ging nicht - vielleicht etwas naiv, zumal ich mit den restlichen Docker/Portainer-Einstellungen aus dem YT-Video nichts adäquates in Proxmox anzufangen wusste.
Das geht nicht. Z2M läuft nur wenn es einen Coordinator hat!
Außerdem solltest du einen MQTT Broker wie Symcon schon gleich mit in der configuration.yaml eintragen.
Michael
du musst wie Michael bereits geschrieben hat direkt den Coordinator (den Stick) mit hinterlegen, sonst bootet Z2M nicht.
Sobald der Stick korrekt hinterlegt ist solltest du dann aber auf die Weboberfläche kommen.
Ich habe es damals mit folgender Anleitung gemacht und dem Helper-Skript für die initiale Einrichtung des Containers:
Du musst dann nur unter 1.2 den LAN-Adapter einrichten. Den Punkt mit der Docker-Config kannst du erstmal ignorieren.
unter 2.2 kannst du dir dann eine passende configuration.yaml generieren lassen.
Ansonsten gerne melden, dann versuchen wir das Problem zu lösen.
klappt immer noch nicht, das hier habe ich gemacht:
LAN-Gateway (IP=xx.xx.xx.25)
angeschlossen
Mqtt aktiviert, Home Assistant deaktiviert
Im Bereich Broker habe ich die IP den LCX Containers (IP=xx.xx.xx.27) eingegeben
Port 1883
Nutzername und Passwort habe ich von Proxmox angegeben. Bei der Generierung des Containers mit dem Helperscript wurde kein Name/Passwort verlangt und ich habe vermutet, dass dann Name/Passwort von Proxmox verwendet wird.
Topic: CZC-3DBB (war original so)
Zigbee2MQTT (IP=xx.xx.xx.27)
in der Konsole des Containers (Promt war: root@zigbee2mqtt:~# ) habe ich mit nano data/configuration.yaml die Datei angelegt und den Inhalt aus dem YT Video reinkopiert
Im Bereich mqtt->server: steht mqtt://ip:1024 (IP des IPS-Rechners ist xx.xx.xx.119)
Name und Passwort habe ich eingegeben, wie bei allen meinen Shellys auch, jedoch hat der MQTT-IPS-Server keinen Namen und Passwort
Bereich serial->port: tcp://ip:6638 (IP des LAN-Gateways IP=xx.xx.xx.25)
Leider lässt sich die Webseite mit xx.xx.xx.27:8080 nicht aufrufen.
Trotz reboot.
Das das Gateway Daten seinen Status per MQTT senden kann, ist zwar schön, aber aktuell uninteressant. Und wenn, dann muss es diese natürlich an deinen MQTT Broker (Symcon) senden und nicht an Z2M.
Dort gehören die Zugangsdaten des MQTT Broker rein.
Das Gateway baut keine Verbindung zu Z2M auf.
Nun zu Z2M:
Dann lass die Felder weg. Frage mich nur warum du was bei den Shellys eingetragen hast, wenn du es in Symcon gar nicht eingetragen hast.
Dann schau doch mal in die logfiles von Z2M.
Da steht meistens was den Start verhindert.
Michael
Ich habe den IPS-Rechner eingetragen und den Port des MQTT Servers. Meiner ist 1024, aber das Gateway weigert sich und verlangt mindestens 1025?? Alle Shellys sind auf 1024!
muss ich alles auf z.B. 1883 umstellen?
oder kann ich in IPS einen 2. MQTT Server definieren?
oder sind das keine relevanten Zigbee-Daten?
Das Gateway zeigt unter „Status“ MQTT „Getrennt“ an.
Ich hatte zuerst gedacht: Gateway->Z2M->IPS
Vermutlich erhält jedoch Z2M die Daten über tcp://xx.xx.xx.25:6638 und sendet an den IPS Rechner mit mqtt://xx.xx.xx.119:1024.
Name und Passwort weggelassen, keine Veränderung
war ein Fehler, habe vor langer Zeit gedacht etwas definiert zu haben und mich später gewundert, dass es klappt und nichts mehr verändert.
Kann es sein, dass ich einen Fehler bei der configuration.yaml habe? Nach dem das Helperscript durchgelaufen war, habe ich mich mit der Konsole auf den Container aufgeschaltet und mich gewundert, dass „LS“ nichts anzeigt. Darauf habe ich dann „data“ und die yaml Datei im root-Verzeichnis des Containers erzeugt.
Hier das Logfile nach einem reboot. Der scheint blockiert zu sein - vielleicht will er auch nur einfach nicht oder mir fehlt das Wissen…
Mar 14 21:50:23 proxmox pvedaemon[51753]: requesting reboot of CT 101: UPID:proxmox:0000CA29:000E55C8:67D4968F:vzreboot:101:root@pam:
Mar 14 21:50:23 proxmox pvedaemon[902]: <root@pam> starting task UPID:proxmox:0000CA29:000E55C8:67D4968F:vzreboot:101:root@pam:
Mar 14 21:50:23 proxmox kernel: vmbr0: port 3(veth101i0) entered disabled state
Mar 14 21:50:23 proxmox kernel: vmbr0: port 3(veth101i0) entered disabled state
Mar 14 21:50:23 proxmox kernel: veth101i0 (unregistering): left allmulticast mode
Mar 14 21:50:23 proxmox kernel: veth101i0 (unregistering): left promiscuous mode
Mar 14 21:50:23 proxmox kernel: vmbr0: port 3(veth101i0) entered disabled state
Mar 14 21:50:24 proxmox audit[51824]: AVC apparmor="STATUS" operation="profile_remove" profile="/usr/bin/lxc-start" name="lxc-101_</var/lib/lxc>" pid=51824 comm="apparmor_parser"
Mar 14 21:50:24 proxmox kernel: audit: type=1400 audit(1741985424.095:36): apparmor="STATUS" operation="profile_remove" profile="/usr/bin/lxc-start" name="lxc-101_</var/lib/lxc>" pid=51824 comm="apparmor_parser"
Mar 14 21:50:24 proxmox pvedaemon[903]: unable to get PID for CT 101 (not running?)
Mar 14 21:50:25 proxmox kernel: EXT4-fs (dm-9): unmounting filesystem 716d7288-a1d4-465c-b382-c23831295216.
Mar 14 21:50:25 proxmox pvedaemon[902]: <root@pam> end task UPID:proxmox:0000C639:000E1AD9:67D495F8:vncproxy:101:root@pam: OK
Mar 14 21:50:25 proxmox systemd[1]: pve-container@101.service: Deactivated successfully.
Mar 14 21:50:25 proxmox systemd[1]: Started pve-container@101.service - PVE LXC Container: 101.
Mar 14 21:50:26 proxmox kernel: EXT4-fs (dm-9): mounted filesystem 716d7288-a1d4-465c-b382-c23831295216 r/w with ordered data mode. Quota mode: none.
Mar 14 21:50:26 proxmox audit[51860]: AVC apparmor="STATUS" operation="profile_load" profile="/usr/bin/lxc-start" name="lxc-101_</var/lib/lxc>" pid=51860 comm="apparmor_parser"
Mar 14 21:50:26 proxmox kernel: audit: type=1400 audit(1741985426.272:37): apparmor="STATUS" operation="profile_load" profile="/usr/bin/lxc-start" name="lxc-101_</var/lib/lxc>" pid=51860 comm="apparmor_parser"
Mar 14 21:50:26 proxmox kernel: vmbr0: port 3(veth101i0) entered blocking state
Mar 14 21:50:26 proxmox kernel: vmbr0: port 3(veth101i0) entered disabled state
Mar 14 21:50:26 proxmox kernel: veth101i0: entered allmulticast mode
Mar 14 21:50:26 proxmox kernel: veth101i0: entered promiscuous mode
Mar 14 21:50:26 proxmox kernel: eth0: renamed from vethOKQbGA
Mar 14 21:50:27 proxmox pvedaemon[902]: <root@pam> end task UPID:proxmox:0000CA29:000E55C8:67D4968F:vzreboot:101:root@pam: OK
Mar 14 21:50:27 proxmox kernel: vmbr0: port 3(veth101i0) entered blocking state
Mar 14 21:50:27 proxmox kernel: vmbr0: port 3(veth101i0) entered forwarding state
Mar 14 21:50:30 proxmox pvedaemon[52303]: starting lxc termproxy UPID:proxmox:0000CC4F:000E586F:67D49696:vncproxy:101:root@pam:
Mar 14 21:50:30 proxmox pvedaemon[904]: <root@pam> starting task UPID:proxmox:0000CC4F:000E586F:67D49696:vncproxy:101:root@pam:
Mar 14 21:50:30 proxmox pvedaemon[903]: <root@pam> successful auth for user 'root@pam'
Mar 14 21:50:35 proxmox pvedaemon[904]: <root@pam> end task UPID:proxmox:0000CC4F:000E586F:67D49696:vncproxy:101:root@pam: OK
die YAML-Dateien sind empfindlich, was einrücken betrifft.
Kannst du uns mal deine configuration.yaml hier einstellen…
Hier mal meine als Anhaltspunkt… zumindest der Anfang:
die obere IP-Adresse ist der MQTT Server, bei mir Symcon
die untere der POE Stick
die WebGui kommt per default auf Port:8080 (also IP-Adresse LCX Z2M-Container:8080), sofern die Konfiguration richtig geladen werden kann und nicht irgendwelche Fehler vorher hat…
ping -c 3 xx.xx.xx.119 klappt, ist der IPS Rechner
ping -c 3 xx.xx.xx.25 klappt auch, ist der cod.m Stick
bring das hier:
root@zigbee2mqtt:~# journalctl -u zigbee2mqtt.service -f
Mar 15 10:04:50 zigbee2mqtt pnpm[465]: ELIFECYCLE Command failed with exit code 1.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
Mar 15 10:04:50 zigbee2mqtt systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: zigbee2mqtt.service: Consumed 1.486s CPU time.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: zigbee2mqtt.service: Scheduled restart job, restart counter is at 5.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: Stopped zigbee2mqtt.service - zigbee2mqtt.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: zigbee2mqtt.service: Consumed 1.486s CPU time.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: zigbee2mqtt.service: Start request repeated too quickly.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
Mar 15 10:04:50 zigbee2mqtt systemd[1]: Failed to start zigbee2mqtt.service - zigbee2mqtt.
In der Konsole des Containers Nr.101 - Name: „zigbee2mqtt“ sieht es so aus:
root@zigbee2mqtt:~# ls
data
root@zigbee2mqtt:~# cd data
root@zigbee2mqtt:~/data# ls
configuration.yaml
root@zigbee2mqtt:~/data#
# configuration.yaml USB-Gateway(default) & LAN-Gateway
# Home Assistant integration (MQTT discovery)
homeassistant: false
# allow new devices to join. !! Set to false after pairung all your devices !!
permit_join: true
# MQTT settings
mqtt:
# MQTT base topic for zigbee2mqtt MQTT messages
base_topic: zigbee2mqtt
# MQTT server URL - IP-adress:Port
server: mqtt://xx.xx.xx.119:1024
# MQTT server authentication (user & pasword), uncomment if required:
# user:
# password:
# Serial settings
serial:
# Location USB Gateway (default) - comment out if using LAN-Gateway
# port: /dev/ttyACM0
# Location LAN-Gateway (IP-adress:Socket Port) - comment out if using USB-Gateway
port: tcp://xx.xx.xx.25:6638
advanced:
network_key: GENERATE
frontend:
port: 8080
sieht man anhand er Tilde (kleine Wellenlinie), dass du im Home-Verzeichnis bist.
Im Falle vom Nutzer „root“ ist das das Verzeichnis „/root“
Wenn man nur cd eingibt, landet man immer im Home-Verzeichnis des aktuellen Nutzers. (ist quasi eine Abkürzung. Vermutlich hast du das mit cd / verwechselt.
Bei allen anderen Nutzern landet man dann in /home/**Benutzername**
Sollt Z2M laufen, kann die den Data Ordner im root-Homeverzeichnis löschen, damit die Verwirrung nicht nochmal aufkommt…
Ansonsten noch ein Hinweis, je nach dem , ob ein privilegierter container vorhanden ist oder nicht, ist es unter Umständen nicht notwendig, das Kommando „sudo“ zu nutzen. Manche Skripte aus dem Netz funktionieren dann nicht ohne Änderung auf dem Proxmox.
Was ist eigentlich ein „helper-script“ ? woher hast du das ?
… oder auch nicht !
Ich habe das Zigbee2Mqtt-Modul beta installiert, einen Bewegungsmelder und eine Steckdose.
Alles klappt - Vielen Dank - ganz besonders für die Proxmox-Nachhilfe.