NEWS
[gelöst] SerialPort-Adapter
-
So…...Ich bin schon weit gekommen, hab nur eine kleine Schwierigkeit. Ich hab in Vis ein Schalter und in Node-Red ein "Inject" welcher ein String "8000000000000000"versendet . Wie kann ich mit den Schalter diesen String versenden ? Es gibt ja das "ioBroker In" nur ich verstehe nicht wie ich das damit versenden kann.
Gruss
6863_unbenannt.jpg -
Ich kenne mich nur mit dem Node-Red Dashboard ein wenig aus. Mit VIS habe ich mich noch nicht auseinander gesetzt.
Deine Frage wäre wahrscheinlich im VIS-Bereichs besser untergebracht?! viewforum.php?f=30
-
Ich bin weitergekommen, siehe Screenshots. Ich kann jetzt über NodeRed den String vom SerialPort auslesen und zeige die Wert mit Lämpchen im Vis an. In der Funktion "String kürzen" hab ich den ankommen String um die letzten 14 Zeichen kastiert und den Rest ausgewertet. Wie kann ich denn die 3te und 4te Stelle beibehalten und der Rest abschneiden ?


[ { "id": "d665df92.a8c25", "type": "debug", "z": "76975916.adb69", "name": "Basis_Kontaktalarm", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 1080, "y": 160, "wires": [] }, { "id": "6c9e2666.153f5", "type": "inject", "z": "76975916.adb69", "name": "Status-Simulation", "topic": "", "payload": "ff11223344556677", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 260, "y": 360, "wires": [ [ "ea2b95f3.9c4028", "afc3fe12.31ec4" ] ] }, { "id": "ea2b95f3.9c4028", "type": "debug", "z": "76975916.adb69", "name": "Input_komplett", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 500, "y": 320, "wires": [] }, { "id": "309df3ac.edcb6c", "type": "function", "z": "76975916.adb69", "name": "BAS (Byte0) Splitten", "func": "var bas_int = parseInt(msg.payload, 16); //ankommende Hex-Nachricht (Basis 16) in Integer wandeln\n\nvar kal = false;\nif((bas_int & 1) == \"1\") //Maskierung und gleichzeitig in Boolean ändern\n{\n kal = true;\n}\n\nvar val = false;\nif((bas_int & 2) == \"2\") //Maskierung und gleichzeitig in Boolean ändern\n{\n val = true;\n}\n\nvar alm = false;\nif((bas_int & 4) == \"4\") //Maskierung und gleichzeitig in Boolean ändern\n{\n alm = true;\n}\nvar als = false;\nif((bas_int & 8) == \"8\") //Maskierung und gleichzeitig in Boolean ändern\n{\n als = true;\n}\n\nvar alf = false;\nif((bas_int & 16) == \"16\") //Maskierung und gleichzeitig in Boolean ändern\n{\n alf = true;\n}\nvar sab = false;\nif((bas_int & 32) == \"32\") //Maskierung und gleichzeitig in Boolean ändern\n{\n sab = true;\n}\n\nreturn [{payload: kal}, {payload: val},{payload: alm}, {payload: als},{payload: alf}, {payload: sab}];", "outputs": 6, "noerr": 0, "x": 740, "y": 400, "wires": [ [ "d665df92.a8c25", "b4bbe9ae.a197c8" ], [ "2e0b683c.237ba", "e4ab4b11.ab95c8" ], [ "d2a054fe.433cd8", "8bcd1eb8.3d7d68" ], [ "88604a1a.15a0d8", "4f1f1d24.90d26c" ], [ "3837e7f5.08496", "3db3352.e7464ca" ], [ "c28aebd4.38c72", "99006ef6.25d0b" ] ] }, { "id": "2e0b683c.237ba", "type": "debug", "z": "76975916.adb69", "name": "Basis_Voralarm", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 1060, "y": 280, "wires": [] }, { "id": "d2a054fe.433cd8", "type": "debug", "z": "76975916.adb69", "name": "Basis_Alarm", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 1050, "y": 400, "wires": [] }, { "id": "88604a1a.15a0d8", "type": "debug", "z": "76975916.adb69", "name": "Basis_Anlage_Start", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 1080, "y": 520, "wires": [] }, { "id": "3837e7f5.08496", "type": "debug", "z": "76975916.adb69", "name": "Basis_Anlage_Scharf", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 1080, "y": 640, "wires": [] }, { "id": "c28aebd4.38c72", "type": "debug", "z": "76975916.adb69", "name": "Basis_Sabotagekontakt", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 1090, "y": 760, "wires": [] }, { "id": "8bcd1eb8.3d7d68", "type": "ioBroker out", "z": "76975916.adb69", "name": "Basis.Alarm", "topic": "HAA_BAS_ALM", "ack": "false", "autoCreate": "true", "x": 1050, "y": 340, "wires": [] }, { "id": "b4bbe9ae.a197c8", "type": "ioBroker out", "z": "76975916.adb69", "name": "Basis.Kontaktalarm", "topic": "HAA_BAS_KAL", "ack": "false", "autoCreate": "true", "x": 1070, "y": 100, "wires": [] }, { "id": "4f1f1d24.90d26c", "type": "ioBroker out", "z": "76975916.adb69", "name": "Basis.Anlage.Start", "topic": "HAA_BAS_ALS", "ack": "false", "autoCreate": "true", "x": 1070, "y": 460, "wires": [] }, { "id": "e4ab4b11.ab95c8", "type": "ioBroker out", "z": "76975916.adb69", "name": "Basis.Voralarm", "topic": "HAA_BAS_VAL", "ack": "false", "autoCreate": "true", "x": 1060, "y": 220, "wires": [] }, { "id": "3db3352.e7464ca", "type": "ioBroker out", "z": "76975916.adb69", "name": "Basis.Anlage.Scharf", "topic": "HAA_BAS_ALF", "ack": "false", "autoCreate": "true", "x": 1080, "y": 580, "wires": [] }, { "id": "99006ef6.25d0b", "type": "ioBroker out", "z": "76975916.adb69", "name": "Basis.Sabotagekontakt", "topic": "HAA_BAS_SAB", "ack": "false", "autoCreate": "true", "x": 1090, "y": 700, "wires": [] }, { "id": "be2c1f1f.729f48", "type": "serial in", "z": "76975916.adb69", "name": "Statusempfang", "serial": "e6a27cfb.a5b5d8", "x": 260, "y": 400, "wires": [ [ "ea2b95f3.9c4028", "afc3fe12.31ec4" ] ] }, { "id": "afc3fe12.31ec4", "type": "function", "z": "76975916.adb69", "name": "String kürzen", "func": "var string = msg.payload;\nvar string_teil = string.substring(0, string.length-14);\n\nreturn [{payload: string_teil}];", "outputs": 1, "noerr": 0, "x": 510, "y": 400, "wires": [ [ "309df3ac.edcb6c", "826b6f45.9d0c4" ] ] }, { "id": "826b6f45.9d0c4", "type": "debug", "z": "76975916.adb69", "name": "Input_kurz", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 710, "y": 320, "wires": [] }, { "id": "caf57100.634f4", "type": "serial out", "z": "76975916.adb69", "name": "Kommandos", "serial": "e6a27cfb.a5b5d8", "x": 670, "y": 200, "wires": [] }, { "id": "e9e750d6.bdb68", "type": "inject", "z": "76975916.adb69", "name": "Status abfragen", "topic": "", "payload": "0000000000000000", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 240, "y": 220, "wires": [ [ "caf57100.634f4" ] ] }, { "id": "9f686444.287978", "type": "inject", "z": "76975916.adb69", "name": "Anlage einschalten", "topic": "", "payload": "8000000000000000", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 230, "y": 180, "wires": [ [ "caf57100.634f4" ] ] }, { "id": "33a945b8.0fb592", "type": "ioBroker in", "z": "76975916.adb69", "name": "Kommando", "topic": "HAA_BAS_KOM", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 230, "y": 120, "wires": [ [ "686fad33.b01804" ] ] }, { "id": "686fad33.b01804", "type": "function", "z": "76975916.adb69", "name": "Status oder einschalten", "func": "var einschalten = msg.payload;\nvar befehl = \"0000000000000000\";\n\nif (einschalten == \"true\")\n{\n befehl = \"8000000000000000\";\n}\n\nreturn [{payload: befehl}];", "outputs": 1, "noerr": 0, "x": 450, "y": 120, "wires": [ [ "21dad7c7.a4bb08", "caf57100.634f4" ] ] }, { "id": "21dad7c7.a4bb08", "type": "debug", "z": "76975916.adb69", "name": "Output_komplett", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "x": 690, "y": 120, "wires": [] }, { "id": "e6a27cfb.a5b5d8", "type": "serial-port", "z": "76975916.adb69", "serialport": "/dev/ttyAMA0", "serialbaud": "9600", "databits": "8", "parity": "none", "stopbits": "1", "newline": "16", "bin": "false", "out": "count", "addchar": true } ] -
Schon gefunden.
-
Schon gefunden. `
War ja auch nicht wirklich schwer im Inet zu finden. :DDiese Seiten sind auch immer sehr informativ:
https://www.mediaevent.de/javascript/strings.html
https://www.w3schools.com/js/js_string_methods.asp
Da hast Du ja schon einen riesen Schritt nach Vorne gemacht. Irgendwie ist die miese Stimmung, wie sie noch auf der ersten Seite dieses Threads zu lesen war, verschwunden. ;)
-
Allerdings. Ich hab mittlerweile fast die komplette Alarmanlage abgebildet, inkl. Zustandsmeldungen der Fenster und Türen und Ansteuern per Button. Ich hab noch weitere Ideen die ich nach und nach einbringe. Ein paar Inspirationen für die Visualisierung habe ich mir aus dem Forum geholt. Blöderweise hab ich heute Abend daran weiter gearbeitet, als es ohne Vorwarnung abgeschmiert ist und mir die ganze Arbeit zunichte machte. Ich denke im muss die Exportfunktion öfter benutzen :P
-
Wie nutze ich die USB-Schnittstelle denn ? Wäre auch eine Alternative. `
Die Frage hätte ich jetzt, zumindest von Dir, so nicht erwartet. Aber vielleicht "reden wir aneinander vorbei".Du hast doch geschrieben, dass es mit dem Windowsrechner funktioniert. Da hast Du doch sicher einen USB/Seriell-Adapter angeschlossen?
Und genauso funktionert dies beim Raspi. Mit meinem Feinstaubsensor mache ich es genauso, USB/Serielladapter angeschlossen, das fertige Node SDS011 ausgewählt und als Port /dev/ttyUSB0 eingetragen, und fertig.


