Symlinks - udev/rules.d

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10
Answers: 0

Symlinks - udev/rules.d

Beitrag von curius »

Hallo Leute!

Ich bin wieder mal der Verzweiflung nahe :-(
Gestern habe ich soweit meine Somfy Markise mittels RFXcom USB Transceiver (RFXtrx433XL USB HA controller) in Betrieb genommen.
Es hat wirklich alles soweit einwandfrei geklappt. Die neuere XL-Variante funktioniert somit auch einwandfrei mit dem RFXcom Binding.
Die Markise lässt sich nun wie gewünscht aus- bzw. einfahren.

Nun geht es aber um die zugewiesenen Ports.
Da ich zu dem RFXCom Transceiver auch noch einen Elero Transmitter am RPi 4 mit openhabian für die Rollladen betreibe, muss ich sicherstellen, dass beide Geräte immer den für sich gleichen Port zugewiesen bekommen => derzeit USB0 und USB1.

Soweit so gut => mittels Google gibt es einige Treffer zu dem Thema... Symlinks und udev-rules sind die Zauberwörter.
ABER - keine Chance. Ich bringe es einfach nicht zum Laufen.

Die Ports werden zwar richtig angelegt, aber openHAB kann damit einfach nichts anfangen. Es kann über den Symlink keine Verbindung aufgebaut werden, bzw. in der PaperUI kann ich nur die Standard-Ports auswählen USB0 bzw. USB1. Die Symlinks dazu erscheinen gar nicht im DropDown Menü.

Meine Vorgehensweise war wie folgt...
Anlegen der Datei mittels

Code: Alles auswählen

sudo nano /etc/udev/rules.d/99-usb-serial.rules
mit folgenden Inhalt:

Code: Alles auswählen

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="ADZ2RBLV", SYMLINK+="ttyUSBELERO"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", ATTRS{serial}=="DL4YYZXY", SYMLINK+="ttyUSBRFXCOM"
Nach einem Neustart werden die Symlinks schon mal richtig angelegt.
Ausgabe von

Code: Alles auswählen

ls -l /dev /tty*
ergibt dann korrekterweise:

Code: Alles auswählen

crw-rw---- 1 root dialout 188,   0 Apr 22 16:46 ttyUSB0
crw-rw---- 1 root dialout 188,   1 Apr 22 16:49 ttyUSB1
lrwxrwxrwx 1 root root           7 Apr 22 16:44 ttyUSBELERO -> ttyUSB1
lrwxrwxrwx 1 root root           7 Apr 22 16:44 ttyUSBRFXCOM -> ttyUSB0
Den User "openhab" habe ich sicherheitshalber noch mittels

Code: Alles auswählen

sudo adduser openhab dialout
sudo adduser openhab tty
zu den erforderlichen Gruppen hinzugefügt (war dort jedoch ohnehin bereits berechtigt).

Abschließend habe ich dann noch mittels

Code: Alles auswählen

sudo nano /etc/default/openhab2
die Config angepasst und folgenden Inhalt hinzugefügt:

Code: Alles auswählen

EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyUSBELERO:/dev/ttyUSBRFXCOM"
Ich bin grundsätzlich nach folgenden Tutorial vorgegangen:
https://community.openhab.org/t/how-to- ... opts/89615

Leider scheint es so, dass openHAB selbst irgendwie mit den Symlinks nichts anfangen kann, bzw. sich diese auch nicht in der PaperUI auswählen lassen (DropDown). Wenn ich die .things Dateien dann auf die dementsprechenden Symlinks ändere, bricht sofort die Verbindung ab und das Device geht offline.

Mein System: RPi 4 mit 4GB Ram / openhabian mit 2.5.3-1 Release

Vielleicht hat ja jemand von euch noch einen entscheidenden Tipp für mich - ansonsten werde ich es zusätzlich noch im englischen Forum versuchen.
Besten Dank an euch!

Grüße
Christian

curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10
Answers: 0

Re: Symlinks - udev/rules.d

Beitrag von curius »

Hallo!

Hab den Fehler schon gefunden...
Scheinbar muss man sich bei den aktuellen OH-Versionen bzw. openhabian Images an die "Namensvorgaben" halten.
Die entsprechenden Einträge in JAVA_OPTS (wie oben beschrieben) werden in dieser Form scheinbar nicht mehr unterstützt und funktionieren dann auch nicht.

Den entscheidenden Hinweise habe ich hier gefunden:
https://github.com/openhab/openhab-core/issues/1361

...und hier ist der Zusammenhang auch noch mal detaillierter beschrieben.
https://github.com/openhab/openhab1-add ... i/symlinks

Es ist somit nur das Anlegen der .rules Datei notwendig.

Code: Alles auswählen

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="ADZ2RBLV", SYMLINK+="ttyUSB-0001"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", ATTRS{serial}=="DL4YYZXY", SYMLINK+="ttyUSB-0002"
Wichtig dabei ist der Symlink-Name bzw. die Bezeichnung und der numerische Wert am Ende.

Wenn man sich an die "Namensvorgabe" hält, dann ist auch keine Anpassung der openHAB Config notwendig.
Einfach die Ports dementsprechend in den Things-Dateien bzw. im PaperUI anpassen und das System neu starten.

Funktioniert bei mir nun einwandfrei...

Beste Grüße
Christian

Antworten