Proxmox Debian VM USB Sticks Rademacher und Z-wave.me funktioniert immer nur ein

Begonnen von duke_do, 09 Mai 2024, 15:06:56

Vorheriges Thema - Nächstes Thema

duke_do

Hallo,

ich möchte meine Fhem installation von meinem Rasperry auf eine Debian VM auf Proxmox umziehen.

Fhem ist auf Debian 12 neu installiert und die Konfig ist übernommen. Ich habe die beiden USB Sticks in das ThinkCentre gesteckt (egal ob über einen Hub oder je ein eigener Port). Sie werden in Proxmox Host auch erkannt und ich kann sie der VM über Hardware/Option/USB zuweisen. Im Proxmox sehe ich die beiden Sticks auch. Über LSUSB -t werden mir die beiden Sticks auch angezeigt. Über LSUSB -vv wird auch die Hardware erkannt:
Bus 001 Device 033: ID 0658:0200 Sigma Designs, Inc. Aeotec Z-Stick Gen5 (ZW090) - UZB                (Z-Wave Stick)
Bus 001 Device 035: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC  (DuoFern Stick)

In der VM sehe ich auch beide Sticks, sie sind mit Namen aufgeführt:
ls -l /dev/serial/by-id
insgesamt 0
lrwxrwxrwx 1 root root 13  9. Mai 13:52 usb-0658_0200-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13  9. Mai 14:07 usb-Rademacher_DuoFern_USB-Stick_WR06IAMX-if00-port0 -> ../../ttyUSB0

In Fhem habe ich sie mit Devicenamen zugewiesen. Ein ziehen und Stecken (in Proxmox umkonfigurieren) wird auch in Fhem erkannt:

2024.05.09 14:07:32 1: /dev/serial/by-id/usb-Rademacher_DuoFern_USB-Stick_WR06IAMX-if00-port0 disconnected, waiting to reappear (Rademacher)
2024.05.09 14:07:34 3: Setting Rademacher serial parameters to 115200,8,N,1
2024.05.09 14:07:34 1: /dev/serial/by-id/usb-Rademacher_DuoFern_USB-Stick_WR06IAMX-if00-port0 reappeared (Rademacher)

Im Log vom Fhem sieht man das auch (hier mal ziehen und stecken):
2024.05.09 12:55:45 1: /dev/serial/by-id/usb-0658_0200-if00 disconnected, waiting to reappear (RaspiZW)
2024.05.09 12:55:55 3: Setting RaspiZW serial parameters to 115200,8,N,1
2024.05.09 12:55:55 1: RaspiZW: SOF missing (got 00 instead of 01)
2024.05.09 12:55:57 1: /dev/serial/by-id/usb-0658_0200-if00 reappeared (RaspiZW)
2024.05.09 12:58:38 1: /dev/serial/by-id/usb-0658_0200-if00 disconnected, waiting to reappear (RaspiZW)
2024.05.09 13:29:33 1: /dev/serial/by-id/usb-Rademacher_DuoFern_USB-Stick_WR06IAMX-if00-port0 disconnected, waiting to reappear (Rademacher)
2024.05.09 13:29:44 3: Setting Rademacher serial parameters to 115200,8,N,1
2024.05.09 13:29:44 1: /dev/serial/by-id/usb-Rademacher_DuoFern_USB-Stick_WR06IAMX-if00-port0 reappeared (Rademacher)
2024.05.09 13:31:34 3: Setting RaspiZW serial parameters to 115200,8,N,1
2024.05.09 13:31:34 1: RaspiZW: SOF missing (got 00 instead of 01)
2024.05.09 13:31:35 1: /dev/serial/by-id/usb-0658_0200-if00 reappeared (RaspiZW)

Nun zum Problem. Es geht immer nur ein Stick (obwohl beide im Log angezeigt werden) In der Regel geht der erste Stick, der gesteckt worden ist. Shutdown restart von Fhem bis Reboot der VM haben nicht geholfen. Entweder geht Z-Wave oder es geht DuoFern. Eine Zuordnung in Proxmox per USB Port oder per Devicename ändert nichts (egal ob beide per Port, per Device oder ein Mix davon)
Da die Geräte ja im VM-Linux per Name erkannt werden (auch wenn ich einen zieh wird nur einer erkannt, wenn beide stecken beide) müssen sie ja da ankommen. Da Fhem ein ziehen und stecken auch protokolliert kommen sie in Fhem auch an. Nur die Kommunikation geht halt immer nur mit einen USB Stick.

Ich bin ratlos und hoffe auf Lösungsvorschläge, danke schon mal.

betateilchen

Wie hast Du denn die mappings in Proxmox angelegt?
Werden dort immer beide Sticks angezeigt?

Bei mir laufen 4 USB Sticks problemlos.

Du darfst diesen Dateianhang nicht ansehen.

Davon sind 2 für FHEM zugeordnet.

Du darfst diesen Dateianhang nicht ansehen.

Und falls Du nochmal Logauszüge oder Konsolenausgaben postest, verwende bitte code-Tags für bessere Lesbarkeit. Danke.



--
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

duke_do

#2
Vielen Dank für deine Rückmeldung.

Ich habe die USB Geräte auf der VM unter Hardware USB erstellt. Beide sind zugeordnet:

Du darfst diesen Dateianhang nicht ansehen.

Dabei ist es egal ob per Gerät-ID oder den Port direkt durchreiche (oder ein Mix aus beidem). Habe auch schon unterschiedliche USB Ports am Host ausprobiert.

Du darfst diesen Dateianhang nicht ansehen.

Wie bekomme ich diese schöne Übersicht aller USB Geräte auf dem Host aus deinem ersten Screenshot?

Die beiden USB Geräte werden ja auch in der VM angezeigt und erkannt und ein ziehen und Stecken wird im Fhem sogar protokolliert, nur das Gerät scheint nicht sauber zu arbeiten (habe mal Verbose auf 5 gestellt für den DuoFern Stick):

2024.05.11 12:37:01 4: Rademacher: rx  -> 81000000000000000000000000000000000061d9f501
2024.05.11 12:37:01 4: Rademacher: snd -> 81000000000000000000000000000000000000000000
2024.05.11 12:37:01 5: DevIo_SimpleWrite Rademacher: 81000000000000000000000000000000000000000000
2024.05.11 12:37:01 4: Rademacher: snd -> 0DFF0F40000000000000000000000000000042B9D401
2024.05.11 12:37:01 5: DevIo_SimpleWrite Rademacher: 0dff0f40000000000000000000000000000042b9d401
2024.05.11 12:37:01 4: Rademacher: rx  -> 81000000000000000000000000000000000042b9d401
2024.05.11 12:37:01 4: Rademacher: snd -> 81000000000000000000000000000000000000000000
2024.05.11 12:37:01 5: DevIo_SimpleWrite Rademacher: 81000000000000000000000000000000000000000000
2024.05.11 12:37:01 5: Rademacher sending 0DFF0F4000000000000000000000000000004986AB01
2024.05.11 12:37:01 4: Rademacher: snd -> 0DFF0F4000000000000000000000000000004986AB01
2024.05.11 12:37:01 5: DevIo_SimpleWrite Rademacher: 0dff0f4000000000000000000000000000004986ab01
2024.05.11 12:37:01 3: DUOFERN no ACK, request Status
2024.05.11 12:37:01 5: Rademacher sending 0DFF0F4000000000000000000000000000004986AC01
2024.05.11 12:37:01 3: DUOFERN no ACK, request Status
2024.05.11 12:37:01 5: Rademacher sending 0DFF0F4000000000000000000000000000004986A301
2024.05.11 12:37:01 3: DUOFERN no ACK, request Status


Beide Sticks scheinen aber von Fhem angesprochen und geöffnet zu werden:

2024.05.11 12:35:59 3: Opening RaspiZW device /dev/serial/by-id/usb-0658_0200-if00
2024.05.11 12:35:59 3: Setting RaspiZW serial parameters to 115200,8,N,1
2024.05.11 12:35:59 1: RaspiZW: SOF missing (got 00 instead of 01)
2024.05.11 12:36:00 3: RaspiZW device opened
2024.05.11 12:36:00 3: TelegramBot_Define teleBot: called
2024.05.11 12:36:01 2: SolarView will read from solarview at 192.168.0.40:15000 every 300 seconds
2024.05.11 12:36:01 3: Opening Rademacher device /dev/serial/by-id/usb-Rademacher_DuoFern_USB-Stick_WR06IAMX-if00-port0
2024.05.11 12:36:01 3: Setting Rademacher serial parameters to 115200,8,N,1
2024.05.11 12:36:01 3: Rademacher device opened

Auf der Konsole der VM werden auch beide Geräte angezeigt:

root@fhem:/home/daniel# ls -l /dev/serial/by-id
insgesamt 0
lrwxrwxrwx 1 root root 13 11. Mai 12:35 usb-0658_0200-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 11. Mai 12:35 usb-Rademacher_DuoFern_USB-Stick_WR06IAMX-if00-port0 -> ../../ttyUSB0

root@fhem:/home/daniel# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M
    |__ Port 2: Dev 3, If 0, Class=Communications, Driver=cdc_acm, 12M
    |__ Port 2: Dev 3, If 1, Class=CDC Data, Driver=cdc_acm, 12M


Entschuldige das ich den Code einfach so reinkopiert habe, kenne die Forensoftware nicht so gut, hoffe jetzt ist es besser.

betateilchen

Zitat von: duke_do am 11 Mai 2024, 13:01:07Wie bekomme ich diese schöne Übersicht aller USB Geräte auf dem Host aus deinem ersten Screenshot?

Das sind die "Ressource Mappings", die im Datacenter Deiner Proxmox angelegt werden. PCI und USB devices lege ich immer zuerst dort als Hardware an.

In der Instanz, in der sie letztlich genutzt werden sollen, weise ich diese Geräte dann über "use mapped device" zu.
Auf die Idee, ein USB device direkt in der Instanz anzulegen, bin ich bisher noch nie gekommen  8)

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

duke_do

Das Datacenter hat man, meine ich, ja erst, wenn man mehr als einen Host hat (habe ich, aber bei einem Host muss man es ja direkt im Host zuweisen, sollte aber keinen Unterschied machen). Habe es mal im Datacenter eingerichtet und dann gemapped.

Ändert aber nichts an dem Problem. Jeder Stick für sich geht, beide zusammen gehen nicht, aber Fehm erkennt beide Sticks (und reagiert auch auf ziehen/stecken).

Da muss doch irgendetwas im argen liegen, ich weiß leider nur nicht was, hat irgendwer noch Ideen wo ich ansetzten kann oder was ich noch prüfen kann? Habe Debian auf dem aktuell Stand, Fhem auch. Die VM rauf und runter fahren hilft auch nichts.

So, habe noch mal eine neue Debian VM installiert bei gesteckten USB Sticks und Fhem neu aufgesetzt. Dann das Fhem Bachup zurück gespielt. Problem bleibt, es muss also irgendetwas innerhalb von Fhem "defekt" sein (oder in der Proxmox Konfiguration der USB Geräte, aber da gibt es ja nichts mehr).

Sany

Hallo duke_do,

ich hätte einen Vorschlag, bedeutet aber (zumindest einmal) etwas Aufwand, danach ist es ungemein praktisch, vor allem wenn man Änderungen oder Wechsel machen möchte. Auch gibt es (hier) unterschiedliche Sichtweisen, deshalb stelle ich es nur als EINE von vermutlich VIELEN Möglichkeiten vor:

Ich habe fhem in einem LXC (privileged) auf Proxmox laufen. Zusätzlich habe ich Dinge wie MariaDB, zigbee2MQTT und Grafana, also Dinge die mit fhem zu tun haben, auch jeweils in einem eigenen LXC laufen.
Insgesamt sind 3 USB-Schnittstellen in Verwendung:
Zigbee-Dongle, wird von zigbee2MQTT verwendet
Z-Wave Stick, wird von fhem verwendet
FHZ1350, wird von fhem verwendet.

alle 3 werden per ser2net im LAN zur Verfügung gestellt, weshalb sie grundsätzlich irgendwo angesteckt sein könnten, also z.B. ein Raspi irgendwo wo der Empfang besser ist oder eben auch am Proxmox-Host.
Zigbee und Z-Wave können von den Anwendungen jeweils direkt angesprochen werden über die LAN-Adresse, die FHZ läßt sich nur seriell einbinden, weshalb auf dem fhem-LXC noch socat läuft, quasi das Gegestück zu ser2net, welches dann einen virtuellen COM-Port erzeugt, der von fhem aus genutzt wird.
Das Ganze muss man eben einmalig einrichten, aber selbst ich als ungelernter Linux-user habe das hinbekommen. Es läuft mittlerweile seit ca 2 Jahren?? ohne Probleme.
Die Vorteile, die ich darin sehe: 
- Außer der Einrichtung von ser2net muss am Host nichts geändert werden.
- Statt VMs kann man LXC nutzen, was deutlich weniger Speicherplatz benötigt und auch noch performanter läuft. Auch Backups gehen schneller. Es sind auch keine Änderungen an der Konfiguration nötig, was z.B. beim durchreichen von USB-Sticks an einen Container zwar geht (meistens), aber doch in gefrickel ausarten kann.

Das Ganze hat sich gerade als riesen Vorteil herausgestellt, als ich die Proxmox-Host Hardware erneuert habe: Ich konnte gemütlich den neuen Host aufsetzen, dann die Sticks umziehen (eben einmalig das ser2net einrichten, was alles im laufenden Betrieb geht). Nachdem die Sticks umgezogen waren musste ich bei den "Nutzern" nur die geänderte Adresse angeben, und alles lief wieder. Anschlissend habe ich dann nur noch von den einzelnen LXC Backups gemacht (auf mein NAS, auf das beide Proxmox-Hosts zugreifen) und diese dann auf dem neuen Host restored. Da die neuen Adressen schon eingerichtet waren lief das dann sofort.
Wenn alles eingerichtet ist kopiert man sich die ser2net Konfiguration irgendwo hin, das ist alles was man braucht, wenn mal der Host schlappmacht und man neu aufsetzen müsste.

Wenn Du daran Interesse hast schreibe ich die Details zum ser2net auf. Da Du von aktuellem Debian sprichst wird es Version >= 4 sein, welches über eine YAML konfiguriert wird und als systemd-service läuft. Schön wäre, wenn systemd-handling (Services starten, stoppen, daemon-reload etc) nicht ganz unbekannt sind.


Gruß


Sany
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....