Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. maxclaudi

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Profile
    • Following 1
    • Followers 0
    • Topics 3
    • Posts 77
    • Best 8
    • Groups 1

    maxclaudi

    @maxclaudi

    Starter

    8
    Reputation
    18
    Profile views
    77
    Posts
    0
    Followers
    1
    Following
    Joined Last Online

    maxclaudi Follow
    Starter

    Best posts made by maxclaudi

    • RE: OpenDTU-onBattery

      edit:
      einfacher -> OpenDTU-onBattery Blockly DPL Ein/Aus


      @lesiflo , @Totte23

      @lesiflo sagte in OpenDTU-onBattery:

      Hallo zusammen,

      ich möchte vom iobroker aus den Dynamic Power Limiter aus/einschalten. Geht das überhaupt?

      b785d376-4856-4125-b94f-c17380740367-image.png
      Hab den openDTU Adapter installiert und openDTU über mqtt eingebunden. Hab schon einiges ausprobiert, finde aber keinen Parameter mit dem das geht.

      Das Thema ist zwar alt, aber bestimmt benötigt mal wieder jemand Hilfe dazu 🙂
      Man findet die Antwort auch nicht im Netz, deswegen habe ich die requests gelogt.

      Man kann über blockly oder javascript den OpenDTUonBattery DPL ein-, ausschalten.
      Theoretisch auch alles andere.
      Wenn's nur ums einschalten und ausschalten mit den voreingestellten Werten geht,
      z. B . mit Blockly:
      Bei Aktionen "exec Befehl" auswählen.

      Ausschalten:

      curl -u "admin:yyyyyyyy" http://xxx.xxx.xxx.xxx/api/powerlimiter/config -d 'data={"enabled": false}'
      

      Einschalten:

      curl -u "admin:yyyyyyyy" http://xxx.xxx.xxx.xxx/api/powerlimiter/config -d 'data={"enabled": true}'
      

      yyyyyyyy => Passwort
      xxx.xxx.xxx.xxx => IP von der OpenDTU

      Stark verkürzt, man kann auch alle einstellbaren Werte verändern und mit übergeben.
      Hilft bestimmt mal jemand weiter.

      Frohe Ostern 😉

      posted in Einbindung von Geräten
      maxclaudi
      maxclaudi
    • RE: Test Adapter Zendure Solarflow

      @rene55

      also ich hab vorher noch sichergestellt, dass der Server 100% keine Anmeldedaten verlangt und port 1883 frei von anderen Instanzen ist.

      edit:
      passt, laut den Bildern von Arne muss nicht mal der Port angegeben werden 🙂
      Wird wohl intern automatisch auf port 1883 gesetzt.
      Sollte der Adapter nicht die Objekte erstellen, dann einfach Port mit angeben.

      posted in Tester
      maxclaudi
      maxclaudi
    • RE: OpenDTU-onBattery Blockly DPL Ein/Aus

      einfacher:

      Dynamic Power Limiter nur über einen Datenpunkt ein- und ausschalten.

      Wird der DPL über ein Script ausgeschaltet, behält der Inverter das letzte Limit (non persistent) bei.

      Deshalb wird im folgenden Blockly beim Auschalten des DPL auch das Limit wieder auf 100% gesetzt.

      Der DPL kann einfach per Datenpunkt in einem Blockly ein- oder ausgeschaltet werden.
      Dazu wird der Datenpunkt zum Einschalten aktualisiert mit wahr.
      Zum Ausschalten mit falsch.

      01-dpl-ein-aus.png


      Im Blockly sind 2 Inverter zur DPL Steuerung berücksichtigt.
      Wird nur 1 Inverter zur DPL Steuerung verwendet, kann die Variable und der Block gelöscht werden oder einfach bei beiden Variablen die gleiche Seriennummer eintragen.
      Falls doch mal später 2 Inverter für DPL aktiviert werden sollen.

      Seriennummer werden nur nach dem Ausschalten verwendet, damit der/die Inverter wieder volle Leistung liefern.

      Werte werden nur non-persistent gesetzt, wie bei der DPL-Steuerung.


      Für das Script wurde manuell 1 Verzeichnis und 1 Datenpunkt angelegt:

      Verzeichnis:
      openDTUoB
      0_userdata.0.Datenpunkte.openDTUoB

      Datenpunkt:
      dplEinAus
      "type": "boolean"
      0_userdata.0.Datenpunkte.openDTUoB.dplEinAus


      Vor dem Ausführen des Scripts müsen folgende Eintragungen vorgenommen werden:

      IP OpenDTUon Battery
      Password
      1te Seriennummer des Inverters für die DPL-Steuerung
      2te Seriennummer des Inverters, der auch DPL steuert (bei nur einem aktivierten Inverter einfach die gleiche Seriennummer vom ersten Inverter eintragen).

      04-dpl-ein-aus.png


      Blockly:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="P.,=V-_lWMTIt*,^9bWa">jsonObj</variable>
          <variable id="?Ekt8|,iPfa0uAPY)N%A">attr</variable>
          <variable id="y`qH:gKyqipx04VGZ@;=">val</variable>
          <variable id="T[fn@X+yakzmBpi9]n*E">openDTUonBatteryIP</variable>
          <variable id="nh}jM|3k}%Qhny;,Etjk">OpenDTUonBatteryPassword</variable>
          <variable id="/X1](JXiM-@K#NE`C4,%">InverterSerial</variable>
          <variable id="b+E=vG0=nXY*@8jhUpT1">InverterSerial2</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="_+8y375~59B=8rd!@Ae%">jsonObjekt</variable>
        </variables>
        <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="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.Datenpunkte.openDTUoB.dplEinAus</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <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.170.178.250</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">openDTU42</field>
                                </block>
                              </value>
                              <next>
                                <block type="variables_set" id="u:x]^bL1{Q9m2)/M*CRl">
                                  <field name="VAR" id="/X1](JXiM-@K#NE`C4,%">InverterSerial</field>
                                  <value name="VALUE">
                                    <block type="text" id="m)|9(*pwq()mn.3Ron~:">
                                      <field name="TEXT">11611111111</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="variables_set" id="++@7g{b1u:LHh]h:CEq+">
                                      <field name="VAR" id="b+E=vG0=nXY*@8jhUpT1">InverterSerial2</field>
                                      <value name="VALUE">
                                        <block type="text" id="m8cbvw?0pnZNAUaiU8Zq">
                                          <field name="TEXT">112122222222</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="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>
                                                                                              <next>
                                                                                                <block type="comment" id="ql1mac4Qf*!]/(y:*HR+">
                                                                                                  <field name="COMMENT">DPLinverter01  Limit 100%</field>
                                                                                                  <next>
                                                                                                    <block type="exec" id="iNs^J_^oAm89Vr+p^dcU">
                                                                                                      <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="C9zK,I#|DhseRSSl*?8X">
                                                                                                          <field name="TEXT"></field>
                                                                                                        </shadow>
                                                                                                        <block type="text_join" id="~7~(vzW]+%{R35ES=iGn">
                                                                                                          <mutation items="3"></mutation>
                                                                                                          <value name="ADD0">
                                                                                                            <block type="variables_get" id=".v]Hhm{LD(-@){kzp()2">
                                                                                                              <field name="VAR" id="JppG`(9.sfDt)j^gha}{">cUrlLimitPart1</field>
                                                                                                            </block>
                                                                                                          </value>
                                                                                                          <value name="ADD1">
                                                                                                            <block type="variables_get" id="OZY@nUX[m`.Rp[12/e{g">
                                                                                                              <field name="VAR" id="/X1](JXiM-@K#NE`C4,%">InverterSerial</field>
                                                                                                            </block>
                                                                                                          </value>
                                                                                                          <value name="ADD2">
                                                                                                            <block type="variables_get" id="]wG/EOqQ!/tw6ZlRcab0">
                                                                                                              <field name="VAR" id="Xy47v*SILC`=7N1mM,:5">cUrlLimitPart2</field>
                                                                                                            </block>
                                                                                                          </value>
                                                                                                        </block>
                                                                                                      </value>
                                                                                                      <next>
                                                                                                        <block type="comment" id="aI[_!O+Ua%`p6/mqrCjz">
                                                                                                          <field name="COMMENT">DPLinverter02  Limit 100%</field>
                                                                                                          <next>
                                                                                                            <block type="exec" id="v[cN9cA@.Ejy;Z1G81kX">
                                                                                                              <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="C9zK,I#|DhseRSSl*?8X">
                                                                                                                  <field name="TEXT"></field>
                                                                                                                </shadow>
                                                                                                                <block type="text_join" id="Wd`VvP4NqCJ}/*|~IbTV">
                                                                                                                  <mutation items="3"></mutation>
                                                                                                                  <value name="ADD0">
                                                                                                                    <block type="variables_get" id="hy+6K,WWY.Y`%h-+p;v1">
                                                                                                                      <field name="VAR" id="JppG`(9.sfDt)j^gha}{">cUrlLimitPart1</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <value name="ADD1">
                                                                                                                    <block type="variables_get" id="W/O@o[J$nrG+r..LB`}A">
                                                                                                                      <field name="VAR" id="b+E=vG0=nXY*@8jhUpT1">InverterSerial2</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                  <value name="ADD2">
                                                                                                                    <block type="variables_get" id="q%FGBbHAZ^N/`|V3wzs%">
                                                                                                                      <field name="VAR" id="Xy47v*SILC`=7N1mM,:5">cUrlLimitPart2</field>
                                                                                                                    </block>
                                                                                                                  </value>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                            </block>
                                                                                                          </next>
                                                                                                        </block>
                                                                                                      </next>
                                                                                                    </block>
                                                                                                  </next>
                                                                                                </block>
                                                                                              </next>
                                                                                            </block>
                                                                                          </next>
                                                                                        </block>
                                                                                      </statement>
                                                                                    </block>
                                                                                  </next>
                                                                                </block>
                                                                              </next>
                                                                            </block>
                                                                          </next>
                                                                        </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>
              </statement>
            </block>
          </next>
        </block>
        <block type="procedures_defcustomnoreturn" id="nxZk[TB}x%yvkJ058U]o" x="738" y="862">
          <mutation statements="false">
            <arg name="jsonObj" varid="P.,=V-_lWMTIt*,^9bWa"></arg>
            <arg name="attr" varid="?Ekt8|,iPfa0uAPY)N%A"></arg>
            <arg name="val" varid="y`qH:gKyqipx04VGZ@;="></arg>
          </mutation>
          <field name="NAME">change</field>
          <field name="SCRIPT">anNvbk9ialthdHRyXSA9IHZhbDs=</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
      </xml>
      

      Damit kann in jedem Script der Dynamic Power Limiter ein- oder ausgeschaltet werden.

      Ist bestimmt brauchbar.

      Vorschläge oder Verbesserungen willkommen.

      Würde mich mal über eine Rückmeldung oder einen Beitrag freuen.
      Nicht, dass ich hier Alleinunterhalter bin 🙂

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Test Adapter Zendure Solarflow

      @lesiflo
      Lokal ist super.
      Es wird zuverlässig, schnell und oft aktualisiert 🙂

      posted in Tester
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @rene55
      👍
      DeviceID ist klar denke ich?

      Nennt sich beim Solar Flow Adapter: Device Key

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Test Adapter Zendure Solarflow

      @nograx

      gleich installiert.
      werde es testen. Danke.


      edit: Erste 3h ohne Neustart sind vorbei.
      Läuft bis jetzt einwandrei.
      ACE1500 hat nichts zu tun Akku voll.
      Hub+ACE connected.
      Super schnelle Aktualisierung der Datenpunkte.
      ...to be continued


      18.06h
      6h ohne Neustart
      alles ok.


      21.10h
      über 9h ohne Neustart.
      alles ok.

      Unter Protokolle iobroker:
      Keine Meldung(en).
      Weder vom Solarflow-Adapter, noch vom mqtt-Server 1883, seit Start v1.13.0 (Mi, 30.04.2025 11.59h).
      Nicht mal ne Info.

      Datenpunkt-Aktualisierungen kommen schnell.
      Steuerung funktioniert.


      posted in Tester
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @rene55
      und Alle:

      Die generierten Passwörter wurden getestet, sind richtig und funktionieren.

      Aber:
      Der iobroker SolarFlow-Adapter hat keine Zugangsdaten für den lokalen Betrieb!
      Deshalb funktioniert der Adapter von @nograx (noch) NICHT!

      Mit mosquitto-Server ausführlich getestet.
      Nimmt man dazu den mqtt-Adapter als Client melden sich die Geräte sauber an und funktionieren mit den generierten Passwörtern.

      Damit der gute Solar-Flow-Adapter im lokalen Betrieb funktioniert, müsste der Adapter bearbeitet werden.

      Schade.

      Wenn ein mosquitto-Server läuft verbinden sich die Zendure Geräte mit Passwörtern lokal einwandfrei.
      iobroker mqtt-Client-Adapter auch.

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Test Adapter Zendure Solarflow

      @nograx sagte in Test Adapter Zendure Solarflow:

      Moin, mit der Version 1.13.2 wird der AC Mode beim ACE 1500 nun auch korrekt gesetzt. Musste erstmal checken das Zendure hier den selben Datenpunkt bei Geräten für unterschiedliche Dinge nutzt.

      Die Version 1.13.2 ist noch in Arbeit?

      Und
      die Passwort-Generierung funktioniert ja jetzt.
      Bist Du so lieb und würdest optionale mqtt-Zugangsdaten in die UI für lokalen Betrieb einpflegen?

      Mir ist klar, dass die Daten ohne SSL bzw. TLS sowieso im Klartext gesendet werden, aber es wäre schön, wenn die nicht offen in der Instanz sichtbar wären.
      (Einfachste Lösung die Verkettung des IP String?)

      Bitte.


      edit/ps:
      Von mir aus kannst auch die Passwortgenerierung mit in den Adapter einpflegen.
      Wenn Du möchtest.

      posted in Tester
      maxclaudi
      maxclaudi

    Latest posts made by maxclaudi

    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      Wer wissen möchte wie das Passwort generiert wird:

      1. aus der DeviceID wird ein MD5 Hash generiert.
      2. die Buchstaben vom generierten MD5 Hash werden in Großbuchstaben umgewandelt.
      3. die ersten 8 Zeichen und die Zeichen 25+ werden entfernt.

      Fertig.


      Man kann auch online (oder offline mit einem md5-Tool) das Paswort selbst generieren.
      Oder überprüfen ob es richtig ist:


      online-Beispiel:
      DeviceID: BaSD4hsK
      gesuchtes noch unbekanntes Passwort: FF2F20666EA30FC8


      Ein md5-hash-online-generator z. B.:
      md5hashgenerator

      Dort die DeviceID: BaSD4hsK eingeben und auf "Generate" klicken.

      Dann bekommt man den "MD5 Hash" angezeigt der kopiert werden kann.


      In dem Beispiel ist das:

      e302c909ff2f20666ea30fc85db6d2cc
      

      Jetzt kann man den md5 hash in ein Text-File kopieren.


      In dem Textfile
      entfernt ihr Alle Zeichen ab und inkl. der Stelle(n) 25-32:

      e302c909ff2f20666ea30fc8
      

      Danach werden die Stellen 1-8 entfernt:

      ff2f20666ea30fc8
      

      Am Ende noch Kleinbuchstaben zu Großbuchtstaben konvertieren:

      FF2F20666EA30FC8
      

      Fertig, das funktionierende Passwort ist generiert.

      Damit ist es für jeden möglich unabhängig vom Betriebsystem sein Passwort zu erfahren/überprüfen.


      Denke jetzt ist Allen klar, wie man an das Passwort der DevieID kommt 😉


      EDIT/PS:

      Offline für Windows:

      Windows-User die die DeviceID nicht online eingeben möchten, können auch bei Microsoft das
      "Hash Tool" downloaden.

      Dann alles offline:...

      Hash_tool_deviceID.png

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Test Adapter Zendure Solarflow

      @nograx sagte in Test Adapter Zendure Solarflow:

      Moin, mit der Version 1.13.2 wird der AC Mode beim ACE 1500 nun auch korrekt gesetzt. Musste erstmal checken das Zendure hier den selben Datenpunkt bei Geräten für unterschiedliche Dinge nutzt.

      Die Version 1.13.2 ist noch in Arbeit?

      Und
      die Passwort-Generierung funktioniert ja jetzt.
      Bist Du so lieb und würdest optionale mqtt-Zugangsdaten in die UI für lokalen Betrieb einpflegen?

      Mir ist klar, dass die Daten ohne SSL bzw. TLS sowieso im Klartext gesendet werden, aber es wäre schön, wenn die nicht offen in der Instanz sichtbar wären.
      (Einfachste Lösung die Verkettung des IP String?)

      Bitte.


      edit/ps:
      Von mir aus kannst auch die Passwortgenerierung mit in den Adapter einpflegen.
      Wenn Du möchtest.

      posted in Tester
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      Zur Überprüfung, dass das Passwort richtig generiert wird,
      können folgende Daten verglichen werden.
      Wenn man diese DeviceID verwendet, muss das darunterstehende Passwort ausgegeben werden.

      BaSD4hsK
      FF2F20666EA30FC8
      
      EaTJ4htU
      D64BF3C7EFD8FD4F
      
      BcDH6dcK
      400E9010DAFD311A
      
      AgCV7bdX
      6A8CE3072CD9FDDA
      
      YAyxgHs8
      CE9B58EA45CEE5D2
      
      YZyxbKs7
      779F8DE0835E4E38
      
      YLbcbMt3
      2B6C02D9F20F845F 
      
      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @bernd1967
      Es liegt eher daran, dass Windows nicht den awk interpreter hat.
      Auf die Idee, mit node-red was zu versuchen, wäre ich nicht gekommen.


      Meine Empfehlung wäre gewesen:

      Habe immer einen USB-Boot-Stick mit Ubuntu-Standard Version parat.
      Kann man schnell bei jedem Rechner / Notebook mit Windows verwenden.
      Booten ins Ram (ohne Installation) und schon kann man vernünftig arbeiten.

      Wäre kurz ein booten, Terminal öffnen, Befehlszeile eingeben.

      Oder:
      vorher Befehlszeile in ein Textfile x.txt kopieren.
      Das file auf den USB-Boot-Stick kopieren.
      Mit USB-Stick Linux starten.
      Datei öffnen, Terminal öffnen -> copy paste

      Falls noch jemand iobroker auf Windows installiert hat und mit node-red nicht so vertraut ist.

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @rene55 sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

      Mir ist nur nicht klar, wieso ich dann auf den iobroker-mqtt-Adapter (spielt Client/Subscriber) verzichten kann.

      Auf den Client nicht.

      Meinte die andere mqqt-Broker-Instanz für den solarflow-Adapter.
      Wenn man schon einen guten Broker hat, dann benötigt man keinen 2ten.

      Recourcenschonender und vor allem: sicherer.

      Einen nicht geschützten Zugang (auch intern) möchte ich nicht.
      Auch wenn der Schutz nicht so hoch ist: besser als keinen.

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @rene55 sagte in Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication:

      @maxclaudi Das wird wohl so nicht funktionieren. Ich hab den iobroker-mqtt-client ja bereits auf Port 1883 im Einsatz. Natürlich mit User/Passwort gegen den externen Mosquitto.

      ?
      Ist folgendes richtig:

      1. Du hast extern einen mosquitto (Broker) laufen mit port 1883.

      2. Am mosquitto bist Du mit iobroker-mqtt-Adapter-Client mit user und passwort (Authentication) verbunden.

      3. vermutlich sind Deine weiteren Geräte wie Wasseruhr, Stromzähler etc. auch mit dem msoquitto verbunden? Wahrscheinlich tasmota oder ähnliches.

      4. Du benutzt den Solarflow-Adapter als Client und hast dafür extra einen iobroker-mqqt-Broker-(Server)-Adapter ohne Anmeldedaten.

      Ja?

      Dann wäre ein Umstieg schnell möglich und könntest auf den iobroker-mqtt-Adapter verzichten.
      a) Passwort zum Solarflow 1200 DeviceID generieren.
      b) Beim mosquitto in die Passwortliste -> DeviceID:passwort
      c) am besten gleich noch ein user:passwort für solarflow mit in die mosquitto Passswordliste.
      Das könntest (schon jetzt) für die Zukunft machen.
      Muss ja noch nicht benutzt werden.


      Wenn dann irgendwann Lust/Zeit hast:

      1. Zendure noch 1x disconnecten und IP vom mosquitto eintragen.
        neustarten usw., weißt ja.

      2. Solarflow-Adapter Instanz:
        Wenn dafür nicht extra einen zusätzlichen user in der Passwortliste hast, dann kannst auch einen vorhanden nehmen z.B. von der Wasseruhr.
        wasserUhruser:wasserUhrPasswort@ip_von_mosquitto


      Geht alles schnell 🙂

      Bei uns und Freunden (4 Zendure Systeme) läuft alles einwandfrei.
      Lokal, mit den Passwörtern und Solar-Flow-Adapter.

      Wenn Alles so lassen möchtest, ist auch ok.


      Danke Dir, dass Du wenigstens interessiert bist und kommunizierst.
      Finde ich Klasse 👍

      Man bekommt ja fast kein Feedback.
      Ist ein wenig traurig.
      Scheinbar ist kein großes Interesse vorhanden.
      Da überlegt man seine Erfolge zu teilen, wenn weder ein Daumen hoch, noch Kritik, Mitarbeit oder sonst was kommt.

      c'est la vie

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @rene55
      Wenn Du nur den solarflow HUB 1200 benutzt, kannst Du auch den iobroker-mqtt-Server-Adapter benutzen.
      Dann gibst einfach beiden (Solarflow-Adapter+HUB 1200) DeviceID als user und das Passwort dazu.
      Mehr Zendure-Geräte gehen dann nicht mehr.

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @bernd1967
      👍
      nodered unter windows führt linux commands aus oder hat md5 intergiert?
      Blockly nimmt unter windows also das windows eigene cmd.

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @bernd1967
      ok, ich kann's nicht gegentesten.
      Hab hier kein Windows mit iobroker zur Verfügung.
      Heute ist es für mich zu spät sorry.

      posted in Blockly
      maxclaudi
      maxclaudi
    • RE: Zendure Solar Flow ohne Cloud MQTT-Broker MIT Authentication

      @bernd1967
      die Lösung steht doch hier 🙂
      das blockly von mir funktioniert im iobroker auch unter Windows.

      Der mosquitto lässt sich auch unter Windows installieren: mosquitto-2.0.21a-install-windows-x64.exe download

      posted in Blockly
      maxclaudi
      maxclaudi
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo