Navigation

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

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Modbus - Erste Schritte

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

      Aktuell werden zum Test mal hin und wieder auch was von ioBroker zur Wago versendet.

      Bei mir dient ioBroker aber primär als Visualisierung. Die Logik bleibt großteils in der WAGO.

      1 Reply Last reply Reply Quote 0
      • N
        NightWatcher last edited by

        Moin, habe heute mal diverse Adapter aktualisiert. Darunter auch den Modubs Adapter auf Version 0.4.6

        Seitdem startet es leider nicht mehr.

        Folgende Fehlermeldung kommt nun.
        1534_bild001.png

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

          @NightWatcher:

          Moin, habe heute mal diverse Adapter aktualisiert. Darunter auch den Modubs Adapter auf Version 0.4.6

          Seitdem startet es leider nicht mehr.

          Folgende Fehlermeldung kommt nun. `
          Der Inhaber von modbus npm modul hat fehlerhafte Dateien eingecheckt.

          Habe jetzt fest alte Version von diesem Paket gesetzt. Bitte noch mal updaten.

          1 Reply Last reply Reply Quote 0
          • N
            NightWatcher last edited by

            Perfekt, läuft 😄

            1 Reply Last reply Reply Quote 0
            • andre
              andre Developer last edited by

              Hallo,

              ich mache auch gerade meine ersten Gehversuche mit Modbus. 🙂 Habe soeben mein Hauskraftwerk von E3DC erfolgreich angebunden.

              Soll heißen, es fließen Daten in ioBroker!

              Allerdings habe ich da noch ein Problemchen. Zwei Register des E3DC-Geräts sind vom Datentyp "Uint8+Uint8". Dabei handelt es sich um zwei Werte in einem Register:
              914_datentyp.png
              Gibt es eine Möglichkeit wie ich diese Werte über den Adapter in ioBroker als separate Datenpunkte integrieren kann?

              Außerdem habe ich noch eine Verständnisfrage. Was hat es mit WP (Write Pulse?) und CW (Zyklisch Schreiben?) auf sich?
              914_wp_cw.png
              MfG,

              André

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

                @andre:

                Hallo,

                ich mache auch gerade meine ersten Gehversuche mit Modbus. 🙂 Habe soeben mein Hauskraftwerk von E3DC erfolgreich angebunden.

                Soll heißen, es fließen Daten in ioBroker!

                Allerdings habe ich da noch ein Problemchen. Zwei Register des E3DC-Geräts sind vom Datentyp "Uint8+Uint8". Dabei handelt es sich um zwei Werte in einem Register:

                Datentyp.PNG

                Gibt es eine Möglichkeit wie ich diese Werte über den Adapter in ioBroker als separate Datenpunkte integrieren kann? `
                Ich würde das mit dem Skript lösen.

                @andre:

                Außerdem habe ich noch eine Verständnisfrage. Was hat es mit WP (Write Pulse?) und CW (Zyklisch Schreiben?) auf sich?

                wp+cw.PNG

                MfG,

                André `

                Write Pulse: beim schreiben von true es wird automatisch nach X ms wieder auf false gesetzt.

                Zyklisch Schreiben: Manche slaves wollen, dass die Werte beim jedem Zyklus alle X ms geschrieben werden. Damit kann man es machen.

                1 Reply Last reply Reply Quote 0
                • andre
                  andre Developer last edited by

                  @Bluefox:

                  Ich würde das mit dem Skript lösen. `
                  Das habe ich mir fast gedacht, dass es so geht. Leider fehlt mir dabei ein wenig das Programmierwissen. 🙂 Was muss ich bei Google suchen wenn ich dazu mal ein Beispiel benötige?

                  Und was nehme ich überhaupt für einen Datentyp damit ich einen Wert bekomme, den ich dann im Script verarbeiten kann?

                  @Bluefox:

                  Write Pulse: beim schreiben von true es wird automatisch nach X ms wieder auf false gesetzt.

                  Zyklisch Schreiben: Manche slaves wollen, dass die Werte beim jedem Zyklus alle X ms geschrieben werden. Damit kann man es machen. `
                  Danke für die Info. Wieder was gelernt.

                  MfG,

                  André

                  Gesendet von iPad mit Tapatalk

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

                    @andre:

                    @Bluefox:

                    Ich würde das mit dem Skript lösen. `
                    Das habe ich mir fast gedacht, dass es so geht. Leider fehlt mir dabei ein wenig das Programmierwissen. 🙂 Was muss ich bei Google suchen wenn ich dazu mal ein Beispiel benötige?

                    Und was nehme ich überhaupt für einen Datentyp damit ich einen Wert bekomme, den ich dann im Script verarbeiten kann? `
                    Ich wurde Uint16 nehmen.

                    z.B. deine Uint16 Variable heißt modbus.0.MyDouble

                    var id = 'modbus.0.MyDouble';
                    createState(id + '.One');
                    createState(id + '.Two');
                    on(id, function (obj) {
                         setState(id + '.One', (obj.state.val >> 16) & 0xFF, true);
                         setState(id + '.One', obj.state.val & 0xFF, true);
                    });
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • andre
                      andre Developer last edited by

                      @Bluefox:

                      Ich wurde Uint16 nehmen.

                      z.B. deine Uint16 Variable heißt modbus.0.MyDouble

                      var id = 'modbus.0.MyDouble';
                      createState(id + '.One');
                      createState(id + '.Two');
                      on(id, function (obj) {
                           setState(id + '.One', (obj.state.val >> 16) & 0xFF, true);
                           setState(id + '.One', obj.state.val & 0xFF, true);
                      });
                      
                      ```` `  
                      

                      Hallo Bluefox,

                      vielen Dank für deinen Lösungsansatz. Habe damit ein wenig rum probiert und ihn nach meinen Bedürfnissen angepasst. 🙂 Läuft soweit und die Werte scheinen schlüssig.

                      In Anlehnung an dein (ungetestetes) Beispiel musste ich das Script so anpassen/ korrigieren:

                      var id = 'modbus.0.MyDouble';
                      createState(id + '.One');
                      createState(id + '.Two');
                      on(id, function (obj) {
                           setState(id + '.One', (obj.state.val >> 8) & 0xFF, true);
                           setState(id + '.Two', obj.state.val & 0xFF, true);
                      });
                      

                      Letztendlich läuft es bei mir (mit meinen Datenpunkten) so:

                      var id = 'modbus.0.holdingRegisters.40082_Autarkie_Eigenverbrauch';
                      createState('e3dc.modbus.Autarkie');
                      createState('e3dc.modbus.Eigenverbrauch');
                      on(id, function (obj) {
                           setState('e3dc.modbus.Autarkie', (obj.state.val >> 8) & 0xFF, true);
                           setState('e3dc.modbus.Eigenverbrauch', obj.state.val & 0xFF, true);
                      });
                      

                      Vielleicht kann es ja noch jemand benötigen…

                      DANKE!

                      MfG,

                      André

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

                        Hallo liebe Leute,

                        ich mache gerade erste Versuche mit modbus im iobroker.

                        Ich habe im Keller eine kleine Box, welche ich über ModBUS TCP anspreche. Aktuell mache ich das über FHEM mit folgenden Kommando:

                        FHEM CODE

                        #Register AussenTemperatur
                        define SB_ATF ModbusRegister 0 2
                        attr SB_ATF IODev SB
                        attr SB_ATF alias Aussentemperatur
                        attr SB_ATF icon temp_outside
                        attr SB_ATF plcDataType REAL
                        attr SB_ATF room Smartbox
                        attr SB_ATF stateFormat {sprintf("%0.1f Grad", ReadingsVal($name,"state",0))}
                        attr SB_ATF updateInterval 150
                        #attr SB_ATF conversion 0.1:0
                        #attr SB_ATF event-on-change reading .*
                        
                        

                        Das würde ich gern in den iobroker migrieren.

                        Jetzt habe ich die Register unter Eingangsregister wie folgt angelegt (zu Testzwecken mit verschiedenen TYP Einstellungen):
                        730_modbus.png

                        Da ich aber den Typ nicht kenne, bekomme ich folgende komische Ergebnisse:
                        730_modbus2.png
                        Kann mir jemand sagen, was ich bei Typ einstellen muss?

                        In meiner "Datensammel-Box" ist folgendes eingestellt:

                        Byte Order: 2143

                        Datentyp lesen: FLOAT

                        Ich kann damit leider nur nix anfangen 😞

                        1 Reply Last reply Reply Quote 0
                        • Y
                          ykuendig last edited by

                          Ich auch noch nicht, ausser:

                          Float ist Float und Order 2143 ist weder Big noch Little Endian, sondern eine unusal Byte Order (soweit ich weiss).

                          Ich würd jetzt mal die übrig gebliebenen durchprobieren

                          1 Reply Last reply Reply Quote 0
                          • N
                            NightWatcher last edited by

                            Habe gerade mal wieder ioBroker aktualisiert. Nun fährt der Modbus Adapter nicht mehr mit hoch.

                            > startInstance modbus.0: cannot find start file!
                            Was kann das denn nun sein?

                            In dem Adapter Tab sieht es auch so aus, als sei er nicht mehr installiert, wohingegen er unter Instanzen noch aufgeführt ist.

                            Ich will den Adapter ungern neu installieren, da sonst vermutlich auch alle Datenbankverknüpfungen und LOG Einträge verloren sind?!

                            Update: Die Datenen vom Github manuell in das Verzeichnis C:\ioBroker\node_modules\iobroker.modbus kopiert, Neustart gemacht. Nun wird in den Adapterinfos wieder der installierte Modbusadapter angezeigt.

                            Nun kommt nur leider die Meldung:
                            > instance system.adapter.modbus.0 terminated with code 1 ()

                            1 Reply Last reply Reply Quote 0
                            • Y
                              ykuendig last edited by

                              Lass unbedingt die Installation vom ioBroker machen. Du kannst die aktelle git Version drüberbügeln, indem Du oben links auf die git-Katze klickst und dann den Adapter wählen, oder den git-link angeben. Oder aber auch auf der Konsole installieren. Kopieren reicht eher nicht.

                              1 Reply Last reply Reply Quote 0
                              • N
                                NightWatcher last edited by

                                Würde ich ja grundsätzlich machen, habe halt nur Angst, dass meine ganzen Konfigurationen und Datenbankeinträge / Zuordnungen verloren gehen.

                                1 Reply Last reply Reply Quote 0
                                • Y
                                  ykuendig last edited by

                                  Ich möchte keine Garantie geben. Aber Datenbankeinträge hat es mir noch nie gelöscht. Datenbankzuordnung läuft über die Objekt-ID. Wenn die gleich bleibt, dann schreibt er die zum gleichen Datenpunkt. Konfiguration vom modbus-Adapter weiss ich nicht genau. Da könnte man ev ein File (welche?) wegsichern. Oder die Objekte exportieren, damit das nachbilden kann.

                                  Welchen Datenbank-Adapter nutz Du? Wie viele Datenpunkte sind da betroffen?

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

                                    Hi,

                                    also ich und einige andere haben zur Zeit Probleme mit dem Modbus Adapter.

                                    Siehe z.B. hier:

                                    http://forum.iobroker.net/viewtopic.php?f=22&t=5690

                                    Gruß

                                    Mirko

                                    1 Reply Last reply Reply Quote 0
                                    • Y
                                      ykuendig last edited by

                                      Habe ich gesehen. Kann aber nicht wirklich helfen, da ich selbst kein Programmierer bin. Ich habe lediglich auch Zeit mit dem Adapter verbracht und dazu mitgeholfen, dass der RTU zum Teil lauffähig wurde.

                                      Die offizielle Version in ioBroker ist (glaube ich) 0.4.9 oder 0.4.10. die korrigierte Version für teil-funktionierende RTU Verbindung ist die inoffiezielle 0.5.0. Die aktuelle Version im GIT ist in Arbeit von @Apollon77 bez. eines MemoryLeaks und ist nirgends 'freigegeben'. Kann gut sein, dass das Changelog noch nicht up to date ist, oder auch die Arbeit noch nicht abgeschlossen ist. Weitere Infos unten. Der Modbus Adapter ist auf der Arbeitsliste der Entwickler schon recht weit nach oben gerückt. Jedoch sind einige andere Arbeiten mit noch höherer Priorität noch vor dran.

                                      Wieso bleibt ihr nicht bei 0.4.9 oder 0.4.10? Braucht ihr RTU?

                                      Thema Objekte:

                                      http://forum.iobroker.net/viewtopic.php … git#p56770

                                      Thema Memory Leak:

                                      https://github.com/ioBroker/ioBroker.modbus/issues/5

                                      Sineos created this issue in ioBroker/ioBroker.modbus

                                      closed Memory Leak #5

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

                                        Hm,

                                        wenn die noch nicht freigegeben ist, warum ist die dann schon verfügbar bzw. wird einem ganz normal über die Adapterseite angeboten?

                                        Wollte ja einen Downgrade machen auf 0.4.10 aber da sagt er mir leider das wäre nicht mehr verfügbar.

                                        Gruß

                                        Mirko

                                        1 Reply Last reply Reply Quote 0
                                        • Y
                                          ykuendig last edited by

                                          Hmm. Habe zZ kein Zugriff auf ein Broker. Muss mich dazu später äussern…

                                          1 Reply Last reply Reply Quote 0
                                          • N
                                            NightWatcher last edited by

                                            Für alle, die ein ähnliches Problem wie bei mir haben, ich habe es nun folgendermaßen gelöst.

                                            • Eine alte Version aus dem GIT geladen und manuell in den entsprechenden Ordner kopiert.

                                            • iobroker neu gestartet.

                                            • nun wird mir eine neue Version angezeigt.

                                            • aus dem Backend geupdatet

                                            • läuft 8-)

                                            Es ging also ohne Neuinstallation und angst zu haben, dass irgendwas verloren geht.

                                            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

                                            904
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            17
                                            159
                                            31975
                                            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