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.
    • 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
                                          • M
                                            Matis @Matis last edited by

                                            ... wenn die betroffenen Register in einem eigenen Adapter aufsetzt, selbes Problem, ändere ich dann von Unsigned auf Signed gehten 6 von 7, versuche ich das auf den anderen Adpater zu übertragen, wieder bei allen der gleiche Fehler. Da stimmt wohl irgendwas im Adapter nicht oder ist marginal. Ich bin hilflos.

                                            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

                                            923
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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