Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] SerialPort-Adapter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] SerialPort-Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • PackElend
      PackElend @Guest last edited by

      @dp20eic
      habe mal testweise die compose file angepasst

          devices:
            - /dev/ttyUSB0:/dev/ttyUSB1
      

      nun

      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/ttyUSB1
      

      aber 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
      
      ? 1 Reply Last reply Reply Quote 0
      • ?
        A Former User @PackElend last edited by

        @packelend

        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ührbar
        

        VG
        Bernd

        PackElend 1 Reply Last reply Reply Quote 0
        • Glasfaser
          Glasfaser @PackElend last edited by

          @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/ttyUSB0

          networks:
          lsio:
          external: true

          da iobroker im Docker läuft

          Keine Ahnung was du da für ein System hast ..

          aber der

          environment:
          USBDEVICES: /dev/ttyUSB0
          

          fehlt !

          PackElend 1 Reply Last reply Reply Quote 0
          • PackElend
            PackElend @Guest last edited by

            @dp20eic die Frage nach dem Benutzer hat bei mir was klingeln lassen, ich hatter übersehen, dass folgdendes gesetzer werden muss

                environment:
                  USBDEVICES: /dev/ttyUSB0
            

            Fehler 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/ttyUSB0
            
            LibreELEC:~ # ps | grep 30962
             6472 root      0:00 grep 30962
            30962 1000      0:22 io.javascript.0
            

            so 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/ttyUSB0
              
              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 ttyUSB0
              
              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 -> ../../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/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
              
              root@iobroker:/opt/iobroker# ls -l /dev/serial/by-id
              ls: cannot access '/dev/serial/by-id': No such file or directory
              
            ? 1 Reply Last reply Reply Quote 0
            • PackElend
              PackElend @Glasfaser last edited by

              @glasfaser said in SerialPort-Adapter:

              aber der ...
              fhelt

              dein 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.

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User @PackElend last edited by

                @packelend

                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, also User, Gruppe und Other -> crw-rw-rw-, aktuell dürfen nur root = User und dialout = 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

                PackElend 2 Replies Last reply Reply Quote 0
                • PackElend
                  PackElend @Guest last edited by

                  @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.

                  1 Reply Last reply Reply Quote 0
                  • PackElend
                    PackElend @Guest last edited by PackElend

                    @dp20eic glck gehapt, screen ist verfügbar.
                    Hier was mir screen 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
                    4b9daf4d-6205-4229-828c-e60e3d0b2316-grafik.png
                    aus Microsoft Word - RSX1057 Protocol.docx - RSX1057 Protocol.pdf

                    ? 1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @PackElend last edited by

                      @packelend

                      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

                      PackElend 1 Reply Last reply Reply Quote 0
                      • PackElend
                        PackElend @Guest last edited by

                        @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.

                        ? 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @PackElend last edited by

                          @packelend

                          Moin,

                          keine Ahnung, was da mit dem javascript - Adapter falsch läuft. Hast Du denn irgendwelche Skripte am Laufen?

                          VG
                          Bernd

                          PackElend 1 Reply Last reply Reply Quote 0
                          • PackElend
                            PackElend @Guest last edited by PackElend

                            @dp20eic said in SerialPort-Adapter:

                            Hast Du denn irgendwelche Skripte am Laufen?

                            mir nicht bekannt,, habe erst gerade mit Skripten angefangen
                            d08e6584-8eca-4728-899a-8ac82bf1eb75-image.png

                            Ich werde es neu installieren, auch mit nodeRED probieren, dann ioBroker neu aufsezten.

                            PackElend ? 2 Replies Last reply Reply Quote 0
                            • PackElend
                              PackElend @PackElend last edited by

                              • neuinstallation javascrtip half nichts
                              • node red läuft
                                • aber nur über port nicht im ioBroker GUI

                                  795b7ca7-0974-4833-b686-948f0aa13d14-image.png
                                • in node-red scheint ttyUSB0 ist verwendbar

                                  2cdc6ff5-a191-4bdc-9026-2e621203cb11-image.png

                                  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)
                              1 Reply Last reply Reply Quote 0
                              • ?
                                A Former User @PackElend last edited by

                                @packelend

                                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

                                PackElend 1 Reply Last reply Reply Quote 0
                                • PackElend
                                  PackElend @Guest last edited by

                                  @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.

                                  ? 1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User @PackElend last edited by

                                    @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ätzliche serialport 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

                                    PackElend 2 Replies Last reply Reply Quote 0
                                    • PackElend
                                      PackElend @Guest last edited by

                                      @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
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • PackElend
                                        PackElend @Guest last edited by

                                        @dp20eic habe es nun doch


                                        a0bfdf83-e0f9-415b-8968-43b2f0ba4b22-image.png
                                        dennoch fehler
                                        80f88a09-9541-444d-ae6d-29cf75dc4026-image.png

                                        und ioBroker.js-rotelControl/rotelControl at main · oberstel/ioBroker.js-rotelControl kopiert, scheint es geht

                                        21/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.

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate
                                        FAQ Cloud / IOT
                                        HowTo: Node.js-Update
                                        HowTo: Backup/Restore
                                        Downloads
                                        BLOG

                                        563
                                        Online

                                        31.7k
                                        Users

                                        79.9k
                                        Topics

                                        1.3m
                                        Posts

                                        10
                                        61
                                        11216
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo