Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. OpenDTU-onBattery Blockly DPL Ein/Aus

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    872

  • Neuer ioBroker-Blog online: MonatsrĂŒckblick MĂ€rz/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.0k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    944

OpenDTU-onBattery Blockly DPL Ein/Aus

Geplant Angeheftet Gesperrt Verschoben Blockly
98 BeitrÀge 5 Kommentatoren 9.0k Aufrufe 3 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • maxclaudiM maxclaudi

    @beowolf

    edit:
    update 06.03.2026 10:27h
    2025.10.11-patch_DplOff-Limit_maximum-MQTT-maxclaudi-Rev_2
    final version
    fĂŒr verschiedene Builds ab
    https://forum.iobroker.net/topic/80855/opendtu-onbattery-blockly-dpl-ein-aus/86


    historisch:

    habe eine OpenDTU-OnBattery-maxLimit-Version veröffentlicht.

    Es gibt 2 Versionen zur Auswahl:


    Version: maxLimit:

    Beim Deaktivieren vom Dynamic-Power-Limiter werden die "solarbetriebenen" Wechselrichter" immer auf maximales Limit gesetzt (statt wie im normalen Repo auf minimales Limit).
    "batteriebetriebene" Wechselrichter: wie bisher im Original (werden abgeschaltet).

    Alle anderen Funktionen bleiben gleich.


    Version: switchLimit

    Hier kann mit Schalter im WebUi gewÀhlt werden.
    Betrifft nur "solarbetriebene Wechselrichter".
    Ist der Schalter aktiviert, dann wird beim Deaktivieren vom Dynamic Power Limiter auf maximales Limit gesetzt.

    Ist der Schalter deaktiviert, dann wird beim Deaktivieren vom DPL auf minimales Limit gesetzt.

    Das Umschalten: Deaktiv oder Aktiv muss auch gespeichert werden, wie DPL ein/aus.
    Das macht der vorhandene "Speichern" Button fĂŒr Alle Einstellungen vom DPL inkl. der Einstellung des neuen Schalters.

    !DPL02.png

    !xDPL01.png

    FĂŒr mich ist die Version mit Schalter zwar nicht nötig, aber vielleicht gibt es jemand der die Möglichkeit zum Umschalten haben möchte :-)


    Fertige (bin) Releases zum flashen

    • ĂŒber WebUi Firmware-Aktualisierung also Firmware hochladen
    • oder zum direkten flashen beim ersten mal als factory.bin

    fĂŒr die meisten bzw. ĂŒblichen Boards sind vorhanden.


    Damit lĂ€sst sich die Blockly-Vorlage zum ein-/auschalten des DPL ĂŒber einen Datenpunkt gut verwenden.

    Genug gearbeitet, jetzt haben Alle was davon.

    viel Spaß :-)


    edit 07.09.2025, Update auf github:

    Vorherige Releases:
    bin-Firmware-Versionen sind auf der Basis von der stable Version OpenDTU-OnBattery 2025.06.11

    Neue zusÀtzliche Releases:
    bin-Firmware-Versionen auf der Basis von der developer Version OpenDTU-OnBattery 2025.06.11 - Stand 06.09.2025

    maxclaudiM Offline
    maxclaudiM Offline
    maxclaudi
    schrieb am zuletzt editiert von maxclaudi
    #28

    Update, aktuelle Releases.


    Switch-Version
    ĂŒber WebUi kann jederzeit gewĂ€hlt werden:
    beim Ausschalten von Dynamic Power Limiter Ausgangsleistung entweder

    • maximale Ausgangsleistung an den Wechselrichtern oder
    • minimale Ausgangsleistung (wie bisher original):

    2025.09.16-patch_DplOff-switchLimit-maxclaudi-dev20250927


    maxLimit Version

    • beim Ausschalten von Dynamic Power Limiter: immer maximale Ausgangsleistung an den Wechselrichtern.

    2025.09.16-patch_DplOff-maxLimit-maxclaudi-dev20250927
    meine bvorzugte Version :-)


    edit:
    Dieses Projekt wird kĂŒnftig nur noch privat weitergefĂŒhrt.
    Auf GitHub bleiben die bisher veröffentlichten Versionen
    (maxLimit-Version / Switch-Version) weiterhin verfĂŒgbar —
    ohne die zusÀtzliche MQTT-Funktion zum komfortablen Ein- und Ausschalten
    (siehe nÀchster Post).

    BegrĂŒndung:
    GitHub verlangt kĂŒnftig verpflichtend die Aktivierung der Zwei-Faktor-Authentifizierung (2FA)
    fĂŒr alle aktiven Entwicklerkonten.
    Da ich diese Anforderung aus persönlichen und organisatorischen GrĂŒnden nicht umsetzen werde,
    wird das Projekt auf GitHub hiermit eingestellt.

    Der vorhandene Quellcode bleibt zu Dokumentationszwecken öffentlich.
    ZukĂŒnftige Weiterentwicklungen oder Support ĂŒber GitHub sind nicht vorgesehen.
    Das Projekt selbst bleibt auf GitHub jedoch eingefroren.

    Bei Interesse können sich Anwender gerne direkt an mich wenden.

    Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

    1 Antwort Letzte Antwort
    0
    • B Beowolf

      Das ist ja Super. Die Umschaltung erfolgt wirklich direkt. Vielen, vielen Dank dafĂŒr.

      Im Skript darf doch nur die 100% Geschichte raus. Alles andere muß so bleiben.

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="L=IeP_E{`;v.^#v:zZ)2">jsonObj</variable>
          <variable id="+-}`+im{K3Jj+XIEO6#j">attr</variable>
          <variable id="ulw#]uAEr8ao^|N_NWy}">val</variable>
          <variable id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</variable>
          <variable id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</variable>
          <variable id="Q[Ul.eSqTa`ja|Cts-+/">WR1 HM-1000_serial</variable>
          <variable id="]TAF~$|vQbu%71?%TIMg">WR2 HM-1000_serial</variable>
          <variable id="4eljrs#2Fi];mvA0WV6L">WR3 HM-1000_serial</variable>
          <variable id="yU6fmm*ctEK;X.gC*Cng">WR4 HM-1000_serial</variable>
          <variable id="2|vbm;5buC6^$eogp=fe">urlDPLstate</variable>
          <variable id="PWsI)BqL)EeZPzj!8-VY">set</variable>
          <variable id="JppG`(9.sfDt)j^gha}{">cUrlLimitPart1</variable>
          <variable id="Xy47v*SILC`=7N1mM,:5">cUrlLimitPart2</variable>
          <variable id="fb8(CemIXpTZO:5?3eho">WR1 HM-1000_curl</variable>
          <variable id="b;`WR[z]dikov!wE@,}j">WR2 HM-1000_curl</variable>
          <variable id="~^lm~JreXhZ81X6{yXWg">WR3 HM-1000_curl</variable>
          <variable id="h/:^mLws30u))2ZimsSs">WR4 HM-1000_curl</variable>
          <variable id="_+8y375~59B=8rd!@Ae%">jsonObjekt</variable>
        </variables>
        <block type="procedures_defcustomnoreturn" id="nxZk[TB}x%yvkJ058U]o" x="213" y="-137">
          <mutation statements="false">
            <arg name="jsonObj" varid="L=IeP_E{`;v.^#v:zZ)2"></arg>
            <arg name="attr" varid="+-}`+im{K3Jj+XIEO6#j"></arg>
            <arg name="val" varid="ulw#]uAEr8ao^|N_NWy}"></arg>
          </mutation>
          <field name="NAME">change</field>
          <field name="SCRIPT">anNvbk9ialthdHRyXSA9IHZhbDs=</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion 
