Ich nutze selbst openHABian, allerdings nicht auf einem Pi, sondern in einem LX Container. Insofern kenne ich nicht die Hardware-Seite von openHABian.
mad-mike hat geschrieben: ↑18. Aug 2024 15:55
ich kann die Geräte doch per
/dev/serial/by-id/ unterscheiden und in den Thing jeweils einstellen.
Ist das so? Sind die IDs dann in der UI auswählbar, oder tippst Du die ID ein? Und kannst Du den Stick dann auch erfolgreich ansprechen?
Letztlich sind die Geräte unterhalb /by-id/ lediglich Links auf die "echten" Geräte, also falls der Zugriff über die ID funktioniert, so muss die ID nach Java hereingereicht werden (über die EXTRA_JAVA_OPTS Variable).
Die "best practice" auf "konventionellen" GNU/Linux Systemen ist jedenfalls, udev Rules anzulegen.
Ein guter Artikel dazu:
https://wiki.ubuntuusers.de/udev/
Zu Beginn des Artikels wird darauf hingewiesen, dass dieser fehlerhaft sei. Das bezieht sich allerdings auf einen Teilaspekt, der hier unerheblich ist.
Letztlich geht es darum, solche Einträge zu erstellen:
Code: Alles auswählen
KERNEL=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0204", ATTRS{idProduct}=="0275", SYMLINK+="ttyMODBUS", ACTION=="add", GROUP=="tty"
wobei die VendorID und die ProductID natürlich passen muss. In diesem Fall würde ein Gerät mit dem Namen /dev/ttyMODBUS erzeugt und die Group tty würde gesetzt, und zwar genau dann, wenn ein USB-Stick mit der VendoID 0204 und der ProductID 0275 angeschlossen wird. Es gibt noch diverse andere Eigenschaften, notfalls auch die Seriennummer des Sticks, wobei es ja meist darum geht, funktional
unterschiedliche Sticks sicher zuzuordnen, aber bei Bedarf die Hardware gegen ein identisches Exemplar tauschen zu können
ohne erneut konfigurieren zu müssen.
Anschließend muss man die EXTRA_JAVA_OPTS ergänzen:
Code: Alles auswählen
EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyZWAVE:/dev/ttyMODBUS"
und nach einem Neustart von openHAB müsste es zwei ansprechbare Geräte geben, eben /dev/ttyZWAVE und /dev/ttyMODBUS.
Die Zeile ist natürlich nur beispielhaft

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet