Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. OpenDTU-onBattery Blockly DPL Ein/Aus

    NEWS

    • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    OpenDTU-onBattery Blockly DPL Ein/Aus

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

      @beowolf

      update 14.10.2025 10:45h


      MQTT-Datenpunkte

      Die Steuerung erfolgt ausschließlich über MQTT.
      Dabei gilt:

      1. Automatisch angelegt:

      mqtt.x.<baseTopic>.dpl.dplState
      
      • wird automatisch erstellt
      • Liefert den aktuellen Status des Dynamic Power Limiters
      • Werte: 0 = aus, 1 = ein (nur lesbar)

      2. Manuell anlegen (Pflicht!)

      mqtt.x.<baseTopic>.dpl.dplCmd
      

      Datenpunkt dplCmd muss manuell erstellt werden, sonst funktioniert die MQTT-Steuerung nicht.

      ❗ Sollte dplCmd automatisch angelegt worden sein → löschen und manuell neu anlegen!

      Beispiel-Einstellungen:

      "common": {
        "name": "dplCmd",
        "desc": "DPL on: 1, off: 0",
        "role": "state",
        "type": "number",
        "read": true,
        "write": true,
        "min": -1,
        "max": 1,
        "def": -1
      }
      

      ⚠️ Nicht als Boolean anlegen!


      ⚙️ Funktionsweise

      dplCmd: 1 → DPL-Steuerung aktiv
      dplCmd: 0 → DPL deaktiviert, alle "solarbetriebenen" WR gehen automatisch auf maximale Leistung.

      Nach jedem Schaltvorgang setzt sich dplCmd automatisch wieder auf -1 zurück.

      Damit wird sichergestellt, dass auch bei ioBroker über Blockly oder Scripts mehrfach derselbe Befehl zuverlässig gesendet werden kann –
      selbst wenn der vorherige Wert identisch war.

      Hintergrund:
      In ioBroker kann über Blockly kein ack: false gesetzt werden.
      Ohne den automatischen Rücksprung auf -1 würde der identische Wert daher nicht erneut übertragen.
      Der Mechanismus sorgt also für sauberes und wiederholbares Schalten – auch bei Blockly!

      oDTUoB-maxLimit-mqtt_DPLonOff.png


      Schritt-für-Schritt für ioBroker-Nutzer

      1. WebUI OpenDTU-oB-Patch öffnen → Dynamic Power Limiter einmal ein- oder ausschalten
        → dplState wird automatisch angelegt.

      2. iobroker Objekte → Expertenmodus aktivieren → manuell neuen Datenpunkt anlegen:

      mqtt.x.<baseTopic>.dpl.dplCmd
      

      Typ: state, Zahl (number), siehe Einstellungen oben.

      1. DPL erneut in der WebUI schalten → danach ist MQTT-Steuerung aktiv.

      2. Ablesen des Status
        → Nur über dplState (0/1)
        → dplCmd wird nach dem Senden automatisch auf -1 gesetzt.

      3. Nach DPL-Deaktivierung
        → "solarbetriebene" Wechselrichter gehen automatisch auf volle Leistung (kein manuelles Setzen nötig)
        → "batteriebetriebene" Wechselrichter verhalten sich wie im original Repo.


      Hinweise zur Nutzung

      • Jeder Schaltvorgang schreibt in den Flash-Speicher → nicht wie ein Blinker ständig ein-/ausschalten!
        Etwas Geduld nach jedem Wechsel schont Hardware & Nerven. 😉

      • Patch ist minimalinvasiv:
        Keine Zusatzdatenpunkte
        Kein Eingriff in nicht benötigte Codebereiche
        MQTT-Race-Conditions werden sauber abgefangen

      • Rückkehr zur Original-Firmware jederzeit über Web-Firmware möglich.


      ⚠️ Lizenz & Haftung

      Diese Firmware basiert auf OpenDTU-onBattery (GPLv2, Fork von OpenDTU).
      Sie enthält eigene Anpassungen und wird nicht offiziell unterstützt.

      Verwendung auf eigene Verantwortung – keine Haftung für Schäden oder Fehlfunktionen.

      OpenDtu-OnBattery_2025.09.16DplOff-maxLimit-MQTT.generic_esp32s3.zip

      Hier im Thread finden sich weitere Firmware-Builds; direkte Links dazu sind im Eingangspost zu finden.

      B 1 Reply Last reply Reply Quote 1
      • B
        Beowolf @maxclaudi last edited by Beowolf

        @maxclaudi
        Die Umschaltung funktioniert nicht mehr.

        Hat sich etwas geändert?

        Mache ich es auf der OpenDTU Oberfläche wird der dplState unter ioBroker geändert.

        Ändere dplCmd passiert nichts.

        maxclaudi 1 Reply Last reply Reply Quote 0
        • maxclaudi
          maxclaudi @Beowolf last edited by

          @beowolf sagte in OpenDTU-onBattery Blockly DPL Ein/Aus:

          @maxclaudi
          Die Umschaltung funktioniert nicht mehr.

          Hat sich etwas geändert?

          Mache ich es auf der OpenDTU Oberfläche wird der dplState unter ioBroker geändert.

          Ändere dplCmd passiert nichts.

          Nein, es hat sich nichts geändert.
          Bei mir funktioniert alles, die Builds sind alle identisch.

          Welche Version verwendest du, und seit wann funktioniert es nicht mehr?
          Wenn du aktuell die letzte Version mit „-1“ nutzt und vorher eine ältere hattest, dann musst du unbedingt den bisherigen Datenpunkt „dplCmd“ löschen.
          Danach – wie in der Anleitung beschrieben – den Datenpunkt manuell neu erstellen.
          Wichtig ist dabei:
          min: -1 und max: 1

          "common": {
            "name": "dplCmd",
            "desc": "DPL on: 1, off: 0",
            "role": "state",
            "type": "number",
            "read": true,
            "write": true,
            "min": -1,
            "max": 1,
            "def": -1
          }
          
          

          Nur einmal dachte ich auch, dass es nicht funktioniert, weil beim manuellen Setzen des dplCmd:1 der dplState kurz auf 1 ging und gleich wieder auf 0 zurücksprang – das lag aber daran, dass mein Script automatisch wieder zurückschaltete.
          Vielleicht ist das bei dir auch der Fall?

          Ansonsten läuft alles unverändert und seit über einem Monat fehlerfrei.
          Von selbst kann sich da eigentlich nichts ändern – ich kann das Problem jedenfalls nicht nachvollziehen.

          B 1 Reply Last reply Reply Quote 0
          • B
            Beowolf @maxclaudi last edited by

            @maxclaudi

            Es war die neue Firmware. Das mit -1 , 0 und 1 hatte ich nicht gelesen.

            Umschaltung funktioniert.

            Was ich jetzt nicht mehr hinbekomme ist das Ein- und Ausschalten mit iqontrol.

            Einschalten geht. Ausschalten leider nicht.

            maxclaudi 1 Reply Last reply Reply Quote 0
            • maxclaudi
              maxclaudi @Beowolf last edited by maxclaudi

              @beowolf sagte in OpenDTU-onBattery Blockly DPL Ein/Aus:

              @maxclaudi

              Es war die neue Firmware. Das mit -1 , 0 und 1 hatte ich nicht gelesen.

              Umschaltung funktioniert.

              Was ich jetzt nicht mehr hinbekomme ist das Ein- und Ausschalten mit iqontrol.

              Einschalten geht. Ausschalten leider nicht.

              edit: dehalb zum Anzeigen und auswerten NUR dplState verwenden und NUR zum schalten dplCmd. Siehe hier

              Damit der gleiche Wert mehrfach gesendet werden kann, braucht man daher einen Hilfsdatenpunkt:

              viel Spaß ☀

              1 Reply Last reply Reply Quote 0
              • B
                Beowolf last edited by

                Was hat das eigentlich mit dem "-1" für einen Grund?

                maxclaudi 1 Reply Last reply Reply Quote 0
                • maxclaudi
                  maxclaudi @Beowolf last edited by maxclaudi

                  @beowolf sagte in OpenDTU-onBattery Blockly DPL Ein/Aus:

                  Was hat das eigentlich mit dem "-1" für einen Grund?

                  @beowolf
                  steht auch in der Anleitung beschrieben:

                  Das „-1“ ist im Prinzip ein kleiner Trick, der wegen der Eigenart des ioBroker MQTT-Adapters nötig ist – vor allem, wenn man mit Blockly arbeitet.

                  Hintergrund:
                  Der MQTT-Adapter sendet einen Wert nur dann, wenn er sich ändert.
                  Wenn also dein Blockly z. B. dplCmd :1 setzt und später (z. B. nach einem OpenDTU-Neustart) wieder dplCmd:1 senden will, passiert – nichts.
                  Der Adapter denkt: „Der Wert ist ja schon 1, also kein Grund, erneut zu senden.“
                  Damit bleibt der Befehl wirkungslos, und der DPL wird nicht eingeschaltet.

                  Darum wird nach jeder Ausführung dplCmd wieder auf -1 zurückgesetzt.
                  So ist beim nächsten Schaltvorgang immer eine Wertänderung vorhanden → der MQTT-Adapter sendet zuverlässig, egal ob der neue Wert gleich dem alten ist.

                  Hinweis zu VIS und iQontrol:
                  Ich hatte anfangs erwähnt, dass man dafür evtl. einen Hilfsdatenpunkt braucht – das war nicht korrekt.
                  In iQontrol (und auch in VIS) funktioniert das völlig problemlos, ohne zusätzlichen Datenpunkt.
                  Man muss nur sauber trennen:

                  • dplCmd → zum Schalten (wird nach dem Senden wieder auf -1 gesetzt)
                  • dplState → zur Anzeige des tatsächlichen Zustands (0 = aus, 1 = ein)

                  In iQontrol kannst du beim Gerät einfach

                  • bei „Datenpunkt für Schalten“ → dplCmd
                  • bei „Datenpunkt für Status“ → dplState
                    eintragen.

                  Dann klappt Ein- und Ausschalten zuverlässig, und der Zustand wird korrekt angezeigt – ganz ohne Hilfsdatenpunkt.

                  Viel Spaß ☀

                  1 Reply Last reply Reply Quote 1
                  • B
                    Beowolf last edited by

                    Danke nochmal für die Erklärung.

                    maxclaudi haselchen 2 Replies Last reply Reply Quote 0
                    • maxclaudi
                      maxclaudi @Beowolf last edited by

                      @beowolf
                      gerne 🙂

                      1 Reply Last reply Reply Quote 0
                      • haselchen
                        haselchen Most Active @Beowolf last edited by

                        @beowolf

                        Huhu,

                        bin zufällig hier auf das Thema gestossen.
                        Lustigerweise habe ich mich genau vor ein paar Tagen damit beschäftigt.
                        Neue grosse PV kommt demnächst und solange will ich mit dem BKW eine 0 Einspeisung machen, weil ich den aktuellen Einspeisewert schon an den Netzbetreiber durchgeben musste und der sich nicht erhöhen soll (kein Bock auf Diskussionen mit dem Netzbetreiber).
                        Nun sehe ich hier gepatchte Firmware und Blocklys....

                        Ich hab die openDTUon Battery auf nen ESP32 S3 gespielt und dort alles eingestellt.
                        (HM600 und HM800)
                        Die Software regelt automatisch den Verbrauch auf 0. Setzt je nach Verbrauch die % der WR. Intervall ist bei 3sek.
                        Das Ganze bilde ich per Widget in der VIS ab.
                        Reine Neugier, warum modifizierte FW und Blockly?
                        DPL regelt alles automatisch, warum also eingreifen?

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          Beowolf @haselchen last edited by

                          @haselchen

                          Darum

                          https://forum.iobroker.net/topic/80855/opendtu-onbattery-blockly-dpl-ein-aus/52?_=1763128950060

                          😆

                          haselchen 1 Reply Last reply Reply Quote 0
                          • haselchen
                            haselchen Most Active @Beowolf last edited by

                            @beowolf

                            Verstädnisfrage.
                            Max. würde meine/deine Anlage 1400 Watt produzieren.
                            Ne Kochplatte , schätze ich mal, verbraucht mehr.
                            Der DPL würde zurecht beide WR auf 100% stellen.
                            Du kämst nie zu einer Einspeisung wenn die Kochplatte an ist, dass kann das BKW gar nicht kompensieren.

                            Hab ich nen Denkfehler?

                            maxclaudi B 3 Replies Last reply Reply Quote 0
                            • maxclaudi
                              maxclaudi @haselchen last edited by

                              @haselchen
                              ja

                              1 Reply Last reply Reply Quote 0
                              • B
                                Beowolf @haselchen last edited by Beowolf

                                @haselchen

                                Nicht unbedingt einen Denkfehler, aber eine Fehler im "Ablauf".

                                Kochplatte an - DPL auf 100% - Kochplatte geht aus - volle 1400 Watt gehen in´s Netz - DPL merkt das - reglet runten - ist auf z.B. 5% - Kochplatte wieder an - Dpl merkt das - regelt wieder rauf - jetzt kommt Wolke - Solarpanel bringt nichts mehr - Dpl merkt das und regelt - Kochplatte wieder aus - usw. usw. usw.

                                Wenn sich Zustände in kurzer Zeit sehr oft verändern, ist DPL vollkommen überfordert.

                                Sammel mal Daten und schaue dir das mit Grafana an.

                                Das alles bezieht sich bei in aller Regel in der Mittagszeit. Immer dann wenn große Lasten geschaltet werden.
                                Es gibt auch Videos auf Youtube die sich mit der Regelung beschäftigen das gerade neue Kochfelder solche Sachen vollkommen durcheinander bringen. Speziell bei Kochfeldern die getacktet sind. So kann es passieren das immer gerade dann "geschaut" wird wenn die Platte aus ist, obwohl sie real aus 70 % Leistung fährt.

                                z.B.
                                https://www.youtube.com/watch?v=wxP5uMdtMmk

                                haselchen 1 Reply Last reply Reply Quote 1
                                • maxclaudi
                                  maxclaudi @haselchen last edited by maxclaudi

                                  @haselchen sagte in OpenDTU-onBattery Blockly DPL Ein/Aus:

                                  Die Software regelt automatisch den Verbrauch auf 0. Setzt je nach Verbrauch die % der WR. Intervall ist bei 3 Sekunden.

                                  In der Praxis wird es mit der „DPL-0“-Regelung schnell schwierig, sobald taktende oder leistungsstarke Verbraucher und/oder wechselhaftes Wetter ins Spiel kommen.
                                  Typische Beispiele: Kochfelder, Wasserkocher, Mikrowelle, Geschirrspüler, Waschmaschine, Bügeleisen, Klima usw.

                                  Diese Geräte takten ihre Leistung im Sekunden- oder Subsekundenbereich. Die Wechselrichter und die Regelsoftware reagieren jedoch mit deutlicher Trägheit und in Intervallen von mehreren Sekunden.
                                  Dadurch versucht die DPL permanent, diese schnellen Lastsprünge auszugleichen – was technisch nicht möglich ist. Das Ergebnis: die Leistung des WR geht ständig unkontrolliert rauf und runter, statt stabil zu bleiben. Ein dauerhaftes Hochregeln auf 100 % passiert dabei nicht, weil die DPL immer wieder auf neue Lastwechsel reagiert.

                                  Über MQTT lässt sich der Modus zwar steuern, aber auch das ist in der Praxis nicht immer stabil:

                                  • WLAN-Schwankungen
                                  • Einstellungen/Änderungen in der WebUI
                                  • Reset / Neustart
                                  • Wiederverbindung von ODtu-oB

                                  können dazu führen, dass der Modus zurückgesetzt oder DPL ausgeschaltet wird.

                                  In der Original-Firmware bedeutet ein ausgeschalteter DPL: der solarbetriebene Wechselrichter fällt automatisch auf minimale Leistung zurück.

                                  @haselchen sagte in OpenDTU-onBattery Blockly DPL Ein/Aus:

                                  Reine Neugier: Warum modifizierte Firmware und Blockly?

                                  Die modifizierte Firmware schaltet bei solarbetriebenen Wechselrichtern sofort und zuverlässig auf 100 % Leistung, sobald DPL deaktiviert wird.
                                  Das ist besonders hilfreich bei getakteten oder stark wechselnden Verbrauchern, weil man in diesen Momenten stabile maximale Leistung bekommt – ohne ständiges Hin- und Herregeln.

                                  Wichtig dabei:
                                  Auch wenn die volle PV-Leistung den aktuellen Verbrauch nicht vollständig deckt, liefert der WR bei ausgeschaltetem DPL trotzdem konstant die maximale verfügbare Leistung.
                                  Keine Schwankungen, keine Abregelung – einfach das Maximum, was gerade möglich ist.

                                  In Kombination mit Blockly (und z. B. VIS) kann man DPL je nach Situation sehr einfach deaktivieren, um volle Leistung zu erhalten, und später wieder sauber aktivieren.
                                  So überbrückt man genau die Szenarien, in denen die automatische DPL-Regelung durch Takten und Systemträgheit ohnehin nicht sinnvoll arbeitet.

                                  1 Reply Last reply Reply Quote 0
                                  • haselchen
                                    haselchen Most Active @Beowolf last edited by haselchen

                                    @beowolf

                                    Hab ich 2 Tage lang gemacht.
                                    Bisher alles tutti.
                                    Wie gesagt, der Intervall steht bei 3sek.
                                    Ich kontrolliere am Zweirichtungszähler den Einspeisewert .
                                    Der hat sich seit der Durchgabe an den Netzbetreiber von vor ein paar Tagen nicht geändert.
                                    Kann nur mutmaßen.
                                    Ich habe die neueste Firmwaren von openDTUonBattery und in den DPL Einstellungen für beide WR alles für mich perfekt eingestellt.

                                    @maxclaudi

                                    Mit dem technischen Verständnis in der Hinsicht, liegst Du vermutlich weit vor mir.
                                    Die neuste FW ist vom 11.10.25.
                                    Ich hab, wie gesagt , lange zugesehen, wie sich die Werte ändern.
                                    Und dieses schnelle hin und herregeln konnte ich nicht beobachten. Stattdessen aber, dass die Software den WR höher geregelt hat, obwohl nicht viel Strom über die Panels generiert wurde. Das ist in der Hinsicht gut, dass es einen Puffer gibt und er nicht im Sekundentakt die Regelung vornehmen muss.

                                    Wie gesagt, meine Einstellungen funktionieren (für mich) super.
                                    Natürlich wird man nie bei permanent 0 landen, aber bei Sonnenschein gestern war ich bei +10 und -10 in der Range. Das passt für mich.

                                    B maxclaudi 2 Replies Last reply Reply Quote 0
                                    • B
                                      Beowolf @haselchen last edited by

                                      @haselchen

                                      Das ist auch vollkommen ok. Ich glaube nichts ist in diesem Bereich ist so individuell wie der Aufbau und Ausrichtung der Solarpanels, dem WR, dem täglicher Ablauf oder die Elektrogeräte im Haushalt.
                                      Wenn das bei Dir alles so läuft - einfach freuen. 😊

                                      Ich bin froh, das ich hier die Möglichkeit habe es einfach zu deaktivieren. Und ganz wichtig, das der WAF zu 100% efüllt ist.

                                      haselchen 1 Reply Last reply Reply Quote 1
                                      • haselchen
                                        haselchen Most Active @Beowolf last edited by

                                        @beowolf

                                        Ich musste bei Dir 2mal hingucken 🙂
                                        Wir haben das gleiche Setup oder?
                                        HM600 und HM800 und demnächs ne PV Anlage und solange 0 Einspeisung, bis die kommt?

                                        B 1 Reply Last reply Reply Quote 0
                                        • maxclaudi
                                          maxclaudi @haselchen last edited by maxclaudi

                                          @haselchen sagte in OpenDTU-onBattery Blockly DPL Ein/Aus:

                                          Die neuste FW ist vom 11.10.25.

                                          Alle Firmwareversionen sind nun auch auf dem aktuellen Stand 11.10.25
                                          ab hier nachfolgend.

                                          Wie gesagt, meine Einstellungen funktionieren (für mich) super.
                                          Natürlich wird man nie bei permanent 0 landen, aber bei Sonnenschein gestern war ich bei +10 und -10 in der Range. Das passt für mich.

                                          wenn du zufrieden bist, gibt es keinen Grund was zu ändern 🙂

                                          1 Reply Last reply Reply Quote 1
                                          • B
                                            Beowolf @haselchen last edited by

                                            @haselchen
                                            Ich habe sechs mal 430 Watt auf dem Gartenhaus. Macht 2580 Watt. Die hängen an zwei HM800 und einem HM600. Alle drei sind auf 1000Watt "aufgebohrt". 😆

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            971
                                            Online

                                            32.4k
                                            Users

                                            81.3k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            81
                                            3334
                                            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