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

    • 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

      Also, im mqtt-explorer kann ich den 1 oder 0 senden. Kommt alles direkt in ioBrooker an.

      Wenn ich in der webUI von OpendtuonBatterie den DPL an und aus schalte kommte es ja auch in ioBroker an. Dort wechselt ja der dplState entsprechend auf 0 oder 1.

      Ich habe den Eindruck, das OpenDTUonBatterie den dplCmd-Befehl nicht mitbekommt.

      Wie müssen die Einstellung in dem mqtt-Bereich bei opendtu denn aussehen?

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

        @beowolf
        Das klingt alles absolut korrekt bei dir 👍
        Wenn dplState im ioBroker auf 0/1 reagiert, dann funktioniert die Kommunikation perfekt.
        Der dplCmd-Befehl kommt also an – nur siehst du das in der WebUI nicht sofort, weil sich die Seite nicht automatisch aktualisiert, wenn von außen (über MQTT) geschaltet wird.

        So kannst du es sicher nachvollziehen:

        1. Schau zuerst, was aktuell im ioBroker steht:
          Wenn dplState = 0, ist DPL aus.

        2. Setze jetzt manuell dplCmd = 1.
          → DPL wird eingeschaltet.
          → Kurz danach sollte dplState auch auf 1 springen.

        3. Jetzt in der WebUI oben auf „Live-Ansicht“ klicken.
          Danach zurück zu „Einstellungen → Dynamic Power Limiter“.
          Erst jetzt siehst du dort den neuen Zustand korrekt (Schieberegler auf „ein“).

        4. Wenn du wieder ausschalten willst:
          → dplCmd = 0 setzen
          → dplState geht auf 0
          → Danach wieder den gleichen WebUI-Wechsel machen (Live-Ansicht → DPL-Seite),
          dann zeigt’s auch dort wieder richtig „aus“.

        Wichtig:
        Die Seite „Dynamic Power Limiter Einstellungen“ lädt sich nicht neu, wenn über MQTT geschaltet wird –
        das ist also nur eine nicht richtige Anzeige, wenn die Seite nicht über Wechsel zu einer anderen Seite der Frimwar zwischendrin sattgefunden hat.

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

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

          Setze jetzt manuell dplCmd = 1.
          → DPL wird eingeschaltet.
          → Kurz danach sollte dplState auch auf 1 springen.

          Genau das passiert nicht.

          Das sich die Seite nicht automatisch aktualisier ist schon klar.

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

            @beowolf
            Bitte Mqtt Teil- Screenshot oder Beschreibung, wie mqtt-Einstellung unter MQTT bei OpenDtu eingestellt ist z.B.:
            03b5e555-6055-497a-b443-fe3b12b23c7a-image.png


            Wenn über WebUI geschaltet wird, dann zeigt auch dplState:1 oder dplState:0 richtig an?

            ja?:
            Dann als Nächstes:

            1. OpenDTU-onBattery Neustart über die WebUI neu starten.

            1. Dynamic Power Limiter einmal manuell in der WebUI umschalten und auf „Speichern“ klicken:
            • Wenn dplCmd zu Beginn 0 ist: in WebUi DPL ausschalten + speichern.
            • Wenn dplCmd zu Beginn 1 ist: in WebUi DPL einschalten + speichern.
            • Dies ist wichtig, weil erst beim Speichern das ESP-Device das dplCmd-Topic abonniert und auf Steuerbefehle reagiert.

            1. In ioBroker prüfen und ggf. gegensteuern:
            • Kontrolliere über den Datenpunkt dplState, ob der Status korrekt übernommen wurde (0 = aus, 1 = ein).
            • Jetzt kannst du den Datenpunkt dplCmd setzen (0 = aus, 1 = ein), um den DPL ein- oder auszuschalten.
            • Normalerweise ändert sich dadurch nichts, wenn der Zustand schon korrekt ist, aber so stellst du sicher, dass das System sauber synchronisiert ist.

            1. WebUI-Zustand aktualisieren:
            • Auf „Live-Ansicht“ klicken, dann zurück zu Einstellungen → Dynamic Power Limiter, um den aktuellen Zustand korrekt in der WebUI angezeigt zu bekommen.
            B 1 Reply Last reply Reply Quote 0
            • B
              Beowolf @maxclaudi last edited by

              @maxclaudi

              Habe ich jetzt alles schon zig mal gemacht.

              Bist du ganz sicher, das du die richtige Firmware eingstellt hast?

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

                Hey @beowolf,

                die Firmware, die du nutzt, ist korrekt – das können wir also ausschließen. 👍
                Was jetzt noch wichtig ist, damit das Schalten über dplCmd zuverlässig funktioniert:

                1. OpenDTU neu starten (über WebUI), damit MQTT sauber verbunden ist.

                2. Dynamic Power Limiter einmal manuell über WebUI schalten und speichern – das Speichern ist entscheidend, damit das ESP-Device das dplCmd-Topic abonniert.

                • Wenn dplCmd am Anfang 0 zeigt → in WebUI ausschalten + speichern
                • Wenn dplCmd am Anfang 1 zeigt → in WebUI einschalten + speichern
                1. Live-Ansicht aufrufen, kurz warten, und in ioBroker kontrollieren, dass dplState den aktuellen Wert anzeigt.

                2. Danach kannst du über dplCmd in ioBroker schalten. Kurz darauf sollte dplState den neuen Zustand übernehmen.

                3. WebUI-Anzeige: die Seite aktualisiert sich nicht automatisch. Einfach auf „Live-Ansicht“ klicken und dann zurück in die DPL-Einstellungen, um den korrekten Zustand zu sehen.

                Wenn all das passiert, funktioniert MQTT sauber – und du kannst alles über den Datenpunkt dplCmd steuern.


                Optionaler Test über MQTT-Explorer (funktioniert das?):

                • Öffne den MQTT-Explorer und finde Topic <baseTopic>/dpl/dplCmd.
                  oder gib es direkt ein.

                • Sende probeweise eine 1 oder 0 (entgegengesetzt schalten).

                • Wenn das ESP-Device reagiert, sollte dplState kurz danach den neuen Wert anzeigen.

                Wenn das klappt, ist die MQTT-Seite der OpenDTU korrekt eingerichtet, und anschließend kannst du in ioBroker mit dplCmd schalten.

                Damit iobroker-Adapter ausgeschlossen werden kann.

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

                  @maxclaudi

                  Das was du da schreibst, habe ich alles schon gemacht. Es funktioniert einfach nicht.

                  Schade.

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

                    @beowolf
                    Hast du das Script mit den curl-Requests deaktiviert?
                    Es darf nicht gleichzeitig laufen, sonst können die Befehle durcheinanderkommen.

                    Wenn das Script deaktiviert ist, könntest du zur Sicherheit einmal über den MQTT-Explorer direkt auf dplCmd schalten (0 oder 1).
                    So lässt sich prüfen, ob die MQTT-Verbindung und das Abonnieren des Topics korrekt funktionieren.

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

                      @maxclaudi

                      Skript was das erste was ich gelöscht hatte.

                      Könntest du mal von dem dplCmd Datenpunkt Bildchen von den Einstellungen bei "Objekt bearbeiten" machen?
                      Also von dem Tab "Allgemein", "Objektdaten" und " Zustand"?

                      all.jpg
                      ob.jpg
                      zu.jpg

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

                        edit: Bilder entfernt.

                        B 1 Reply Last reply Reply Quote 0
                        • 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.

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          469
                                          Online

                                          32.3k
                                          Users

                                          81.0k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          54
                                          2435
                                          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