Hier die installierte Hardeware: https://www.ebay.de/itm/Nova-Fitness-Fe … Sww1hax9pB
! ` > Eigenschaften von Feinstaub Sensor SDS011
Accurate and Reliable: laser detection, stable, good consistency;
Quick response: response time is less than 10 seconds when the scene changes;
Easy integration: UART output (or IO output can be customized), fan built-in;
High resolution: resolution of 0.3µg/m3;
Products have passed CE/FCC/RoHS cetification.
Eigenschaften von USB Adapter Module
Designed for Nova Fitness Laser Dust Sensor
CH340G UART to TTL
3.3v or 5V power supply
Power supply LED, TXD and RXT LED
Win7/win8/Win10
max. 250mA output
USB Typ A to Female 5 Pin pitch 2,0mm `
WIe Du den techn. Daten entnehmen kannst kommuniziert der Feinstaubsensor über eine serielle Schnittstelle. Genauso sollte es auch mit dem seriellen Node und deiner Alarmanlage funktionieren.Und das dritte was mir aufgefallen ist, das der WLAN vom Raspi regelmäßig zusammenbricht und ich hatte keine Verbindung mehr. `
Dann würde ich das WLAN abschalten und nur mit dem Ethernetanschluß weiter machen. Kann es sein, dass Du einen Raspi 3B+ gekauft hast?Wie kann ich den empfangenen String in Variablen abspeichern damit ich es im ioBroker verwenden kann ? Ich hab versucht im ioBroker manuel neue Objekte einzufügen, doch das steht in den Node-Red gar nicht zur Auswahl an. ` Das sollte kein großes Problem sein. Wenn es sein muss kann man den String Zeichen für Zeichen auseinander nehmen und an ioBroker übergeben. Dafür gibt es zwei fertige Nodes. Allerdings nur im Node-Red Adapter vom ioBroker!

