Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. Deye Wechselrichter Modbus Register beschreiben

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Deye Wechselrichter Modbus Register beschreiben

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

      Hi, hab eure ganzen Beiträge gelesen und bin was diese Werte hier betrifft nicht schlauer geworde. Vielleicht kann jemand helfen.

      Kann jemand hier die verschiedenen "Power" Werte anhand einer Zeichnung beschreiben? (ohne ist auch okay)
      Mir ist nicht ganz klar an welcher Stelle im Wechselrichter das gemessen wird.
      Eins davon werden wohl die Klammern sein die ich im Schaltschrank habe.
      Eins davon die Energie die vom Wechselrichter von Richtung DC erzeugt wird.
      Aber was ist mit den Anderen?

      Ich hab in den Registern folgende gefunden:

      register 604+605+606 A,B,C phase power on the inner side of the grid
      register 616+617+618 Out of grid power
      register 625 Grid output total
      register 633+634+635 Inverter output phase power
      register 640+641+642 UPS Load side phase power ABC
      register 650+651+652 Load phase power ABC
      register 656+657+658 Load phase power ABC das gehört wohl zu 650... dazu

      Vielen Dank im vorraus

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

        Inzwischen habe ich meinen Anschluss noch aufgeräumt.
        Vom BMS Port mit einem Adapter auf Schraubpins. Daran sind dann nur die Leitungen zum BMS und zum Modbus Adapter angeschlossen. 12Volt kommt direkt vom Inverter:
        IMG_20230809_091040.jpg

        Die Stromversorgung werde ich noch auf extern ändern, damit ich den WR auch per Modbus an und ausschalten kann.

        Hier meine Iobroker Einstellunge:
        Unbenannt1.JPG

        Unbenannt2.JPG

        Hier die vom Elfin:
        Unbenannt3.JPG

        Und hier noch Bsp für die Register:
        60713d9f-52be-4c2c-a246-3fbfbaac1456-grafik.png

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

          Deye:

          IMG_20231203_130935.jpg

          1 Reply Last reply Reply Quote 0
          • TheBam
            TheBam @Waly_de last edited by

            @waly_de

            ich habe da mal noch 2 Fragen weil ich mit die Tou auch nachgebastelt habe.

            Welche register sind für den haken beim generator?

            und wie Fragst du den Status Normal ab???

            W 1 Reply Last reply Reply Quote 0
            • W
              Waly_de @TheBam last edited by Waly_de

              @thebam

              @thebam sagte in Deye Wechselrichter Modbus Register beschreiben:

              und wie Fragst du den Status Normal ab???

              Der Status seht im Register "modbus.0.holdingRegisters.1.40501_Status"
              In Vis dann eine "Standard Werteliste Text" und in die Werteliste eintragen:
              "Standby; Selbsttest;Normal;Alarm;Fault"

              @thebam sagte in Deye Wechselrichter Modbus Register beschreiben:

              Welche register sind für den haken beim generator?

              Das ist etwas komplizierter.
              Grundsätzlich seht das in diesem Registern:
              modbus.0.holdingRegisters.1.40173_GridGenEn1 -
              modbus.0.holdingRegisters.1.40178_GridGenEn6

              Das sind aber Bit-Register.
              Bit0 ist Grid charge Ein/Aus
              Bit1 ist Gen charge Ein/Aus

              Um die zu setzten bzw. zu lesen, habe ich mir 2 JavaScript-Funktionen geschrieben und bei Skripten im Vis hinterlegt:

              function setBit(currentValue, bitPosition) {
                // Berechne die neue Bit-Maske basierend auf der Bit-Position
                const bitmask = 1 << bitPosition;
                // Setze das entsprechende Bit auf 1 oder 0, abhängig vom Wert
                if (!(currentValue & bitmask)) {
                  return (currentValue | bitmask) ;  // Bit auf 1 setzen
                } else {
                  return (currentValue & ~bitmask); // Bit auf 0 setzen
                }
              }
              
              function getBit(currentValue, bitPosition) {
                // Hole den aktuellen Wert des States
                // onst currentValue = getState(stateName).val;
                // Überprüfe, ob das Bit an der gegebenen Position gesetzt ist
                const bitmask = 1 << bitPosition;
                return ((currentValue & bitmask) !== 0) ? "1":"0" ;
              }
              
              //{n:modbus.0.holdingRegisters.1.40173_GridGenEn1;getBit(n,1)}
              

              Das Vis-Element ist ein ButtonState.
              Bei Objectid habe ich das Register angegeben:
              modbus.0.holdingRegisters.1.40173_GridGenEn1

              für den GridButton dann:

              Knopftext: {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;getBit(n,0)}
              Wert:      {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;setBit(n,0)}
              

              für den GenButton:

              Knopftext: {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;getBit(n,1)}
              Wert:      {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;setBit(n,1)}
              

              Das ganze dann 6 mal für alle Register bis GridGenEn6...

              Ich hoffe das hilft Dir weiter 🙂

              C TheBam 2 Replies Last reply Reply Quote 0
              • C
                ChrisBGL @Waly_de last edited by

                Wäre das nicht eine Alternative bei der man kein zusätzliches Kabel benötigt und bequem den MQTT Adapter nutzen kann?

                https://github.com/kbialek/deye-inverter-mqtt

                TheBam 1 Reply Last reply Reply Quote 0
                • TheBam
                  TheBam @ChrisBGL last edited by

                  @chrisbgl
                  also wenn ich das richtig verstehe läuft das dann über den webstick. Da kannst du dann doch sogar den Iobroker adapter nutzen der geht soweit ich weiß auch schon direkt mit den großen hybriden.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    shipper @TheBam last edited by

                    @thebam
                    also am 28.12. der letze Post? Kann doch nicht sein.
                    Ich lese die Holdingregister mit dem Modus.iobroker , stabil seit Wochen. Und nun will ich eine TOU-Steuerung aufbauen ähnlich wie batterylife von victron, nur dass ich dazu pvforecast-Werte verwenden möchte. Dazu muss ich aber schreiben können. Kann ich auch, aber nur mit modpoll und nicht mit iobroker. Modpoll ist aber auch nicht so prickelnd, weil bei Schreiben eines einzelnen Wertes 06 genommen wird (ist standard), und nicht 10. 06 kann aber der Deye nicht. Also müsste man immer 2 Werte schreiben, mit mbpoll, beim Adapter gibt es ja den F16-Haken.
                    Wie ihr dem Adapter das Schreiben beigebracht habt, ist mir echt schleierhaft. Das Aktualisieren der Objekte per script funktioniert, kommen aber nicht beim Deye an.
                    Wenn ich mit mbpoll schreibe, sind die Werte sofort auf dem Deye und auch in den Objekten.
                    Was hier so gesehen habe, ist ja echt phantastisch. Ich habe auch gesehen, dass oft wp auf false steht. Hat denn WP nichts mit dem Schreiben zu tun, bzw darf der nicht angekreuzt sein? Und was bewirkt multiples Schreiben, also CW. Bei wird das Register auf 0 gesetzt.
                    Vielleicht ist der thread hier doch noch nicht zu Ende

                    1 Reply Last reply Reply Quote 0
                    • TheBam
                      TheBam @Waly_de last edited by

                      @shipper was möchtest du denn ist doch hier alles gut beschrieben. bzw. auch in den posts oben. Ich kann alles steuern bzw. setzen wie ich das möchte

                      waly_de sagte in Deye Wechselrichter Modbus Register beschreiben:

                      @thebam

                      @thebam sagte in Deye Wechselrichter Modbus Register beschreiben:

                      und wie Fragst du den Status Normal ab???

                      Der Status seht im Register "modbus.0.holdingRegisters.1.40501_Status"
                      In Vis dann eine "Standard Werteliste Text" und in die Werteliste eintragen:
                      "Standby; Selbsttest;Normal;Alarm;Fault"

                      @thebam sagte in Deye Wechselrichter Modbus Register beschreiben:

                      Welche register sind für den haken beim generator?

                      Das ist etwas komplizierter.
                      Grundsätzlich seht das in diesem Registern:
                      modbus.0.holdingRegisters.1.40173_GridGenEn1 -
                      modbus.0.holdingRegisters.1.40178_GridGenEn6

                      Das sind aber Bit-Register.
                      Bit0 ist Grid charge Ein/Aus
                      Bit1 ist Gen charge Ein/Aus

                      Um die zu setzten bzw. zu lesen, habe ich mir 2 JavaScript-Funktionen geschrieben und bei Skripten im Vis hinterlegt:

                      function setBit(currentValue, bitPosition) {
                        // Berechne die neue Bit-Maske basierend auf der Bit-Position
                        const bitmask = 1 << bitPosition;
                        // Setze das entsprechende Bit auf 1 oder 0, abhängig vom Wert
                        if (!(currentValue & bitmask)) {
                          return (currentValue | bitmask) ;  // Bit auf 1 setzen
                        } else {
                          return (currentValue & ~bitmask); // Bit auf 0 setzen
                        }
                      }
                      
                      function getBit(currentValue, bitPosition) {
                        // Hole den aktuellen Wert des States
                        // onst currentValue = getState(stateName).val;
                        // Überprüfe, ob das Bit an der gegebenen Position gesetzt ist
                        const bitmask = 1 << bitPosition;
                        return ((currentValue & bitmask) !== 0) ? "1":"0" ;
                      }
                      
                      //{n:modbus.0.holdingRegisters.1.40173_GridGenEn1;getBit(n,1)}
                      

                      Das Vis-Element ist ein ButtonState.
                      Bei Objectid habe ich das Register angegeben:
                      modbus.0.holdingRegisters.1.40173_GridGenEn1

                      für den GridButton dann:

                      Knopftext: {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;getBit(n,0)}
                      Wert:      {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;setBit(n,0)}
                      

                      für den GenButton:

                      Knopftext: {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;getBit(n,1)}
                      Wert:      {n:modbus.0.holdingRegisters.1.40173_GridGenEn1;setBit(n,1)}
                      

                      Das ganze dann 6 mal für alle Register bis GridGenEn6...

                      Ich hoffe das hilft Dir weiter 🙂

                      1 Reply Last reply Reply Quote 0
                      • E
                        etzeste13 last edited by

                        @shipper Hallo,
                        also bei mir funktioniert es auch über den ioBroker per anpassung der States die Register im Wechselrichter zu beschreiben....
                        ich mache es zwar nicht per skript, sonder tlw nur per hand, aber wie gesagt es funktioniert ohne probleme.

                        CW ist nicht gesetzt -> einfach den Wert im Objekt im Rahmen der erlaubten werte verändern und bei der nächste Poll-Abfrage werden die Daten bestätigt.

                        Verwende Waveshare TCP to RS485 converter.

                        S 2 Replies Last reply Reply Quote 0
                        • S
                          shipper @etzeste13 last edited by

                          @etzeste13
                          Danke, auch thebam, das der thread noch lebt. Ich verwende auch waveshare rs485toEth. Funktioniert tadellos.
                          Frage: muss WP gesetzt sein?
                          Welche pollrate fährst du?

                          @TheBam
                          scripte in vis habe ich noch nicht gemacht, vorzugsweise nehme ich blockly nur wenns nicht anders geht z.B. zum lesen der Sensoren von mobil-alerts.
                          Erstmal muss das Schreiben mit dem Adapter funktionieren. Mit modpoll geht es ja.
                          Die Protokollaufzeichnung im debugmode bringt mir poll-einträge von allen Registern, die ich eingetragen habe , von schreiben habe ich da nichts gefunden, egal ob WP gesetzt ist oder nicht.
                          Frage: Ist da was von schreiben zu sehen?
                          danke, dass ihr mir helfen wollt.

                          1 Reply Last reply Reply Quote 0
                          • S
                            shipper @etzeste13 last edited by

                            @etzeste13

                            ok, wert setzen in den Objekten funktioniert, nachdem ich WP rausgenommen habe, dann wird's auch mit Skript gehen

                            danke

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              shipper @shipper last edited by

                              @etzeste13
                              du hast mich gerettet. Wenn ich die Werte in den Objekten setze, werden die register erfolgreich beschrieben. Wenn ich in blockly die Funktion "aktualisiere Object " nehme dann nicht. Mit "steuere object" geht es dann.
                              Da konnte ich lange suchen, nichts gefunden, weil sonst nichts zu finden war.

                              E 1 Reply Last reply Reply Quote 1
                              • E
                                etzeste13 @shipper last edited by

                                @shipper freut mich das es funktioniert und ich mal wem helfen konnte....:-)
                                vG

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

                                  Hallo,
                                  kann mir einer sagen was ich da im Register eintragen muss um eine vernünftige Temperatur zu bekommmen?
                                  Unbenannt.JPG

                                  Danke
                                  michael

                                  W 1 Reply Last reply Reply Quote 0
                                  • W
                                    warp735 @miael last edited by

                                    @miael
                                    AC ist Faktor 0,1 und bei Offset -100. Dann hast den richtigen Wert. Beim DC Wert genau so, bekommst aber nur Daten wenn nen DC Batt Tempfühler angeschlossen hast. Sonst steht der immer auf 25°

                                    Schreiben geht bei mir übrigens problemlos.

                                    miael 1 Reply Last reply Reply Quote 0
                                    • miael
                                      miael @warp735 last edited by

                                      @warp735
                                      Besten dank!
                                      Der Hinweis mit den 25°C war es. Bin jetzt auf "Heat sink temperatur" gewechselt und funktioniert.

                                      W 1 Reply Last reply Reply Quote 0
                                      • W
                                        warp735 @miael last edited by

                                        @miael
                                        Ja, das ist AC, bzw die interne WR Temp, nach der er selbst auch regelt

                                        1 Reply Last reply Reply Quote 0
                                        • W
                                          warp735 last edited by warp735

                                          Weiß jemand wie die "Tägliche Erzeugung" gerechnet wird? Ist da der Micro inkludiert oder nicht? Bei der oberen prozentualen Anzeige "Produktion" interessiert er auf jedenfall nicht. Bei diesem Beispiel müssten es ja 55% sein und nicht 41%

                                          Find nämlich auch kein Register für die kwh vom Microinverter 😞

                                          Snag_44ef76.png

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            Ronny81 last edited by

                                            Servus zusammen,

                                            ich bin neu hier und hoffe ihr könnt mir helfen.
                                            Ich muss ganz dringen ein Register am Deye setzen und zwar die ID bzw. Seriennummer.
                                            Leider hat mein Deye nach dem letzten Firmware Update seine ID verloren.
                                            Ich habe es schon über die RS232 versucht, aber der WR will nicht antworten.
                                            Kann man die ID über die RS485 ändern?
                                            Die ID müsste die Register 3,4,5,6 und 7 haben.
                                            Register 7, ID(SN), Stelle 2 + 1 ASCII
                                            Register 6, ID(SN), Stelle 4 + 3 ASCII
                                            Register 5, ID(SN), Stelle 6 + 5 ASCII
                                            Register 4, ID(SN), Stelle 8 + 7 ASCII
                                            Register 3, ID(SN), Stelle 10 + 9 ASCII
                                            Ich hoffe Ihr könnt mir helfen. Danke schon mal.
                                            Anbei noch ein Foto des Display ohne ID.

                                            Gruß Ronny

                                            20240406_174924.jpg 20240407_155125.jpg

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            822
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            25
                                            228
                                            39561
                                            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