Aber gerne doch.
zu meiner Konfiguration:
ser2net läuft auf dem proxmox-host, daran sind auch die diversen Sticks (in diesem fall der ConBeeII) angeschlossen.
Der host läuft auf bullseye, weslhalb ser2net in der Version ab 4 installiert ist. (ab Version 4 wird per ser2net.yaml konifuriert, davor wars eine .conf oder so)
In einem LXC (Container in Proxmox) läuft socat und emuliert die vom proxmox-host bereitgestellte Schnittstelle. Weiterhin deConz welches mit Angaben zur Schnittstelle gestartet werden muss.
Im Einzelnen:
Auf dem host:
ser2net Service:
sudo nano /usr/lib/systemd/system/ser2net.service
[Unit]
Description=Serial port to network proxy
Documentation=man:ser2net(
After=network-online.target
Wants=network-online.target
[Service]
EnvironmentFile=-/etc/default/ser2net
ExecStart=/usr/sbin/ser2net -n -c $CONFFILE -P /run/ser2net.pid
Type=exec
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
die beiden roten Zeilen habe ich eingefügt, damit ser2net erst gestartet wird, wenn das Netzwerk steht.
ser2net Konfiguration:
sudo nano /etc/ser2net.yaml
%YAML 1.1
---
# This is a ser2net configuration file, tailored to be rather
# simple.
#
# Find detailed documentation in ser2net.yaml(5)
# A fully featured configuration file is in
# /usr/share/doc/ser2net/examples/ser2net.yaml.gz
#
# If you find your configuration more useful than this very simple
# one, please submit it as a bugreport
define: &banner \r\nser2net port \p device \d [\B] (Debian GNU/Linux)\r\n\r\n
connection: &conbeeII
accepter: ipv4,tcp,54321
enable: on
options:
banner: *banner
kickolduser: true
telnet-brk-on-sync: true
connector: serialdev,
/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1964524-if00,
115200n81,nobreak,local
ich habe den Eintrag für die Schnittstelle "by-id" gewählt, damit sollte auch ein umstecken möglich sein. Kommt aber eigentlich nicht vor.
Das findest Du so heraus:
einmal
sudo lsusb
Bus 001 Device 012: ID 1cf1:0030 Dresden Elektronik ZigBee gateway [ConBee II]
Damit siehst Du den Stick erst mal.
sudo ls -al /dev/serial/by-id
lrwxrwxrwx 1 root root 13 Aug 30 08:41 usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1964524-if00 -> ../../ttyACM1
den roten Teil dann kopieren und so wie oben angegeben in die yaml eintragen. Das kann bei Dir evtl. auch etwas anders aussehen, es muss nur später übereinstimmen.
Dann den service enablen und starten, oder nach dem enablen den Rechner neu starten, dann hast Du gleich getestet, ob der Service beim Neustart auch gestartet wird.
Sehen, ob der Port erzeugt wird:
netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:54321 0.0.0.0:* LISTEN 2576245/ser2net
sollte eine solche Zeile enthalten, damit läuft wohl ser2net und hat den Port geöffnet.
im deConz Container: socat muss installiert sein, bei mir Version 1.7.4.1
ich habe einen Service für socat eingerichtet für die deConz-Schnittstelle:
sudo nano /etc/systemd/system/mySocatDECONZ.service
[Unit]
Description=socat conbee II to fhem
After=network-online.target
[Service]
Restart=restart-always
RestartSec=10
ExecStart=/usr/bin/socat pty,link=/dev/ttyACM0,raw,group-late=dialout,mode=660 tcp:deine.ser2net.server.ip:54321
[Install]
WantedBy=multi-user.target
(deine.ser2net.server.ip mit Deinen Daten ersetzen)
Auch hier wieder: service enablen und starten oder reboot, um den Start zu testen.
Wenn er läuft:
ls -l /dev/tty*
lrwxrwxrwx 1 root root 10 Nov 20 07:43 /dev/ttyACM0 -> /dev/pts/3
Damit ist der Schnittstelle vorhanden, also der ConBeeII im LXC per LAN angekommen.
Jetzt muss nur noch deConz richtig gestartet werden:
sudo nano /lib/systemd/system/deconz.service
[Unit]
Description=deCONZ: ZigBee gateway -- REST API
Wants=deconz-init.service deconz-update.service
StartLimitIntervalSec=0
[Service]
User=1000
ExecStart=/usr/bin/deCONZ -platform minimal --http-port=80 --dev=/dev/ttyACM0
Restart=always
RestartSec=10
AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_KILL CAP_SYS_BOOT CAP_SYS_TIME
[Install]
WantedBy=multi-user.target
Die Schnittstelle habe ich wie
angegeben eingefügt, wie beschrieben wurde die Datei beim deConz update überschrieben und der Eintrag fehlte dann. Also wieder eintragen.
Nach Änderung dann
sudo systemctl daemon-reload
sudo systemctl stop deconz.service
sudo systemctl start deconz.service
und mit
sudo systemctl status deconz.service
schauen, ob er läuft.
In der PhosconApp muss bei Gatewas->Firmware die Version stehen. Wenn da steht "nicht verbunden" dann stimmt noch etwas nicht mit der Schnittstelle.
Alles oben genannte habe ich mir aus vielen Seiten im Netz zusammengesucht, weshalb es nicht unbedingt vollständig oder gar richtig sein muss. Es gibt bestimmt auch viele Verbesserungsmöglichkeiten. Allerdings läuft es bei mir.
Noch was zum LXC (Container auf proxmox) beim erstellen ist der erst mal "unprivileged". Um z.B. USB-Port durchzureichen oder ein nfs-Share auf einem NAS nutzen zu können muss es ein "privileged" sein. (USB durchreichen geht wohl auch bei unprivileged, ist aber ein noch größerer Klimmzug. Hier ja auch gar nicht nötig, da die Schnittstelle per LAN weitergereicht wird). Umstellen eines Containers von "unprivi..." auf "privi..." geht über ein Backup und dann Restore, wobei beim Restore der "privileged" ausgewählt werden kann. Will man die selbe Containernummer haben dann nach dem Backup den Container löschen, danach Restore).
Viel Erfolg!!
Sany