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

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

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    OpenDTU-onBattery Blockly DPL Ein/Aus

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

      @maxclaudi

      👍 👍 👍 👍 😳 😳 😳 😳 👍 👍 👍 👍

      Habe die Lösung gefunden.

      Der Datenpunkt "dplCmd" MUSS manuell angelegt werden. Wird er automatisch erzeugt, funktioniert es nicht.

      Warum auch immer.

      Vielen Danke für die Hilfe und Geduld.

      Grüße

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

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

        @maxclaudi

        👍 👍 👍 👍 😳 😳 😳 😳 👍 👍 👍 👍

        Habe die Lösung gefunden.

        Der Datenpunkt "dplCmd" MUSS manuell angelegt werden. Wird er automatisch erzeugt, funktioniert es nicht.

        Warum auch immer.

        Vielen Danke für die Hilfe und Geduld.

        Grüße

        Freut mich riesig, dass es jetzt läuft! 😄🎉
        Super, dass du drangeblieben bist und nicht aufgegeben hast – echt stark! 👍👍👍

        Bitte denk nur dran:
        ➡️ Das alte curl-Script ab jetzt nicht mehr gleichzeitig verwenden, sonst kommen die Befehle durcheinander.

        Der Code hat mich über zwei Wochen Arbeit gekostet (weil mir da niemand helfen konnte 😅),
        deshalb freut’s mich umso mehr, wenn er bei dir jetzt sauber funktioniert!

        Tipp zum Schluss: nicht zu schnell oder zu oft hin- und herschalten 😉
        Ab jetzt lässt sich der DPL ganz bequem über den Datenpunkt steuern.

        Viel Spaß damit! ☀

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

          @maxclaudi

          Ich habe das in erster Linie für meine Frau benötigt.

          https://forum.iobroker.net/topic/82305/einfache-solarleistungsanzeige/2?_=1759855900680

          Ich hatte ihr ein kleines Display in die Küche gestellt um einfach zu entscheiden das alles was von den Solarpanels kommt direkt zu den Herdplatten fließt. Denn wenn der DPL angeschaltet bleibt, regelt der sich halb zu tode.

          Der WAF ist sehr wichtig bei unserem Hobby. 😳

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

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

            Der WAF ist sehr wichtig bei unserem Hobby. 😳

            💯 👍 🙂

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

              Ob deine Funktion wohl in die "offizielle" Version übernommen wird?

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

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

                Ob deine Funktion wohl in die "offizielle" Version übernommen wird?

                @beowolf
                Ich denke eher nicht, dass meine Funktion in die offizielle Version übernommen wird.
                Ich hatte dazu ein Request gestellt – die Entwickler sahen darin jedoch keine Notwendigkeit, da das Verhalten beim Deaktivieren des DPL sehr individuell sei und man nicht alle Wünsche abbilden könne.

                Daraufhin habe ich mich selbst tiefer in den Code eingearbeitet und eine eigene Lösung umgesetzt, die in meiner Firmware-Variante verfügbar ist.
                Das war zwar einiges an Arbeit, läuft aber inzwischen stabil und wie gewünscht.

                Inzwischen habe ich gesehen, dass im offiziellen Umfeld an genau dem Bereich gearbeitet wird, den ich mit meinen Änderungen erweitert hatte.
                Es gibt sogar Commits auf meinem maxLimit- und switchLimit-Branch von Mitgliedern des OpenDTU-onBattery-Teams.
                Ob das direkt übernommen wird oder nur als Anregung dient, bleibt abzuwarten – schön zu sehen, dass das Thema offenbar doch aufgegriffen wurde.

                Da GitHub künftig verpflichtend eine 2FA-Authentifizierung (Zwei-Faktor-Authentifizierung) voraussetzt, werde ich meine Aktivitäten dort einstellen.

                Hier im Forum geht’s aber trotzdem weiter – mit Austausch, Ideen und vielleicht auch neuen Projekten.
                Bei Fragen oder Interesse kann man sich gern hier an mich wenden.

                Also: nicht abschalten, hier geht’s ja weiter 😉

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

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

                  die Entwickler sahen darin jedoch keine Notwendigkeit

                  Dann sollten die sich das alles mal anschauen, wenn zwei Kochplatten unmotiviert an und aus gehen um Kartoffeln zu kochen und zwei Schnitzel in der Pfanne zu braten. Wenn dann noch ein paar kleine Wolken am Himmel vor sich hin dümpeln ist alles zu spät.
                  Ich hatte mir das mal einige Zeit mit Grafana angeschaut. Es war keine Seltenheit, das der DPL gerade wieder unter geregelt hat, weil zu viel Sonne da war, und sich dann die Kochplatten wieder gemeldet haben. Also wieder rauf bis zur nächsten Wolke usw. usw..

                  Da ist es viel einfacher den DPL zu deaktivieren, dann gehen halt hin und wieder 1,8 KW ins Netz wo sie eigentlich nicht hin dürfen.

                  Es ist ja schön das es den DPL gibt, aber man muß auch die Realität im Auge behalten.🙄

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

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

                    Es war keine Seltenheit, das der DPL gerade wieder unter geregelt hat, weil zu viel Sonne da war, und sich dann die Kochplatten wieder gemeldet haben. Also wieder rauf bis zur nächsten Wolke usw. usw..

                    Dafür soll mqtt Mode benutzt werden.
                    MQTT Mode 0/2 funktioniert, hat aber Einschränkungen: Neustarts, WiFi-Abbrüche oder Änderungen in der WebUI setzen den Mode einfach zurück auf 0.
                    Man hat auch wieder das Pending-Problem mit längerem schalten.

                    Da ist es viel einfacher den DPL zu deaktivieren

                    So sehe ich das auch und ist "kein Fehler" im System.
                    Ohne große zusätzliche, fehleranfällige Steuerung, sofort die volle Leistung da.
                    So soll es sein, wenn man sich das wünscht.


                    Ein Schalter, wie in meiner Switch-Version, oder maxLimit, ist dagegen relativ einfach umzusetzen, sobald man den Code verstanden hat – der Schaltzustand bleibt dabei dauerhaft erhalten, auch nach Neustarts, WiFi-Abbrüchen oder Änderungen in der WebUI.
                    Schaltet auch sofort (bei Deaktivierung des DPL) auf maximales Limit.

                    Es wäre interessant, die Auswahl den Usern selbst überlassen zu können.

                    Besonders bei "solarbetriebenen“ Wechselrichtern macht das automatische Setzen auf das unterste Limit nach DPL-Deaktivierung wenig Sinn.


                    Da ist es viel einfacher den DPL zu deaktivieren, dann gehen halt hin und wieder 1,8 KW ins Netz wo sie eigentlich nicht hin dürfen.

                    Tatsächlich fließt dabei nur sehr wenig ins Netz – umgerechnet etwa 0,15 kWh bei 5 Minuten.

                    Naja – unsere Lösung funktioniert, und darauf kommt es an. 😉

                    maxclaudi 1 Reply Last reply Reply Quote 1
                    • 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 1 Reply Last reply Reply Quote 0
                                    • maxclaudi
                                      maxclaudi @Beowolf last edited by

                                      @beowolf
                                      gerne 🙂

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      975
                                      Online

                                      32.4k
                                      Users

                                      81.2k
                                      Topics

                                      1.3m
                                      Posts

                                      4
                                      62
                                      3067
                                      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