Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Adapter] cloudfreie Auslesung von Deye-Invertern

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Adapter] cloudfreie Auslesung von Deye-Invertern

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      ChristianBlenk @Rene55 last edited by

      @rene55 ich meine den Qualitätscode. Der steht immer auf 0x00 good, sollte vielleicht auf 0x42 device not connected gehen.

      Der Hintergrund ist der, dass man auf dieser Basis die Daten in der Datenbank (INFLUX, etc) anders bewerten kann.

      Auf Grund der Flexibilität deines Adapters könnte man vieleicht ein boolean Flag in der Konfig setzen, welche Werte genullt werden sollen, wenn das Device auf diconnect geht. Spannung, Strom, Leistung.

      Das Problem bei den Kisten ist, dass wenn die keinen Saft mehr über die PV bekommen, aus gehen und dann die Werte einfach stehen bleiben und ggf. weiter geloggt werden.

      Theoretisch kann ich das auch über Blockly selber bauen. Im Adapter wäre das schicker.

      Grüße
      Chris

      Rene55 1 Reply Last reply Reply Quote 0
      • Rene55
        Rene55 @ChristianBlenk last edited by

        @christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:

        Qualitätscode

        Hab ich irgendwie auch im Hinterkopf, weiß nur noch nich genau, woran ich das festmachen soll.

        @christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:

        Device auf diconnect

        Ist nicht ganz so einfach: Ich hab da gerade im Winter überraschungen erlebt, dass auch tagsüber disconected wurde.

        @christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:

        keinen Saft mehr über die PV

        Genau. Auch bei WLAN-Ausfall, warum auch immer, aber Gerät produziert weiter. Daher ist hier ein 0-stellen nicht so prickelnd. Aber ja, wenn man das konfigurieren kann, kann der der es so haben will ja einschalten.

        cash 1 Reply Last reply Reply Quote 0
        • cash
          cash Most Active @Rene55 last edited by

          @rene55 Kann ich bestätigen. Ich pinge den Deye regelmäßig an und bekomme regelmäßig den Hinweis das das Gerät per Ping nicht erreichbar ist. Die Pingabfrage erfolgt alle 10 Minuten und meist ist es bei der nächsten Abfrage wieder erreichbar. Produziert wird dabei durchgehend. WLAN ist im Garten sehr gut. Inverter ist auch nur 2 meter - eher weniger vom WLan entfernt. Die Chinesen können den Inverter ja auch neu starten und die Firmware aktualisieren.

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

            @cash ja das kann schon sein. Ich würde es halt so machen.

            Ich komme aus der Branche Prozessautomatiesierung und Bigdata. Da ist das Standard.

            Wenn eine Abfrage auf eine Maschine keine Daten liefert, dann bleiben die alten Daten erhalten und der Qualitycode geht auf Bad, uncertain oder halt Device not connected (0x42). Kommt immer auf den Hersteller an. 0x00 Good ist aber in jedem Fall falsch.

            Grüße
            Chris

            Rene55 1 Reply Last reply Reply Quote 0
            • Rene55
              Rene55 @ChristianBlenk last edited by

              @christianblenk sagte in [neuer Adapter] cloudfreie Auslesung von Deye-Invertern:

              Good ist aber in jedem Fall falsch

              Das nehm ich mal als Auftrag. Wobei die meisten Adapter, die ich so in Gebrauch habe immer 0x00 in den State geben. Oder kennst du einen, der das so umgesetzt hat?

              C 2 Replies Last reply Reply Quote 0
              • C
                ChristianBlenk @Rene55 last edited by

                @rene55 jetzt hast du mich.
                Nein, aktuell weiß ich das nicht. Soweit ich das aber in Erinnerung habe, gehen die Werte aber auf 0.

                1 Reply Last reply Reply Quote 0
                • A
                  ah179 last edited by

                  @Rene55

                  Ich habe mir gestern den Adapter installiert/eingerichtet, bekomme ihn aber nicht zum Laufen wegen eines "offset"-Fehlers. Ich habe unter "Register" 2 einzelne (3, 86) ausgewählt:

                  deyeidc.0 2023-05-05 09:16:04.568 error
                  Exception-Code: ERR_OUT_OF_RANGE: The value of "offset" is out of range. It must be >= 0 and <= 1. Received 2

                  deyeidc.0 2023-05-05 09:16:04.567 error
                  RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 1. Received 2 at new NodeError (node:internal/errors:399:5) at boundsError (node:internal/buffer:88:9) at Buffer.readUInt8 (node:internal/buffer:254:5) at idcCore.readCoils (/opt/iobroker/node_modules/iobroker.deyeidc/lib/idc-core.js:181:35) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.deyeidc/main.js:161:31) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:324:12) at readableAddChunk (node:internal/streams/readable:297:9) at Readable.push (node:internal/streams/readable:234:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23)

                  deyeidc.0 2023-05-05 09:16:04.561 error
                  uncaught exception: The value of "offset" is out of range. It must be >= 0 and <= 1. Received 2

                  Wenn ich 2 Ranges mit je 3 Register (2 - 4, 85 - 87) auswähle lautet die Fehlermeldung:
                  uncaught exception: The value of "offset" is out of range. It must be >= 0 and <= 5. Received 6

                  Gibt hier der WR ein Register mehr zurück als angefragt wird?
                  WR: Deye sun600g3-eu-230
                  Firmware des WR: MW3_16U_5406_1.57

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

                    @ah179 die Abfrage enthält Register ausserhalb deiner Deklaration unter dem Reiter Register. Dort einfach so anpassen, dass die Abfrage hinein passt.Screenshot 2023-05-05 134652.png Screenshot 2023-05-05 134642.png

                    A 1 Reply Last reply Reply Quote 0
                    • C
                      ChristianBlenk @Rene55 last edited by

                      @rene55 ich hab das für mich jetzt erstmal so gelöst.

                      Screenshot 2023-05-05 140258.png

                      M Rene55 2 Replies Last reply Reply Quote 0
                      • A
                        ah179 @ChristianBlenk last edited by

                        @christianblenk vielen Dank, ich konnte zwar keinen "Spulen"-Eintrag außerhalb der "Register"-Ranges entdecken, aber alles zu löschen und neu anlegen brachte dann den Erfolg. Der Adapter läuft und tut was er soll.

                        Da du den "Running Status" verwendest, wo gibt es hierzu eine Auflistung welcher Wert was bedeutet?

                        1 Reply Last reply Reply Quote 0
                        • M
                          Medea @ChristianBlenk last edited by

                          @christianblenk 2023-05-05 17_28_20-javascript - iobroker.png

                          Als Anregung, so habe ich es bei mir gelöst, damit nicht beim kleinsten Schluckauf die Werte genullt werden.

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

                            @ah179 Kannst du noch nachvollziehen, was du eingetragen hattest? Selbst wenn eine "Spule" ausserhalb der "Register" liegt, darf der Adapter keinen Error werfen. Er beachtet diesen Wert einfach nicht.

                            1 Reply Last reply Reply Quote 0
                            • Rene55
                              Rene55 @ChristianBlenk last edited by

                              @christianblenk Ja, so kann man es machen. Für mich stellt sich die Frage, wann ich das machen soll? Und ist es dann sinnvoll, dem Anwender in den "Spulen" noch einen Haken setzen lassen, wo er eben das Nullen auswählen kann. Oder eine geschicktere Lösung?

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

                                @medea Solange sollte man mindestens Warten. Könnte ich als Parameter auch noch einbauen.

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

                                  @rene55 du fragst doch alle x Sekunden ab. Wenn nach x Versuchen keine Verbindung zu stande kommt die Werte auf einen vorzugebenen Wert nehmen. In der Industrie nennt man das dann Ersatzwert bei Verbindungsfehler.

                                  Für mich mich ist immer nur die tatsächlich generierte Arbeit interessant. Deshalb nulle ich auch sofort beim Verbindungsverlust. Die Summenzähler nulle ich nicht. Hier könnte man drüber nachdenken NULL in die DB zu schreiben. Da weiß ich aber nicht, ob das mit dem Adapter möglich ist.

                                  Rene55 1 Reply Last reply Reply Quote 0
                                  • Rene55
                                    Rene55 @ChristianBlenk last edited by

                                    @christianblenk Einen Zähler hab ich schon ins Auge gefasst. Das Problem dabei ist, der eine fragt jede Minute, der andere nur alle 6 Minuten. Na gut, ich könnte den Zähler in Abhangigkeit der Abtastrate bringen. Also würde es dir helfen, in der Konfiguration die Werte zu markieren, die dann genullt werden sollen.
                                    Auch der Wunsch nach der Qualität ist noch ein Problem. Werte, die bestimmt richtig sind, werde ich bei Verbindungsabbruch nicht auf 0x42 setzen. Hier muss ich noch eine Lösung ausbrüten.

                                    1 Reply Last reply Reply Quote 0
                                    • O
                                      Oromis last edited by Oromis

                                      Hallo zusammen, vielen Dank für die bisherige Entwicklung des Adapters. Ich bin kurz davor mir einen Deye SUN Mikrowechselrichter mit 600 Watt zu kaufen. Die Installation des Adapters hat auf jeden Fall problemlos mit den Infos hier im Thread geklappt.

                                      Eine Sache zu den Registern: Halten sich die Deye-Wechselrichter ans Sunspec-Protokoll bei der Registerabfrage? Laut Sunspec-Website sind diese zumindest für das Protokoll zertifiziert, allerdings unterscheiden sich die Register, die ich hier lese vom Sunspec-Protokoll. Wobei man bei der Zählung der Modbus-Register immer sehr vorsichtig sein muss und evtl. einen Offset berücksichtigen muss. Bei Sunspec sind die Register für einphasige und dreiphasige Wechselrichter leicht unterschiedlich.


                                      Wen es interessiert: Das Prinzip mit dem Sunspec-Protokoll funktioniert so: Die Wechselrichter stellen Holding-Register als Modbus-Slave startend mit Adresse 40000 zur Verfügung. Andere Geräte (z.B: eine Wärmepumpe) rufen die Register der Reihe nach ab. Das ist hier sehr gut ab Seite 4 beschrieben: https://www.photovoltaikforum.com/core/attachment/18876-sunspec-implementation-technical-note-de-pdf/

                                      Bei Register 40069 wird der Typ (einphasig oder dreiphasig) festgelegt und damit entscheiden sich auch die weiteren Register. Der Eintrag 101 bedeutet einphasig (typische Mikrowechselrichter) und 103 dreiphasig (größere Wechselrichter). Hier könnt ihr jetzt die Register herausfinden: https://github.com/sunspec/models/tree/master/smdx

                                      smdx_00101.xml enthält die für die einphasigen und https://github.com/sunspec/models/blob/master/smdx/smdx_00103.xml dreiphasigen. Man muss jetzt quasi den "Offset", der angegeben ist immer auf das Register 40071 draufzählen. Die Einheiten geben Hinweise auf die physikalischen Größen. 40102 (Offset 31) ist z.B. die Gehäusetemperatur und 40106 deren Skalenfaktor (1 = Faktor 10, Offset 36). 40083 entspricht der Ausgangsleistung (Offset 12) und 40084 wieder deren Skalierung. 40098 ergibt Spannung VPV-1 und 40093 den insgesamt produzierten Strom in kWh.
                                      Ich zähle die Register übrigens so wie der Modbus-Adapter für iobroker und nicht wie in der oben verlinkten pdf.

                                      Rene55 1 Reply Last reply Reply Quote 0
                                      • Rene55
                                        Rene55 @Oromis last edited by

                                        @oromis Nach der ersten Durchsicht des Sunspec-Protokolls sehe ich doch starke Abweichungen zu Deye. Bisher kann ich nur sagen, dass die Deye 300 - 2000 mit den bekannten Registern auslesbar sind. Sicher haben die 3-phasigen und die Hybrid-Inverter mehr und andere Register - die mir aber(da ich keinen habe) nicht bekannt sind. Hier sind wir also auf Rückmeldungen anderer User angewiesen.

                                        O 1 Reply Last reply Reply Quote 0
                                        • O
                                          Oromis @Rene55 last edited by

                                          @rene55 Danke dir! Dann ist es wohl kein Ansatzpunkt, um die Adressen weiter zu verfolgen. Hier übrigens das "Zertifikat", das ich auf der Sunspec-Seite dazu zu den Deye-Wechselrichtern gefunden habe. https://sunspec.org/wp-content/uploads/2020/08/SunSpec-Deye-certificate-SM-000007.pdf

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

                                            Hi,
                                            habe den Deye 800.
                                            Mir wird nur folgendes angezeigt:
                                            a59aef35-6fa7-43fc-b205-4294f8ef306d-image.png

                                            0a6b63b4-9bcc-4c10-86a2-d3130631c820-image.png

                                            Folgende Einstellungen habe ich gewählt:

                                            662aa0cd-6179-46c2-a78f-5098224cdee1-image.png

                                            11f05dbc-2585-4f47-a302-77a7924fd8db-image.png

                                            9beb2629-85ef-4e6d-b172-340908ed3964-image.png

                                            8afc2b42-4389-4f97-a38c-353ae128083d-image.png

                                            7dd0b811-a3a8-44fa-98f1-c5cf28b057cf-image.png

                                            e974aaf7-0e04-4a01-b552-fbfff8465ce5-image.png

                                            421f327b-64b7-4827-a1c8-761de12b149e-image.png

                                            Wo habe ich den Denkfehler, dass keine Werte generiert werden?
                                            Danke für Tipps 🙂

                                            Rene55 J 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            658
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            106
                                            1129
                                            297507
                                            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