NEWS
[gelöst] SerialPort-Adapter
-
Moin,
ich zitiere mal nicht, sondern sage Dir nur, dass der Host, die Infrastruktur hat, also alles was unter
/dev/serial
hat, das wird aber nicht an den Docker weitergereicht, im Docker wirst Du nur das Device haben, aber nicht die Infrastruktur.
Ob Du auch das/dev/serial
an den Docker durchreichen kannst, weiß ich gerade nicht.Dann solltest Du um den Zugriff auf das Device im Docker den User noch in die Gruppe
dialout
packen, denn sonst hat der keine Berechtigung zum Lesen und Schreiben, oder Du musst das Device im Host so anlegen, dass, wie ich oben schon beschrieben habe, alle Zugriff bekommen, alsoUser
,Gruppe
undOther
->crw-rw-rw-
, aktuell dürfen nurroot = User
unddialout = Gruppe
auf das Device zugreifen.Ich würde erst mal versuchen auf dem Host sauber auf das Device zugreifen zu können, und mich dann mit dem Durchreichen an den Docker beschäftigen.
Ich habe da nichts mehr um das zu testen, aber diese Anleitung scheint ganz gut zu sein, um die Kommunikation auf dem Host zu testen.
VG
Bernd -
@dp20eic said in SerialPort-Adapter:
Ich würde erst mal versuchen auf dem Host sauber auf das Device zugreifen zu können,
das wird nicht so einfach, es hat keine programm, um damit zu arbeiten und LibreELEC lässt auch nicht zu weitere Linux Pacakges zu installieren.
Zumindest hat es LIRC - Linux Infrared Remote Control, was auch mit meinem FT232R arbeiten könnne sollte: FTDI driver --> FTDI USB driver .
Ic habe aber noch nicht herausgefunden, wie ich das bewerkstellige. Ich hoffe auf Antwort in how to do / test RS232 communication to control surround receiver - General Support - LibreELEC Forum. -
@dp20eic glck gehapt, screen ist verfügbar.
Hier was mirscreen
anzeigt, wenn ich am Rotel etwas einstelle:��� PRODOGY 49������ VIDEO 2 49�\�� VIDEO 2 49 ������ TAPE 49��� TAPE 49 �}����TP 5 �u� TAPE 54 �y�
somit funktioniert es prinzipiel, ergbeniss ist das gleiche, wenn ich mich in Windoof ein Terminal aufmache mit
aus Microsoft Word - RSX1057 Protocol.docx - RSX1057 Protocol.pdf -
Moin,
na dann ist das ja schon einmal ein Teilerfolg
So jetzt, muss nur noch das Device richtig durchgereicht werden, da hattest Du ja schon Ansätze, wie gesagt, das /dev/serial Verzeichnis wirdt Du im Docker nicht haben nur das /dev/ttyUSB0 und das sollte auch die richtigen
Lese/Schreibrechte
haben.Also wenn auf dem Host
crw-rw----
und User = root und Gruppe = dialout, dann sollte das jetzt im Docker auch so aussehen, es sei denn, es gibt im Docker die Gruppe = dialout nicht.Aus dem letzten Post von Dir
IOBROKER CONTAINER (dsmeg ist identisch mit Host?) root@iobroker:/opt/iobroker# ls -la /dev/tty* crw-rw-rw- 1 root root 5, 0 Mär 19 20:28 /dev/tty crw-rw---- 1 root dialout 188, 0 Mär 19 20:31 /dev/ttyUSB0
Sehe ich jetzt, das es im Docker identisch zum Host ist, jetzt musst Du nur noch den User
iobroker
berechtigen das Device auch zu benutzen.Was sagt:
id iobroker
Ist der User in der Gruppe
dialout
?
Wenn ja, sollte der Test mit screen auch aus dem Docker funktionieren.VG
Bernd -
@dp20eic
id iobroker
root@iobroker:/opt/iobroker# id iobroker uid=1000(iobroker) gid=1000(iobroker) groups=1000(iobroker),5(tty),20(dialout),29(audio),44(video)
screen war gar nicht verfügbar, da bin ich IoBroker Raspberry Image, minicom Installation gefolgt.
Dessen Einstellung entsprechend angepasst und es wird auch etwas gelesen:Lockfile is stale. Overriding it.. Welcome to minicom 2.8 OPTIONS: I18n Port /dev/ttyUSB0, 20:59:31 Press CTRL-A Z for help on special keys þþÇ TAPE 44 xþÇ TAPE 43 wþÇ TAPE 42 vþÇ TAPE 41 uþÇ TAPE 40 tþÇ TAPE 39 |þ
aber ich habe weiterhin im Log:
javascript.0
2023-03-20 21:05:34.602 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-20 21:05:34.602 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-20 21:05:34.600 error An error happened which is most likely from one of your scripts, but the originating script could not be detected. -
Moin,
keine Ahnung, was da mit dem
javascript - Adapter
falsch läuft. Hast Du denn irgendwelche Skripte am Laufen?VG
Bernd -
@dp20eic said in SerialPort-Adapter:
Hast Du denn irgendwelche Skripte am Laufen?
mir nicht bekannt,, habe erst gerade mit Skripten angefangen
Ich werde es neu installieren, auch mit nodeRED probieren, dann ioBroker neu aufsezten.
-
- neuinstallation javascrtip half nichts
- node red läuft
- aber nur über port nicht im ioBroker GUI
- in node-red scheint ttyUSB0 ist verwendbar
aber ich bin 100% neun node red. Wenn mir jemand sagt, wie ich da Log, Antworten über das interface auslese, kann ich das vollständig testen.
dann wäre es eine Macke im JavaScrip (--> Bug Report)
- aber nur über port nicht im ioBroker GUI
-
Moin,
Du kannst ja mal den Code zeigen, nur ein Bild vom JS-Skript hilft nicht viel
Node Red steht noch auf meiner To-do-Liste, da bin ich dann raus, da müssen andere ran.
VG
Bernd -
@dp20eic said in SerialPort-Adapter:
Du kannst ja mal den Code zeigen, nur ein Bild vom JS-Skript hilft nicht viel
var { SerialPort } = require('serialport') var port = new SerialPort({ path: '/dev/ttyUSB0', baudRate: 19200 // parser: SerialPort.parsers.readline("\n") }); port.write('Hi Mom!'); /* port.on('data', function(data) { console.log(data); }); */
run script:
10:57:32.214 info javascript.0 (671) Stop script script.js.Rotel
10:57:34.749 info javascript.0 (671) Start javascript script.js.Rotel
10:57:34.892 info javascript.0 (671) script.js.Rotel: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
log:
javascript.0
2023-03-21 10:59:42.953 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-21 10:59:42.948 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-21 10:59:42.947 error An error happened which is most likely from one of your scripts, but the originating script could not be detected. -
@packelend sagte in SerialPort-Adapter:
var { SerialPort } = require('serialport')
Moin,
falls ich den Eindruck erweckt haben sollte, ich kann Programmieren, da muss, ich passen, ich kann etwas Shell Skripten, dann hört es aber schon auf
Ich denke, Du musst erstmal im
javascript - Adapter
das zusätzlicheserialport
Modul laden und soweit ich das verstehe ist das kein Port, daher auch der Fehler im Log-File.Ich habe mal etwas gegoogelt und bin auf diese Seite gestoßen, ich denke hier findest Du die Antworten um dein Skript zu schreiben.
Ob das, das tut, was Du möchtest, keine Ahnung
VG
Bernd -
@dp20eic said in SerialPort-Adapter:
Ich denke, Du musst erstmal im javascript - Adapter das zusätzliche serialport Modul laden
das ist schon da, wenn auch durch eine anderes packages
root@iobroker:/opt/iobroker# npm ls serialport iobroker.inst@3.0.0 /opt/iobroker ├─┬ iobroker.discovery@3.1.0 │ └── serialport@10.5.0
-
@dp20eic habe es nun doch
und ioBroker.js-rotelControl/rotelControl at main · oberstel/ioBroker.js-rotelControl kopiert, scheint es geht21/03/2023, 18:07:14.587 [info ]: javascript.0 (27278) Stop script script.js.rotel-control
21/03/2023, 18:07:14.589 [info ]: javascript.0 (27278) script.js.rotel-control: Stop Script...
21/03/2023, 18:07:14.595 [info ]: javascript.0 (27278) script.js.rotel-control: port closed
21/03/2023, 18:07:14.606 [info ]: javascript.0 (27278) Start javascript script.js.rotel-control
21/03/2023, 18:07:14.636 [info ]: javascript.0 (27278) script.js.rotel-control: Start Rotel-Control V1...
21/03/2023, 18:07:14.640 [info ]: javascript.0 (27278) script.js.rotel-control: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
21/03/2023, 18:07:14.651 [info ]: javascript.0 (27278) script.js.rotel-control: open
21/03/2023, 18:07:14.657 [info ]: javascript.0 (27278) script.js.rotel-control: Connected to device Rotel RSX-03, serial port: /dev/ttyUSB0 with 19200 baud.