Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Modbus - Erste Schritte

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Modbus - Erste Schritte

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
159 Beiträge 17 Kommentatoren 38.9k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • N Offline
    N Offline
    NightWatcher
    schrieb am zuletzt editiert von
    #87

    Eben nicht. Er prüft ja erst, ob offset*2+1 Durch 2 Teilbar ist.

    Wenn ja, dann

    return buffer.readUInt8(offset * 2);
    

    wenn nicht, dann

    return buffer.readUInt8(offset * 2 + 1);
    

    ich könnte natürlich bei jeder zweiten Adresse den Typ ändern (zwischen LE und BE), aber das ist ja nicht Sinn der Sache ;-)

    Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #88

      @NightWatcher:

      Eben nicht. Er prüft ja erst, ob offset*2+1 Durch 2 Teilbar ist. `
      Offset =0, 1%2 =1

      Offset =1, 3%2 =1

      Offset =2, 5%2 =1

      Offset =3, 7%2 =1

      …

      Muss ich weiter machen?

      1 Antwort Letzte Antwort
      0
      • N Offline
        N Offline
        NightWatcher
        schrieb am zuletzt editiert von
        #89

        Moin Bluefox - jetzt wo ich es auf nem Blatt Papier gegenrechne hast du recht :?

        Und ich habs getestet - was soll ich sagen - es klappte natürlich.

        Und ich schwöre, das Szenario hatte ich vorher bestimmt schon 5x durchgehabt. Wieso sonst hätte ich mir 5-6 Stunden Zeit nehmen sollen, um meine oben präsentierte Lösung zu erarbeiten :lol:

        Ich vermute das Problem in der Objektansicht im ioBroker Backend. Ich habe das Gefühl, dass sich hier die Werte manchmal einfach nicht aktualisieren. Gerade dann oder nur dann, wenn ich eben an den Typen rumspiele. Ich sehe zwar schön, wie Sie beim Neustart des Adapters grün werden, der Wert aber bleibt manchmal der gleiche. Dann muss man nen Seitenreload machen oder den Browser komplett neu starten.

        Momentan passt es jedenfalls, wie du sagtest uint8le.

        Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #90

          @NightWatcher:

          Moin Bluefox - jetzt wo ich es auf nem Blatt Papier gegenrechne hast du recht :?

          Und ich habs getestet - was soll ich sagen - es klappte natürlich.

          Und ich schwöre, das Szenario hatte ich vorher bestimmt schon 5x durchgehabt. Wieso sonst hätte ich mir 5-6 Stunden Zeit nehmen sollen, um meine oben präsentierte Lösung zu erarbeiten :lol:

          Ich vermute das Problem in der Objektansicht im ioBroker Backend. Ich habe das Gefühl, dass sich hier die Werte manchmal einfach nicht aktualisieren. Gerade dann oder nur dann, wenn ich eben an den Typen rumspiele. Ich sehe zwar schön, wie Sie beim Neustart des Adapters grün werden, der Wert aber bleibt manchmal der gleiche. Dann muss man nen Seitenreload machen oder den Browser komplett neu starten.

          Momentan passt es jedenfalls, wie du sagtest uint8le. `
          Mit dem Update kann gut ein Fehler sein. Den jage ich aber noch.

          Gut, dass es bei dir jetzt endlich geht, weil die Entwicklung von modbus ist irgendwie zu holperig. :D

          Und ich bin auch müde davon.

          Es gibt eventuell noch Probleme mit der Wiederverbindung.

          Kannst du updaten um es zu testen?

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tschombe
            schrieb am zuletzt editiert von
            #91

            @Bluefox:

            Mit dem Update kann gut ein Fehler sein. Den jage ich aber noch.

            Gut, dass es bei dir jetzt endlich geht, weil die Entwicklung von modbus ist irgendwie zu holperig. :D

            Und ich bin auch müde davon.

            Es gibt eventuell noch Probleme mit der Wiederverbindung. `

            DURCHHALTEN!!! :mrgreen: :mrgreen: :mrgreen:

            Wir werden doch wohl den modbus Adapter auf 1.0.0 (RELEASE) bekommen!!! 8-) 8-) 8-)

            1 Antwort Letzte Antwort
            0
            • N Offline
              N Offline
              NightWatcher
              schrieb am zuletzt editiert von
              #92

              klar kann ich Updaten - was genau soll ich im Anschluss testen?

              Mit Verbindungsabbrüchen hatte ich bisher noch keine Probleme. Liegt vielleicht auch daran, dass er bei mir bisher noch nie konstant nen Tag durchlief (weil ich vorher wegen Änderungen immer mal neugestartet hatte :lol: )

              Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

              1 Antwort Letzte Antwort
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                schrieb am zuletzt editiert von
                #93

                Einfach Stabilität. Und vielleicht ein paar die Verbindung trennen und wiederherstellen.

                1 Antwort Letzte Antwort
                0
                • N Offline
                  N Offline
                  NightWatcher
                  schrieb am zuletzt editiert von
                  #94

                  Jupp, werde ich mal machen. Melde mich zu dem Thema dann ende der Woche. Dann kann ich dir sagen, wie stabil es bei mir läuft.

                  Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

                  1 Antwort Letzte Antwort
                  0
                  • N Offline
                    N Offline
                    NightWatcher
                    schrieb am zuletzt editiert von
                    #95

                    Also bei mir läuft er mit der Version 0.4.5 ohne einen Absturz sauber durch - bisher 8-)

                    Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

                    1 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #96

                      @NightWatcher:

                      Also bei mir läuft er mit der Version 0.4.5 ohne einen Absturz sauber durch - bisher 8-) `
                      Schreibst du was ab und zu oder nur lesend?

                      1 Antwort Letzte Antwort
                      0
                      • N Offline
                        N Offline
                        NightWatcher
                        schrieb am zuletzt editiert von
                        #97

                        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.

                        Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

                        1 Antwort Letzte Antwort
                        0
                        • N Offline
                          N Offline
                          NightWatcher
                          schrieb am zuletzt editiert von
                          #98

                          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

                          Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

                          1 Antwort Letzte Antwort
                          0
                          • BluefoxB Offline
                            BluefoxB Offline
                            Bluefox
                            schrieb am zuletzt editiert von
                            #99

                            @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 Antwort Letzte Antwort
                            0
                            • N Offline
                              N Offline
                              NightWatcher
                              schrieb am zuletzt editiert von
                              #100

                              Perfekt, läuft :-D

                              Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

                              1 Antwort Letzte Antwort
                              0
                              • andreA Offline
                                andreA Offline
                                andre
                                Developer
                                schrieb am zuletzt editiert von
                                #101

                                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é

                                Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

                                1 Antwort Letzte Antwort
                                0
                                • BluefoxB Offline
                                  BluefoxB Offline
                                  Bluefox
                                  schrieb am zuletzt editiert von
                                  #102

                                  @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 Antwort Letzte Antwort
                                  0
                                  • andreA Offline
                                    andreA Offline
                                    andre
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #103

                                    @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

                                    Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

                                    1 Antwort Letzte Antwort
                                    0
                                    • BluefoxB Offline
                                      BluefoxB Offline
                                      Bluefox
                                      schrieb am zuletzt editiert von
                                      #104

                                      @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 Antwort Letzte Antwort
                                      0
                                      • andreA Offline
                                        andreA Offline
                                        andre
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #105

                                        @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é

                                        Bitte keine Support-Fragen per PN! Nutzt die öffentliche Kanäle damit auch andere von den Antworten profitieren können!

                                        1 Antwort Letzte Antwort
                                        0
                                        • P Offline
                                          P Offline
                                          Pep
                                          schrieb am zuletzt editiert von
                                          #106

                                          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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          950

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe