[gelöst] HM-MOD-UART init/disconnected nach Umstellung von tty auf /dev/serial/by-id

Begonnen von Bartimaus, 18 Februar 2025, 18:22:48

Vorheriges Thema - Nächstes Thema

Bartimaus

Moin Leute,

ich betreibe mein FHEM auf einem unpriviligiertem Linux-Container in Proxmox.
Bislang waren meine USB-Dongles (1wire,ZWave;CUL868 und HMUSB) via UDEV-Rules etc. nach klassischer Art in den LXC durchgeschliffen.
Dabei wurden den Devices ttyUSB0,ttyUSB1,ttyACM0 und ttyACM1 zugewiesen, und so auch in FHEM konfiguriert. Lief prima.

Mittlerweile ist dieses "umständliche" durchschleifen in Proxmox seit 8.2.0 vereinfacht, sprich, man fügt in der Webkonfig ein Device via Serial-ID hinzu, feddich.

Das habe ich gemacht, LCX neugestartet (HotPlug funktioniert hier nicht) und in FHEM in der Konfig statt "tty..." nun "/dev/serial/by-id/*** eingestellt. Das funktioniert auch prächtig, nur der HM-MOD-UART (HMUSB) wechselt ständig von "init" auf "disconnected". Der Status dabei ist immer "opened".

Da die üblichen Tricks hier unter Proxmox (Raspi, BT abschalten etc) nicht greifen, wollte ich mal in die Runde fragen, ob Ihr noch Tips habt ?

über
ls -l /dev/serial/by-id/ bekomme ich im LXC alle 4 Devices korrekt angezeigt.

pi@fhem:~$ sudo ls -l /dev/serial/by-id/
total 0
crw-rw-rw- 1 root root 166, 0 Feb 18 18:21 usb-0658_0200-if00
crw-rw-rw- 1 root root 166, 1 Feb 18 17:41 usb-busware.de_CUL868-if00
crw-rw-rw- 1 root root 188, 0 Feb 18 17:41 usb-FTDI_FT230X_Basic_UART_DN3XL6KW-if00-port0
crw-rw-rw- 1 root root 188, 1 Feb 18 18:21 usb-FTDI_FT232R_USB_UART_AH02Z25V-if00-port0
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Moin,
klingt nach: da greift noch einer zu. Oder FHEM schießt mit initialUsbCheck den Stick ab.

Ich probiere das mal aus.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

Danke, aber

attr initialUsbCheck disable 1
und der Dongle ist ausschließlich an den FHEM-LXC durchgeschliffen
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Funktioniert bei mir nach einem reboot des lxc problemlos. Vor dem reboot (installation und dann erst USB gesteckt) stimmten die Rechte nicht.

Und ich bleibe bei meiner bisherigen Erfahrung: der Wechsel connect/disconnect deutet darauf hin, das zwei um die Schnittstelle kämpfen.

Edit noch eine Idee: zeig mal
ls -lha /dev/serial/by-id/
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

Hm, ok.
Aber ich steh da gerade auf dem Schlauch, denn ich habe die Devices in FHEM eindeutig zugewiesen. Den Rest macht ja Proxmox. Und auch da ist es alles eindeutig.

Wie gesagt, Hotplug funktioniert bei einem LXC nicht, somit erst anstecken, dann booten.
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bartimaus

Zitat von: Otto123 am 18 Februar 2025, 19:10:16Edit noch eine Idee: zeig mal
ls -lha /dev/serial/by-id/

pi@fhem:~$ ls -lha /dev/serial/by-id/
total 0
drwxr-xr-x 2 root root    120 Feb 18 17:41 .
drwxr-xr-x 3 root root     60 Feb 18 17:41 ..
crw-rw-rw- 1 root root 166, 0 Feb 18 19:28 usb-0658_0200-if00 ## -> HMUSB
crw-rw-rw- 1 root root 166, 1 Feb 18 17:41 usb-busware.de_CUL868-if00 ## -> CUL868
crw-rw-rw- 1 root root 188, 0 Feb 18 19:28 usb-FTDI_FT230X_Basic_UART_DN3XL6KW-if00-port0 ## -> ZWave
crw-rw-rw- 1 root root 188, 1 Feb 18 19:30 usb-FTDI_FT232R_USB_UART_AH02Z25V-if00-port0 ## -> 1wire

