Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Regelung eines Hoymiles Solarinverters (Nulleinspeisung)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Regelung eines Hoymiles Solarinverters (Nulleinspeisung)

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

      Hallo,
      ich habe mich mal daran versucht, ein Blockly zu erstellen, welches dazu dient, einen Hoymiles Wechselrichter für ein Balkonkraftwerk zu regeln.
      Dazu gibt es im Netz schon einige, aber die, die ich gefunden hatte, gingen immer von dem Ansatz aus, das reagiert wird, wenn die Anlage in die Einspeisung geht, also mehr Strom erzeugt wird, als benötigt wird.
      Mein Ansatz verfolgt einen anderen Weg. Und zwar den, dass die Anlage immer maximal soviel Strom liefert, wie von den Verbrauchern verlangt wird. Meinen Stromzähler lese ich mit einem Hichi aus, der negative Werte anzeigt, wenn eingespeist wird. Die benötigte Strommenge ergibt sich aus der Summe dessen, was der Hichi ausliest und der momentanen Leistung der PV-Anlage.
      Meine Regelung erfolgt alle 30 Sekunden und nur zwischen Sonnenauf- und Sonnenuntergang. Um zu häufige Regelungen zu vermeiden, habe ich eine Hysterese eingebaut, wobei die Regelung nur dann erfolgt, wenn der gemessene Strombedarf mehr als 10% vom vorher eingestellten abweicht. Den eingestellten Wert speichere ich dazu in einem Datenpunkt. Die Regelung erfolgt über MQTT non-persistent und in Prozent, also relativ.
      Ich hoffe, das Skript ist einigermaßen lesbar und würde mich mich über Hinweise zu Fehlern oder Verbesserungsvorschläge freuen.
      Hier nun das Blockly;

      Bildschirmfoto vom 2023-03-01 11-43-47.png

      viele Grüße
      Kymchy

      K T G 3 Replies Last reply Reply Quote 1
      • K
        Kymchy @Kymchy last edited by

        @kymchy einen Fehler habe ich bereits selbst gefunden, der Wert muss natürlich auch gespeichert werde, wenn auf 100% geregelt wird, sonst funktioniert der Vergleich nicht richtig. Der Regelungsblock müsste also so aussehen:

        Bildschirmfoto vom 2023-03-01 12-24-54.png

        T 1 Reply Last reply Reply Quote 0
        • T
          t.maas @Kymchy last edited by

          @kymchy said in Regelung eines Hoymiles Solarinverters (Nulleinspeisung):

          @kymchy einen Fehler habe ich bereits selbst gefunden, der Wert muss natürlich auch gespeichert werde, wenn auf 100% geregelt wird, sonst funktioniert der Vergleich nicht richtig. Der Regelungsblock müsste also so aussehen:

          Bildschirmfoto vom 2023-03-01 12-24-54.png

          Moin kannst du dein Skrippt mal hochladen,würde es gerne testen

          K 1 Reply Last reply Reply Quote 0
          • K
            Kymchy @t.maas last edited by Kymchy

            @t-maas
            OK, du must natürlich noch einiges anpassen nach dem Import, wie die Seriennummer des Wechselrichter usw. Außerdem einen eigenen Datenpunkt für den Vergleichswert anlegen. Und du benötigst natürlich das MQTT-Topic. Momentan regelt es alle 20 Sekunden. Das Limit für den Vergleichswert oben liegt bei 5% über und für den unteren bei 10% unter dem des zuletzt gespeicherten Wertes. Hier ist noch ein Feintuning möglich.

            <block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="!P+uzJ#%y!_wHsKqo2~M" x="-812" y="-562">
              <field name="SCHEDULE">0,20,40 * * * * *</field>
              <statement name="STATEMENT">
                <block type="variables_set" id="~v~t5u;a_q(#kb+E{(FH">
                  <field name="VAR" id="?~:J:;gqC%-pt?=zNsH:">Sunrise</field>
                  <value name="VALUE">
                    <block type="time_astro" id="Svgszky6QE2/10f8vck1">
                      <field name="TYPE">sunrise</field>
                      <field name="OFFSET">0</field>
                    </block>
                  </value>
                  <next>
                    <block type="variables_set" id="~/087{!i@]6[`rKxsw]j">
                      <field name="VAR" id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</field>
                      <value name="VALUE">
                        <block type="time_astro" id="BO/%++Qd.ktL4PfK.r3?">
                          <field name="TYPE">sunset</field>
                          <field name="OFFSET">0</field>
                        </block>
                      </value>
                      <next>
                        <block type="controls_if" id="xaOp|xXgB@BB44iq}cJ.">
                          <mutation else="1"></mutation>
                          <value name="IF0">
                            <block type="logic_operation" id="|K,B[pWUT`!LyJsB6,pK">
                              <field name="OP">AND</field>
                              <value name="A">
                                <block type="time_compare_ex" id="Y8n@Iqzd:%qZbp|#P_v^">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>
                                  <field name="USE_ACTUAL_TIME">TRUE</field>
                                  <field name="OPTION">&gt;=</field>
                                  <value name="START_TIME">
                                    <shadow type="text" id="]-0N3DkP*7?ghtYzXwX!">
                                      <field name="TEXT">12:00</field>
                                    </shadow>
                                    <block type="variables_get" id="!,6PYgrHnSxh#Evn[Yie">
                                      <field name="VAR" id="?~:J:;gqC%-pt?=zNsH:">Sunrise</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="time_compare_ex" id="qRYvI=rC7,D?`B=PV@^6">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>
                                  <field name="USE_ACTUAL_TIME">TRUE</field>
                                  <field name="OPTION">&lt;=</field>
                                  <value name="START_TIME">
                                    <shadow type="text">
                                      <field name="TEXT">12:00</field>
                                    </shadow>
                                    <block type="variables_get" id="LMy)6-$QN(f3d9klxV`O">
                                      <field name="VAR" id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="variables_set" id="~p6WKGjCNU[UXfc{|$8|">
                              <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field>
                              <value name="VALUE">
                                <block type="math_number" id="Z(v(#cMkS]/o.,;iyE/|">
                                  <field name="NUM">600</field>
                                </block>
                              </value>
                              <next>
                                <block type="variables_set" id="Ih%sQzzK`!Ec=`tscEm-">
                                  <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</field>
                                  <value name="VALUE">
                                    <block type="get_value" id="E60zTd:yszZT-@pD[YB#">
                                      <field name="ATTR">val</field>
                                      <field name="OID">sonoff.0.DVES_0649F9.ENERGY_Power</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="variables_set" id=":rlAB32E^@yPP9Jh?EMO">
                                      <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</field>
                                      <value name="VALUE">
                                        <block type="get_value" id="Q8pLDlgI~N(N2-6)X@Qu">
                                          <field name="ATTR">val</field>
                                          <field name="OID">mqtt.0.solar.Seriennummer-Wechselrichter.0.power</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="variables_set" id="t8-xB+K`%rr)x]%:Q5cN">
                                          <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field>
                                          <value name="VALUE">
                                            <block type="math_arithmetic" id="2FaDMR/kS5K9d!j=`dK3">
                                              <field name="OP">ADD</field>
                                              <value name="A">
                                                <shadow type="math_number" id="2FEk%?jHI2)Hvf4}p|*;">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="variables_get" id="Z`YZ!4FileGG?5VwaP-/">
                                                  <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</field>
                                                </block>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id="+10nRI6/x]hugF{/lmxM">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="variables_get" id="n0BqKn~p@qPw.Jvfrj,s">
                                                  <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="variables_set" id="$61h{3os=)%X-VEx9M:i">
                                              <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                              <value name="VALUE">
                                                <block type="math_round" id="3$tH.4.P)ukPPcI4xw.A">
                                                  <field name="OP">ROUND</field>
                                                  <value name="NUM">
                                                    <shadow type="math_number" id="{D8W1ElJ#97Cg:]vDkM;">
                                                      <field name="NUM">3.1</field>
                                                    </shadow>
                                                    <block type="math_arithmetic" id="ju~9S8j-`0c/OF%2$7-o">
                                                      <field name="OP">MULTIPLY</field>
                                                      <value name="A">
                                                        <shadow type="math_number" id="6:p#t,*^;)z:Wb:@dc|3">
                                                          <field name="NUM">100</field>
                                                        </shadow>
                                                      </value>
                                                      <value name="B">
                                                        <shadow type="math_number" id=".fYZ,3H9RSS}:wD=%Bvk">
                                                          <field name="NUM">1</field>
                                                        </shadow>
                                                        <block type="math_arithmetic" id="Z9S-r-/8^FbCeq,[{ULB">
                                                          <field name="OP">DIVIDE</field>
                                                          <value name="A">
                                                            <shadow type="math_number" id="jul_lM$(9.yj`:ZH8}%@">
                                                              <field name="NUM">1</field>
                                                            </shadow>
                                                            <block type="variables_get" id="_mPBX.l-0%hNvWtND[z1">
                                                              <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <shadow type="math_number" id="{Q+JfjzDv.)Z1KRbU*uv">
                                                              <field name="NUM">600</field>
                                                            </shadow>
                                                            <block type="variables_get" id="M!sN^/9!7$b}.ru.lqgC">
                                                              <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="variables_set" id="g3gA+F5X4*$4x2),%sJV">
                                                  <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                  <value name="VALUE">
                                                    <block type="get_value" id="7wbrC,7l;@ahCGcw2/pL">
                                                      <field name="ATTR">val</field>
                                                      <field name="OID">0_userdata.0.PV-Anlage.storedNeededPower</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="variables_set" id="2KI]WdQd`0MzEf%mOPaL">
                                                      <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field>
                                                      <value name="VALUE">
                                                        <block type="math_round" id="Ha.~N]M`[1eWboby_aYe">
                                                          <field name="OP">ROUND</field>
                                                          <value name="NUM">
                                                            <shadow type="math_number" id=":C/cpWh)P`-jK9}]IN*4">
                                                              <field name="NUM">3.1</field>
                                                            </shadow>
                                                            <block type="math_arithmetic" id="v}v!|Jkv3JHVqQR7poM0">
                                                              <field name="OP">ADD</field>
                                                              <value name="A">
                                                                <shadow type="math_number">
                                                                  <field name="NUM">1</field>
                                                                </shadow>
                                                                <block type="variables_get" id="{dg*rTfc(I5I1PoYYN;l">
                                                                  <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                </block>
                                                              </value>
                                                              <value name="B">
                                                                <shadow type="math_number">
                                                                  <field name="NUM">1</field>
                                                                </shadow>
                                                                <block type="math_arithmetic" id="#Aa[sC!ija_TtL9Go*jl">
                                                                  <field name="OP">MULTIPLY</field>
                                                                  <value name="A">
                                                                    <shadow type="math_number">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="variables_get" id="?YS@_}6Hup[`ZsLR!Z45">
                                                                      <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <shadow type="math_number" id="YxGb?xk[MY37)!7O-Cqe">
                                                                      <field name="NUM">0.05</field>
                                                                    </shadow>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="variables_set" id="+KJ71_Z(eLN.a(uoEuci">
                                                          <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field>
                                                          <value name="VALUE">
                                                            <block type="math_round" id="=HYNg!vGE)^Z7m{+e$cs">
                                                              <field name="OP">ROUND</field>
                                                              <value name="NUM">
                                                                <shadow type="math_number" id="|d.50MyF$Zxnn(B]!gq~">
                                                                  <field name="NUM">3.1</field>
                                                                </shadow>
                                                                <block type="math_arithmetic" id="?8HAOa[X,LM#h`p]lLc4">
                                                                  <field name="OP">MINUS</field>
                                                                  <value name="A">
                                                                    <shadow type="math_number" id="(8p!3BSrd)N0m`PVj}cd">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="variables_get" id="?$cU!rsg;wkU}CP.VsR.">
                                                                      <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <shadow type="math_number" id="@kP8*eoC!D4/Wa?%grKM">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="math_arithmetic" id="D$_kryX`Gb5eu$gnYS_q">
                                                                      <field name="OP">MULTIPLY</field>
                                                                      <value name="A">
                                                                        <shadow type="math_number">
                                                                          <field name="NUM">1</field>
                                                                        </shadow>
                                                                        <block type="variables_get" id="nrL6t1UCC{jy1*U[O|Xq">
                                                                          <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <shadow type="math_number" id="||~-FC.nb3oU=fuLJzw}">
                                                                          <field name="NUM">0.1</field>
                                                                        </shadow>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="debug" id="8cGY=ms*^/Fbn#Cde4/e">
                                                              <field name="Severity">log</field>
                                                              <value name="TEXT">
                                                                <shadow type="text">
                                                                  <field name="TEXT">test</field>
                                                                </shadow>
                                                                <block type="text_join" id="QUQf.~7J|ziuD3sLdl)|">
                                                                  <mutation items="2"></mutation>
                                                                  <value name="ADD0">
                                                                    <block type="text" id="lGPf[Ci!QdAF4j#Bn34-">
                                                                      <field name="TEXT">Sonnenaufgang; </field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="ADD1">
                                                                    <block type="variables_get" id="kwmbl:u%6-!)]lE{Bhdj">
                                                                      <field name="VAR" id="?~:J:;gqC%-pt?=zNsH:">Sunrise</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <next>
                                                                <block type="debug" id="yaFK]t~sZKg}j1WzH!TL">
                                                                  <field name="Severity">log</field>
                                                                  <value name="TEXT">
                                                                    <shadow type="text">
                                                                      <field name="TEXT">test</field>
                                                                    </shadow>
                                                                    <block type="text_join" id="g_%Dq-ksE!p;Tib-dWoB">
                                                                      <mutation items="2"></mutation>
                                                                      <value name="ADD0">
                                                                        <block type="text" id="(bZZUaTT0bt~IQ|a~%#R">
                                                                          <field name="TEXT">Sonnenuntergang; </field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="ADD1">
                                                                        <block type="variables_get" id="weuYcyZ5+:mfnpSK9UiP">
                                                                          <field name="VAR" id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <next>
                                                                    <block type="debug" id="1|f1K~GhCe(a;/q4o_X]">
                                                                      <field name="Severity">log</field>
                                                                      <value name="TEXT">
                                                                        <shadow type="text">
                                                                          <field name="TEXT">test</field>
                                                                        </shadow>
                                                                        <block type="text_join" id="2Zo2{I0w6J%`$2:qEY1l">
                                                                          <mutation items="2"></mutation>
                                                                          <value name="ADD0">
                                                                            <block type="text" id="+YI.VRyx;em.YT$D(|bs">
                                                                              <field name="TEXT">Istwert: </field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="ADD1">
                                                                            <block type="variables_get" id="z%3ACfZd0~)KLgj0p}%@">
                                                                              <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                      <next>
                                                                        <block type="debug" id="r+xN[i`4xS-M`OYDBpb.">
                                                                          <field name="Severity">log</field>
                                                                          <value name="TEXT">
                                                                            <shadow type="text">
                                                                              <field name="TEXT">test</field>
                                                                            </shadow>
                                                                            <block type="text_join" id="(f(78JM#Hy0@?Z0hJe~l">
                                                                              <mutation items="2"></mutation>
                                                                              <value name="ADD0">
                                                                                <block type="text" id="~}`O(MW.TU:J%_oS)#Xu">
                                                                                  <field name="TEXT">obere Grenze: </field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="ADD1">
                                                                                <block type="variables_get" id=",vBoJg7x{3!@v.c5w4q]">
                                                                                  <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field>
                                                                                </block>
                                                                              </value>
                                                                            </block>
                                                                          </value>
                                                                          <next>
                                                                            <block type="debug" id="qBNh2:P3U}F#$|$6FZFn">
                                                                              <field name="Severity">log</field>
                                                                              <value name="TEXT">
                                                                                <shadow type="text" id="2kPK8(t-SdR9TZvb.%-l">
                                                                                  <field name="TEXT">test</field>
                                                                                </shadow>
                                                                                <block type="text_join" id="}cq5v9RJT$55w(=?6BX)">
                                                                                  <mutation items="2"></mutation>
                                                                                  <value name="ADD0">
                                                                                    <block type="text" id="*q^TTVgJ+?:b!z,x/S;V">
                                                                                      <field name="TEXT">untere Grenze: </field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="ADD1">
                                                                                    <block type="variables_get" id="Vh$)4$K%:ZHW:~MiMXet">
                                                                                      <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </value>
                                                                              <next>
                                                                                <block type="debug" id="k}*+@}8y%^u*6nB1JGm^">
                                                                                  <field name="Severity">log</field>
                                                                                  <value name="TEXT">
                                                                                    <shadow type="text">
                                                                                      <field name="TEXT">test</field>
                                                                                    </shadow>
                                                                                    <block type="text_join" id="9O/.cB+R0J#M=YHuIJn?">
                                                                                      <mutation items="2"></mutation>
                                                                                      <value name="ADD0">
                                                                                        <block type="text" id="3Uv-x,Irz%wnP{oXU!s^">
                                                                                          <field name="TEXT">benötigte Power in Prozent:</field>
                                                                                        </block>
                                                                                      </value>
                                                                                      <value name="ADD1">
                                                                                        <block type="variables_get" id="T);Yxf;X[xS0z_7}_YkI">
                                                                                          <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                        </block>
                                                                                      </value>
                                                                                    </block>
                                                                                  </value>
                                                                                  <next>
                                                                                    <block type="controls_if" id="//Rx),f%pyif!qW8O/?G">
                                                                                      <mutation elseif="1" else="1"></mutation>
                                                                                      <value name="IF0">
                                                                                        <block type="logic_operation" id="6|n{EZ*g-L?wwMuw~`pt">
                                                                                          <field name="OP">AND</field>
                                                                                          <value name="A">
                                                                                            <block type="logic_compare" id="@s)ep$AZC}nn4%[Y{zXv">
                                                                                              <field name="OP">GTE</field>
                                                                                              <value name="A">
                                                                                                <block type="variables_get" id="rLGQIwoD@(-[)i.@Gek1">
                                                                                                  <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <value name="B">
                                                                                                <block type="math_number" id="i.8)/]r6EY5E@{+61}ch">
                                                                                                  <field name="NUM">100</field>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                          <value name="B">
                                                                                            <block type="logic_compare" id="M%7gn=%*6!Oo0Iy!N0HE">
                                                                                              <field name="OP">EQ</field>
                                                                                              <value name="A">
                                                                                                <block type="variables_get" id="FPBUa4}8MCdw~u2(u=Z4">
                                                                                                  <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <value name="B">
                                                                                                <block type="math_number" id="])#t~DUCT78?qe_~1/X)">
                                                                                                  <field name="NUM">100</field>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                        </block>
                                                                                      </value>
                                                                                      <statement name="DO0">
                                                                                        <block type="debug" id="_|aD2Z`JU`?BoQCCcfTz">
                                                                                          <field name="Severity">log</field>
                                                                                          <value name="TEXT">
                                                                                            <shadow type="text" id="wcNA/`cj2DUcJLr26^bd">
                                                                                              <field name="TEXT">keine Änderung, Wert ist gleich gespeichertem Wert</field>
                                                                                            </shadow>
                                                                                          </value>
                                                                                        </block>
                                                                                      </statement>
                                                                                      <value name="IF1">
                                                                                        <block type="logic_operation" id="4WJuW,40dOlCCnG8!=A(">
                                                                                          <field name="OP">OR</field>
                                                                                          <value name="A">
                                                                                            <block type="logic_compare" id="0U*fZT58L0uKFJsD)N{;">
                                                                                              <field name="OP">GT</field>
                                                                                              <value name="A">
                                                                                                <block type="variables_get" id="%=U`G7.6z`w:8|:XtgTI">
                                                                                                  <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <value name="B">
                                                                                                <block type="variables_get" id="IE{(_NPVQP{:.^rxbG?4">
                                                                                                  <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                          <value name="B">
                                                                                            <block type="logic_compare" id="7GGwP6lHcmy!ILxZJvYk">
                                                                                              <field name="OP">LT</field>
                                                                                              <value name="A">
                                                                                                <block type="variables_get" id="EN^7brshgWEicI7V4)C!">
                                                                                                  <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <value name="B">
                                                                                                <block type="variables_get" id="7B.88d1a^Hr`R-b6!iMZ">
                                                                                                  <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                        </block>
                                                                                      </value>
                                                                                      <statement name="DO1">
                                                                                        <block type="controls_if" id="P8/_4.KJ/zZ6qh9iBh+o">
                                                                                          <mutation else="1"></mutation>
                                                                                          <value name="IF0">
                                                                                            <block type="logic_compare" id="mk*xKT^,LdqKZpmRr}r4">
                                                                                              <field name="OP">LTE</field>
                                                                                              <value name="A">
                                                                                                <block type="variables_get" id=".d_KP;p/?wytr_{S7(db">
                                                                                                  <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <value name="B">
                                                                                                <block type="variables_get" id="R!EQmKR0*lP1iR`NTG%f">
                                                                                                  <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field>
                                                                                                </block>
                                                                                              </value>
                                                                                            </block>
                                                                                          </value>
                                                                                          <statement name="DO0">
                                                                                            <block type="variables_set" id="v_^pc%4YAqueF4@xp/Ph">
                                                                                              <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                              <value name="VALUE">
                                                                                                <block type="variables_get" id="rba!2I;EQyijkPfjo!Ze">
                                                                                                  <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <next>
                                                                                                <block type="update" id="E7HJvqAC,*BNAxN~e8sd">
                                                                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                                  <field name="OID">0_userdata.0.PV-Anlage.storedNeededPower</field>
                                                                                                  <field name="WITH_DELAY">FALSE</field>
                                                                                                  <value name="VALUE">
                                                                                                    <block type="variables_get" id="hR1[WimPbd@1ICN+UAdn">
                                                                                                      <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                </block>
                                                                                              </next>
                                                                                            </block>
                                                                                          </statement>
                                                                                          <statement name="ELSE">
                                                                                            <block type="variables_set" id="iqqD`P-h34,:2q7p$CH|">
                                                                                              <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                              <value name="VALUE">
                                                                                                <block type="math_number" id="dowAhu.+=iz#Wc-F]p:X">
                                                                                                  <field name="NUM">100</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <next>
                                                                                                <block type="update" id="*?5=;cANP)NJ|KuX_[PF">
                                                                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                                  <field name="OID">0_userdata.0.PV-Anlage.storedNeededPower</field>
                                                                                                  <field name="WITH_DELAY">FALSE</field>
                                                                                                  <value name="VALUE">
                                                                                                    <block type="math_number" id="7vXqNl1zb}n*oh6q3:]4">
                                                                                                      <field name="NUM">100</field>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                </block>
                                                                                              </next>
                                                                                            </block>
                                                                                          </statement>
                                                                                          <next>
                                                                                            <block type="control" id="z87W,.vtwA$UGqi.I!=^">
                                                                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                              <field name="OID">mqtt.0.solar.Seriennummer-Wechselrichter.cmd.limit_nonpersistent_relative</field>
                                                                                              <field name="WITH_DELAY">FALSE</field>
                                                                                              <value name="VALUE">
                                                                                                <block type="variables_get" id="tl[!e[[e4iwK1(?b$77o">
                                                                                                  <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <next>
                                                                                                <block type="debug" id="4(mO4hae0d8|yCEDlMj~">
                                                                                                  <field name="Severity">log</field>
                                                                                                  <value name="TEXT">
                                                                                                    <shadow type="text" id="GhK9E*i9z*IoFuBKSaq1">
                                                                                                      <field name="TEXT">test</field>
                                                                                                    </shadow>
                                                                                                    <block type="text_join" id="K$7:Tw;%Pm?f$3/:xV?V">
                                                                                                      <mutation items="2"></mutation>
                                                                                                      <value name="ADD0">
                                                                                                        <block type="text" id="tzX795?CuQ=.SGL`i!ns">
                                                                                                          <field name="TEXT">gesetztes Limit: </field>
                                                                                                        </block>
                                                                                                      </value>
                                                                                                      <value name="ADD1">
                                                                                                        <block type="variables_get" id="`hpd|~6gnaa1#A:#I^ku">
                                                                                                          <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field>
                                                                                                        </block>
                                                                                                      </value>
                                                                                                    </block>
                                                                                                  </value>
                                                                                                </block>
                                                                                              </next>
                                                                                            </block>
                                                                                          </next>
                                                                                        </block>
                                                                                      </statement>
                                                                                      <statement name="ELSE">
                                                                                        <block type="debug" id="k-_yI!1YR}Cw@^zA*2By">
                                                                                          <field name="Severity">log</field>
                                                                                          <value name="TEXT">
                                                                                            <shadow type="text" id="pOzzR,#7b~P,=jhm/QLz">
                                                                                              <field name="TEXT">keine Änderung</field>
                                                                                            </shadow>
                                                                                          </value>
                                                                                        </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>
                          </statement>
                          <statement name="ELSE">
                            <block type="debug" id="6hv2w66u%V}c3Ij`Q?pi">
                              <field name="Severity">log</field>
                              <value name="TEXT">
                                <shadow type="text" id="LmPU])Tk80,#%40`K:m4">
                                  <field name="TEXT">Zeit ist außerhalb der Reglungszeit.</field>
                                </shadow>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
            
            L S 2 Replies Last reply Reply Quote 0
            • L
              lucky51179 @Kymchy last edited by

              @kymchy Hallo versuche gerade es umzusetzen .

              habe mir jetzt 2 Datenpunkte (number) angelegt

              • Punkt 1 habe ich die Seriennummer rein geschrieben
              • Punkt 2 habe nichts das ist ja das für den Vergleichswert

              was muss dazu noch alles geändert werden ?

              K 1 Reply Last reply Reply Quote 0
              • K
                Kymchy @lucky51179 last edited by

                @lucky51179
                Nein, für die Seriennummer brauchst du keinen eigenen Datenpunkt. Du benötigst ein MQTT Topic. Hast du denn den MQTT Adapter installiert und siehst die Datenpunkte für deinen Wechselrichter?

                L 1 Reply Last reply Reply Quote 0
                • L
                  lucky51179 @Kymchy last edited by

                  @kymchy Ja diese sehe ich.
                  habe hier aber keinen Punkt gesehen mit wo die Seriennummer drinnen steht sondern nur einen Ordner.

                  Bildschirm­foto 2023-03-17 um 04.40.23.png

                  K 1 Reply Last reply Reply Quote 0
                  • K
                    Kymchy @lucky51179 last edited by

                    @lucky51179
                    die Seriennummer steht auch in keinem Punkt, sondern ist ja auch selber ein Ordner, wie in deinem Screenshot zu sehen ist. Und in diesem Ordner benötigst du einen weiteren mit dem Namen cmd und darin den Punkt limit_nonpersistant_relative
                    den kannst du aber nicht einfach so anlegen, sondern musst ihn publishen, weil es ein MQTT Topic ist.

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      lucky51179 @Kymchy last edited by

                      @kymchy wenn oich das richtig verstehe muss ich einen Ordner "cmd" anlegen und dazu den Punkt der dann die Leistung auf meinen Hoymiles einstellt .

                      Gibt es eine Quelle wie das anlegen funktioniert ?

                      Wie bekomme ich nun meine Seriennummer in das Script ?

                      Ralla66 K 3 Replies Last reply Reply Quote 0
                      • Ralla66
                        Ralla66 Most Active @lucky51179 last edited by Ralla66

                        1161 ........... ist die Seriennummer

                        1 Reply Last reply Reply Quote 0
                        • K
                          Kymchy @lucky51179 last edited by Kymchy

                          @lucky51179
                          Zunächst gehe mal davon aus, dass du mein Skript als Blockly importiert hast...

                          Du suchst im Netz nach MQTT Explorer und installierst ihn. Dann verbindest du dich in diesem Programm mit deinem ioBroker(IP und Port, meist 1883).
                          Du trägst dein Topic ein wie im folgenden Screenshot: Deine Seriennummer musst du da wo Seriennr steht eintragen.

                          Bildschirmfoto vom 2023-03-17 08-20-52.png Auf Publish klicken.
                          Dann verweist du im Blockly in dem Block "aktualisiere" auf diesen Punkt im ioBroker.
                          Die Seriennummer wird nirgendwo im Skript extra eingetragen.

                          L 1 Reply Last reply Reply Quote 0
                          • Ralla66
                            Ralla66 Most Active @lucky51179 last edited by

                            @lucky51179

                            publish

                            1 Reply Last reply Reply Quote 0
                            • L
                              lucky51179 @Kymchy last edited by lucky51179

                              @kymchy Top Danke, das Script läuft und regelt aktuell speist er nur 100 Watt ins Netz könnte ich dieses auch noch einstellen das es weniger wird ?

                              Fehler gefunden hat das mxSolarPower nicht angegeben somit hatte er von einen Falschen wert gerechnet

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                Kymchy @lucky51179 last edited by Kymchy

                                @lucky51179 das ist zuviel, da stimmt irgendwas noch nicht, vielleicht bei der Variablenzuordnung oder so. Hast du die richtige Wechselrichterleistung unter maxSolarPower eingetragen?

                                L 1 Reply Last reply Reply Quote 0
                                • L
                                  lucky51179 @Kymchy last edited by

                                  @kymchy Ja das stimmt das habe ich gemacht, jetzt schaut es gut, werde es mal testen

                                  L 1 Reply Last reply Reply Quote 0
                                  • Andy Anders
                                    Andy Anders last edited by Andy Anders

                                    Also erstmal danke für dein Blockly. Leider hab ich da noch einen Denkfehler glaub ich. Zum Auslesen der Zählers habe ich den Pulse von Tibber. Ich habe zwei Datenpnkte:Bezug und Einspeisung. Bei Bezug sehe ich was ich grad Verbrauche, speise ich mehr ein geht der Datenpunkte nur auf 0. Bei Einspeisung habe ich negative Werte wenn ich aber mehr Beziehe wird er positiv und ist gleich dem Datenpunkte Bezug. Ich komme einfach nicht auf die Lösung??

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      Kymchy @Andy Anders last edited by Kymchy

                                      @andy-anders
                                      Um den benötigten Wert (neededPower) zu ermittel müsstest du dann folgendes tun:

                                      wenn Einspeisung negativ dann
                                      neededPower = momentane Leistung PV + (Einspeisung als negativer Wert)
                                      sonst
                                      neededPower= Bezug+Leistung PV

                                      ist dieselbe Problematik wie beim Poweropti.

                                      Andy Anders 1 Reply Last reply Reply Quote 0
                                      • Andy Anders
                                        Andy Anders @Kymchy last edited by

                                        @kymchy also müsste ich noch nen " falls Block" einbauen? Sorry bin da noch nicht so gut drin.

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          Kymchy @Andy Anders last edited by

                                          @andy-anders genau, einen falls-sonst Block.

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            lucky51179 @lucky51179 last edited by

                                            @lucky51179 So habe das Blockly nun 2 Tage laufen lassen.

                                            es tut was es soll und es stellt die Werte ein was Aktuell bezogen werden.

                                            leider ist es so das ich meine module Ost/West habe es geht im Wechselrichter was er bringen müsste kann er aber nicht da 2 Module schon im schatten sind.

                                            Es müsste die doch Nachregeln oder nicht ?

                                            K paul53 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            470
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            36
                                            203
                                            47542
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo