Seite 1 von 1

USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 7:40 am
von E-lmo
Da bei mir durch Arbeiten an der Elektroinstallation die OpenWb mehrmals spannungslos war, fiel mir auf, dass die Modbusverbindung nach dem booten nicht mehr funktioniert. Erst wenn ich den USB-Modbus-Adapter kurz aus der USB-Buchse ziehe und wieder stecke, werden die Daten der Zähler dargestellt.

Kann es sein, dass die Initialisierung des USB-Modbus-Adapters beim Start gegenüber früheren Versionen geändert wurde?
Mit einer der früheren OpenWb-Versionen hatte ich das Problem nicht.
(Aktuell OpenWb 1.9.243 Eigenbau mit Modbus-USB-Adapter für die Stromzähler und DAC mit simpleEVSE-wb.)

Bei meiner zweiten Installation mit einer älteren Version funktioniert die Initialisierung beim booten problemlos.
(Aktuell 1.6.19b nightly allerdings mit mehreren Modbus-USB-Adaptern für Zähler und Simple-EVSE-Din)

Re: USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 12:13 pm
von FosCo
Vielleicht am Thema vorbei, aber das Problem kenne ich vom fhem und zwei CUL Sticks (original und Selbstbau).
Der originale wird immer zuverlässig erkannt, der Eigenbau nicht.

Bei der Initialisierung kann man sich an device by id oder device by name hängen.
Ohne den Code zu kennen, könnte hier eine Analyse starten.

Ist der Port bei beiden openWB der gleiche und ist es jeweils das einzige USB Gerät?

Re: USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 5:05 pm
von E-lmo
Der USB-Adapter wird als /dev/ttyUSB0 angesprochen und ist das einzige USB-Gerät in der Installation.
(Daneben wird noch ein i2C-DAC-Wandler vom Raspi angesteuert. -Zur Ladestromvorgabe an die simple-EVSE-wb. Das war bei den ersten OpenWb-Entwicklungen noch Standard. Da dies zuverlässig läuft, habe ich das nicht angepasst.)

Die Initialisierung des USB-Modbus-Adapters funktioniert beim Start nie.
Nach kurzem Abstecken wird dieser immer zuverlässig erkannt.
Das Verhalten ist also zuverlässig reproduzierbar und funktionierte vor einiger Zeit noch. (Vermutlich vor einem der letzten Updates)

Das zweite OpenWb-System initialisiert die beiden USB-Modbus-Wandler ( /dev/ttyUSB0 und /dev/ttyUSB1 )beim Booten zuverlässig.
(Hier ist noch eine ältere Version installiert, da die OpenWB-Seite durch eine NAT erreichbar sein muss. Das ist mit den neueren Versionen etwas schwerer.)

Das unterschiedliche Verhalten lässt mich vermuten, dass die Initialisierung beim Booten durch Veränderung in der Version zu suchen sein könnte.

Re: USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 5:15 pm
von LutzB
So tief ins System greift openWB nicht ein. Entweder das RaspberryPi OS erkennt den Adapter, oder eben nicht. Schau mal in den Protokollen bei Systemstart nach.
Stichwörter: dmesg, lsusb, syslog

Interessant ist sicher auch ein Abgleich der installierten Pakete und deren Versionen. Speziell der Kernel.

Re: USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 5:17 pm
von FosCo
Wenn du eine Lösung findest, wird das sicherlich auch mein CUL Problem lösen, ich bin gespannt 8-)

Re: USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 5:29 pm
von derNeueDet
ttyUSB0 und ttyUSB1 sind dynamische Namen, die beim Booten erzeugt werden. Zum Einen kann sich das verändern, wenn du die beiden Adapter mal tauschst und zum Anderen könnte es sein, dass der dynamische Name nicht rechtzeitig zur Verfügung steht. Jetzt kommt es drauf an, ob die Adapter einen eindeutigen Namen haben, sodass du diesen verwenden kannst.
lsusb wäre der richtige Punkt um das zu schauen.

VG
Det

Re: USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 6:32 pm
von derNeueDet
Hier der Zustand auf einem meiner Raspis:

Code: Alles auswählen

pi@raspi3:~ $ lsusb
Bus 001 Device 006: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspi3:~ $ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Jul 27 17:34 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Jul 27 17:34 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Sep 21  2021 /dev/ttyUSB2
pi@raspi3:~ $ ls -l /dev/serial/by-id/
insgesamt 0
lrwxrwxrwx 1 root root 13 Jul 27 17:34 usb-FTDI_FT232R_USB_UART_A702PEEE-if00-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Jul 27 17:34 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Jul 27 17:34 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0002_PV-if00-port0 -> ../../ttyUSB1
pi@raspi3:~ $
lsusb hilft nicht so richtig, da sich an meinem Raspi 2 identische USB TTL Adapter befinden. Identischer Name und identische ID. Somit ist das ein Glücksspiel, an welchem USB Port die stecken und mit welchem dynamischen Device /dev/ttyUSB* sie angelegt werden.
Zum Glück kann man bei den CP2102 auch den Name (ID) ändern, sodass sie unter /dev/serial/by-id dann eindeutig werden.
Für den Zugriff verwende ich nicht die dynamischen Devices /dev/ttyUSBx sondern
/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

VG
Det

Re: USB-Modbus-Adapter wird beim booten nicht erkannt

Verfasst: Di Sep 21, 2021 8:17 pm
von Flocki
Per udev können symlinks auf die Devices in Abhängigkeit vom Port in dem der Stick steckt erstellt werden.