Aaaber:
Wenn ich in der Proxmoxshell jetzt

root@pve:~# ls -lha /dev/serial/by-id/
total 0
drwxr-xr-x 2 root root 120 Feb 18 18:23 .
drwxr-xr-x 4 root root  80 Feb 18 17:25 ..
lrwxrwxrwx 1 root root  13 Feb 18 17:25 usb-0658_0200-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root  13 Feb 18 17:25 usb-busware.de_CUL868-if00 -> ../../ttyACM1
lrwxrwxrwx 1 root root  13 Feb 18 18:23 usb-FTDI_FT230X_Basic_UART_DN3XL6KW-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root  13 Feb 18 17:25 usb-FTDI_FT232R_USB_UART_AH02Z25V-if00-port0 -> ../../ttyUSB1

Dann wäre der HMUSB = ttyACM0, aaaber in der alten Konfig war er nach ttyUSB0 eingebunden..... jetzt bin ich völlig neben der Spur



Edith:
Arrrgh, habe tatsächlich die IDs für ZWave und HMUSB vertauscht. Weil aber beide Devices in FHEM den Status opened/initialized hatten, wurde mir als Devstateicon auch "grün" angezeigt. Nur als jetzt ich auch per ZWave nix mehr schalten konnte.... war alles klar.

Danke für den Schubs @Otto123
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Bartimaus

Zu früh gefreut.... ich kann zwar jetzt wieder ZWave schalten, aber der ständige Wechsel von init/disconnected beim HMUSB bleibt.

@Otto123
Welche Rechte hast Du denn dem Dongle zugewiesen ?
Ich habe ihn mit "0666" eingebunden.

Gruppe und User sind jeweils "root".
Nach alt war es "nobody" und "nogroup"

Edith2:
Ich habe das Device im ProxmoxHost gelöscht, alles neu gebootet, dann erneut im HOST eingebunden und durchgereicht. JETZT bleibt die "cond" im Device@FHEM dauerhaft auf "ok"
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Zitat von: Bartimaus am 18 Februar 2025, 20:22:07@Otto123
Welche Rechte hast Du denn dem Dongle zugewiesen ?
Ich habe ihn mit "0666" eingebunden.
Ich habe da gar nichts gemacht. Aber - der "Zauber" ist in der lxc .conf . In jedem privilegiertem Container steht dort:
Zitatlxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/serial/by-id  dev/serial/by-id  none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0       dev/ttyUSB0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1       dev/ttyUSB1       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM0       dev/ttyACM0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM1       dev/ttyACM1       none bind,optional,create=file
Ich bin nicht sicher, aber am Ende hat der 5 te USB Stick ein Problem, oder schon der dritte USB / ACM.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Zitat von: Bartimaus am 18 Februar 2025, 19:41:48Dann wäre der HMUSB = ttyACM0, aaaber in der alten Konfig war er nach ttyUSB0 eingebunden..... jetzt bin ich völlig neben der Spur
Ich will dazu nochmal erklären, der  HMUART über einen usb/seriell Adapter wird mMn immer ein USBx Gerät werden. ACM Geräte haben spezielle Chipsätze die sich dem System als Modem präsentieren.
Die typischen Chipsätze FTDI und CP210x melden werden als USB Geräte eingebunden.

Zu den Rechten, der normale Zustand ist bei /dev/serial/... das gilt auf dem Host genauso wie im LXC, wenn es anders ist muss man den LXC neu starten.
Zitatlrwxrwxrwx 1 root root  13 Feb 18 17:25 usb-xxx
Bei /dev/ttyXXX
Zitatcrw-rw---- 1 root dialout 188, 0 Feb 19 11:34 /dev/tty
Letzteres ist auch wichtig anzuschauen, denn es gibt Systeme da wird dialout durch eine andere Gruppe ersetzt. Der User, der die Schnittstelle verwenden will muss immer in der berechtigten Gruppe stecken.
Die Rechte an diesen Geräten kann man durch chown und chmod nicht dauerhaft manipulieren! Das geschieht durch udev.

Und Du hast jetzt schon 2 ACM und 2 USB Gerät "verbraucht", ich würde vermuten: Du musst beim nächsten USB seriell Stick die LXC conf anpassen. Und dies eventuell bei allen, denn es muss mMn eine Zuordnung zu einem ttyXXX Gerät geben.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

Danke für die Erläuterung.

Das 5. Device wäre in der Tat mal interessant, habe da aber aktuell nichts in der Pipeline.

Beim Einbinden im ProxmoxHost kann man ja das Device auch als "read only" einbinden. An dieser Stelle wäre interessant, ob man das Device dann an mehrere LXC durchschleifen kann.
Oder werden Schaltvorgänge als "write" interpretiert ?

Bisher hatte ich die Devices ja klassisch, incl. Udev-Rules an den Container weitergereicht.
Im Container dann die Geräte via tty*** aus FHEM angesprochen. Gleichwohl konnte man im Container per "ls -la /dev/serial/by-id" deren ID auslesen, aber wenn ich FHEM (im Container) dann definiert habe "nutze" die Serial anstelle "tty*", dann hat das nicht funktioniert....
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Dieses automatische Durchreichen hängt mWn an der Einstellung: Unprivileged Container no
Damit werden pauschal die oben genannten Einträge in der /etc/pve/lxc/nnn.conf gemacht.
In allen meinen privileged LXCs sehe ich dann auch die Schnittstellen und kann sie mit Sicherheit auch verwenden - aber: Immer nur einer zur gleichen Zeit! ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

Zitat von: Otto123 am 18 Februar 2025, 23:36:36Ich habe da gar nichts gemacht. Aber - der "Zauber" ist in der lxc .conf . In jedem privilegiertem Container steht dort:
Zitatlxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/serial/by-id  dev/serial/by-id  none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0      dev/ttyUSB0      none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1      dev/ttyUSB1      none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM0      dev/ttyACM0      none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM1      dev/ttyACM1      none bind,optional,create=file
Ich bin nicht sicher, aber am Ende hat der 5 te USB Stick ein Problem, oder schon der dritte USB / ACM.

Diese Einträge habe ich in kein meiner Konfig-Dateien für meine priv. LXCs
Gleichwohl werden die Devices in der ProxmoxShell an ttyUSB/ACM durchgereicht....

In meiner Konfig steht nach neu folgendes:

dev0: /dev/serial/by-id/usb-0658_0200-if00,mode=0666
dev1: /dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_DN3XL6KW-if00-port0,mode=0666
dev2: /dev/serial/by-id/usb-busware.de_CUL868-if00,mode=0666
dev3: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH02Z25V-if00-port0,deny-write=on,mode=0666



LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Otto123

Zitat von: Bartimaus am 19 Februar 2025, 19:38:14Gleichwohl werden die Devices in der ProxmoxShell an ttyUSB/ACM durchgereicht....
hast Du wirklich in deinem lxc die Verbindung nach ttyUSB/ACM ich habe das mal versucht da bekommt man dann /dev/serial/by-id/xxx aber nix weiter.  :(
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Bartimaus

Zitat von: Bartimaus am 20 Februar 2025, 17:45:04Guckst Du:

root@pve:~# ls -l /dev/serial/by-id/
total 0
lrwxrwxrwx 1 root root 13 Feb 18 17:25 usb-0658_0200-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 Feb 18 17:25 usb-busware.de_CUL868-if00 -> ../../ttyACM1
lrwxrwxrwx 1 root root 13 Feb 18 20:46 usb-FTDI_FT230X_Basic_UART_DN3XL6KW-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Feb 18 17:25 usb-FTDI_FT232R_USB_UART_AH02Z25V-if00-port0 -> ../../ttyUSB1
root@pve:~#

über "Device passthrough" kann man jetzt auch Speicher an LXC durchreichen. Eben mal getestet
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Ralli

Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa