Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Modbus: Serial Port nicht durch /dev/serial/by-id auswählbar

    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

    UNSOLVED Modbus: Serial Port nicht durch /dev/serial/by-id auswählbar

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      StefanTank last edited by

      Hallo,
      nach einem Neustart meines Raspi ändert sich der Port, an dem mein Modbus hängt, immer.
      Beispiel: Aktuell kann ich den Port im Modbusadapter mit /dev/ttyUSB0 auswählen.
      Nach einem Neustart stimmt er aber nicht mehr, sondern er liegt jetzt auf /dev/ttyUSB1.
      Das ist nach meinem Wissen so auch normal, denn Linux vergibt die Ports beim starten jedesmal neu.

      Eine Möglichkeit das zu ändern gibt es mit /dev/serial/by-id.

      Bei mir müsste ich also /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 eingeben und alles wäre gut.
      Genau das geht aber nicht.

      Gibt es hierfür eine Lösung?

      Thomas Braun 2 Replies Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @StefanTank last edited by

        @StefanTank sagte in Modbus: Serial Port nicht durch /dev/serial/by-id auswählbar:

        Genau das geht aber nicht.

        Tastatur benutzen...

        Was genau heißt denn 'geht nicht'?

        S 1 Reply Last reply Reply Quote 0
        • S
          StefanTank @Thomas Braun last edited by

          @Thomas-Braun
          Der Adapter stellt folgendes Fenster zur Verfügung.
          1345d6e6-14ba-4eb7-a15f-a9d75ca22c7c-image.png

          Unter Port kann nur eine Auswahl getroffen werden, es lässt keine Eingabe zu.

          1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @StefanTank last edited by Thomas Braun

            @StefanTank sagte in Modbus: Serial Port nicht durch /dev/serial/by-id auswählbar:

            Gibt es hierfür eine Lösung?

            Schau dir an, wie man udev-Regeln anlegt. Damit kann man bestimmten Geräten immer die gleiche Schnittstelle zuweisen. Ist hier erklärt:
            https://wiki.debian.org/udev

            S 1 Reply Last reply Reply Quote 0
            • S
              StefanTank @Thomas Braun last edited by

              @Thomas-Braun
              Ok, habe nun folgendes versucht.
              Mit dem Befehl "lsusb" habe ich folgende ID für meinen Stick bekommen: 1a86:7523

              Dann Befehl "udevadm info --name=/dev/ttyUSB0 --attribute-walk" ausgeführt.

              Die lange Ausgabe habe ich auf die Daten für meine ID gekürzt:

              looking at parent device '/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1':
              KERNELS=="1-1.1"
              SUBSYSTEMS=="usb"
              DRIVERS=="usb"
              ATTRS{bDeviceSubClass}=="00"
              ATTRS{devspec}=="(null)"
              ATTRS{bcdDevice}=="0254"
              ATTRS{speed}=="12"
              ATTRS{product}=="USB2.0-Serial"
              ATTRS{idProduct}=="7523"
              ATTRS{maxchild}=="0"
              ATTRS{urbnum}=="174335"
              ATTRS{version}==" 1.10"
              ATTRS{bDeviceClass}=="ff"
              ATTRS{bMaxPacketSize0}=="8"
              ATTRS{avoid_reset_quirk}=="0"
              ATTRS{idVendor}=="1a86"
              ATTRS{bmAttributes}=="80"
              ATTRS{authorized}=="1"
              ATTRS{bMaxPower}=="96mA"
              ATTRS{bNumInterfaces}==" 1"
              ATTRS{devnum}=="3"
              ATTRS{bDeviceProtocol}=="00"
              ATTRS{bConfigurationValue}=="1"
              ATTRS{bNumConfigurations}=="1"
              ATTRS{ltm_capable}=="no"
              ATTRS{configuration}==""
              ATTRS{devpath}=="1.1"
              ATTRS{busnum}=="1"
              ATTRS{tx_lanes}=="1"
              ATTRS{quirks}=="0x0"
              ATTRS{removable}=="unknown"
              ATTRS{rx_lanes}=="1"

              Jetzt eine Datei erzeugt. "sudo nano /etc/udev/rules.d/90_MyUSB_RS485_Modbus_Stick.rules"
              Inhalt:

              # USB Stick RS485 ModBus mit eindeutigem Namen versehen.
              SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyUSB_ModBus"
              

              Danach ein Reboot

              ls -l /dev/serial/by-id
              insgesamt 0
              lrwxrwxrwx 1 root root 13 Sep  4 20:25 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB1
              lrwxrwxrwx 1 root root 13 Sep  4 20:25 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB0
              

              Eigentlich habe ich jetzt den Link auf /ttyUSB_ModBus erwartet.
              Auch im ModBus-Adapter hat sich die Auswahlmöglichkeit nicht geändert.

              Welchen Fehler habe ich gemacht?

              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @StefanTank last edited by

                @StefanTank
                Hab nur theoretisches Wissen. Selber habe ich das lange nicht mehr gemacht.

                S 1 Reply Last reply Reply Quote 0
                • S
                  StefanTank @Thomas Braun last edited by

                  @Thomas-Braun
                  Danke schonmal bis hierhin, denke das ist der richtige Weg
                  Vielleicht kannst du mir hier noch helfen.

                  Mit "ls -l /dev/ttyU*" wird folgendes ausgegeben:

                  crw-rw---- 1 root dialout 188, 0 Sep  4 21:38 /dev/ttyUSB0
                  crw-rw---- 1 root dialout 188, 1 Sep  4 21:31 /dev/ttyUSB1
                  lrwxrwxrwx 1 root root        15 Sep  4 21:24 /dev/ttyUSB_ModBus -> bus/usb/001/003
                  

                  Bei den funktionierenden Links steht root dialout, bei neu erzeugten nicht.
                  Wie kann ich das ändern?

                  Thomas Braun 1 Reply Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @StefanTank last edited by

                    @StefanTank

                    sudo chown root:dialout /dev/ttyUSB_ModBus
                    

                    Schau aber auch mal nach dem Linktarget

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      StefanTank @Thomas Braun last edited by

                      @Thomas-Braun
                      Die Rechteänderung habe ich gemacht, leider hat sich nichts geändert.
                      Auch was den Linktarget angeht, komm ich nicht weiter.
                      Damit bin ich ans Ende meiner Linuxkenntnisse gekommen, vielleicht hat ja noch jemand eine Idee.

                      TbsJah 1 Reply Last reply Reply Quote 0
                      • TbsJah
                        TbsJah @StefanTank last edited by

                        @StefanTank letztendlich wie du es bereits beschrieben hast

                        ls -la /dev/serial/by-id/
                        

                        Serial von USB Port ausgeben

                        udevadm info -a -n /dev/ttyUSB0 | grep '{serial}' | head -n1
                        

                        UDEV Rule erstellen

                        sudo nano /etc/udev/rules.d/99-ORNO517.rules
                        

                        Werte eintragen

                        SUBSYSTEM=="tty", ATTRS{serial}=="AB0KUH90", SYMLINK+="ORNO517"
                        

                        Neustarten

                        Dann in system.adapter.modbus.X unter Raw --> "comName" den vergebenen UDEV Namen eintragen
                        db688556-4f1b-433c-af7d-7ce846e88b6d-image.png

                        Bei mir funktioniert es so

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        872
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        modbus devserialby-id
                        3
                        10
                        1322
                        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