</comment>
        </block>
        <block type="comment" id="g{c,O//*067~CDT{26F+" x="212" y="-112">
          <field name="COMMENT">OpenDTUonBattery&amp;#10;DPL Ein/Aus</field>
          <next>
            <block type="comment" id="wPs7.T(3#lmg-Q#YnMcz">
              <field name="COMMENT">IP von OpenDTUonBattery:</field>
              <next>
                <block type="variables_set" id="xiC72+QQD{FQ44VC6wQn">
                  <field name="VAR" id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</field>
                  <value name="VALUE">
                    <block type="text" id="3|rd+!6W]T02z}tGd1/m">
                      <field name="TEXT">192.168.xx.xxx</field>
                    </block>
                  </value>
                  <next>
                    <block type="comment" id="8!|A_f5hyHJr/:f!|;r.">
                      <field name="COMMENT">OpenDTUonBattery Passwort:</field>
                      <next>
                        <block type="variables_set" id="ItJFflir$91[$;pF5+MA">
                          <field name="VAR" id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</field>
                          <value name="VALUE">
                            <block type="text" id="xYm]l*(;=w@0xJQnWi5-">
                              <field name="TEXT">Beowolf503588</field>
                            </block>
                          </value>
                          <next>
                            <block type="comment" id="(Mkj3qMZry-SXoV#TG-e">
                              <field name="COMMENT">serial HM</field>
                              <next>
                                <block type="variables_set" id="s*[FyKXx,06qe75!Ql(H">
                                  <field name="VAR" id="Q[Ul.eSqTa`ja|Cts-+/">WR1 HM-1000_serial</field>
                                  <value name="VALUE">
                                    <block type="text" id="2sNdysyulvZDNM6yeP8H">
                                      <field name="TEXT">11419xx</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="variables_set" id="~/@Acy]v_1,b~:Bn[L_+">
                                      <field name="VAR" id="]TAF~$|vQbu%71?%TIMg">WR2 HM-1000_serial</field>
                                      <value name="VALUE">
                                        <block type="text" id="f;}RPMU,=+?6Q7VrPX[$">
                                          <field name="TEXT">11419xx</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="variables_set" id="XI+~|V]7r!Kau}Xh8`cs">
                                          <field name="VAR" id="4eljrs#2Fi];mvA0WV6L">WR3 HM-1000_serial</field>
                                          <value name="VALUE">
                                            <block type="text" id="4o,d$])#Rr|W-+g=8#5r">
                                              <field name="TEXT">11417xx</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="variables_set" id="4L=wN^,g:oz:OQikS*6@">
                                              <field name="VAR" id="yU6fmm*ctEK;X.gC*Cng">WR4 HM-1000_serial</field>
                                              <value name="VALUE">
                                                <block type="text" id="2jRM6}4{ndN1e8lQqLzw">
                                                  <field name="TEXT">11418xx</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="comment" id="8ezl|ED@6X29f4k@:.2H">
                                                  <field name="COMMENT">----</field>
                                                  <next>
                                                    <block type="variables_set" id="!#IE.`!)HPf,NcPW*miy">
                                                      <field name="VAR" id="2|vbm;5buC6^$eogp=fe">urlDPLstate</field>
                                                      <value name="VALUE">
                                                        <block type="text_join" id="F#[x6:MOpP{a#hljyq@2">
                                                          <mutation items="5"></mutation>
                                                          <value name="ADD0">
                                                            <block type="text" id="!@~5;?O8`oIO%oN]bLJa">
                                                              <field name="TEXT">curl -u "admin:</field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="variables_get" id="SFT0:Zq378qj5]2?a5#b">
                                                              <field name="VAR" id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD2">
                                                            <block type="text" id="5}ok+uklC%b/F}gtZr`^">
                                                              <field name="TEXT">" http://</field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD3">
                                                            <block type="variables_get" id="C|ac)ks!*i8cZS5zb!0?">
                                                              <field name="VAR" id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD4">
                                                            <block type="text" id="!=iiY$6m(O#=Q|km-7W1">
                                                              <field name="TEXT">/api/powerlimiter/config</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="variables_set" id="Nw*-3DKlvV=)l.++!yg%">
                                                          <field name="VAR" id="PWsI)BqL)EeZPzj!8-VY">set</field>
                                                          <value name="VALUE">
                                                            <block type="text_join" id="b3+b3^R@5s5Vbpj^o9!6">
                                                              <mutation items="2"></mutation>
                                                              <value name="ADD0">
                                                                <block type="variables_get" id="%UJkDROf_mMO^oE4EKW.">
                                                                  <field name="VAR" id="2|vbm;5buC6^$eogp=fe">urlDPLstate</field>
                                                                </block>
                                                              </value>
                                                              <value name="ADD1">
                                                                <block type="text" id="o}*[n$;A?-]x1P{Ppan.">
                                                                  <field name="TEXT"> -d 'data=</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="variables_set" id="1%5eOCEM.zYy[-sZ0a43">
                                                              <field name="VAR" id="JppG`(9.sfDt)j^gha}{">cUrlLimitPart1</field>
                                                              <value name="VALUE">
                                                                <block type="text_join" id="B,v7UaJQkq-DSzv41b;v">
                                                                  <mutation items="5"></mutation>
                                                                  <value name="ADD0">
                                                                    <block type="text" id=";4j$FAn0X}CSE_D5:/kl">
                                                                      <field name="TEXT">curl -u "admin:</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ADD1">
                                                                    <block type="variables_get" id="Ea#Og5Jr^hwL!_Oh-[Ua">
                                                                      <field name="VAR" id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ADD2">
                                                                    <block type="text" id="kBsI#4)FR#3@EAh.=@b]">
                                                                      <field name="TEXT">" http://</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ADD3">
                                                                    <block type="variables_get" id=",/9?^Tx*?hC1YP`-X]37">
                                                                      <field name="VAR" id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ADD4">
                                                                    <block type="text" id="p5zvA0V{e$4V$#_9gWcY">
                                                                      <field name="TEXT">/api/limit/config -d 'data={"serial":"</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <next>
                                                                <block type="variables_set" id="u|60ca%8U|+rvrL1*bdK">
                                                                  <field name="VAR" id="Xy47v*SILC`=7N1mM,:5">cUrlLimitPart2</field>
                                                                  <value name="VALUE">
                                                                    <block type="text" id="`Z^Zv4qi(GN;drYs.f6I">
                                                                      <field name="TEXT">","limit_value":100,"limit_type":1}'</field>
                                                                    </block>
                                                                  </value>
                                                                  <next>
                                                                    <block type="variables_set" id="YGofdo8=[F6.o!Qp^XF+">
                                                                      <field name="VAR" id="fb8(CemIXpTZO:5?3eho">WR1 HM-1000_curl</field>
                                                                      <value name="VALUE">
                                                                        <block type="text_join" id="zv%(}:f|zmP5HG:fD09(">
                                                                          <mutation items="7"></mutation>
                                                                          <value name="ADD0">
                                                                            <block type="text" id="XAm?]VyB/h{~mRaM1bsf">
                                                                              <field name="TEXT">curl -u "admin:</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="ADD1">
                                                                            <block type="variables_get" id="%XVNmv0mDVw(k}BQGk_?">
                                                                              <field name="VAR" id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="ADD2">
                                                                            <block type="text" id="^p-]`Q~oVv2Eh[045E)c">
                                                                              <field name="TEXT">" http://</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="ADD3">
                                                                            <block type="variables_get" id="T{Tp#*68~o$/f%-3@4=!">
                                                                              <field name="VAR" id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="ADD4">
                                                                            <block type="text" id=")l]/Nhc,h|Rg:#*Ka0Q(">
                                                                              <field name="TEXT">/api/limit/config -d 'data={"serial":"</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="ADD5">
                                                                            <block type="variables_get" id="-iy+n+|)dc=K/8NqL~*E">
                                                                              <field name="VAR" id="Q[Ul.eSqTa`ja|Cts-+/">WR1 HM-1000_serial</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="ADD6">
                                                                            <block type="text" id=".ZX[eqqM@Hf-6HHnLe[X">
                                                                              <field name="TEXT">","limit_value":100,"limit_type":1}'</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                      <next>
                                                                        <block type="variables_set" id="itIS@8Y63,ktSrsgW5.F">
                                                                          <field name="VAR" id="b;`WR[z]dikov!wE@,}j">WR2 HM-1000_curl</field>
                                                                          <value name="VALUE">
                                                                            <block type="text_join" id="*I6(R5oBcHQuA=dX6mSv">
                                                                              <mutation items="7"></mutation>
                                                                              <value name="ADD0">
                                                                                <block type="text" id="oUpBy-8zKLYpodhxSIf9">
                                                                                  <field name="TEXT">curl -u "admin:</field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="ADD1">
                                                                                <block type="variables_get" id="QuBN*njkx@{j1+c[+ZmZ">
                                                                                  <field name="VAR" id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="ADD2">
                                                                                <block type="text" id=";pv}`0?1q%g!#_s5~/y%">
                                                                                  <field name="TEXT">" http://</field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="ADD3">
                                                                                <block type="variables_get" id="o[)lM|Pmbvb7OKUi*NuS">
                                                                                  <field name="VAR" id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="ADD4">
                                                                                <block type="text" id="V8FZuQaNdG6{3d83*Vfy">
                                                                                  <field name="TEXT">/api/limit/config -d 'data={"serial":"</field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="ADD5">
                                                                                <block type="variables_get" id="qi!d0-X1Z-#=8-deCnKw">
                                                                                  <field name="VAR" id="]TAF~$|vQbu%71?%TIMg">WR2 HM-1000_serial</field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="ADD6">
                                                                                <block type="text" id="^C*6RVCe.]c[_:It59N)">
                                                                                  <field name="TEXT">","limit_value":100,"limit_type":1}'</field>
                                                                                </block>
                                                                              </value>
                                                                            </block>
                                                                          </value>
                                                                          <next>
                                                                            <block type="variables_set" id="y-50t.$8~@?)JdWuw9L}">
                                                                              <field name="VAR" id="~^lm~JreXhZ81X6{yXWg">WR3 HM-1000_curl</field>
                                                                              <value name="VALUE">
                                                                                <block type="text_join" id=":Z}TZDl]Vrik0giB}n.P">
                                                                                  <mutation items="7"></mutation>
                                                                                  <value name="ADD0">
                                                                                    <block type="text" id="/x5W!c:L8z/%#/u$QS5C">
                                                                                      <field name="TEXT">curl -u "admin:</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="ADD1">
                                                                                    <block type="variables_get" id="jMWXlHgbFT7ud{NSR#)m">
                                                                                      <field name="VAR" id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="ADD2">
                                                                                    <block type="text" id="}Er+;ReC#[21_HkBUgT%">
                                                                                      <field name="TEXT">" http://</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="ADD3">
                                                                                    <block type="variables_get" id="({)=]?)Sq8cbZ{J_6:(R">
                                                                                      <field name="VAR" id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="ADD4">
                                                                                    <block type="text" id="a!m?UC,|z(Z2L1w[V]?;">
                                                                                      <field name="TEXT">/api/limit/config -d 'data={"serial":"</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="ADD5">
                                                                                    <block type="variables_get" id="d10hz@@3$|l=(.i3!yCU">
                                                                                      <field name="VAR" id="4eljrs#2Fi];mvA0WV6L">WR3 HM-1000_serial</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="ADD6">
                                                                                    <block type="text" id="ghyHOj#I.GZdwt}/N4.V">
                                                                                      <field name="TEXT">","limit_value":100,"limit_type":1}'</field>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </value>
                                                                              <next>
                                                                                <block type="variables_set" id="4x#LN@l+TQ!Lkp[H-5/t">
                                                                                  <field name="VAR" id="h/:^mLws30u))2ZimsSs">WR4 HM-1000_curl</field>
                                                                                  <value name="VALUE">
                                                                                    <block type="text_join" id=",RCm`Tm3,)jX(r6IS8=C">
                                                                                      <mutation items="7"></mutation>
                                                                                      <value name="ADD0">
                                                                                        <block type="text" id="br?7@jk..QlqS}d/LU(.">
                                                                                          <field name="TEXT">curl -u "admin:</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="ADD1">
                                                                                        <block type="variables_get" id="B,=zC-eX!PZK{])4[XLZ">
                                                                                          <field name="VAR" id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="ADD2">
                                                                                        <block type="text" id="y*;OJo}j:4VGR}oKsP+G">
                                                                                          <field name="TEXT">" http://</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="ADD3">
                                                                                        <block type="variables_get" id="1t9*`a:OlrR;a!bh!MYQ">
                                                                                          <field name="VAR" id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="ADD4">
                                                                                        <block type="text" id="KTYq]v}[P~p)G@UtO@#v">
                                                                                          <field name="TEXT">/api/limit/config -d 'data={"serial":"</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="ADD5">
                                                                                        <block type="variables_get" id="v+/,]aZX,R+_{1jSnOWR">
                                                                                          <field name="VAR" id="yU6fmm*ctEK;X.gC*Cng">WR4 HM-1000_serial</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="ADD6">
                                                                                        <block type="text" id="S/6V?%a]sOs$UZ`Jbmqu">
                                                                                          <field name="TEXT">","limit_value":100,"limit_type":1}'</field>
                                                                                        </block>
                                                                                      </value>
                                                                                    </block>
                                                                                  </value>
                                                                                  <next>
                                                                                    <block type="on_ext" id="MpdxhvC3:):%?cL5ChV-">
                                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                                                                      <field name="CONDITION">ne</field>
                                                                                      <field name="ACK_CONDITION"></field>
                                                                                      <value name="OID0">
                                                                                        <shadow type="field_oid" id="j)L11f:Db#X;sEL6awg/">
                                                                                          <field name="oid">0_userdata.0.openDTUoB.dplEinAus</field>
                                                                                        </shadow>
                                                                                      </value>
                                                                                      <statement name="STATEMENT">
                                                                                        <block type="comment" id="Y+nX-p}*xExWw]O`OX~{">
                                                                                          <field name="COMMENT">aktueller DPL state:</field>
                                                                                          <next>
                                                                                            <block type="exec" id="I~3.fAPDzJ[1T(TlzoOT">
                                                                                              <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                                                                                              <field name="WITH_STATEMENT">TRUE</field>
                                                                                              <field name="LOG"></field>
                                                                                              <value name="COMMAND">
                                                                                                <shadow type="text" id="9;-TT-}BY,qROECr/9_6">
                                                                                                  <field name="TEXT"></field>
                                                                                                </shadow>
                                                                                                <block type="variables_get" id="i4]srTbBS]Jm}Z^t,,i^">
                                                                                                  <field name="VAR" id="2|vbm;5buC6^$eogp=fe">urlDPLstate</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <statement name="STATEMENT">
                                                                                                <block type="variables_set" id="U*PNhv3v$WIWPSb|ja,I">
                                                                                                  <field name="VAR" id="_+8y375~59B=8rd!@Ae%">jsonObjekt</field>
                                                                                                  <value name="VALUE">
                                                                                                    <block type="convert_json2object" id="y.{-xr4=@LsO?lm{BV16">
                                                                                                      <value name="VALUE">
                                                                                                        <block type="exec_result" id="6ho:XZ{%G?n+B=|[OsSQ">
                                                                                                          <field name="ATTR">result</field>
                                                                                                        </block>
                                                                                                      </value>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                  <next>
                                                                                                    <block type="comment" id="A(14glg}PvpJG@9qX7Z+">
                                                                                                      <field name="COMMENT">DPL Ein:</field>
                                                                                                      <next>
                                                                                                        <block type="controls_if" id=")aeo4TK/:D$bt5(cFhVN">
                                                                                                          <value name="IF0">
                                                                                                            <block type="logic_compare" id="%pI.k62s._dcfZnb8SHC">
                                                                                                              <field name="OP">EQ</field>
                                                                                                              <value name="A">
                                                                                                                <block type="on_source" id="C-u,UgBdHv4sZCblY)(F">
                                                                                                                  <field name="ATTR">state.val</field>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                              <value name="B">
                                                                                                                <block type="logic_boolean" id="e..27D@{cN0JPJc_@bv;">
                                                                                                                  <field name="BOOL">TRUE</field>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                            </block>
                                                                                                          </value>
                                                                                                          <statement name="DO0">
                                                                                                            <block type="procedures_callcustomnoreturn" id="D9g{#*qgs_-7rfz6|TYD">
                                                                                                              <mutation name="change">
                                                                                                                <arg name="jsonObj"></arg>
                                                                                                                <arg name="attr"></arg>
                                                                                                                <arg name="val"></arg>
                                                                                                              </mutation>
                                                                                                              <value name="ARG0">
                                                                                                                <block type="variables_get" id="yi4H-8|bl|J[{ecr@w?*">
                                                                                                                  <field name="VAR" id="_+8y375~59B=8rd!@Ae%">jsonObjekt</field>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                              <value name="ARG1">
                                                                                                                <block type="text" id="/1aiKrRmt}{2sRQ`BE^S">
                                                                                                                  <field name="TEXT">enabled</field>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                              <value name="ARG2">
                                                                                                                <block type="logic_boolean" id="]!TrP#dnQ%e`r1%@n;)0">
                                                                                                                  <field name="BOOL">TRUE</field>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                              <next>
                                                                                                                <block type="exec" id="xWQm84D2~+;KrfUenNP|">
                                                                                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                                                                                                                  <field name="WITH_STATEMENT">FALSE</field>
                                                                                                                  <field name="LOG"></field>
                                                                                                                  <value name="COMMAND">
                                                                                                                    <shadow type="text" id="Y[J#ti:!)V_p[~D/~=BP">
                                                                                                                      <field name="TEXT">pwd</field>
                                                                                                                    </shadow>
                                                                                                                    <block type="text_join" id="?#1pjgc[4w-Nbot8xQpL">
                                                                                                                      <mutation items="3"></mutation>
                                                                                                                      <value name="ADD0">
                                                                                                                        <block type="variables_get" id=";wn*ZeQHpIf@a_40]mk$">
                                                                                                                          <field name="VAR" id="PWsI)BqL)EeZPzj!8-VY">set</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ADD1">
                                                                                                                        <block type="convert_object2json" id="`s4:$VMpnCx?$#E/lH89">
                                                                                                                          <field name="PRETTIFY">FALSE</field>
                                                                                                                          <value name="VALUE">
                                                                                                                            <block type="variables_get" id="akzUA)PF0iBQcIE,ZBTo">
                                                                                                                              <field name="VAR" id="_+8y375~59B=8rd!@Ae%">jsonObjekt</field>
                                                                                                                            </block>
                                                                                                                          </value>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ADD2">
                                                                                                                        <block type="text" id="tazI8QS$S%YmkBw8,!R]">
                                                                                                                          <field name="TEXT">'</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                </block>
                                                                                                              </next>
                                                                                                            </block>
                                                                                                          </statement>
                                                                                                          <next>
                                                                                                            <block type="comment" id="zV97]OnS?/IjoV1xAl_T">
                                                                                                              <field name="COMMENT">DPL Aus:</field>
                                                                                                              <next>
                                                                                                                <block type="controls_if" id="7{aiQa33_g$QnlPw!:;F">
                                                                                                                  <value name="IF0">
                                                                                                                    <block type="logic_compare" id="XYHuB8ZNE3]RuqS}0zLa">
                                                                                                                      <field name="OP">EQ</field>
                                                                                                                      <value name="A">
                                                                                                                        <block type="on_source" id="kRJjzY0xkd07ZrzDPb1?">
                                                                                                                          <field name="ATTR">state.val</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="B">
                                                                                                                        <block type="logic_boolean" id="{2pCy)Ah-nq3V.,{DVo1">
                                                                                                                          <field name="BOOL">FALSE</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <statement name="DO0">
                                                                                                                    <block type="procedures_callcustomnoreturn" id="-Hz0vX5GM=t[9OHH8]Wg">
                                                                                                                      <mutation name="change">
                                                                                                                        <arg name="jsonObj"></arg>
                                                                                                                        <arg name="attr"></arg>
                                                                                                                        <arg name="val"></arg>
                                                                                                                      </mutation>
                                                                                                                      <value name="ARG0">
                                                                                                                        <block type="variables_get" id="v[6xm8C%Otou%c3=g710">
                                                                                                                          <field name="VAR" id="_+8y375~59B=8rd!@Ae%">jsonObjekt</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ARG1">
                                                                                                                        <block type="text" id="tL?JD.@HaQSk5`{9Wm]{">
                                                                                                                          <field name="TEXT">enabled</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <value name="ARG2">
                                                                                                                        <block type="logic_boolean" id="WMimixsaaPP)fhHu2.J$">
                                                                                                                          <field name="BOOL">FALSE</field>
                                                                                                                        </block>
                                                                                                                      </value>
                                                                                                                      <next>
                                                                                                                        <block type="exec" id="/p+Uv~V#hIePApTb=KTR">
                                                                                                                          <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                                                                                                                          <field name="WITH_STATEMENT">FALSE</field>
                                                                                                                          <field name="LOG"></field>
                                                                                                                          <value name="COMMAND">
                                                                                                                            <shadow type="text" id="Y[J#ti:!)V_p[~D/~=BP">
                                                                                                                              <field name="TEXT">pwd</field>
                                                                                                                            </shadow>
                                                                                                                            <block type="text_join" id="?fTh]i~D]=Ue}GsE8^;i">
                                                                                                                              <mutation items="3"></mutation>
                                                                                                                              <value name="ADD0">
                                                                                                                                <block type="variables_get" id="$!],od*U?4dNiG;_YIzl">
                                                                                                                                  <field name="VAR" id="PWsI)BqL)EeZPzj!8-VY">set</field>
                                                                                                                                </block>
                                                                                                                              </value>
                                                                                                                              <value name="ADD1">
                                                                                                                                <block type="convert_object2json" id="|pyw%?Kwve~3iciql_#f">
                                                                                                                                  <field name="PRETTIFY">FALSE</field>
                                                                                                                                  <value name="VALUE">
                                                                                                                                    <block type="variables_get" id="z0~!%^yv(pHWcQpw)5``">
                                                                                                                                      <field name="VAR" id="_+8y375~59B=8rd!@Ae%">jsonObjekt</field>
                                                                                                                                    </block>
                                                                                                                                  </value>
                                                                                                                                </block>
                                                                                                                              </value>
                                                                                                                              <value name="ADD2">
                                                                                                                                <block type="text" id="/g9Zs!_,BY#!LKzHEF`/">
                                                                                                                                  <field name="TEXT">'</field>
                                                                                                                                </block>
                                                                                                                              </value>
                                                                                                                            </block>
                                                                                                                          </value>
                                                                                                                        </block>
                                                                                                                      </next>
                                                                                                                    </block>
                                                                                                                  </statement>
                                                                                                                </block>
                                                                                                              </next>
                                                                                                            </block>
                                                                                                          </next>
                                                                                                        </block>
                                                                                                      </next>
                                                                                                    </block>
                                                                                                  </next>
                                                                                                </block>
                                                                                              </statement>
                                                                                            </block>
                                                                                          </next>
                                                                                        </block>
                                                                                      </statement>
                                                                                    </block>
                                                                                  </next>
                                                                                </block>
                                                                              </next>
                                                                            </block>
                                                                          </next>
                                                                        </block>
                                                                      </next>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      

      Alles funktioniert sogar mit meinen "getunten" HM WR. Ich habe ja die HM-600 und die HM-800 mit dem Hoymiles 1000W Dongle (Flole-Inverter-Tool) auf 1000 Watt erweitert. Die laufen damit super und vollkommen ohne Probleme.

      GrĂŒĂŸe

      maxclaudiM Offline
      maxclaudiM Offline
      maxclaudi
      schrieb am zuletzt editiert von maxclaudi
      #29

      @beowolf

      Nach intensiver TĂŒftelei und etlichen Kaffee-Pausen steht die neue Version bereit.
      WebUI-Schalter gibt es nicht; bei DPL-Deaktivierung wird sofort die maximale Leistung an den „solarbetriebenen“ Wechselrichtern eingestellt.

      Neue MQTT-Datenpunkte ermöglichen die Steuerung:

      • dplState wird automatisch angelegt.
      • dplCmd muss manuell erstellt werden, damit die Steuerung ĂŒber MQTT funktioniert.
        Sollte der Datenpunkt dplCmd automatisch angelegt werden, diesen bitte löschen!

        edit
      • dplCmd wird automatisch angelegt

      update 06.03.2026 10:27h
      2025.10.11-patch_DplOff-Limit_maximum-MQTT-maxclaudi-Rev_2
      final version mit Bescheibung
      fĂŒr verschiedene Builds: HIER

      Die Bedienung erfolgt komfortabel ĂŒber Blockly oder Scripts.
      Einfach den Status ĂŒber dplState auslesen oder auswerten, Ein- oder Ausschalten ĂŒber den Datenpunkt dplCmd.

      Es sind keine weiteren Schritte nötig:

      • Beim Einschalten (dplCmd: 1) funktioniert die DPL-Steuerung.
      • Beim Ausschalten (dplCmd: 0) werden die „solarbetriebenen“ Wechselrichter auf maximale Leistung gesetzt.

      Wichtiger Hinweis: Bitte nicht wie ein Hyperaktiv-Blinklicht stÀndig aus- und einschalten.
      Jeder Schaltvorgang schreibt in den Flash-Speicher der Firmware und die Wechselrichter brauchen ein wenig Zeit, um sich auf den neuen Zustand einzupendeln.
      Geduld ist hier Gold wert – es soll nicht blinken, sondern sicher schalten! ;-)


      Zweck des Patches:

      • DPL (Dynamic Power Limiter) Steuerung ĂŒber MQTT
      • Automatisches Setzen der maximalen Wechselrichterleistung nach DPL-Deaktivierung
      • Minimalinvasive Änderungen, stabil und kompatibel

      MQTT-Datenpunkte
      a) Automatisch angelegt

      • mqtt.x.<baseTopic>.dpl.dplState
      • Wird nach einmaligem Umschalten des DPL in der WebUI automatisch erstellt
      • Liefert aktuellen Status des Dynamic Power Limiters (nur lesbar)
      • Werte: 0 = aus, 1 = ein

      b) Automatisch angelegt

      • mqtt.1.<baseTopic>.dpl.dplCmd
      • Werte
        0= DPL ausschalten
        1= DPL einschalten
        nach jedem schalten wird der Wert automatisch auf -1 zurĂŒck gesetzt.

      Verhalten bei solarbetriebenen Wechselrichtern

      • Nach Ausschalten des DPL wird automatisch die maximale Leistung der Wechselrichter eingestellt.
      • Kein manuelles Setzen eines 100%-Limits mehr nötig.

      Hinweise zu StabilitÀt & Sicherheit

      • Patch minimalistisch, Original-Code so unangetastet wie möglich
      • Keine zusĂ€tzlichen HomeAssistant- oder anderen Datenpunkte
      • Race-Conditions bei MQTT werden verhindert
      • Firmware kann jederzeit auf Originalversion zurĂŒckgesetzt werden
      • Initialer WebUI-Schalter sorgt fĂŒr sauberen Start der dplCmd Subscription
      • Firmware wurde nach bestem Wissen und Gewissen erstellt und getestet.
      • Keine Garantie fĂŒr Funktion oder SchĂ€den.
      • Wer meine Arbeit nĂŒtzlich findet und sich bedanken möchte:
        Ein Klick auf den Pfeil nach oben (unten am Post, neben Zitieren) reicht völlig. 🙂

      9bd68406-10d5-441e-8276-14555d941880-image.png


      edit:
      update 06.03.2026 10:27h
      2025.10.11-patch_DplOff-Limit_maximum-MQTT-maxclaudi-Rev_2
      final version mit Bescheibung
      fĂŒr verschiedene Builds: HIER

      Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

      B 1 Antwort Letzte Antwort
      1
      • maxclaudiM maxclaudi

        @beowolf

        Nach intensiver TĂŒftelei und etlichen Kaffee-Pausen steht die neue Version bereit.
        WebUI-Schalter gibt es nicht; bei DPL-Deaktivierung wird sofort die maximale Leistung an den „solarbetriebenen“ Wechselrichtern eingestellt.

        Neue MQTT-Datenpunkte ermöglichen die Steuerung:

        • dplState wird automatisch angelegt.
        • dplCmd muss manuell erstellt werden, damit die Steuerung ĂŒber MQTT funktioniert.
          Sollte der Datenpunkt dplCmd automatisch angelegt werden, diesen bitte löschen!

          edit
        • dplCmd wird automatisch angelegt

        update 06.03.2026 10:27h
        2025.10.11-patch_DplOff-Limit_maximum-MQTT-maxclaudi-Rev_2
        final version mit Bescheibung
        fĂŒr verschiedene Builds: HIER

        Die Bedienung erfolgt komfortabel ĂŒber Blockly oder Scripts.
        Einfach den Status ĂŒber dplState auslesen oder auswerten, Ein- oder Ausschalten ĂŒber den Datenpunkt dplCmd.

        Es sind keine weiteren Schritte nötig:

        • Beim Einschalten (dplCmd: 1) funktioniert die DPL-Steuerung.
        • Beim Ausschalten (dplCmd: 0) werden die „solarbetriebenen“ Wechselrichter auf maximale Leistung gesetzt.

        Wichtiger Hinweis: Bitte nicht wie ein Hyperaktiv-Blinklicht stÀndig aus- und einschalten.
        Jeder Schaltvorgang schreibt in den Flash-Speicher der Firmware und die Wechselrichter brauchen ein wenig Zeit, um sich auf den neuen Zustand einzupendeln.
        Geduld ist hier Gold wert – es soll nicht blinken, sondern sicher schalten! ;-)


        Zweck des Patches:

        • DPL (Dynamic Power Limiter) Steuerung ĂŒber MQTT
        • Automatisches Setzen der maximalen Wechselrichterleistung nach DPL-Deaktivierung
        • Minimalinvasive Änderungen, stabil und kompatibel

        MQTT-Datenpunkte
        a) Automatisch angelegt

        • mqtt.x.<baseTopic>.dpl.dplState
        • Wird nach einmaligem Umschalten des DPL in der WebUI automatisch erstellt
        • Liefert aktuellen Status des Dynamic Power Limiters (nur lesbar)
        • Werte: 0 = aus, 1 = ein

        b) Automatisch angelegt

        • mqtt.1.<baseTopic>.dpl.dplCmd
        • Werte
          0= DPL ausschalten
          1= DPL einschalten
          nach jedem schalten wird der Wert automatisch auf -1 zurĂŒck gesetzt.

        Verhalten bei solarbetriebenen Wechselrichtern

        • Nach Ausschalten des DPL wird automatisch die maximale Leistung der Wechselrichter eingestellt.
        • Kein manuelles Setzen eines 100%-Limits mehr nötig.

        Hinweise zu StabilitÀt & Sicherheit

        • Patch minimalistisch, Original-Code so unangetastet wie möglich
        • Keine zusĂ€tzlichen HomeAssistant- oder anderen Datenpunkte
        • Race-Conditions bei MQTT werden verhindert
        • Firmware kann jederzeit auf Originalversion zurĂŒckgesetzt werden
        • Initialer WebUI-Schalter sorgt fĂŒr sauberen Start der dplCmd Subscription
        • Firmware wurde nach bestem Wissen und Gewissen erstellt und getestet.
        • Keine Garantie fĂŒr Funktion oder SchĂ€den.
        • Wer meine Arbeit nĂŒtzlich findet und sich bedanken möchte:
          Ein Klick auf den Pfeil nach oben (unten am Post, neben Zitieren) reicht völlig. 🙂

        9bd68406-10d5-441e-8276-14555d941880-image.png


        edit:
        update 06.03.2026 10:27h
        2025.10.11-patch_DplOff-Limit_maximum-MQTT-maxclaudi-Rev_2
        final version mit Bescheibung
        fĂŒr verschiedene Builds: HIER

        B Offline
        B Offline
        Beowolf
        schrieb am zuletzt editiert von Beowolf
        #30

        @maxclaudi

        Vielen Dank fĂŒr die tolle Arbeit. 👍 👍 👍 👍

        Habe da aber noch mal ein paar Fragen.

        1. Du schreibst das der Datenpunkt dplCmd manuell angelegt werden muß. Bei mir (ioBroker) erschien der Datenpunkt unter mqtt zusammen mit dplState automatisch. Ist das richtig?

        2. Ich hatte bis jetzt den OpenDTU Adapter installiert. Dort erscheinen ja alle Werte die wichtig sind.
          Um nun DPL schalten zu können muß ich in OpenDTUBatterie ja mqtt aktivieren. Hatte ich bis jetzt nicht. Werte waren ja alle verfĂŒgbar. Jetzt sind alle Werte "nochmal" vorhanden und auf dem "mqtt-Kanal" ist noch mehr los. Das die Datenpunkte ĂŒber den OpenDTU Adpater kommen ist nicht möglich?

        3. Wenn das nicht ĂŒber den Adapter geht. Kann der dann komplett deinstalliert werden weil alles ĂŒber mqtt geht?

        GrĂŒĂŸe
        Manfred

        PS:
        Bei mir schaltet DPL leider nicht um wenn ich dplCmd von 0 auf 1 oder von 1 auf 0 Àndere. Wenn ich in der WEBui von OpenDTU den Zustand Àndere, wechselt dplState so wie es soll von 0 auf 1 usw.

        cmd.jpg
        state.jpg
        beide.jpg

        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

        maxclaudiM 1 Antwort Letzte Antwort
        0
        • B Beowolf

          @maxclaudi

          Vielen Dank fĂŒr die tolle Arbeit. 👍 👍 👍 👍

          Habe da aber noch mal ein paar Fragen.

          1. Du schreibst das der Datenpunkt dplCmd manuell angelegt werden muß. Bei mir (ioBroker) erschien der Datenpunkt unter mqtt zusammen mit dplState automatisch. Ist das richtig?

          2. Ich hatte bis jetzt den OpenDTU Adapter installiert. Dort erscheinen ja alle Werte die wichtig sind.
            Um nun DPL schalten zu können muß ich in OpenDTUBatterie ja mqtt aktivieren. Hatte ich bis jetzt nicht. Werte waren ja alle verfĂŒgbar. Jetzt sind alle Werte "nochmal" vorhanden und auf dem "mqtt-Kanal" ist noch mehr los. Das die Datenpunkte ĂŒber den OpenDTU Adpater kommen ist nicht möglich?

          3. Wenn das nicht ĂŒber den Adapter geht. Kann der dann komplett deinstalliert werden weil alles ĂŒber mqtt geht?

          GrĂŒĂŸe
          Manfred

          PS:
          Bei mir schaltet DPL leider nicht um wenn ich dplCmd von 0 auf 1 oder von 1 auf 0 Àndere. Wenn ich in der WEBui von OpenDTU den Zustand Àndere, wechselt dplState so wie es soll von 0 auf 1 usw.

          cmd.jpg
          state.jpg
          beide.jpg

          maxclaudiM Offline
          maxclaudiM Offline
          maxclaudi
          schrieb am zuletzt editiert von maxclaudi
          #31

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

          @maxclaudi

          Vielen Dank fĂŒr die tolle Arbeit. 👍 👍 👍 👍

          Habe da aber noch mal ein paar Fragen.

          1. Du schreibst das der Datenpunkt dplCmd manuell angelegt werden muß. Bei mir (ioBroker) erschien der Datenpunkt unter mqtt zusammen mit dplState automatisch. Ist das richtig?

          2. Ich hatte bis jetzt den OpenDTU Adapter installiert. Dort erscheinen ja alle Werte die wichtig sind.
            Um nun DPL schalten zu können muß ich in OpenDTUBatterie ja mqtt aktivieren. Hatte ich bis jetzt nicht. Werte waren ja alle verfĂŒgbar. Jetzt sind alle Werte "nochmal" vorhanden und auf dem "mqtt-Kanal" ist noch mehr los. Das die Datenpunkte ĂŒber den OpenDTU Adpater kommen ist nicht möglich?

          3. Wenn das nicht ĂŒber den Adapter geht. Kann der dann komplett deinstalliert werden weil alles ĂŒber mqtt geht?

          GrĂŒĂŸe
          Manfred

          PS:
          Bei mir schaltet DPL leider nicht um wenn ich dplCmd von 0 auf 1 oder von 1 auf 0 Àndere. Wenn ich in der WEBui von OpenDTU den Zustand Àndere, wechselt dplState so wie es soll von 0 auf 1 usw.

          cmd.jpg
          state.jpg
          beide.jpg

          Hallo Manfred,

          mach bitte Folgendes Schritt fĂŒr Schritt:

          1ïžâƒŁ Zuerst einmal einen Neustart der OpenDTU-OnBattery durchfĂŒhren (ĂŒber WebUI → Neustart).
          Damit wird alles sauber initialisiert.

          2ïžâƒŁ Dann in ioBroker den Datenpunkt dplCmd prĂŒfen.
          Wenn er auf 0 steht, dann in der WebUI den Dynamic Power Limiter einschalten und auf „Speichern“ klicken.
          (Der Speichern-Button ist wichtig – erst dadurch wird der Zustand wirklich aktiv ĂŒbernommen.)

          Wenn dplCmd auf 1 steht, kannst du zur Sicherheit einmal den umgekehrten Weg gehen:
          → In der WebUI einschalten + speichern, kurz warten,
          → danach ausschalten + speichern, wieder kurz warten.

          3ïžâƒŁ Ab jetzt kannst du ĂŒber ioBroker den Datenpunkt dplCmd (0/1) verwenden, um den DPL zu schalten.
          Der aktuelle Zustand wird ĂŒber dplState zurĂŒckgemeldet.

          4ïžâƒŁ Wenn du in der WebUI nichts siehst:
          Nach dem Schalten einfach in der WebUI auf „Live-Ansicht“ wechseln und dann wieder zurĂŒck zu
          „Einstellungen → Dynamic Power Limiter Einstellungen“.
          Die Seite aktualisiert sich nicht automatisch, wenn extern geschaltet wird.
          Das liegt daran, dass:

          • die WebUI-Werte nur bei Aufruf der Seite oder beim Speichern neu aus der Config gelesen werden,
          • aber keine WebSocket-Verbindung oder „Live-Update“-Funktion besteht, die auf MQTT-Ereignisse reagiert.

          Hinweis:
          Der OpenDTU-Adapter wird fĂŒr diese Steuerung nicht benötigt.
          Alles lĂ€uft direkt ĂŒber MQTT – der Adapter kann also weg, wenn du nur MQTT nutzt.

          Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

          1 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            Beowolf
            schrieb am zuletzt editiert von
            #32

            Ok.

            zu 1. Habe ich gemacht.

            zu 2. Datenpunkt dplCmd. Der kam automatisch nach dem Aufspilen der Firmware und nachdem ich den DPL einaml an und wieder aus geschaltet hatte. Ist das Richtig?

            Wenn ich in der WebUI den DPL schalte Àndert sich der Datenpunkt dplState. Nicht dplCmd.

            Nochmal. Ich habe das doch richtig verstanden?

            dplCmd schaltet DPL an oder aus.

            dplState gibt mir zurĂŒck ob DPL an oder aus ist.

            Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

            maxclaudiM 1 Antwort Letzte Antwort
            0
            • B Beowolf

              Ok.

              zu 1. Habe ich gemacht.

              zu 2. Datenpunkt dplCmd. Der kam automatisch nach dem Aufspilen der Firmware und nachdem ich den DPL einaml an und wieder aus geschaltet hatte. Ist das Richtig?

              Wenn ich in der WebUI den DPL schalte Àndert sich der Datenpunkt dplState. Nicht dplCmd.

              Nochmal. Ich habe das doch richtig verstanden?

              dplCmd schaltet DPL an oder aus.

              dplState gibt mir zurĂŒck ob DPL an oder aus ist.

              maxclaudiM Offline
              maxclaudiM Offline
              maxclaudi
              schrieb am zuletzt editiert von maxclaudi
              #33

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

              Ok.

              zu 1. Habe ich gemacht.

              zu 2. Datenpunkt dplCmd. Der kam automatisch nach dem Aufspilen der Firmware und nachdem ich den DPL einaml an und wieder aus geschaltet hatte. Ist das Richtig?

              edit 07.10.2025 20:19h
              Der automatisch angelegte Datenpunkt löschen!
              Er muss manuell angelegt werden!

              Siehe Anleitung und auch BestÀtigung von Beowolf

              EDIT 07.03.2026
              Alles funktioniert nun sofort nach dem flashen.
              Es muss nichts manuell angelegt und/oder verÀndert werden:

              update 06.03.2026 10:27h
              2025.10.11-patch_DplOff-Limit_maximum-MQTT-maxclaudi-Rev_2
              final version mit Bescheibung
              fĂŒr verschiedene Builds: HIER


              Wenn ich in der WebUI den DPL schalte Àndert sich der Datenpunkt dplState. Nicht dplCmd.

              Richtig.


              Nochmal. Ich habe das doch richtig verstanden?
              dplCmd schaltet DPL an oder aus.

              dplState gibt mir zurĂŒck ob DPL an oder aus ist.

              ja, richtig.

              dplState:

              • Liefert aktuellen Status des Dynamic Power Limiters (nur lesbar)
              • Werte: 0 = aus, 1 = ein

              dplCmd:

              • dplCmd Ă€ndert sich nie von selbst – auch nicht nach einem Neustart.
              • Dieser Datenpunkt dient nur zum Schalten:
                • Wert 1 → Dynamic Power Limiter einschalten
                • Wert 0 → Dynamic Power Limiter ausschalten
              • Er zeigt also nicht den aktuellen Zustand, sondern sendet nur einen Schaltbefehl an die Firmware.

              Der tatsĂ€chliche Zustand wird immer NUR ĂŒber dplState angezeigt.

              Kurz gesagt:
              dplCmd ist der Schalter,
              dplState ist die Anzeige, ob wirklich geschaltet wurde.

              Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

              1 Antwort Letzte Antwort
              0
              • B Offline
                B Offline
                Beowolf
                schrieb am zuletzt editiert von
                #34

                Ok. Dann habe ich ja alles richtig gemacht.

                Nur, warum wird der DPL dann nicht geschaltet?

                Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                maxclaudiM 1 Antwort Letzte Antwort
                0
                • B Beowolf

                  Ok. Dann habe ich ja alles richtig gemacht.

                  Nur, warum wird der DPL dann nicht geschaltet?

                  maxclaudiM Offline
                  maxclaudiM Offline
                  maxclaudi
                  schrieb am zuletzt editiert von maxclaudi
                  #35

                  @beowolf
                  Das klingt, als wĂ€re bei dir grundsĂ€tzlich alles richtig eingerichtet 👍
                  Wenn sich der DPL trotzdem nicht schalten lĂ€sst, prĂŒf bitte einmal Folgendes:

                  Neustart der OpenDTU-onBattery durchfĂŒhren (ĂŒber die WebUI).

                  Nach dem Neustart in der WebUI den Dynamic Power Limiter manuell umschalten auf den entgegengesetzten Zustand (z. B. einschalten) und auf „Speichern“ klicken – das ist wichtig, weil erst beim Speichern der Wert wirklich ĂŒbernommen wird.

                  Danach in der Live-Ansicht kontrollieren, ob DPL aktiv ist.

                  Jetzt kannst du in ioBroker ĂŒber den Datenpunkt
                  dplCmd (0 = aus, 1 = ein) schalten.
                  Wenn du schaltest, sollte sich der Datenpunkt dplState anschließend ebenfalls Ă€ndern.

                  Wenn das klappt, ist alles in Ordnung.
                  Wenn nicht, schreib bitte kurz, ob sich dplState ĂŒberhaupt Ă€ndert oder gar nichts passiert – dann schauen wir gezielt weiter.

                  Manchmal hilft es auch, MQTT kurz zu deaktivieren und wieder zu aktivieren oder den MQTT-Adapter einmal neu zu starten, damit sich alles sauber neu verbindet.

                  Wenn das Schalten ĂŒber ioBroker weiterhin nicht reagiert, kannst du testweise mit dem MQTT Explorer prĂŒfen, ob die MQTT-Verbindung grundsĂ€tzlich funktioniert:

                  Öffne den MQTT Explorer und suche nach deinem Topic
                  <baseTopic>/dpl/dplCmd.
                  wenn es nicht existiert einfach direkt eingeben, Beispiel:

                  41e605d9-4fa9-4f06-9004-c39fd589f393-image.png
                  Dort kannst du einmal probeweise eine 1 oder 0 (als „raw“) senden.
                  Wird der Wert sofort ĂŒbernommen, ist alles korrekt – dann liegt das Problem höchstens an der ioBroker-Seite (Adapter oder Datenpunkt).

                  Wenn sich im MQTT-Explorer erfolgreich schalten lÀsst, dann sollte daraufhin auch der Datenpunkt dplCmd mit 1 oder 0 schalten lassen.

                  Wenn sich im MQTT-Explorer auch nichts tut, liegt es eher an den MQTT- oder OpenDTU-Einstellungen.

                  Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

                  B 1 Antwort Letzte Antwort
                  0
                  • maxclaudiM maxclaudi

                    @beowolf
                    Das klingt, als wĂ€re bei dir grundsĂ€tzlich alles richtig eingerichtet 👍
                    Wenn sich der DPL trotzdem nicht schalten lĂ€sst, prĂŒf bitte einmal Folgendes:

                    Neustart der OpenDTU-onBattery durchfĂŒhren (ĂŒber die WebUI).

                    Nach dem Neustart in der WebUI den Dynamic Power Limiter manuell umschalten auf den entgegengesetzten Zustand (z. B. einschalten) und auf „Speichern“ klicken – das ist wichtig, weil erst beim Speichern der Wert wirklich ĂŒbernommen wird.

                    Danach in der Live-Ansicht kontrollieren, ob DPL aktiv ist.

                    Jetzt kannst du in ioBroker ĂŒber den Datenpunkt
                    dplCmd (0 = aus, 1 = ein) schalten.
                    Wenn du schaltest, sollte sich der Datenpunkt dplState anschließend ebenfalls Ă€ndern.

                    Wenn das klappt, ist alles in Ordnung.
                    Wenn nicht, schreib bitte kurz, ob sich dplState ĂŒberhaupt Ă€ndert oder gar nichts passiert – dann schauen wir gezielt weiter.

                    Manchmal hilft es auch, MQTT kurz zu deaktivieren und wieder zu aktivieren oder den MQTT-Adapter einmal neu zu starten, damit sich alles sauber neu verbindet.

                    Wenn das Schalten ĂŒber ioBroker weiterhin nicht reagiert, kannst du testweise mit dem MQTT Explorer prĂŒfen, ob die MQTT-Verbindung grundsĂ€tzlich funktioniert:

                    Öffne den MQTT Explorer und suche nach deinem Topic
                    <baseTopic>/dpl/dplCmd.
                    wenn es nicht existiert einfach direkt eingeben, Beispiel:

                    41e605d9-4fa9-4f06-9004-c39fd589f393-image.png
                    Dort kannst du einmal probeweise eine 1 oder 0 (als „raw“) senden.
                    Wird der Wert sofort ĂŒbernommen, ist alles korrekt – dann liegt das Problem höchstens an der ioBroker-Seite (Adapter oder Datenpunkt).

                    Wenn sich im MQTT-Explorer erfolgreich schalten lÀsst, dann sollte daraufhin auch der Datenpunkt dplCmd mit 1 oder 0 schalten lassen.

                    Wenn sich im MQTT-Explorer auch nichts tut, liegt es eher an den MQTT- oder OpenDTU-Einstellungen.

                    B Offline
                    B Offline
                    Beowolf
                    schrieb am zuletzt editiert von
                    #36

                    @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?

                    Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                    maxclaudiM 1 Antwort Letzte Antwort
                    0
                    • B Beowolf

                      @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?

                      maxclaudiM Offline
                      maxclaudiM Offline
                      maxclaudi
                      schrieb am zuletzt editiert von maxclaudi
                      #37

                      @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.

                      Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

                      1 Antwort Letzte Antwort
                      0
                      • B Offline
                        B Offline
                        Beowolf
                        schrieb am zuletzt editiert von
                        #38

                        @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.

                        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                        maxclaudiM 1 Antwort Letzte Antwort
                        0
                        • B Beowolf

                          @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.

                          maxclaudiM Offline
                          maxclaudiM Offline
                          maxclaudi
                          schrieb am zuletzt editiert von maxclaudi
                          #39

                          @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.

                          Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

                          B 1 Antwort Letzte Antwort
                          0
                          • maxclaudiM 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 Offline
                            B Offline
                            Beowolf
                            schrieb am zuletzt editiert von
                            #40

                            @maxclaudi

                            Habe ich jetzt alles schon zig mal gemacht.

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

                            Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                            maxclaudiM 1 Antwort Letzte Antwort
                            0
                            • B Beowolf

                              @maxclaudi

                              Habe ich jetzt alles schon zig mal gemacht.

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

                              maxclaudiM Offline
                              maxclaudiM Offline
                              maxclaudi
                              schrieb am zuletzt editiert von maxclaudi
                              #41

                              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.

                              Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

                              B 1 Antwort Letzte Antwort
                              0
                              • maxclaudiM 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 Offline
                                B Offline
                                Beowolf
                                schrieb am zuletzt editiert von
                                #42

                                @maxclaudi

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

                                Schade.

                                Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                maxclaudiM 1 Antwort Letzte Antwort
                                0
                                • B Beowolf

                                  @maxclaudi

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

                                  Schade.

                                  maxclaudiM Offline
                                  maxclaudiM Offline
                                  maxclaudi
                                  schrieb am zuletzt editiert von maxclaudi
                                  #43

                                  @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.

                                  Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

                                  B 1 Antwort Letzte Antwort
                                  0
                                  • maxclaudiM 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 Offline
                                    B Offline
                                    Beowolf
                                    schrieb am zuletzt editiert von
                                    #44

                                    @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

                                    Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                    maxclaudiM 1 Antwort Letzte Antwort
                                    0
                                    • B Beowolf

                                      @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

                                      maxclaudiM Offline
                                      maxclaudiM Offline
                                      maxclaudi
                                      schrieb am zuletzt editiert von maxclaudi
                                      #45

                                      edit: Bilder entfernt.

                                      Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

                                      B 1 Antwort Letzte Antwort
                                      0
                                      • maxclaudiM maxclaudi

                                        edit: Bilder entfernt.

                                        B Offline
                                        B Offline
                                        Beowolf
                                        schrieb am zuletzt editiert von
                                        #46

                                        @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

                                        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                        maxclaudiM 1 Antwort Letzte Antwort
                                        1
                                        • B Beowolf

                                          @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

                                          maxclaudiM Offline
                                          maxclaudiM Offline
                                          maxclaudi
                                          schrieb am zuletzt editiert von
                                          #47

                                          @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! ☀

                                          Zendure zenSDK Lokal API, SmartMode, SolarFlow AC 800 Pro 2

                                          B 1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          387

                                          Online

                                          32.9k

                                          Benutzer

                                          83.1k

                                          Themen

                                          1.3m

                                          BeitrÀge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe