Hallo zusammen,
ich betreibe einen LinkUSB über einen mit einer eigenen Stromversorgung versehenen USB-Hub an einem Raspberry Pi. An dem Hub hängt zudem noch ein JeeLink. An dem LinkUSB betreibe ich 3 DS18B20 Temperatursensoren. Bisher hat das alles zuverlässig funktioniert. Seitdem ich einen RFXtrx am zweiten Port des Raspberry Pi betreibe (dieser soll/kann nicht über hubs betreiben werden), funktioniert der LinkUSB nach einem Neustart des Raspberries nicht mehr. Stattdessen erhalte ich folgende Fehlermeldung:
2013.12.29 11:37:12.623 3: Opening 1wire device /dev/ttyUSB-FHEM0
2013.12.29 11:37:12.635 3: Setting 1wire baudrate to 9600
2013.12.29 11:37:12.680 3: 1wire device opened
2013.12.29 11:37:12.681 1: OWX: Serial device /dev/ttyUSB-FHEM0 defined
2013.12.29 11:39:45.812 1: OWX: 1-Wire bus 1wire: interface not found, answer was
Das ganze System ist dann ca. 5 Minuten blockiert, bevor es ohne 1-wire weiterläuft.
Die USB-Geräte habe ich über entsprechende udev-Regeln eindeutig zugeordnet.
Abhilfe bringt nur ein entfernen und wieder anschließen des LinkUSB. Nach einem "Shutdown restart" läuft das System bis zum nächsten reboot des Raspberries. Der Raspberry selber hat vor Kurzem ein leistungsfähiges Netzgerät spendiert bekommen, so dass ich die Stromversorgung eigentlich ausschließen kann.
Ein ähnliches Thema wurde hier https://groups.google.com/forum/#!topic/fhem-users/W5NnYUcOc8w (https://groups.google.com/forum/#!topic/fhem-users/W5NnYUcOc8w) schon einmal diskutiert, anscheinend aber ohne Ergebnis.
Gibt es dafür eine andere Lösung als die hardware (LinkUSB) zu tauschen?
schöne Grüße
Jo
Moin Jo,
Die Forensuche hätte geholfen, udev ist Dein Freund.
OWX unterhält sich mit Deinem RFXtrx, der gibt allerdings nicht die richtigen Antworten
Die USB-Schnittstelle wurde falsch zugeordnet.
Gruß Joachim
Hallo Joachim,
wie geschrieben habe ich entsprechende udev-Regeln definiert, nach denen den drei USB-Geräten die entsprechenden Zuordnungen ttyUSB-FHEM0, ttyUSB-FHEM1, ttyUSB-FHEM2 gegeben werden, über die sie auch angesprochen werden können. Für jedes Gerät habe ich eine solche Definition:
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A702GG8P", SYMLINK+="ttyUSB-FHEM1"
Wie kann ich diese Zuordnung denn berichtigen?
schöne Grüße
Jo
ZitatWie kann ich diese Zuordnung denn berichtigen?
Was willst Du berichtigen?
Zitat von: Joachim am 29 Dezember 2013, 21:30:00
Was willst Du berichtigen?
Du schreibst, die USB-Schnittstelle sei falsch zugeordnet. Das würde ich gerne berichtigen.
Wie kann ich denn verhindern, dass OWX sich mit dem RFXtrx unterhält?
schöne Grüße
Jo
Indem du das define von owx entsprechend anpasst.
define Name OWX /dev/ttyUSB-FHEMxx
Aber genau das habe ich gemacht
define 1wire OWX /dev/ttyUSB-FHEM0
attr 1wire buspower real
Es funktioniert ja auch. Nur leider nicht mehr nach einem Neustart des Raspberry :-\
schöne Grüße
Jo
Was sagt:
ls -al /dev|grep ttyUSB
Zitat von: Joachim am 29 Dezember 2013, 22:19:17
Was sagt:
ls -al /dev|grep ttyUSB
crw-rw---T 1 root dialout 188, 0 Dez 29 22:23 ttyUSB0
crw-rw---T 1 root dialout 188, 1 Jan 1 1970 ttyUSB1
crw-rw---T 1 root dialout 188, 2 Dez 29 22:19 ttyUSB2
lrwxrwxrwx 1 root root 7 Dez 29 11:40 ttyUSB-FHEM0 -> ttyUSB2
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM1 -> ttyUSB1
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM2 -> ttyUSB0
schöne Grüße
Jo
Also der Symlink funktioniert.
Weshalb es nach einem Reboot nicht geht ist mir schleierhaft.
Gibt es irgendwelche Hinweise in den Logs?
Sowohl FHEM, als auch syslog, messages, dmesg vom Raspberry?
Ok, danke erstmal. Ich werde mich mal auf die Suche begeben.
schöne Grüße
Jo
Zitat von: Joachim am 29 Dezember 2013, 22:19:17
Was sagt:
ls -al /dev|grep ttyUSB
Ich verstehe es nicht. Wenn ich den RPi mehrmals neustarte und nur diesen Befehl ausführe, bekomme ich mal
crw-rw---T 1 root dialout 188, 0 Dez 30 18:30 ttyUSB0
crw-rw---T 1 root dialout 188, 1 Dez 30 18:33 ttyUSB1
crw-rw---T 1 root dialout 188, 2 Jan 1 1970 ttyUSB2
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM0 -> ttyUSB1
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM1 -> ttyUSB2
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM2 -> ttyUSB0
aber manchmal auch sowas wie
crw-rw---T 1 root dialout 188, 0 Dez 30 18:13 ttyUSB0
crw-rw---T 1 root dialout 188, 1 Jan 1 1970 ttyUSB1
crw-rw---T 1 root dialout 188, 2 Dez 30 18:13 ttyUSB2
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM0 -> ttyUSB2
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM1 -> ttyUSB2
lrwxrwxrwx 1 root root 7 Jan 1 1970 ttyUSB-FHEM2 -> ttyUSB0
Ich dachte eigentlich, dass die udev-rules dafür sorgen, dass z.B. ttyUSB2 nicht doppelt belegt werden kann :-\
Woran könnte das denn liegen?
schöne Grüße
Jo
Ich habs befürchtet.
Sind die symlinks eindeutig?
Eigentlich schon, wobei sich zwei Geräte nur durch die Seriennummer unterscheiden:
# LinkUSB:
ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0002", ATTRS{serial}=="bcm3808_usb", SYMLINK+="ttyUSB-FHEM0"
# JeeLink:
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A702GG8P", SYMLINK+="ttyUSB-FHEM1"
# RFXTRX433:
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A1WTYAGI", SYMLINK+="ttyUSB-FHEM2"
schöne Grüße
Jo
Ui, nun wird es interessant.
Ich hätte eigentlich erwartet, dass sich "ttyUSB-FHEM1" und "ttyUSB-FHEM2" streiten.
Da werden wir jetzt wohl beide mal Onkel google befragen müssen.
Wer zuerst die Lösung hat, hat gewonnen.
Gruß Joachim
Ich gebe auf ;D
Habe jetzt noch ein paar Mal neu gestartet und es scheint zu laufen. Die udev-Regeln habe ich ein wenig erweitert (um manufacturer und product), so dass sie auf jeden Fall eindeutig sein sollten.
schöne Grüße
Jo
Hi,
zwar schon lange her, aber bei mir ist das Attibut iserial und nicht serial.
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{iserial}=="A900Y1HB", SYMLINK+="ttyUSB0"
Das ist ersichlich, wenn man sich mit
sudo lsusb -v
die Daten anzeigt:
iManufacturer 1 FTDI
iProduct 2 FT232R USB UART
iSerial 3 A900Y1HB
Vielleicht hilft es.
Gruß cfi
Danke! Ich habe zwar keine Probleme mehr, werde das aber mal testen.
schöne Grüße
Jo