Aber ich sehe schon, der erste Frust ist nun weg und der Ehrgeiz überwiegt nun. Dass wird schon, Stück für Stück, da bin ich mir absolut sicher.
-
Herzlich Willkommen im Forum pfushy,
es gibt keinen SerailPort-Adapter. Da musst du dir ein Skript schreiben.
Dazu benötigt wird das Modul "serialport", wenn du Glück hast brauchst du das nicht mal installieren weil es schon da ist.
Um das zu Testen erstellst du dir ein Skript mit folgenden Code:
var SerialPort = require('serialport');Jetzt auf Play Klicken und das Speichern bestätigen, wenn jetzt im Log ein roter Text auftaucht der Sagt das er das Modul nicht gefunden hat musst du es installieren.
Dazu öffnest du die Konfiguration deiner Javascript-Adapter instanz und trägst bei "Zusätzliche npm-module" "serialport" ein. Dann Speichern und Schließen. Jetzt dauert es etwas bis das Modul installiert ist.
Jetzt kannst du dein Skript schreiben.
https://www.npmjs.com/package/serialport#opening-a-port findest du die Beschreibung zum Modul und wie man damit eine Verbindung aufbaut.
Wichtige Info für alle, die (wie ich) auf diesen Thread bei der Suche nach Informationen über ioBroker und SerialPort stoßen...
Die Syntax für die Verwendung der SerialPort JavaScript Library hat sich mit Sprung auf die Version 10.x geändert. Die Nutzung wie von @jey-cee beschrieben funktioniert dann nicht und bringt folgende Fehlermeldung:
TypeError: SerialPort is not a constructorDie richtige Syntax (aber Version 10.x) wäre:
var { SerialPort } = require('serialport')Und dann, für die Bindung mit der entsprechenden Schnittstelle:
var port = new SerialPort({ path: '/dev/ttyUSB0', baudRate: 9600 });Details dazu findet man hier: https://serialport.io/docs/guide-upgrade#upgrading-from-9x-to-10x
-
Wichtige Info für alle, die (wie ich) auf diesen Thread bei der Suche nach Informationen über ioBroker und SerialPort stoßen...
Die Syntax für die Verwendung der SerialPort JavaScript Library hat sich mit Sprung auf die Version 10.x geändert. Die Nutzung wie von @jey-cee beschrieben funktioniert dann nicht und bringt folgende Fehlermeldung:
TypeError: SerialPort is not a constructorDie richtige Syntax (aber Version 10.x) wäre:
var { SerialPort } = require('serialport')Und dann, für die Bindung mit der entsprechenden Schnittstelle:
var port = new SerialPort({ path: '/dev/ttyUSB0', baudRate: 9600 });Details dazu findet man hier: https://serialport.io/docs/guide-upgrade#upgrading-from-9x-to-10x
ich versuche mich gerade auch mit USB2RS232 und bin somit hier gelandet
Ich habe das Testskriopt übernommen bekomme aber
Error: Error: Permission denied, cannot open /dev/ttyUSB0aber die Hardware ist da
root@iobroker:/opt/iobroker# dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0hier ist der Pfad
root@iobroker:/opt/iobroker# ls /dev/tty* /dev/tty /dev/ttyUSB0da iobroker im Docker läuft bin ich auch ls -l /dev/serial/by-id gefolgt:
version: '2' services: iobroker: restart: always image: buanet/iobroker:latest container_name: iobroker hostname: iobroker ports: - "8081:8081" - "1882:1882" - "1883:1883" - "8082:8082" volumes: - /storage/system/data-containers/iobroker:/opt/iobroker networks: - lsio devices: - /dev/ttyUSB0:/dev/ttyUSB0 networks: lsio: external: truehier noch der USBtoRS232 Adapter auf dem Host
LibreELEC:~ # dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0auf dem Host
LibreELEC:~ # ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Feb 2 2021 usb-FTDI_FT232R_USB_UART_A10K5SV4-if00-port0 -> ../../ttyUSB0in ioBroker
root@iobroker:/opt/iobroker# ls -l /dev/serial/by-id ls: cannot access '/dev/serial/by-id': No such file or directoryscheint er wird nicht richtig installiert
-
ich versuche mich gerade auch mit USB2RS232 und bin somit hier gelandet
Ich habe das Testskriopt übernommen bekomme aber
Error: Error: Permission denied, cannot open /dev/ttyUSB0aber die Hardware ist da
root@iobroker:/opt/iobroker# dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0hier ist der Pfad
root@iobroker:/opt/iobroker# ls /dev/tty* /dev/tty /dev/ttyUSB0da iobroker im Docker läuft bin ich auch ls -l /dev/serial/by-id gefolgt:
version: '2' services: iobroker: restart: always image: buanet/iobroker:latest container_name: iobroker hostname: iobroker ports: - "8081:8081" - "1882:1882" - "1883:1883" - "8082:8082" volumes: - /storage/system/data-containers/iobroker:/opt/iobroker networks: - lsio devices: - /dev/ttyUSB0:/dev/ttyUSB0 networks: lsio: external: truehier noch der USBtoRS232 Adapter auf dem Host
LibreELEC:~ # dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0auf dem Host
LibreELEC:~ # ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Feb 2 2021 usb-FTDI_FT232R_USB_UART_A10K5SV4-if00-port0 -> ../../ttyUSB0in ioBroker
root@iobroker:/opt/iobroker# ls -l /dev/serial/by-id ls: cannot access '/dev/serial/by-id': No such file or directoryscheint er wird nicht richtig installiert
Moin,
wem (user) gehört das Device und zu welcher
gruppe?
Hat der User im Docker deswegen keinen Zugriff, zeig mal mitls -la.$ ls -la /dev/tty* crw-rw-rw- 1 nobody nobody 5, 0 Mar 17 10:25 /dev/tty crw--w---- 1 root tty 136, 1 Mar 16 11:32 /dev/tty1 crw--w---- 1 root tty 136, 2 Mar 16 11:32 /dev/tty2 ---------- 1 root root 0 Mar 16 11:32 /dev/ttyACM0 crw-rw-rw- 1 nobody nobody 166, 3 Mar 19 18:06 /dev/ttyACM3VG
Bernd -
Moin,
wem (user) gehört das Device und zu welcher
gruppe?
Hat der User im Docker deswegen keinen Zugriff, zeig mal mitls -la.$ ls -la /dev/tty* crw-rw-rw- 1 nobody nobody 5, 0 Mar 17 10:25 /dev/tty crw--w---- 1 root tty 136, 1 Mar 16 11:32 /dev/tty1 crw--w---- 1 root tty 136, 2 Mar 16 11:32 /dev/tty2 ---------- 1 root root 0 Mar 16 11:32 /dev/ttyACM0 crw-rw-rw- 1 nobody nobody 166, 3 Mar 19 18:06 /dev/ttyACM3VG
Bernd@dp20eic
habe mal testweise die compose file angepasstdevices: - /dev/ttyUSB0:/dev/ttyUSB1nun
root@iobroker:/opt/iobroker# ls -la /dev/tty* crw-rw-rw- 1 root root 5, 0 Mär 19 18:12 /dev/tty crw-rw---- 1 root 18 188, 0 Mär 19 18:12 /dev/ttyUSB1aber nhier ist noch ttyUSB0
root@iobroker:/opt/iobroker# dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0 -
@dp20eic
habe mal testweise die compose file angepasstdevices: - /dev/ttyUSB0:/dev/ttyUSB1nun
root@iobroker:/opt/iobroker# ls -la /dev/tty* crw-rw-rw- 1 root root 5, 0 Mär 19 18:12 /dev/tty crw-rw---- 1 root 18 188, 0 Mär 19 18:12 /dev/ttyUSB1aber nhier ist noch ttyUSB0
root@iobroker:/opt/iobroker# dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0Moin,
einmal auseinander halten.
Host:
ls -la /dev/tty*Dann erst einmal schauen, wem das Device gehört, siehe bei mir oben
Beispiel: crw-rw-rw- 1 nobody nobody 166, 3 Mar 19 18:06 /dev/ttyACM3 1) rw- = read/write user -> nobody 2) rw- = read/write gruppe -> nobody 3) rw- = read/write other -> alle Wobei: c = Caracter device r = read w = write - = kann ein x sein und bedeutet ausführbarVG
Bernd -
ich versuche mich gerade auch mit USB2RS232 und bin somit hier gelandet
Ich habe das Testskriopt übernommen bekomme aber
Error: Error: Permission denied, cannot open /dev/ttyUSB0aber die Hardware ist da
root@iobroker:/opt/iobroker# dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0hier ist der Pfad
root@iobroker:/opt/iobroker# ls /dev/tty* /dev/tty /dev/ttyUSB0da iobroker im Docker läuft bin ich auch ls -l /dev/serial/by-id gefolgt:
version: '2' services: iobroker: restart: always image: buanet/iobroker:latest container_name: iobroker hostname: iobroker ports: - "8081:8081" - "1882:1882" - "1883:1883" - "8082:8082" volumes: - /storage/system/data-containers/iobroker:/opt/iobroker networks: - lsio devices: - /dev/ttyUSB0:/dev/ttyUSB0 networks: lsio: external: truehier noch der USBtoRS232 Adapter auf dem Host
LibreELEC:~ # dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0auf dem Host
LibreELEC:~ # ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Feb 2 2021 usb-FTDI_FT232R_USB_UART_A10K5SV4-if00-port0 -> ../../ttyUSB0in ioBroker
root@iobroker:/opt/iobroker# ls -l /dev/serial/by-id ls: cannot access '/dev/serial/by-id': No such file or directoryscheint er wird nicht richtig installiert
@packelend sagte in SerialPort-Adapter:
/dev/tty /dev/ttyUSB0
da iobroker im Docker läuft bin ich auch ls -l /dev/serial/by-id gefolgt:
version: '2'services:
iobroker:
restart: always
image: buanet/iobroker:latest
container_name: iobroker
hostname: iobroker
ports:
- "8081:8081"
- "1882:1882"
- "1883:1883"
- "8082:8082"
volumes:
- /storage/system/data-containers/iobroker:/opt/iobroker
networks:
- lsio
devices:
- /dev/ttyUSB0:/dev/ttyUSB0networks:
lsio:
external: trueda iobroker im Docker läuft
Keine Ahnung was du da für ein System hast ..
aber der
environment: USBDEVICES: /dev/ttyUSB0fehlt !
-
Moin,
einmal auseinander halten.
Host:
ls -la /dev/tty*Dann erst einmal schauen, wem das Device gehört, siehe bei mir oben
Beispiel: crw-rw-rw- 1 nobody nobody 166, 3 Mar 19 18:06 /dev/ttyACM3 1) rw- = read/write user -> nobody 2) rw- = read/write gruppe -> nobody 3) rw- = read/write other -> alle Wobei: c = Caracter device r = read w = write - = kann ein x sein und bedeutet ausführbarVG
Bernd@dp20eic die Frage nach dem Benutzer hat bei mir was klingeln lassen, ich hatter übersehen, dass folgdendes gesetzer werden muss
environment: USBDEVICES: /dev/ttyUSB0Fehler ist nun
javascript.0
2023-03-19 20:39:40.059 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-19 20:39:40.058 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-19 20:39:40.057 error An error happened which is most likely from one of your scripts, but the originating script could not be detected.In Zigbee iobroker Error while opening serialport und Error Resource temporarily unavailable Cannot lock port wird über ähnliches gesprochen und es heisst, dass das Gerät woanders schon verwendet wird.
Wenn ich aber linux - How to find processes using serial port - Unix & Linux Stack Exchange folge, bekomme ich
HOST:LibreELEC:~ # ls -l /proc/[0-9]*/fd/* |grep /dev/ttyUSB0 ls: /proc/6165/fd/10: No such file or directory ls: /proc/6165/fd/3: No such file or directory lrwx------ 1 1000 1000 64 Mar 19 21:04 /proc/30962/fd/27 -> /dev/ttyUSB0LibreELEC:~ # ps | grep 30962 6472 root 0:00 grep 30962 30962 1000 0:22 io.javascript.0so ich sehe hier mein JaveScript-Adapter aus dem ioBroker-Docker?
Hier die bisherigen Befehle
-
DOCKER COMPOSE
devices: - /dev/ttyUSB0:/dev/ttyUSB0 environment: USBDEVICES: /dev/ttyUSB0 -
DOCKER INSPECT
{ ... ], "Config": { ... "Env": [ "USBDEVICES=/dev/ttyUSB0", ... "Devices": [ { "CgroupPermissions": "rwm", "PathInContainer": "/dev/ttyUSB0", "PathOnHost": "/dev/ttyUSB0" } -
HOST
LibreELEC:~ # ls -la /dev/tty* crw-rw-rw- 1 root tty 5, 0 Feb 2 2021 /dev/tty .... crw--w---- 1 root tty 4, 9 Feb 2 2021 /dev/tty9 crw-rw---- 1 root dialout 204, 64 Mar 17 22:37 /dev/ttyAMA0 crw-rw---- 1 root dialout 188, 0 Feb 2 2021 /dev/ttyUSB0LibreELEC:~ # dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0LibreELEC:~ # ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Feb 2 2021 usb-FTDI_FT232R_USB_UART_A10K5SV4-if00-port0 -> ../../ttyUSB0 -
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/ttyUSB0root@iobroker:/opt/iobroker# dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0root@iobroker:/opt/iobroker# ls -l /dev/serial/by-id ls: cannot access '/dev/serial/by-id': No such file or directory
-
-
@packelend sagte in SerialPort-Adapter:
/dev/tty /dev/ttyUSB0
da iobroker im Docker läuft bin ich auch ls -l /dev/serial/by-id gefolgt:
version: '2'services:
iobroker:
restart: always
image: buanet/iobroker:latest
container_name: iobroker
hostname: iobroker
ports:
- "8081:8081"
- "1882:1882"
- "1883:1883"
- "8082:8082"
volumes:
- /storage/system/data-containers/iobroker:/opt/iobroker
networks:
- lsio
devices:
- /dev/ttyUSB0:/dev/ttyUSB0networks:
lsio:
external: trueda iobroker im Docker läuft
Keine Ahnung was du da für ein System hast ..
aber der
environment: USBDEVICES: /dev/ttyUSB0fehlt !
@glasfaser said in SerialPort-Adapter:
aber der ...
fheltdein Antwort habe ich ganz übersehen, hätte mir so mnaches grübeln erspart :)
@glasfaser said in SerialPort-Adapter:
Keine Ahnung was du da für ein System hast ..
Ist bei mir LibreELEC mit der Dockererweiterung.
Ich möchte hierüber meinen Surround Receiver und TV mittels ioBroker steuern.
Hardware ist ein Pi 4. -
@dp20eic die Frage nach dem Benutzer hat bei mir was klingeln lassen, ich hatter übersehen, dass folgdendes gesetzer werden muss
environment: USBDEVICES: /dev/ttyUSB0Fehler ist nun
javascript.0
2023-03-19 20:39:40.059 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-19 20:39:40.058 error Error: Error Resource temporarily unavailable Cannot lock port
javascript.0
2023-03-19 20:39:40.057 error An error happened which is most likely from one of your scripts, but the originating script could not be detected.In Zigbee iobroker Error while opening serialport und Error Resource temporarily unavailable Cannot lock port wird über ähnliches gesprochen und es heisst, dass das Gerät woanders schon verwendet wird.
Wenn ich aber linux - How to find processes using serial port - Unix & Linux Stack Exchange folge, bekomme ich
HOST:LibreELEC:~ # ls -l /proc/[0-9]*/fd/* |grep /dev/ttyUSB0 ls: /proc/6165/fd/10: No such file or directory ls: /proc/6165/fd/3: No such file or directory lrwx------ 1 1000 1000 64 Mar 19 21:04 /proc/30962/fd/27 -> /dev/ttyUSB0LibreELEC:~ # ps | grep 30962 6472 root 0:00 grep 30962 30962 1000 0:22 io.javascript.0so ich sehe hier mein JaveScript-Adapter aus dem ioBroker-Docker?
Hier die bisherigen Befehle
-
DOCKER COMPOSE
devices: - /dev/ttyUSB0:/dev/ttyUSB0 environment: USBDEVICES: /dev/ttyUSB0 -
DOCKER INSPECT
{ ... ], "Config": { ... "Env": [ "USBDEVICES=/dev/ttyUSB0", ... "Devices": [ { "CgroupPermissions": "rwm", "PathInContainer": "/dev/ttyUSB0", "PathOnHost": "/dev/ttyUSB0" } -
HOST
LibreELEC:~ # ls -la /dev/tty* crw-rw-rw- 1 root tty 5, 0 Feb 2 2021 /dev/tty .... crw--w---- 1 root tty 4, 9 Feb 2 2021 /dev/tty9 crw-rw---- 1 root dialout 204, 64 Mar 17 22:37 /dev/ttyAMA0 crw-rw---- 1 root dialout 188, 0 Feb 2 2021 /dev/ttyUSB0LibreELEC:~ # dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0LibreELEC:~ # ls -l /dev/serial/by-id total 0 lrwxrwxrwx 1 root root 13 Feb 2 2021 usb-FTDI_FT232R_USB_UART_A10K5SV4-if00-port0 -> ../../ttyUSB0 -
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/ttyUSB0root@iobroker:/opt/iobroker# dmesg | grep "usb 1-1.4" [ 2.243577] usb 1-1.4: new full-speed USB device number 3 using xhci_hcd [ 2.349783] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00 [ 2.349797] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.349808] usb 1-1.4: Product: FT232R USB UART [ 2.349819] usb 1-1.4: Manufacturer: FTDI [ 2.349829] usb 1-1.4: SerialNumber: A10K5SV4 [ 5.173412] usb 1-1.4: Detected FT232RL [ 5.185287] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0root@iobroker:/opt/iobroker# ls -l /dev/serial/by-id ls: cannot access '/dev/serial/by-id': No such file or directory
Moin,
ich zitiere mal nicht, sondern sage Dir nur, dass der Host, die Infrastruktur hat, also alles was unter
/dev/serialhat, 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/serialan 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
dialoutpacken, 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,GruppeundOther->crw-rw-rw-, aktuell dürfen nurroot = Userunddialout = Gruppeauf 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 -
-
Moin,
ich zitiere mal nicht, sondern sage Dir nur, dass der Host, die Infrastruktur hat, also alles was unter
/dev/serialhat, 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/serialan 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
dialoutpacken, 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,GruppeundOther->crw-rw-rw-, aktuell dürfen nurroot = Userunddialout = Gruppeauf 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. -
Moin,
ich zitiere mal nicht, sondern sage Dir nur, dass der Host, die Infrastruktur hat, also alles was unter
/dev/serialhat, 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/serialan 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
dialoutpacken, 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,GruppeundOther->crw-rw-rw-, aktuell dürfen nurroot = Userunddialout = Gruppeauf 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 glck gehapt, screen ist verfügbar.
Hier was mirscreenanzeigt, 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 -
@dp20eic glck gehapt, screen ist verfügbar.
Hier was mirscreenanzeigt, 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.pdfMoin,
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/Schreibrechtehaben.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/ttyUSB0Sehe ich jetzt, das es im Docker identisch zum Host ist, jetzt musst Du nur noch den User
iobrokerberechtigen das Device auch zu benutzen.Was sagt:
id iobrokerIst der User in der Gruppe
dialout?
Wenn ja, sollte der Test mit screen auch aus dem Docker funktionieren.VG
Bernd