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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Modbus adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Mehmet Tarhan last edited by Mehmet Tarhan

      Edit: Hab eine Verbindung herstellen können. Mit anderem Programm. Wollte nur die richtige Konfiguration wissen und die Kommunikation zwischen Adapter und ESP.

      Schöne Grüße
      ############

      Hallo Leute,

      ich versuche seit Tagen mit meinem NodeMcu esp8266 Board eine Verbindung zu herstellen über ModBus. Leider haut es nicht hin. Habe alles mögliche ausprobiert. Iobroker-Modbus adapter ist Master und NodeMcu als Sk eingestellt.
      Eigentlich will ich meine Garage damit steuern mit rs485. Die Garage ist weit weg, mit Wlan ist unmöglich, bricht immer wieder ab. Ich hab mich noch nie mit Modbus befasst. Bin sehr dankbar für alle mögliche Tips oder Hinweise

      Gruss Memo.

      Hier ist das Programm mit Arduino-IDE geschrieben für Esp8266.

      /*
        Modbus-Arduino Beispiel - Lampe (Modbus Serial)
        Copyright by André Sarmento Barbosa
        http://github.com/andresarmento/modbus-arduino
      */
       
      #include <ModbusRTU.h>
      
      #define SLAVE_ID 1
      
      
      // Modbus registriert Offsets (0-9999)
      const  int LAMP1_COIL = 100 ;
      // Verwendete Pins
      const  int ledPin = 0 ;
      
      // ModbusSerial Objekt
      ModbusRTU mb;
      
      void  setup () {
          // Modbus Serial konfigurieren (Port, Geschwindigkeit, Byte-Format)
          Serial.begin(9600, SERIAL_8N1);
          mb.begin(&Serial);
          // Setze die Slave ID (1-247)
          mb.slave(SLAVE_ID);  
          
          // LEDPin-Modus einstellen
          pinMode (ledPin, OUTPUT);
          // LAMP1_COIL-Register hinzufügen - Verwenden Sie addCoil () für digitale Ausgänge
          mb. addCoil (LAMP1_COIL);
      }
      
      void  loop () {
         // Einmal in loop () aufrufen - alles Magie hier
         mb. task ();
         
         // füge ledPin an das LAMP1_COIL Register an     
         digitalWrite (ledPin, mb. Coil (LAMP1_COIL));
      }
      

      Und hier ist mein Steckboard mit NodeMcu
      20200606_175133[5172].jpg

      Modbus Konfiguration
      1591459897359-a5bce96d-0ebe-4934-8b18-08931858c3f5-image.png

      1591460387742-39128049-bee8-48d7-95d8-45dd40d5e99d-image.png

      Iobroker Log
      1591460681851-f4e5d098-ff7c-4387-a1c4-6ecfb08013b6-image.png

      1 Reply Last reply Reply Quote 0
      • L
        Leo84 last edited by

        Hallo,
        ich bin neu hier und erstmal Danke für den klasse Modbus Adapter!
        Ich habe meine Heizung ETA PC40 per Modbus TCP angebunden und kann hier auch mehrere Register auslesen.
        Allerdings kann ich nur ca. 10 Register auslesen, wenn ich mehr versuche zu lesen bricht der Modbus zusammen und er wird rot.
        Dann immer wieder gelb grün und sofort wieder rot.
        Sobald ich die auszulesenden Register reduziere werd der Bus wieder Grün.

        Ich habe das ganze auch mit Node Red getestet, hier kann ich ohne Probleme wesentlich mehr Register auslesen. Ich habe auch die Zeiten geändert, leider alles ohne Erfolg.
        Habt ihr noch einen Rat?

        Vielen Dank für eure Hilfe.
        Modbus.jpg
        Register.jpg

        1 Reply Last reply Reply Quote 0
        • P
          peterfido last edited by

          Hallo,

          ich nutze auch Node-Red für Modbus. Mit dem Modus Adapter kam ich auf keinen grünen Zweig.

          Allerdings klappte es bei Node-Red auch nicht auf Anhieb. Ich musste mehrere USB-RS 485 Adapter probieren, bis endlich einer durchlief. Allerdings klappt es auch mit diesem Stick nicht per Modbus Adapter.

          Somit spricht für mich nichts dagegen bei Node-Red zu bleiben.

          Wenn der Umbau weitergeht, will ich den Modbus per TCP anbinden. Dann probiere ich es nochmal mit dem Modbus Adapter. Das dauert allerdings noch etwas.

          1 Reply Last reply Reply Quote 0
          • C
            cmoehler @Bluefox last edited by

            @Bluefox

            Re: Modbus adapter

            Hallo Zusammen,

            vielen Dank für diesen tollen Adapter 👍

            Da ich bei meinem CELSA WECM80-E M das RegSet1 verwende, bin ich leider auch mit Signed 64 bit (Big Endian) Werten konfrontiert.

            Leider habe ich im Adapter aber nur Unsigned 64 als Auswahlmöglichkeit gefunden. Oder habe ich da etwas übersehen 🤔 ?

            Falls nicht, könnte man das dann eventuell noch implementieren? Ansonsten müsste ich halt, vor dem weiterverarbeiten der entsprechenden Werte, selbst von UINT64 nach INT64 umwandeln, was aber unschön wäre da in den Objekten dann ja, bei negatieven Werten, riesige Zahlen stehen würden.

            Vielen Dank für eure Antworten.

            C 1 Reply Last reply Reply Quote 0
            • C
              cmoehler @cmoehler last edited by cmoehler

              @cmoehler

              Ich antworte mir mal selbst:

              doublebe - Double ist wohl der richtige Typ ... habe ich wohl übersehen 😬

              Allerdings erhalte ich ich bei Double leider immer 0 zurück. Da mache ich wohl immer noch etwas falsch ... aber was ??? 🙄

              Falls mir jemand auf die Sprünge helfen kann, schon einmal vielen Dank im Voraus.

              Hier noch die Definition im Adapter und die entsprechenden Objekte:

              definition modbus (2 x gleichen Register mit unterschiedlichem Datentyp):
              iobroker.modbus 64bit definition.png
              inhalt der beiden Objekte:
              iobroker.modbus 64bit object relult.png

              QModMaster
              qmodmaster1.png

              O 1 Reply Last reply Reply Quote 0
              • O
                onkel-ede @cmoehler last edited by

                Hallo zusammen,
                ich habe 2 Instanzen des Modbus-Adapter im Einsatz (1xWechselrichter PV-Anlage, 1x Batteriewechselrichter).
                Läuft seit ca. 1 Jahr alles prima.
                Habe nach Neuinstallation des gesamten Systems Probleme, deren Ursache (Zeitpunkt/Versionen) ich leider nicht mehr nachvollziehen kann.
                Ich berechne den Gesamtverbrauch des Hauses mit:
                b707902b-09bd-4a81-880a-97b8cde222cf-image.png
                Alle Werte aus dem Adapter in kWh, da quasi Zählerstände.
                Ich ziehe vom PV-Ertrag die Batterieladung und die Netzeinspeisung ab und addiere die Batteieentladung und den Netzbezug auf.
                Funktioniert auch tadellos.
                Der Adapter setzt die Werte für PV-Ertrag, Batterie(ent-)ladung um Mitternacht auf "0", weshalb meine Berechnung durcheinanderkommt.
                PV-Ertrag:
                22e3f1d2-90d5-4547-8010-e71265e7d3f9-image.png
                Batterieladung:
                208f0b95-d0f1-4471-965e-252ca34083f4-image.png
                Batterie-Entladung:
                fced1db1-db98-4609-94fd-656b76a99b37-image.png
                Die "0"-Werte machen ja bei dem "Zählerstand" keinen Sinn. Kann ich in den Einstellungen des Adapters verhindern, dass die "0"-Werte geschrieben werden?
                Viele Grüße
                onkel-ede

                O 1 Reply Last reply Reply Quote 0
                • O
                  onkel-ede @onkel-ede last edited by

                  Ich habe es erstmal so gelöst, indem ich eigene Datenpunkte angelegt habe, in die ich die Werte bereinigt schreibe. Also wenn Wert > 0, dann schriebe in Datenpunkt.
                  Mit diesen Datenpunkten berechne ich dann den Gesamtverbrauch des Hauses.

                  1 Reply Last reply Reply Quote 0
                  • T
                    TimoS. @Umsteiger last edited by TimoS.

                    @Umsteiger Hast du dein Gerät irgendwie mit dem Modbusadapter ansprechen können? Mein Gerät akzeptiert immer noch keine Werte. Es kann definitiv nur etwas mit FC16 anfangen.

                    EDIT: Habe einen weg gefunden: https://github.com/ioBroker/ioBroker.modbus/issues/54
                    Wenn man in der master.js (Version 3.1.4) die Zeile:

                    if (objects[id].native.len > 1 && !options.config.doNotUseWriteMultipleRegisters) {

                    auskommentiert bzw. löscht und stattdessen:

                    if ( !options.config.doNotUseWriteMultipleRegisters) {

                    nutzt, funktioniert es mit dem Schreiben eines Wertes.

                    TmShaz created this issue in ioBroker/ioBroker.modbus

                    closed Write Multiple Registers #54

                    1 Reply Last reply Reply Quote 0
                    • H
                      Habedere last edited by Habedere

                      Servus zusammen,
                      weiß nicht ob das Problem schon mal angesprochen wurde, aber bei mir stehen in den Objekten andere ID´s als im Eingangsregister des Adapters.
                      Jemand eine Idee woran das liegen kann?!

                      EDIT: Problem gefunden bzw. Logik. In den Objekten wird jede ID eine Stufe tiefer erstellt!!
                      Aus 30002 wird dann 30001. Wtf?!

                      PS: wenn ich die Werte im Eingangsregister eintrage, übernimmt er die Nummern auch nicht, sondern zählt fortlaufend weiter...

                      O 1 Reply Last reply Reply Quote 0
                      • O
                        oliver2017 @Habedere last edited by

                        @Habedere
                        Ich habe eine neue Heizung bekommen die ich nun einbinden wollte, da dachte das ist ja einfach es gibt ja schon einen Adapter. Den ganzen Tag probiere ich es.
                        Mit ModBus Scanner die Adressen ausgelesen ob die laut Hersteller auch stimmen. Klappte auch ohne Probleme, nur im Adapter lief das nicht. Bis mir eben aufgefallen ist, dass wenn man den Adapter STOPPT und die Werte nun ändert und danach den Adapter wieder aktiviert, läuft alles wie es soll und der liest auch die richtigen Werte aus von der richtigen Adresse.

                        K H 2 Replies Last reply Reply Quote 1
                        • K
                          klassisch Most Active @oliver2017 last edited by

                          @oliver2017 Danke, gut zu wissen.

                          1 Reply Last reply Reply Quote 0
                          • H
                            Habedere @oliver2017 last edited by

                            @oliver2017 sagte in Modbus adapter:

                            @Habedere
                            Ich habe eine neue Heizung bekommen die ich nun einbinden wollte, da dachte das ist ja einfach es gibt ja schon einen Adapter. Den ganzen Tag probiere ich es.
                            Mit ModBus Scanner die Adressen ausgelesen ob die laut Hersteller auch stimmen. Klappte auch ohne Probleme, nur im Adapter lief das nicht. Bis mir eben aufgefallen ist, dass wenn man den Adapter STOPPT und die Werte nun ändert und danach den Adapter wieder aktiviert, läuft alles wie es soll und der liest auch die richtigen Werte aus von der richtigen Adresse.

                            Hmm aber der Adapter macht ja automatisch einen restart wenn man etwas ändert oder?

                            P 1 Reply Last reply Reply Quote 0
                            • P
                              peterfido @Habedere last edited by

                              Hallo,

                              möglich, dass die Pause beim Neustart nicht reicht, um den Modbus in einen definierten | stabilen Zustand zu bekommen.

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

                                Hi
                                Hat schon mal wer die Verbindung zum CMI von TA geschafft? Mit einer Slave App lässt sich das cmi problemlos erreichen, mit ioBroker bekomm ich keine Verbindung... Ideen?

                                Die Einstellung Master im Adapter... heißt das, dass der Adapter Master ist oder ist es dann der Partner?

                                P U 2 Replies Last reply Reply Quote 0
                                • P
                                  peterfido @peterk34 last edited by

                                  @peterk34

                                  Ich nutze Modbus über NodeRed. Den Modbus-Adapter habe ich mit unserem Zähler nicht zum Laufen bekommen. Frage ich den Zähler zu schnell ab, scheint sich was zu verschlucken. Daher habe ich Pausen eingefügt:
                                  ModBus.png

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

                                    @peterk34
                                    Hi,

                                    bei mir läuft das mit den folgenden Einstellungen im Modbus Adapter
                                    modbus.png.

                                    Es gibt da auch einen längeren Post zur Einrichtung von iobroker und CMI/UVR von TA.
                                    CMI

                                    Vielleicht hilft Dir das weiter.
                                    Gruß
                                    Ulli

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

                                      Hi, danke für die Tips, hab das probiert aber leider ohne Erfolg ...

                                      ich bekomme folgende Logs: (mit Adresse 0.0.0.0 und mit der IP des CMI)
                                      d41f55f3-ce8e-4a1d-95f9-e199e397e16a-image.png

                                      kann wer was damit anfangen?

                                      UPDATE: geht wohl um Port 502 ... bei 5020 funkts ...

                                      A 1 Reply Last reply Reply Quote 0
                                      • 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
                                            • First post
                                              Last post

                                            Support us

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

                                            717
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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