NEWS
[gelöst] smartmeter / mbus - mehrere Gerätenamen ttyUSB klar benennen
-
Hallo;
Ausgangssituation:
1 Raspi3, daran angeschlossen:
an ttyUSB0 - Lesekopf Photovoltaik-Zähler - Adapter smartmeter
an ttyUSB1 - Lesekopf normaler Strom-Zähler - Adapter smartmeter
an ttyUSB2 - Wasserzähler mbus - Adapter MBus
Ich möchte nun diesen 3 USB jeweils eindeutige Gerätenamen zuweisen.
Im Thread smartmeter sind Hinweise vorhanden (auch ein Link auf die Seite von volkszähler).
Also:
1. Auslesen der ID mit:
/sbin/udevadm info –query=all --name=/dev/ttyUSB0
Fazit: Das hat jeweils geklappt.
Mir liegt also für jedes o.g. Gerät die ID_SERIAL_SHORT vor.
2. Eine neue Datei anlegen auf dem Raspi, z.B. "70-Lesekopf.rules" im Verzeichnis “/etc/udev/rules.d/"
(Ist das richtig so ?)
Dann dort hineinschreiben:
(hier hab ich 2 Lösungen gefunden, weiß aber nicht welche richtig ist)
a) (lt. Thread smartmeter)
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="********", SYMLINK+="lesekopf0"
(wobei das * zu ändern ist)
Anmerkung:
wenn ich die Kabel nun anders einstecken, dann ist doch ttyusb0 nicht mehr 0 sondern vielleicht ttyusb1, oder ?
b) (lt. Volkszähler)
SUBSYSTEM=="tty", ATTRS{product}=="CP2104 USB to UART Bridge Controller", ATTRS{serial}=="ABC1234", NAME="lesekopf0"
oder auch
SUBSYSTEM=="tty", ENV{ID_SERIAL_SHORT}=="ABC1234", SYMLINK+="lesekopf0"
Fazit zu 2)
Welcher Befehl ist der richtige?
(einmal steht System dann Systems oder Name und dann symlink)
Vielleicht gibt's da von jemandem mal nur Kurzinfo, danke.
3. zum aktivieren
sudo udevadm Trigger
(Das dürfte soweit klar sein)
4. Was muss dann in den Adaptern eingegeben werden?
smartmeter: bisher hab ich da "/dev/ttyUSB0"
und im 2 Adapter "dev/ttyUSB1"
Kann ich da jetzt eingeben z.B. "/dey/lesekopf0" ?
mbus: Das Auswahlfeld wird automatisch bestückt.
Wird dann dort auch angezeigt: "/dev/lesekopf2"
Vielleicht könnt ihr mir dabei mal helfen.
(der Raspi ist mir immer noch .....)
mfg
Dieter
-
2. Eine neue Datei anlegen auf dem Raspi, z.B. "70-Lesekopf.rules" im Verzeichnis “/etc/udev/rules.d/"
(Ist das richtig so ?) `
Hier ist es wichtig zu sehen welche Regeln es schon gibt. Wenn du nur "70er" hast ist es ok. Sind aber schon andere mit eventuell höheren Nummern vorhanden soll man wohl die höchste Nummer nehmen.
Dann dort hineinschreiben:
(hier hab ich 2 Lösungen gefunden, weiß aber nicht welche richtig ist)
a) (lt. Thread smartmeter)
SUBSYSTEMS=="usb",KERNEL=="ttyUSB*", ATTRS{serial}=="********", SYMLINK+="lesekopf0"
(wobei das * zu ändern ist)
Anmerkung:
wenn ich die Kabel nun anders einstecken, dann ist doch ttyusb0 nicht mehr 0 sondern vielleicht ttyusb1, oder ?
b) (lt. Volkszähler)
SUBSYSTEM=="tty", ATTRS{product}=="CP2104 USB to UART Bridge Controller", ATTRS{serial}=="ABC1234", NAME="lesekopf0"
oder auch
SUBSYSTEM=="tty", ENV{ID_SERIAL_SHORT}=="ABC1234", SYMLINK+="lesekopf0" `
"SUBSYSTEMS" hat bei mir nicht funktioniert.
4. Was muss dann in den Adaptern eingegeben werden?
smartmeter: bisher hab ich da "/dev/ttyUSB0"
und im 2 Adapter "dev/ttyUSB1"
Kann ich da jetzt eingeben z.B. "/dey/lesekopf0" ? `
Bei mir steht da noch immer "ttyUSBx"
mbus: Das Auswahlfeld wird automatisch bestückt.
Wird dann dort auch angezeigt: "/dev/lesekopf2"
Vielleicht könnt ihr mir dabei mal helfen.
(der Raspi ist mir immer noch …..)
mfg
Dieter `
mbus nutze ich nicht.
Gruß
Mirko
-
Hier ist es wichtig zu sehen welche Regeln es schon gibt. Wenn du nur "70er" hast ist es ok. Sind aber schon andere mit eventuell höheren Nummern vorhanden soll man wohl die höchste Nummer nehmen. `
Ja, da ist noch ne "99…" vorhanden.
Kann ich die Texte unter 2) einfach dort reinschreiben.
"SUBSYSTEMS" hat bei mir nicht funktioniert. `
d.h. funktioniert hat dann das script von volkszähler?
Welches denn?
SUBSYSTEM=="tty", ATTRS{product}=="CP2104 USB to UART Bridge Controller", ATTRS{serial}=="ABC1234", NAME="lesekopf0"
oder auch
SUBSYSTEM=="tty", ENV{ID_SERIAL_SHORT}=="ABC1234", SYMLINK+="lesekopf0"
Bei mir steht da noch immer "ttyUSBx" `
Wenn du immer noch "ttyUSBx" schreibst dann hat die festlegung des gerätenames doch gar nichts gebracht.
Ich dachte Sinn soll sein, dass "/dev/lesekopf0" immer das richtige Gerät bekommt.
Und dieses muss dann doch auch eingetragen werden, oder ?
zu mbus:
vielleicht kann ingo mal was dazu sagen.
mfg
Dieter
-
Hallo,
Die Idee hier ist, beim Anstecken eines Device einen zusätzlichen eigenen Gerätenamen anhand eines eindeutigen Merkmals zu erzeugen.
Wenn der USB Adapter eine individuelle Seriennummer hat, bietet sich diese an.
Wenn keine Seriennummer vorhanden ist, geht das so nicht.
Am besten nutzt man die Variante mit einem zusätzlichen symbolischen Link mit selbst definiertem Namen.
Dann ist es egal, welchen ttyUSBx Namen das Device bekommt.
Tschau
Uwe
-
Ja Uwe so hab ich das auch verstanden.
Würde bedeuten:
(analog volkszähler)
SUBSYSTEM=="tty", ATTRS{serial}=="ABC1234", NAME="lesekopf0"
(serial müsste doch reichen, bei volkszähler steht noch "ATTRS{product}" dabei)
in Datei *.rules schreiben.
und dann: sudo udevadm trigger
Danach müsste man das ganze doch ansprechen können mit: /dev/lesekopf0
Und dies müsste doch auch eingebbar sein im Adpater smartmeter.
Alles richtig soweit ?
-
Rückinfo von mir:
Habe folgendes in eine neue Datei "70-lesekopf.rules" geschrieben:
SUBSYSTEM=="tty", ATTRS{product}=="FT232R USB UART", ATTRS{serial}=="AH06GH5Y", SYMLINK+="lesestrom"
SUBSYSTEM=="tty", ATTRS{product}=="FT232R USB UART", ATTRS{serial}=="AH06GH5Z", SYMLINK+="lesevoltaik"
SUBSYSTEM=="tty", ATTRS{product}=="FT232R USB UART", ATTRS{serial}=="A907T3PS", SYMLINK+="lesewasser"
Danach sudo reboot.
mit ls -l /dev/lese*
kann man prüfen ob es geklappt hat.
Es werden dann alle 3 aufgelistet mit ihrem USB Port
Dann in smartmeter0 eingetragen: anstatt /dev/ttyUSB0 nun /dev/lesevoltaik
und in smartmeter1 eingetragen: anstatt /dev/ttyUSB0 nun /dev/lesestrom
Nur im Adapter mbus weiß ich noch nicht wie ich …lesewasser dort hin bekomme.
@@@Ingo
Wie bekomme ich nun /dev/lesewasser aufgelistet in der Auswahl um eben genau dies zuzuweisen.
mfg
Dieter
-
Wie bekomme ich nun /dev/lesewasser aufgelistet in der Auswahl um eben genau dies zuzuweisen. `
Aktuell gar nicht
Siehe https://github.com/node-serialport/node … ssues/1476 ... ist von einem anderen ioBroker-User
-
Könnte man da nicht ne Eingabezelle draus machen.
Analog smartmeter.
Dann wäre doch alles gelöst.
z.B. so:
bus schlägt vor
Und die Zelle kann man überschreiben.
Wäre doch ne Idee.
mfg
Dieter
-
Meine Idee wäre eher in die Auswahlliste immer ein "Anderes Device" als Auswahl am End eeinzufügen undndann kommt ein Textfeld zusätzlich. Das dann in 10+ Adaptern einheitlich
-
Das wäre auch gut.
Jede Lösung ist mir recht.
-
machst DU mir nen Issue bei mbus auf … muss schauen wann ich dazu komme. Kann durchaus paar Tage dauern
-
issue erledigt.
mfg
-
Wie bekomme ich nun /dev/lesewasser aufgelistet in der Auswahl um eben genau dies zuzuweisen. `
Jetzt weiß ich auch wieder warum ich noch "ttyUSBx" da stehen hatte.
Die Umstellung geht nur im Smartmeter Adapter. Im Modbus ist leider auch keine freie Eingabe möglich.
-
Naja in Smartmeter ist "nur" die manuelle Eingabe möglich und gar keine Selection
-
@wendy
Du hast aber dies bei smartmeter geschrieben.
Und weiter: "mbus hast du nicht".
mfg
-
Naja in Smartmeter ist "nur" die manuelle Eingabe möglich und gar keine Selection
`
"manuell" würde aber auch reichen.
Man stellt dies ja nur 1x ein.
mfg
Dieter
-
Manuell geht indem Du es direkt im Instanzobjekt einträgst.
Objekte -> Expertenmodus, system.adapter.<adaptername>. <instanz>hinten rechts auf den Stift und dort im "Raw" unter common das suchen wo das Device drin steht und dort eintragen. Objekt speichern und am besten konfig-dialog nicht anfassen :-)</instanz></adaptername>
-
Manuell geht indem Du es direkt im Instanzobjekt einträgst.
Objekte -> Expertenmodus, system.adapter.<adaptername>. <instanz>hinten rechts auf den Stift und dort im "Raw" unter common das suchen wo das Device drin steht und dort eintragen. Objekt speichern und am besten konfig-dialog nicht anfassen :-)</instanz></adaptername> `
Na dass probier ich heute abend gleich mal aus.
Danke für die Info.
issue ist aber trotzdem schon drin.
mfg
-
@wendy
Du hast aber dies bei smartmeter geschrieben.
Und weiter: "mbus hast du nicht".
mfg `
Ich weiß,
habe es aber in beiden nicht geändert gehabt.
Wollte das immer nochmal angehen und bin ehrlich gesagt erst durch dein Thema wieder daran erinnert worden.
-
Alles gut,
wie es bei mir geklappt hat hab ich oben geschrieben.
Die neuen Namen wurden mir aber erst nach
sudo reboot
angezeigt.
sudo udevadm trigger hat nicht ausgereicht; warum auch immer.
mfg