Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus adapter

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Modbus adapter

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

      Hallo zusammen,
      ich habe mir einen SDM230 gekauft, um mit dem Todbus-Adapter die Daten auszulesen. Ich haben den IObroker auf einem RaspberryPi4, welcher per USB einen RS485-Adapter hat. Ich bekomme den Modbus-Adapter auf "Gründ" und es kommen auch werte. Nur habe ich leider keine Ahnung, wie ich die Register einstelle.
      Hat zufällig einer von den SDM230 und kann mir weiter helfen?
      Danke schon mal 🙂

      1 Reply Last reply Reply Quote 0
      • A
        Almi @peterk34 last edited by Almi

        @peterk34

        Hallo

        Im Cmi kannst du unter Ethernet den Port einstellen. Bei mir zb. 502. Hast du schon mal Daten zum CMI ueber Modbus gesendet. Bei funktioniert lesen sehr gut, schreiben geht nur wenn ich den Wert im Holding Register mit der Hand eintippe. Sobald ich einen Wert zb mit Blockly aus der Homematic lese und in das Register schreibe ändert sich diese im CMI nicht. Hat hier jemand eine Idee? Vielleicht unterschiedliche Datentypen!?

        Nachtrag:
        Habe eben mir mal die Datentypen der Homematic angeschaut. Temperatur Sollwert wird als float also als eine 32 Bit Real Zahl definiert. Ab und zu nach der Aenderung überträgt er jetzt. Ergebnis folgt.

        Gruß

        Andreas

        peterk34 1 Reply Last reply Reply Quote 0
        • peterk34
          peterk34 @Almi last edited by peterk34

          @Almi bei mir funktioniert mittlerweile die Kommunikation in beide Richtungen ohne Probleme. Man muss auf die Datentypen aufpassen (primäre signed, unsigned). Auch die Faktoren sind teilweise komisch ... bei den holding Register brauche ich Faktor 10 bei den Eingangsregister Faktor 0,1.
          Von den Einstellungen funktioniert’s beim Modbus Adapter mit IP 0.0.0.0, Port habe ich auf 5020 gestellt und SlaveA55EBA14-1EA2-4B3F-84F5-2D1A893BFACB.jpeg 9C7D81F5-1B47-496D-9A49-B2F521C5FFEF.png 90243E74-1754-478D-B929-7F6AFE6BBBB8.png

          A 1 Reply Last reply Reply Quote 0
          • A
            Almi @peterk34 last edited by

            @peterk34

            Danke Peter für die Antwort, wann verwende ich das holding und wann das Eingangsregister. Mir ist der Unterschied nicht ganz klar.

            Gruss

            Andreas

            peterk34 1 Reply Last reply Reply Quote 0
            • peterk34
              peterk34 @Almi last edited by

              @Almi
              Holding sind die Werte die aus dem C.M.I. importiert werden, Eingangsregister sind die Werte die ich an das C.M.I. sende

              A 1 Reply Last reply Reply Quote 0
              • A
                Almi @peterk34 last edited by

                @peterk34
                OK vielen Dank. Wie kann ich ein Eingangsregister hinzufügen? Bei mir ist da kein "+" rechts. Jedes mal wenn ich die Werte eingeben kann ich diese nicht speichern. Wo werden die definiert bzw. wie kann ich was an die Liste anhängen?

                Gruss

                Andreas

                peterk34 1 Reply Last reply Reply Quote 0
                • peterk34
                  peterk34 @Almi last edited by

                  @Almi
                  bei mir ist da ein Plus ...

                  3E405C0B-492B-4D38-8004-2ADDAED66321.png

                  Es funktioniert normalerweise auch wenn du einfach oben in die Felder eingibst und enter drückst

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    Almi @peterk34 last edited by

                    @peterk34

                    Mmm bei erscheint das Plus nur wenn ich auf Master für den Iobroker Modbus Adapter umstelle. Komischerweise bleibt dann die Einstellung erhalten wenn ich wieder auf Slave umstelle. Einfach eingeben reicht leider zum speichern nicht. Er bietet dann unten nicht die Speicherung an. Ich bleibe drann. Danke für deine Infos

                    Gruß Andreas

                    1 Reply Last reply Reply Quote 0
                    • V
                      Vod @smartboart last edited by Vod

                      @smartboart
                      Hast Du das damals hinbekommen? hier: https://forum.iobroker.net/post/149807
                      Habe einen ABB Zähler da, in der Anleitung steht sowas:
                      *Dies wird genau so ausgedrückt, wie es auf dem Bus gesendet wird. Das heißt es sollte nicht mit 40 000 subtrahiert oder um 1 vermindert werden, wie das bei Modbus-Produkten üblich ist.
                      Seite 105 hier https://search.abb.com/library/Download.aspx?DocumentID=2CMC486007M0101&LanguageCode=de&DocumentPartId=&Action=Launch

                      Allerdings bekomme ich keine Antwort vom Zähler...

                      @Bluefox wäre es möglich, im Debug oder Silly genau die Kommunikation auszugeben? Ich meine Anfrage-Antwort in hex...

                      smartboart 1 Reply Last reply Reply Quote 0
                      • smartboart
                        smartboart @Vod last edited by smartboart

                        @Vod nein leider nicht....habe ich nie zum laufen bekommen. Bin auf andere Zähler umgestiegen.

                        1 Reply Last reply Reply Quote 0
                        • V
                          Vod last edited by

                          Für alle, die es interessiert: ABB A43 212-100, die Leitungen müssen verdreht werden (RS485 USB Adapter für 2 Eur mit CH341). Also A mit B und B mit A verbunden. Ohne Abschlusswiderstände funzt alles (1m twisted aus einem LAN cat6 Kabel).

                          K 1 Reply Last reply Reply Quote 0
                          • K
                            klassisch Most Active @Vod last edited by

                            @Vod Das ist ein beliebtes RS485 Thema. Es gibt eine Spezifikation zu RS485 und eine einheitlich widersprüchliche Auslegung der Halbleiterhersteller. Mehr dazu in https://en.wikipedia.org/wiki/RS-485#Signals . Texas Instruments nimmt dazu verschwurbelt Stellung ttp://e2e.ti.com/cfs-file/__key/telligent-evolution-components-attachments/13-143-00-00-00-26-49-60/RS485-2D00-Polarity-Conventions.pdf
                            Die in Fragen von Richtlinien, Gesetzen und Normen geplagten und geübten Europäischen Hersteller von Elektroinstallationsmaterial halten sich indes streng an die Norm und stehen damit ganz unpragmatisch quer im Stall.
                            Die Halbleiterhersteller sind sich wohl dieser Misere bewußt (siehe "Texas Instruments, Polarity Conventions") und neuere Bausteine wie der THVD1505 erkennen und korrigieren eine Vertauschung automatisch - änlich wie bei das bei Ethernet schon lange der Fall ist. Aber diese Bausteine sind noch nicht in den Chinesischen DIY Modulen angekommen. Und gerade diese Bausteine verwenden wir häufig in unseren Wandlern und vertrauen deren Beschriftung.
                            Fazit: Bei RS485 muß man sich zwar nicht wie bei RS232 die Frage stellen, ob der Entwickler das Gerät als DTE oder DCE eingestuft hat. Allerdings gibt es leider auch da Verwirrung bei der Bezeichnung der Signalleitungen A und B.

                            K 1 Reply Last reply Reply Quote 0
                            • K
                              kleine_kuh @klassisch last edited by

                              Guten Morgen zusammen. Ich habe eine Nilan Wärmepumpe und werde aus der Doku nicht schlau. Da stehen nur 20tausender Registernummern. Die gibt es doch gar nicht, oder? Kann mir jemand auf die Sprünge helfen?
                              Hier der Link zur Doku: https://de.nilan.dk/Admin/Public/DWSDownload.aspx?File=%2FFiles%2FFiler%2FDownload%2FDanish%2FDokumentation%2FSoftware+vejledninger%2FModbus%2FCTS700_Modbus_protokol.pdf
                              Gruß Stephie

                              1 Reply Last reply Reply Quote 0
                              • wendy2702
                                wendy2702 last edited by

                                @kleine_kuh Wieso soll es die nicht geben? Meinst du der Hersteller schreibt die zum Spaß in seine Doku oder wie kommst du darauf?

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  kleine_kuh @wendy2702 last edited by

                                  @wendy2702 Ich dachte mir schon, dass er es nicht zum Spaß reinschreibt. Deswegen frage ich ja. Aber ich dachte es gibt 0-9999, 10001-19999, 30001-39999 und 40001 bis 49999. Dass einige nur lesen und andere lesen und schreiben können ist mir klar. Nur weíß ich leider nicht, wo ich die eintragen muss im Adapter. Kann mir da jemand auf die Sprünge helfen? (Selbstverständlich will ich auch nicht alle von denen verwenden)

                                  wendy2702 1 Reply Last reply Reply Quote 0
                                  • wendy2702
                                    wendy2702 @kleine_kuh last edited by

                                    @kleine_kuh Konfiguriere mal den Modbus Adapter mit den richtigen Kommunikations Einstellungen.

                                    Suche die ein Register aus das nur lesbar ist.

                                    Trage das dann bei Holding oder Eingangsregister mit der entsprechenden Kodierung z.B. 16bit unsigned ein

                                    Stelle das loggen für die Instanz auf Debug.

                                    Starte den Adapter und poste dann das logfile hier in Code Tags </> und poste Screenshots deiner Einstellungen und der Register Karte.

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      kleine_kuh @wendy2702 last edited by

                                      @wendy2702 Ok, danke. Heute und morgen komme ich nicht mehr dazu. Aber ich poste es, sobald ich es schaffe

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        andi2055 last edited by

                                        Servus!

                                        Ich habe irgendwie Probleme mehrere Werte parallel auszulesen, wenn diese zu weit auseinander liegen.
                                        Ich verwende einen USB Stick zum seriellen Auslesen.
                                        Unter Windows mit CAD Modbus Scanner kann ich auch alle Werte korrekt auslesen.

                                        Nutze aktuell: Modbus 3.3.1

                                        Ich hatte aber auch die Modbus Version von Github installiert zum Testen. Hier konnte ich nicht mehr meinen USB0 auswählen. Es wurde mir nur COM1 angezeigt, was nicht funktionierte. Oder Soll COM hier = den USB Devices sein?

                                        fa03c381-77ab-4ff6-8d4b-98440cff1974-grafik.png

                                        cb026784-4b24-4ba8-b0ff-804ef498de42-grafik.png
                                        Diese Abfrage funktioniert

                                        modbus.0	2021-06-13 11:04:25.224	debug	(16668) Poll holdingRegs DevID(2) address 346 - 6 bytes
                                        modbus.0	2021-06-13 11:04:25.223	debug	(16668) Poll device 2
                                        modbus.0	2021-06-13 11:04:24.144	debug	(16668) Poll holdingRegs DevID(2) address 346 - 6 bytes
                                        modbus.0	2021-06-13 11:04:24.143	debug	(16668) Poll device 2
                                        modbus.0	2021-06-13 11:04:23.065	debug	(16668) Poll holdingRegs DevID(2) address 346 - 6 bytes
                                        modbus.0	2021-06-13 11:04:23.064	debug	(16668) Poll device 2
                                        modbus.0	2021-06-13 11:04:21.971	debug	(16668) Poll holdingRegs DevID(2) address 346 - 6 bytes
                                        modbus.0	2021-06-13 11:04:21.971	debug	(16668) Initialization of scale factors done!
                                        modbus.0	2021-06-13 11:04:21.969	debug	(16668) Poll device 2
                                        modbus.0	2021-06-13 11:04:21.968	info	(16668) Connected to slave
                                        modbus.0	2021-06-13 11:04:21.955	debug	(16668) connect to serial /dev/ttyUSB0 with 115200
                                        modbus.0	2021-06-13 11:04:21.586	debug	(16668) Add holdingRegisters.40385_Code_Störung: {"_id":"holdingRegisters.40385_Code_Störung","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit"
                                        modbus.0	2021-06-13 11:04:21.585	debug	(16668) Add holdingRegisters.40352_Innenlufttemperatur: {"_id":"holdingRegisters.40352_Innenlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"
                                        modbus.0	2021-06-13 11:04:21.585	debug	(16668) Add holdingRegisters.40351_Frischlufttemperatur: {"_id":"holdingRegisters.40351_Frischlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true
                                        modbus.0	2021-06-13 11:04:21.584	debug	(16668) Add holdingRegisters.40349_Bypass_Status: {"_id":"holdingRegisters.40349_Bypass_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit
                                        modbus.0	2021-06-13 11:04:21.584	debug	(16668) Add holdingRegisters.40348_Filter: {"_id":"holdingRegisters.40348_Filter","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit":""},"native"
                                        modbus.0	2021-06-13 11:04:21.583	debug	(16668) Add holdingRegisters.40347_Filter_Status: {"_id":"holdingRegisters.40347_Filter_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit
                                        modbus.0	2021-06-13 11:04:21.583	debug	(16668) Add holdingRegisters.40260_Bypass_Modus: {"_id":"holdingRegisters.40260_Bypass_Modus","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit"
                                        modbus.0	2021-06-13 11:04:21.582	debug	(16668) Add holdingRegisters.40258_Geschwindigkeit: {"_id":"holdingRegisters.40258_Geschwindigkeit","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,
                                        modbus.0	2021-06-13 11:04:21.582	debug	(16668) Initialize Objects for holdingRegs: [{"_address":40258,"name":"Geschwindigkeit","description":"","unit":"","type":"uint16be","len":1,"factor":"1","offset":"0","formula":"","role":"state","room
                                        modbus.0	2021-06-13 11:04:21.581	debug	(16668) Initialize Objects for inputRegs: []
                                        modbus.0	2021-06-13 11:04:21.581	debug	(16668) Initialize Objects for coils: []
                                        modbus.0	2021-06-13 11:04:21.580	debug	(16668) Initialize Objects for disInputs: []
                                        modbus.0	2021-06-13 11:04:21.273	info	(16668) starting. Version 3.3.1 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.22.1, js-controller: 3.2.16
                                        

                                        ee477f5f-df2e-465b-8121-324a54d16a6b-grafik.png
                                        Dise Abfrage funktioniert nicht, weil diese Modbus in zwei Abfragen aufteilt?
                                        Der Adapter wechselt danach sofort auf GELB

                                        modbus.0	2021-06-13 11:07:07.885	debug	(20689) Cleaning up request fifo.
                                        modbus.0	2021-06-13 11:07:07.884	debug	(20689) Clearing timeout of the current request.
                                        modbus.0	2021-06-13 11:07:07.877	info	(20689) Disconnected from slave
                                        modbus.0	2021-06-13 11:07:06.877	warn	(20689) Poll error count: 1 code: {"err":"timeout","timeout":5000}
                                        modbus.0	2021-06-13 11:07:06.876	error	(20689) Request timed out.
                                        modbus.0	2021-06-13 11:07:06.875	warn	(20689) Error: undefined
                                        modbus.0	2021-06-13 11:07:01.872	debug	(20689) Poll holdingRegs DevID(2) address 346 - 6 bytes
                                        modbus.0	2021-06-13 11:07:01.837	debug	(20689) Poll holdingRegs DevID(2) address 257 - 1 bytes
                                        modbus.0	2021-06-13 11:07:01.837	debug	(20689) Initialization of scale factors done!
                                        modbus.0	2021-06-13 11:07:01.835	debug	(20689) Poll device 2
                                        modbus.0	2021-06-13 11:07:01.834	info	(20689) Connected to slave
                                        modbus.0	2021-06-13 11:07:01.819	debug	(20689) connect to serial /dev/ttyUSB0 with 115200
                                        modbus.0	2021-06-13 11:07:01.479	debug	(20689) Add holdingRegisters.40385_Code_Störung: {"_id":"holdingRegisters.40385_Code_Störung","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit"
                                        modbus.0	2021-06-13 11:07:01.479	debug	(20689) Add holdingRegisters.40352_Innenlufttemperatur: {"_id":"holdingRegisters.40352_Innenlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"
                                        modbus.0	2021-06-13 11:07:01.478	debug	(20689) Add holdingRegisters.40351_Frischlufttemperatur: {"_id":"holdingRegisters.40351_Frischlufttemperatur","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true
                                        modbus.0	2021-06-13 11:07:01.478	debug	(20689) Add holdingRegisters.40349_Bypass_Status: {"_id":"holdingRegisters.40349_Bypass_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit
                                        modbus.0	2021-06-13 11:07:01.477	debug	(20689) Add holdingRegisters.40348_Filter: {"_id":"holdingRegisters.40348_Filter","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit":""},"native"
                                        modbus.0	2021-06-13 11:07:01.477	debug	(20689) Add holdingRegisters.40347_Filter_Status: {"_id":"holdingRegisters.40347_Filter_Status","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"unit
                                        modbus.0	2021-06-13 11:07:01.476	debug	(20689) Add holdingRegisters.40260_Bypass_Modus: {"_id":"holdingRegisters.40260_Bypass_Modus","type":"state","common":{"name":"","role":"state","type":"number","read":false,"write":true,"def":0,"unit"
                                        modbus.0	2021-06-13 11:07:01.475	debug	(20689) Add holdingRegisters.40258_Geschwindigkeit: {"_id":"holdingRegisters.40258_Geschwindigkeit","type":"state","common":{"name":"","role":"state","type":"number","read":true,"write":true,"def":0,"
                                        modbus.0	2021-06-13 11:07:01.474	debug	(20689) Initialize Objects for holdingRegs: [{"_address":40258,"name":"Geschwindigkeit","description":"","unit":"","type":"uint16be","len":1,"factor":1,"offset":0,"formula":"","role":"state","room":""
                                        modbus.0	2021-06-13 11:07:01.474	debug	(20689) Initialize Objects for inputRegs: []
                                        modbus.0	2021-06-13 11:07:01.473	debug	(20689) Initialize Objects for coils: []
                                        modbus.0	2021-06-13 11:07:01.472	debug	(20689) Initialize Objects for disInputs: []
                                        modbus.0	2021-06-13 11:07:01.147	info	(20689) starting. Version 3.3.1 in /opt/iobroker/node_modules/iobroker.modbus, node: v12.22.1, js-controller: 3.2.16
                                        

                                        Wenn ich 40258 alleine oder auch in Kombination mit 40260 abfrage, dann werden auch diese Werte korrekt ausgelesen.

                                        Hat jemand eine Idee was ich noch probieren könnte?
                                        Danke euch!

                                        A 1 Reply Last reply Reply Quote 0
                                        • A
                                          andi2055 @andi2055 last edited by

                                          Ich konnte das Problem selbst durch einen quick&dirty 50ms Warteschritt zw. den Abfragen lösen, den ich in den Code eingebaut habe.

                                          Issue und Lösung hierzu hier
                                          Vielleicht kann man das so oder auch gerne sauberer in den Adapter integrieren.

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            Matis @andi2055 last edited by

                                            Hi, ich bin gerade dabei von Admin 4 auf 5 alles manuell umzuziehen.
                                            Dabei habe ich auch den neuen Modbus Adapter 3.4.4 installiert.
                                            Bei einigen Registern meiner Dimplex Wärmepumpe habe ich alles mir erdenkliche ausprobiert, ich bekomme sie nicht zum laufen:
                                            modbus.1 2021-06-20 00:14:33.149 debug (2308) Closing client on purpose.
                                            modbus.1 2021-06-20 00:14:33.097 warn (2308) Poll error count: 6 code: {"errorCode":129,"exceptionCode":3,"message":"ILLEGAL DATA VALUE"}
                                            modbus.1 2021-06-20 00:14:33.097 debug (2308) Received pdu describes an error.
                                            modbus.1 2021-06-20 00:14:33.093 debug (2308) Poll coils DevID(1) address 4 - 0 bits
                                            modbus.1 2021-06-20 00:14:33.092 debug (2308) Poll device 1

                                            oder:

                                            modbus.1 2021-06-20 00:21:44.174 debug (2719) Closing client on purpose.
                                            modbus.1 2021-06-20 00:21:44.122 warn (2719) Poll error count: 6 code: {"code":"ERR_OUT_OF_RANGE"}

                                            Mit modbus 3.2.6 lief das alles einwandfrei. Ich habe es 1:1 übernommen.
                                            Leider bekomme ich 3.2.6 nicht mehr als mögliche Version angeboten.
                                            Hat mir jemand einen Tipp, woran das liegen kann?

                                            M Glasfaser 2 Replies 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

                                            805
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            modbus modbus adapter
                                            140
                                            970
                                            300205
                                            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