Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script zum Laden/Entladen von Zendure Solarflow

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script zum Laden/Entladen von Zendure Solarflow

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      lesiflo Most Active last edited by lesiflo

      Hallo zusammen,
      ich habe mal meinem Blocky zum Laden/Entladen von Zendure Solarflow ein eigenes Thema spendiert.
      Ihr könnt damit euren Hub+ACE oder Hyper ohne die App und auch ohne openDTU steuern.

      Es beinhaltet:
      Laden nach Preis, z.B. Tibber (Tibberadapter notwendig)
      Entladen mit Hilfe eines Shelly 3EM oder Smartmeter (Triggerwert)
      PV Leistung im Haus verbrauchen
      Bypass wenn Akku voll
      Überschussladen, z.B. von externer PV

      Benötigt wird dafür der Zendure Solarflow Adapter von @nograx

      Im oberen Teil des Blockly könnt ihr eigene Schwellwerte festlegen:
      output_Abzug: Wert der von der Ausgangsleistung eures Hub/Hyper abgezogen wird
      input_Abzug: Wert der von einer externen AC-Ladequelle (z.B. andere PV Anlage) abgezogen wird.
      entladen_ab_PV_Leistung: Ab welcher PV Leistung der Mini PV Soll eine Einspeisung ins Haus erfolgen
      min_PV_Leistung_laden: Mit welcher minimale PV Leistung soll der Akku aus der Mini PV geladen werden.
      ausgang_max_soll: Maximal Leistungsabgabe ans Haus

      ab70f52d-bc2d-45f8-aa8d-77ffd16a2bd7-image.png
      8e2bec5d-0716-4552-8d62-acf45509e36d-image.png
      1256837e-d9b6-405b-9956-3d01670ebb18-image.png

      Ohne Tibber müsst ihr die Teile im Script rausnehmen.

      514ca95c-f607-47ce-a160-be93f702a1cb-image.png
      8435ebbc-f57e-433a-9027-a3e6fe35764c-image.png

      Release v1.01, Stand 23.04.2025

      Änderung

      • Zusätzlicher Timer beim Umschalten in den Ausgabe-Modus

      Script: Energie.Hyper_V1.01.txt

      T 1 Reply Last reply Reply Quote 2
      • T
        tege0 @lesiflo last edited by

        Vielen Dank, @lesiflo, für das großartige Skript.

        Ich verwende eine ESP Leskopf und kann die OBIS-Werte aus meinem Stromzähler auslesen. Leider habe ich Tibber nicht, was bewirkt in deinem Skript:

        a1078d80-e04b-4357-bbec-a080ef2398ec-image.png

        Womit könnte ich das füllen?

        leider verstehe ich auch nach deinen ausführlichen Beschreibung die Schwellwerte nicht.

        output_Abzug: Wert der von der Ausgangsleistung eures Hub/Hyper abgezogen wird
        Welche Aspekte sollte ich beachten, wenn ich den Hyper mit Akku und PV-Modul nutze? Wozu führt der Wert?

        input_Abzug: Wert der von einer externen AC-Ladequelle (z.B. andere PV Anlage) abgezogen wird.
        Ich habe eine weitere Mikroanlage mit 600 Wp und würde diese 600 W in die Berechnung einbeziehen, aber ich verstehe nicht, welche Konsequenzen sich daraus ergeben.

        entladen_ab_PV_Leistung: Ab welcher PV Leistung der Mini PV Soll eine Einspeisung ins Haus erfolgen
        Priorität 1 sollte sein, dass der Akku geladen wird. Sollte dann noch Leistung übrig sein, wird das Haus versorgt. Ist die Batterie voll, wird die überschüssige Energie wieder ins Haus geleitet. Wenn die Leistung der zweiten Anlage mit 600 W den Verbrauch abdeckt, soll die Batterie geladen werden.

        min_PV_Leistung_laden: Mit welcher minimale PV Leistung soll der Akku aus der Mini PV geladen werden.
        Alles sollt abhängig vom tatsächlichem Hausverbrauch sein.

        ausgang_max_soll: Maximal Leistungsabgabe ans Haus
        max 1200 bzw. das was das Haus aktuell bracht.

        L 1 Reply Last reply Reply Quote 0
        • L
          lesiflo Most Active @tege0 last edited by lesiflo

          @tege0 Die beiden Werte der "oder" Verknüpfung kannst du löschen, werden nur bei Tibber benötigt.

          0ba97ef5-9dd8-4421-85b9-cc1c64902a14-image.png

          output_Abzug
          Wenn der Wert auf z.B. 50 steht werden 50 Watt weniger als benötigt in Haus vom BKW eingespeist. Wertebereich sollte so zwischen 30 bis 60 sein. Je kleiner der Wert desto eher kann es passieren das was ins öffentliche Netz einspeist wird.

          input_Abzug
          Sollte deine andere Anlage dafür sorgen, das Strom ins öffentliche Netz eingespeist wird, so kannst du mit diesem Wert festlegen um wieviel dieser Wert reduziert wird.
          Beispiel
          300 Watt gehen ins Netz, der Wert steht auf 50, dann wird dein BKW über den Hyper oder ACE mit 250 Watt über AC geladen. Je grösser der Wert desto weniger werden deine Akkus über die zweite Anlage geladen. Ist er zu klein, wird eventuell aus dem öffentlichen Netz geladen, Bereich zwischen 50 und 80.

          entladen_ab_PV_Leistung und min_PV_Leistung_laden
          Damit wird festgelegt das z.B. wie hier ab 100 W dein Haus/Wohnung bevorzugt aus dem BKW versorgt wird,
          Beispiel
          Die PV Panels deines BKW erzeugen z.B. 400 Watt. Da dieser Wert grösser ist als die 100 Watt von entladen_ab_PV_Leistung wird Strom von deinem BKW ins Haus eingespeist,. Aber immer um Wert min_PV_Leistung_laden reduziert. Somit gehen in dem Fall 350 W ins Haus und 50 W in deine Akkus.

          ausgang_max_soll:
          max 1200 bzw. das was das Haus aktuell bracht. -> Ja, korrekt.

          T 1 Reply Last reply Reply Quote 1
          • T
            tege0 @lesiflo last edited by

            @lesiflo Hi danke nochmal für deine Unterstützung, der Adapter und das Script läuft aber der Speicher bleibt weiterhin voll, bzw. ich habe nicht das Gefühl das Energie aus dem Speicher genommen wird. Nachdem der Speicher einmal geladen worden ist ist er jetzt im Bypass

            L 1 Reply Last reply Reply Quote 0
            • L
              lesiflo Most Active @tege0 last edited by

              @tege0 Moin, wie sieht denn dein Script aus?

              T 1 Reply Last reply Reply Quote 0
              • T
                tege0 @lesiflo last edited by

                @lesiflo Moin,

                c4ebe981-aeea-4923-9ecf-73d260ecf4cf-image.png

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="O}e3|VjTzH+.dHc-BE_:">output_Abzug</variable>
                    <variable id="Pmn^Rfs2`%vXob$!J=UX">input_Abzug</variable>
                    <variable id="C3%p`nQ`AJ8yklMQKidv">entladen_ab_PV_Leistung</variable>
                    <variable id="[ZaP{gfTZqGf@aQ2FZ~q">min_PV_Leistung_laden</variable>
                    <variable id="8]~yHC.tW6]*GfkCbq)^">ausgang_max_soll</variable>
                    <variable id="u8CL)Wex?DocZ58y(/n*">output</variable>
                    <variable id="s3oTgk^d]QTYtWfpyOk6">input</variable>
                    <variable type="timeout" id="timeout4">timeout4</variable>
                    <variable id="4.#!}3STBog53dwlcFl-">ausgang_max</variable>
                  </variables>
                  <block type="comment" id="aB?G:5$JZsZVN]k[FMf$" x="2512" y="-1538">
                    <field name="COMMENT">Setzen der Variablen </field>
                    <next>
                      <block type="variables_set" id="%T^F?(~}g~8Mo.96hbPc">
                        <field name="VAR" id="O}e3|VjTzH+.dHc-BE_:">output_Abzug</field>
                        <value name="VALUE">
                          <block type="math_number" id="Cd-LtKS?ZQR;3fE)1OfR">
                            <field name="NUM">50</field>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" id="Kd6%X$(E%a#8:/4N[o[d">
                            <field name="VAR" id="Pmn^Rfs2`%vXob$!J=UX">input_Abzug</field>
                            <value name="VALUE">
                              <block type="math_number" id="6chO$JcvEJqo#aCjc+es">
                                <field name="NUM">50</field>
                              </block>
                            </value>
                            <next>
                              <block type="variables_set" id="uB]{;BN[bdupMg$7^N%|">
                                <field name="VAR" id="C3%p`nQ`AJ8yklMQKidv">entladen_ab_PV_Leistung</field>
                                <value name="VALUE">
                                  <block type="math_number" id="[h?+?1Bkt{sL]3tL~hWI">
                                    <field name="NUM">100</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="Nh!l?R;)f=75+K9:iO@v">
                                    <field name="VAR" id="[ZaP{gfTZqGf@aQ2FZ~q">min_PV_Leistung_laden</field>
                                    <value name="VALUE">
                                      <block type="math_number" id="oOA~o%:[)dg2rqcignZi">
                                        <field name="NUM">50</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="variables_set" id="C7WP.yVY.~yLboTO)--M">
                                        <field name="VAR" id="8]~yHC.tW6]*GfkCbq)^">ausgang_max_soll</field>
                                        <value name="VALUE">
                                          <block type="math_number" id="!o~v`/:*+;(]p]{H?WTA">
                                            <field name="NUM">1200</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="comment" id="DJvkJQJ02otHqWQ#`O-O">
                                            <field name="COMMENT">Entladen</field>
                                            <next>
                                              <block type="on_ext" id="/S(;`QABriIC^M+!}7T:">
                                                <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="w^]7^w1{B-!$n`7Iy491">
                                                    <field name="oid">mqtt.0.iot.smartmeter.sensor.1.obis.1-0:16.7.0.255.value</field>
                                                  </shadow>
                                                </value>
                                                <statement name="STATEMENT">
                                                  <block type="comment" id="cN$0iHH^ClAq2iXC%h2f">
                                                    <field name="COMMENT">Setzen der Ausgangsleistung</field>
                                                    <next>
                                                      <block type="variables_set" id="S2o8L=RQS++7ipXOjjW5">
                                                        <field name="VAR" id="u8CL)Wex?DocZ58y(/n*">output</field>
                                                        <value name="VALUE">
                                                          <block type="math_arithmetic" id="hYf4Qb{Ih$jw*N;WscVV">
                                                            <field name="OP">ADD</field>
                                                            <value name="A">
                                                              <shadow type="math_number" id="9gy04mb1^QNucYMt=}0h">
                                                                <field name="NUM">50</field>
                                                              </shadow>
                                                              <block type="math_arithmetic" id="*1]Xu7P5!!NOH(N|hVz:">
                                                                <field name="OP">MINUS</field>
                                                                <value name="A">
                                                                  <shadow type="math_number" id="b{`6?WEyk*89jf,ZZB$.">
                                                                    <field name="NUM">50</field>
                                                                  </shadow>
                                                                  <block type="on_source" id="fT5WF[G1:geas5bB(dK_">
                                                                    <field name="ATTR">state.val</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <shadow type="math_number" id="fm2M,2zo4VbkMa}j=/{E">
                                                                    <field name="NUM">40</field>
                                                                  </shadow>
                                                                  <block type="variables_get" id="P_*d{TGR}~6)FGp?beAd">
                                                                    <field name="VAR" id="O}e3|VjTzH+.dHc-BE_:">output_Abzug</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <shadow type="math_number" id="3(GI4:w3kpQ]XWp!0hOr">
                                                                <field name="NUM">1</field>
                                                              </shadow>
                                                              <block type="get_value" id="Qo}VOqo;3/)bnhXo)WG?">
                                                                <field name="ATTR">val</field>
                                                                <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.outputHomePower</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="comment" id="jfTMAZ*=]Yc9N:)Y_sD1">
                                                            <field name="COMMENT">Setzen der Eingangsleistung</field>
                                                            <next>
                                                              <block type="variables_set" id="=I!*y|ga6BOdj=O!X0BN">
                                                                <field name="VAR" id="s3oTgk^d]QTYtWfpyOk6">input</field>
                                                                <value name="VALUE">
                                                                  <block type="math_arithmetic" id="~LBc9fG5Z6lJd12/)jT4">
                                                                    <field name="OP">ADD</field>
                                                                    <value name="A">
                                                                      <shadow type="math_number" id="9gy04mb1^QNucYMt=}0h">
                                                                        <field name="NUM">50</field>
                                                                      </shadow>
                                                                      <block type="math_arithmetic" id="7*xCVML~1.vqU9HsbESx">
                                                                        <field name="OP">MINUS</field>
                                                                        <value name="A">
                                                                          <shadow type="math_number" id="b{`6?WEyk*89jf,ZZB$.">
                                                                            <field name="NUM">50</field>
                                                                          </shadow>
                                                                          <block type="math_arithmetic" id="h8,cPd68a?7lws8h++F@">
                                                                            <field name="OP">MULTIPLY</field>
                                                                            <value name="A">
                                                                              <shadow type="math_number" id="K%zdB%]da)JMw$_M{`0A">
                                                                                <field name="NUM">1</field>
                                                                              </shadow>
                                                                              <block type="on_source" id="4-h:R`sm6~t8DD=?|~bF">
                                                                                <field name="ATTR">state.val</field>
                                                                              </block>
                                                                            </value>
                                                                            <value name="B">
                                                                              <shadow type="math_number" id="ruG^sz:{eEwbTM5f6,,3">
                                                                                <field name="NUM">-1</field>
                                                                              </shadow>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                        <value name="B">
                                                                          <shadow type="math_number" id="$D6ZCKCT8FTu_$opwTau">
                                                                            <field name="NUM">80</field>
                                                                          </shadow>
                                                                          <block type="variables_get" id="l1AP,7Z]*amiz~W%-%1U">
                                                                            <field name="VAR" id="Pmn^Rfs2`%vXob$!J=UX">input_Abzug</field>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <shadow type="math_number" id="3(GI4:w3kpQ]XWp!0hOr">
                                                                        <field name="NUM">1</field>
                                                                      </shadow>
                                                                      <block type="get_value" id="^#eZ+R?)2{J(aB:7ue?R">
                                                                        <field name="ATTR">val</field>
                                                                        <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.gridInputPower</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <next>
                                                                  <block type="controls_if" id="9{oE^c13a:31;2ut.DI$">
                                                                    <mutation elseif="2" else="1"></mutation>
                                                                    <value name="IF0">
                                                                      <block type="logic_operation" id="FM{=CcWqi$cZiLrTUt|c" inline="false">
                                                                        <field name="OP">AND</field>
                                                                        <value name="A">
                                                                          <block type="logic_compare" id="8T*pvHzokS3$DFxF[cJw">
                                                                            <field name="OP">GT</field>
                                                                            <value name="A">
                                                                              <block type="variables_get" id="~PO!:gZkJmZA*2|eHeLF">
                                                                                <field name="VAR" id="u8CL)Wex?DocZ58y(/n*">output</field>
                                                                              </block>
                                                                            </value>
                                                                            <value name="B">
                                                                              <block type="math_number" id="[w:QpHOP~OO[[A!*WhCR">
                                                                                <field name="NUM">0</field>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                        <value name="B">
                                                                          <block type="logic_compare" id="h,i~#@yPRw(6/9i72ti]">
                                                                            <field name="OP">GT</field>
                                                                            <value name="A">
                                                                              <block type="get_value" id="-+SJ366xWJKVS[GlnD+M">
                                                                                <field name="ATTR">val</field>
                                                                                <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.solarInputPower</field>
                                                                              </block>
                                                                            </value>
                                                                            <value name="B">
                                                                              <block type="variables_get" id="cH,sON~zP`WQrqn3m2ZP">
                                                                                <field name="VAR" id="C3%p`nQ`AJ8yklMQKidv">entladen_ab_PV_Leistung</field>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <statement name="DO0">
                                                                      <block type="comment" id="U9B/k%5s]K%^b3s)xv(L">
                                                                        <field name="COMMENT">1. Entladen</field>
                                                                        <next>
                                                                          <block type="controls_if" id="lqfMN+oTfpMH$r=IF.]*">
                                                                            <mutation else="1"></mutation>
                                                                            <value name="IF0">
                                                                              <block type="logic_compare" id="jraX-U4NvmG~iU5_!b_-">
                                                                                <field name="OP">GT</field>
                                                                                <value name="A">
                                                                                  <block type="get_value" id="RJ{ZOBC`JZxk?Wh2AUqw">
                                                                                    <field name="ATTR">val</field>
                                                                                    <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.solarInputPower</field>
                                                                                  </block>
                                                                                </value>
                                                                                <value name="B">
                                                                                  <block type="variables_get" id="a81S}b!V{aCPJeQ@5ZVB">
                                                                                    <field name="VAR" id="C3%p`nQ`AJ8yklMQKidv">entladen_ab_PV_Leistung</field>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </value>
                                                                            <statement name="DO0">
                                                                              <block type="comment" id="BCb_o;s~#Iozzv%Cas0r">
                                                                                <field name="COMMENT">PV Leistung in Hausverbrauch</field>
                                                                                <next>
                                                                                  <block type="variables_set" id="^q}qt_N]BU5Q%/J!*t]v">
                                                                                    <field name="VAR" id="4.#!}3STBog53dwlcFl-">ausgang_max</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="math_arithmetic" id="8~SRMHO?%%VAP*(QC#;f">
                                                                                        <field name="OP">MINUS</field>
                                                                                        <value name="A">
                                                                                          <shadow type="math_number" id="Oro!0u03Bc+Eq-2~1;/v">
                                                                                            <field name="NUM">1</field>
                                                                                          </shadow>
                                                                                          <block type="get_value" id="2aEM-Q)HyYfnX|7M~YPe">
                                                                                            <field name="ATTR">val</field>
                                                                                            <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.solarInputPower</field>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="B">
                                                                                          <shadow type="math_number" id="`~i$BG^Jk:{8Au^!MQP:">
                                                                                            <field name="NUM">50</field>
                                                                                          </shadow>
                                                                                          <block type="variables_get" id="}/~/H[`cKB?7xVui=l;-">
                                                                                            <field name="VAR" id="[ZaP{gfTZqGf@aQ2FZ~q">min_PV_Leistung_laden</field>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </statement>
                                                                            <statement name="ELSE">
                                                                              <block type="variables_set" id="/3-);`|8@{UwDnWT6ksK">
                                                                                <field name="VAR" id="4.#!}3STBog53dwlcFl-">ausgang_max</field>
                                                                                <value name="VALUE">
                                                                                  <block type="variables_get" id="I%qi{|oZzXlO9z5nSJu?">
                                                                                    <field name="VAR" id="8]~yHC.tW6]*GfkCbq)^">ausgang_max_soll</field>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </statement>
                                                                            <next>
                                                                              <block type="controls_if" id="C##I)|jndO21{Wa2E/f)">
                                                                                <value name="IF0">
                                                                                  <block type="logic_compare" id="}iB?SwpSesKSeva}j?mw">
                                                                                    <field name="OP">GT</field>
                                                                                    <value name="A">
                                                                                      <block type="variables_get" id="*SIAUI61WHJZJ[9o%^2d">
                                                                                        <field name="VAR" id="u8CL)Wex?DocZ58y(/n*">output</field>
                                                                                      </block>
                                                                                    </value>
                                                                                    <value name="B">
                                                                                      <block type="variables_get" id="B2Z^A/08Ee)7/RPmaoO:">
                                                                                        <field name="VAR" id="4.#!}3STBog53dwlcFl-">ausgang_max</field>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </value>
                                                                                <statement name="DO0">
                                                                                  <block type="variables_set" id="SagM`KaJL1rMfwm7Y#3k">
                                                                                    <field name="VAR" id="u8CL)Wex?DocZ58y(/n*">output</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="variables_get" id="Pte_tl99JT[=-/(cgh{3">
                                                                                        <field name="VAR" id="4.#!}3STBog53dwlcFl-">ausgang_max</field>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </statement>
                                                                                <next>
                                                                                  <block type="controls_if" id="ot$lj:w=.bWFXSy+#U!!">
                                                                                    <value name="IF0">
                                                                                      <block type="logic_compare" id="S]$B_(:yN`iD@#4cnrbt">
                                                                                        <field name="OP">NEQ</field>
                                                                                        <value name="A">
                                                                                          <block type="get_value" id="tKYKdGEvJ{(Ap`z33|3/">
                                                                                            <field name="ATTR">val</field>
                                                                                            <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.acMode</field>
                                                                                          </block>
                                                                                        </value>
                                                                                        <value name="B">
                                                                                          <block type="math_number" id="*-lP0bAkarz+MWbKMpD!">
                                                                                            <field name="NUM">2</field>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </value>
                                                                                    <statement name="DO0">
                                                                                      <block type="control" id="hkXp_(9CI|Tlx6@w4O;-">
                                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                        <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.control.acMode</field>
                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                        <value name="VALUE">
                                                                                          <block type="math_number" id="5kp15tIIz~ILp@rb3kgW">
                                                                                            <field name="NUM">2</field>
                                                                                          </block>
                                                                                        </value>
                                                                                      </block>
                                                                                    </statement>
                                                                                    <next>
                                                                                      <block type="control" id=";Db^:4O1EN|E83*|k[36">
                                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                        <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.control.setOutputLimit</field>
                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                        <value name="VALUE">
                                                                                          <block type="variables_get" id="cj|vI+5rE;a$Z}XkQz`B">
                                                                                            <field name="VAR" id="u8CL)Wex?DocZ58y(/n*">output</field>
                                                                                          </block>
                                                                                        </value>
                                                                                        <next>
                                                                                          <block type="timeouts_cleartimeout" id="cP-3iM|ldCLOjhu8Y-ws">
                                                                                            <field name="NAME">output_Abzug</field>
                                                                                          </block>
                                                                                        </next>
                                                                                      </block>
                                                                                    </next>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </next>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </statement>
                                                                    <value name="IF1">
                                                                      <block type="logic_multi_and" id="rcwQ-{!+**l.RM.=S8yt">
                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                                                        <value name="AND0">
                                                                          <block type="logic_compare" id="vOs6dWh(3vUrB_2{m/NV">
                                                                            <field name="OP">GTE</field>
                                                                            <value name="A">
                                                                              <block type="get_value" id="cyB@uS2tIbt2~(|B$ZF]">
                                                                                <field name="ATTR">val</field>
                                                                                <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.electricLevel</field>
                                                                              </block>
                                                                            </value>
                                                                            <value name="B">
                                                                              <block type="math_number" id=";3DCR]/^X8u}`5XE|_-(">
                                                                                <field name="NUM">99</field>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                        <value name="AND1">
                                                                          <block type="logic_compare" id="[0jp6f!|5%:|l7y7[6t=">
                                                                            <field name="OP">EQ</field>
                                                                            <value name="A">
                                                                              <block type="get_value" id="x`(O@JLy{A,mc*K[~glM">
                                                                                <field name="ATTR">val</field>
                                                                                <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.solarInputPower</field>
                                                                              </block>
                                                                            </value>
                                                                            <value name="B">
                                                                              <block type="math_number" id="h{g.7y^5fuBZ(x}%o,8!">
                                                                                <field name="NUM">0</field>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <statement name="DO1">
                                                                      <block type="comment" id="%R+{KG.$/r5$P+|4?%Cw">
                                                                        <field name="COMMENT">2. Bypass ein wenn Akku voll, AC Modus auf Output 2. Mode</field>
                                                                        <next>
                                                                          <block type="control" id=";naGVGNG%EO3]/D7la@,">
                                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                            <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.control.acMode</field>
                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                            <value name="VALUE">
                                                                              <block type="math_number" id="_1woz/)YsVt:d!FqS=:i">
                                                                                <field name="NUM">2</field>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </statement>
                                                                    <value name="IF2">
                                                                      <block type="logic_multi_and" id="RpscAq3vo.ceGvt}lzM;">
                                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                                                                        <value name="AND0">
                                                                          <block type="time_compare_ex" id="4Mh;.M3%8}QAkhPEtcv$">
                                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation>
                                                                            <field name="USE_ACTUAL_TIME">TRUE</field>
                                                                            <field name="OPTION">between</field>
                                                                            <value name="START_TIME">
                                                                              <shadow type="text" id="2Km3*[bQnyaNB:XI6]9%">
                                                                                <field name="TEXT">06:00</field>
                                                                              </shadow>
                                                                            </value>
                                                                            <value name="END_TIME">
                                                                              <shadow type="text" id="KO`i!C([`f|6juoQ~d-d">
                                                                                <field name="TEXT">22:59</field>
                                                                              </shadow>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                        <value name="AND1">
                                                                          <block type="logic_compare" id="=;k+]!:`FgPIl(ffM)0z">
                                                                            <field name="OP">LT</field>
                                                                            <value name="A">
                                                                              <block type="get_value" id="o55n7*4D=LYnb:P_11Mb">
                                                                                <field name="ATTR">val</field>
                                                                                <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.electricLevel</field>
                                                                              </block>
                                                                            </value>
                                                                            <value name="B">
                                                                              <block type="math_number" id="`))[;%51tDu_Jj9qhYs}">
                                                                                <field name="NUM">100</field>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                        <value name="AND2">
                                                                          <block type="logic_compare" id="BdTZijA^#anVn3j{PwI*">
                                                                            <field name="OP">GT</field>
                                                                            <value name="A">
                                                                              <block type="variables_get" id="TtqY39_BvS=6H}t)mLEe">
                                                                                <field name="VAR" id="s3oTgk^d]QTYtWfpyOk6">input</field>
                                                                              </block>
                                                                            </value>
                                                                            <value name="B">
                                                                              <block type="math_number" id="wjR@%Hg`by9T-|5Qupoe">
                                                                                <field name="NUM">0</field>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <statement name="DO2">
                                                                      <block type="comment" id="zC5_szd6=wy}Q*]%d_Rb">
                                                                        <field name="COMMENT">3. Laden mit PV Überschuss Hyper</field>
                                                                        <next>
                                                                          <block type="control" id=";512Sny^l9[8H~)*$JIi">
                                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                            <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.control.setInputLimit</field>
                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                            <value name="VALUE">
                                                                              <block type="variables_get" id="_p]0p.2.)e;=_p)|+$|v">
                                                                                <field name="VAR" id="s3oTgk^d]QTYtWfpyOk6">input</field>
                                                                              </block>
                                                                            </value>
                                                                            <next>
                                                                              <block type="controls_if" id="0rLs]HZ7;/1{okt~*dfX">
                                                                                <value name="IF0">
                                                                                  <block type="logic_compare" id="Wbb3SQ#qDz^yYA2cpc,Q">
                                                                                    <field name="OP">NEQ</field>
                                                                                    <value name="A">
                                                                                      <block type="get_value" id=")^qtiMQK)k{e-0Ni$R*{">
                                                                                        <field name="ATTR">val</field>
                                                                                        <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.acMode</field>
                                                                                      </block>
                                                                                    </value>
                                                                                    <value name="B">
                                                                                      <block type="math_number" id="!F;R8(I#,#[B*X:#oO~.">
                                                                                        <field name="NUM">1</field>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </value>
                                                                                <statement name="DO0">
                                                                                  <block type="control" id="CCIQ_ICwzn9aV7t#9o%7">
                                                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                    <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.control.acMode</field>
                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="math_number" id="tX)1OdbEtqK(Q:y^C3Z^">
                                                                                        <field name="NUM">1</field>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </statement>
                                                                                <next>
                                                                                  <block type="timeouts_cleartimeout" id="@T7,,}^VeetBp^h*!pnp">
                                                                                    <field name="NAME">output_Abzug</field>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </next>
                                                                          </block>
                                                                        </next>
                                                                      </block>
                                                                    </statement>
                                                                    <statement name="ELSE">
                                                                      <block type="comment" id="T1mOiNRi*1jPnM#~?:mM">
                                                                        <field name="COMMENT">4.  Ein/Ausgangsleistung auf 0 setzen</field>
                                                                        <next>
                                                                          <block type="timeouts_settimeout" id="?(Ecr)F7}.Cd/9{8%v+=">
                                                                            <field name="NAME">timeout4</field>
                                                                            <field name="DELAY">30</field>
                                                                            <field name="UNIT">sec</field>
                                                                            <statement name="STATEMENT">
                                                                              <block type="control" id="Qhy=K`*Kim%|cM0RX[fs">
                                                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.control.setOutputLimit</field>
                                                                                <field name="WITH_DELAY">FALSE</field>
                                                                                <value name="VALUE">
                                                                                  <block type="math_number" id="_E5[`;YcRI]zD#G$VW2C">
                                                                                    <field name="NUM">0</field>
                                                                                  </block>
                                                                                </value>
                                                                                <next>
                                                                                  <block type="control" id="|[L_^Xt!x3J6MHCL]Mbz">
                                                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                                    <field name="OID">zendure-solarflow.0.gDa3tb.nGY7x38q.control.setInputLimit</field>
                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                    <value name="VALUE">
                                                                                      <block type="math_number" id="N!gtEfKU|I%=EMCI:Pm@">
                                                                                        <field name="NUM">0</field>
                                                                                      </block>
                                                                                    </value>
                                                                                  </block>
                                                                                </next>
                                                                              </block>
                                                                            </statement>
                                                                          </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>
                </xml>
                
                L 1 Reply Last reply Reply Quote 0
                • L
                  lesiflo Most Active @tege0 last edited by lesiflo

                  @tege0 Wenn du keine andere Bedingung ausser "output" beim Entladen hast solltest du die 2. Bedingung rausnehmen. Ansonsten wird nur entladen wenn deine PV Leistung über dem Schwellwert ist. Nachts dann natürlich nicht.

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    tege0 @lesiflo last edited by

                    @lesiflo bin echt nicht so drin im Thema sorry, aber viele Dank für diene Unterstützung.

                    Was meinst du mit zweiter Bedingung?
                    2. Bypass ein wenn Akku voll, AC Modus auf Output
                    753c1f88-1096-4e56-9fd6-83df2f89898f-image.png

                    Oder
                    ffacafc3-6329-4bb2-9b26-a172be37ab0a-image.png

                    Vielleicht von meiner bedingung her heraus.
                    Ich habe zwei Anlagen:

                    • 1 Anlage: Zendure Hyper 2000 mit AB200S 4x JAM60S20 a 385 Wp Süd eine einzel angeschlossen
                    • 2 Anlage: Microwechselrichter mit zwei mppt Ost 330wp und West 330wp

                    Ich nutze einen ESP Lesekopf der mir per mqtt die Werte an iob gibt.

                    Ich stelle mir vor, dass der Speicher je nach aktueller Quelle (entweder Anlage 1 über DC oder Anlage 2 über AC) geladen wird, und dass ich danach meinen Strombedarf möglichst aus der PV-Anlage und der Batterie decken kann.

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      lesiflo Most Active @tege0 last edited by

                      @tege0 Ich meine damit die und-Verknüpfung direkt über "1.Entladen". Die rausnehmen und nur "output > 0" rein.

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        tege0 @lesiflo last edited by

                        @lesiflo danke

                        acb66854-1cfe-4531-8dcd-f7f440d26765-image.png

                        1 Reply Last reply Reply Quote 0
                        • L
                          lesiflo Most Active last edited by

                          Neue Version
                          Release v1.01, Stand 23.04.2025

                          Änderung

                          • Zusätzlicher Timer beim Umschalten in den Ausgabe-Modus
                          T 1 Reply Last reply Reply Quote 0
                          • T
                            The_Stig @lesiflo last edited by The_Stig

                            @lesiflo Danke dir erstmal für deine Arbeit. Ich will das jetzt auch gerne mal angehen endlich und habe aber keinen Hyper und kein Tibber, sondern nur einen Hub2000. Da ist demnach einiges in deinem Script, was ich nicht brauche bzw. nutzen kann. Jetzt versuche ich grad mal mein Glück, aber so recht blicke ich noch nicht durch, was benötigt ist und was nicht. Wäre dir dankbar, wenn du mal drüber schauen würdest, ob ich da auf dem richtigen Weg bin...

                            So sieht es aktuell bei mir aus:

                            8be53949-522b-4ef5-9304-8c69a50f6793-image.png

                            EDIT: Die Eingangsleistung kann ich ja eigentlich rausnehmen, oder? Die kann ja immer auf dem Max stehen.

                            L 1 Reply Last reply Reply Quote 0
                            • L
                              lesiflo Most Active @The_Stig last edited by lesiflo

                              @the_stig Ja, sieht schon gut aus. Ich würde aber den "sonst falls"-Zweig fürs Laden komplett rausnehmen. Den Bypass würde ich auf Auto (Wert 0) setzen oder jeweils ein- (2) und ausschalten (1).

                              So etwa:
                              024a0016-9866-4295-ac77-def35f3741fc-image.png

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                The_Stig @lesiflo last edited by

                                @lesiflo Danke dir für die schnelle Rückmeldung. Schaue ich mir an. Habe deine Logik offen gesagt noch nicht verstanden und überlege gerade, es mir selbst aufzubauen, damit ich es auch verstehe, was ich steuere 😉 Aber da deine Lösung ja offenbar schon lange gut funktioniert ist das eigentlich auch verschwendete Zeit. Ich werde mal basteln.

                                Noch etwas: ich habe derzeit ein anderes Script, dass morgens meinen Min-Soc von den standardmäßigen 10% temporär auf 5% reduziert. Hintergrund des Gedankens ist, dass ich damit nicht immer dieses morgendliche Auf- und Entladen haben, welches die Zendure-Steuerung macht (bei Min Soc 10% lädt er erst auf 13% und entlädt dann wieder). Bis dann genug PV-LEistung für die Nulleinspeisung da ist, passiert das ein paar Mal. Das möchte ich verhindern. Kann ich dann vor dein Script sowas hier einfach davor packen - oder steht sich da dann die Regelungen gegenseitig im Weg?
                                80b129c6-0eff-462c-9a80-67c30fb6d8b9-image.png

                                L 1 Reply Last reply Reply Quote 0
                                • L
                                  lesiflo Most Active @The_Stig last edited by

                                  @the_stig Das kannst du so alleine stehen lassen. Der min SOC wird ja in meinem Script nicht berücksichtigt.

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    The_Stig @lesiflo last edited by

                                    @lesiflo Danke dir. Da ich ehrlich gesagt wirklich einige deiner Schleifen nicht verstehe, habe ich mal selbst angefangen zu basteln. Deins ist vermutlich deutlich durchdachter, aber so könnte ich mich doch erstmal ranwagen und die ersten Tests starten, oder?

                                    2ca1521a-1208-47d0-b755-48f8b8f59f2b-image.png

                                    Den 10-Sek Timeout hast du eingebaut, damit nicht sekündlich oder noch mehr nachgeregelt wird, richtig?

                                    L 1 Reply Last reply Reply Quote 0
                                    • L
                                      lesiflo Most Active @The_Stig last edited by lesiflo

                                      @the_stig sagte in Script zum Laden/Entladen von Zendure Solarflow:

                                      Den 10-Sek Timeout hast du eingebaut, damit nicht sekündlich oder noch mehr nachgeregelt wird, richtig?

                                      Nein, der ist dazu da, dass nicht sofort zwischen entladen und PV-Laden umgeschaltet wird. Beim Hyper braucht man keinen Timer, der regelt sehr schnell.

                                      Wenn du das so macht's wie oben solltest du im "sonst" Zweig einen Timeout einbauen je nachdem wie schnell der Hub ist und im "mache" Zweig mit "stop timeout" wieder aufheben. Somit wird verhindert, das bei der kleinsten Unterschreitung von 0 der Ausgangswert auf 0 geht und sich dann wieder langsam hochregeln muß.

                                      Dein "Zielwert_Einspeisung" sollte auch nicht mit bei der Berechnung des "output" rein. Der dient dazu z.B. 30 Watt von der benötigten Leistung abzuziehen um zu verhindern, das was eingespeist wird.

                                      Was genau verstehst du sonst nicht?

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        The_Stig @lesiflo last edited by

                                        @lesiflo said in Script zum Laden/Entladen von Zendure Solarflow:

                                        Was genau verstehst du sonst nicht?

                                        Ich versuchs mal strukturiert:

                                        8e66fa2b-c3f9-4b46-876c-c625d23b3de2-image.png
                                        -> du setzt hier den Wert Output mit dem output_Abzug, aber warum addierst du den Regelwert einzustellende Ausgangsleistung (das ist doch der in der vorherigen REgelung gesetzte Output-Wert, oder? Verstehe ich logisch einfach nicht.

                                        24c0154e-9b85-4294-a4f7-e5866adcc3a8-image.png
                                        -> das verstehe ich auch nicht. ausgang_max setzt du warum?

                                        2f26dfe4-b3bd-4caf-b005-a226d4fbbc47-image.png
                                        -> Fortfolgend dazu: warum wird dann output mit ausgang_max gesetzt?

                                        Generell: irgendwie fehlt mir noch das Verständnis, wo da Bezug auf den aktuellen Verbrauch genommen wird. Irgendwo müsste doch der output durch einen Verweis auf den aktuellen Gesamtverbrauch genommen werden. Wie gesagt - sorry. Bin da irgendwie ziemlich planlos...

                                        L 1 Reply Last reply Reply Quote 0
                                        • L
                                          lesiflo Most Active @The_Stig last edited by

                                          @the_stig sagte in Script zum Laden/Entladen von Zendure Solarflow:

                                          @lesiflo said in Script zum Laden/Entladen von Zendure Solarflow:

                                          Was genau verstehst du sonst nicht?

                                          Ich versuchs mal strukturiert:

                                          8e66fa2b-c3f9-4b46-876c-c625d23b3de2-image.png
                                          -> du setzt hier den Wert Output mit dem output_Abzug, aber warum addierst du den Regelwert einzustellende Ausgangsleistung (das ist doch der in der vorherigen REgelung gesetzte Output-Wert, oder? Verstehe ich logisch einfach nicht.

                                          24c0154e-9b85-4294-a4f7-e5866adcc3a8-image.png
                                          -> das verstehe ich auch nicht. ausgang_max setzt du warum?

                                          2f26dfe4-b3bd-4caf-b005-a226d4fbbc47-image.png
                                          -> Fortfolgend dazu: warum wird dann output mit ausgang_max gesetzt?

                                          Generell: irgendwie fehlt mir noch das Verständnis, wo da Bezug auf den aktuellen Verbrauch genommen wird. Irgendwo müsste doch der output durch einen Verweis auf den aktuellen Gesamtverbrauch genommen werden. Wie gesagt - sorry. Bin da irgendwie ziemlich planlos...

                                          Zu 1.
                                          "output_Abzug" nehme ich als Puffer um die Ausgabeleistung etwas abzusenken damit zwischen zwei Regelungen keine Einspeisung erfolgt.
                                          Bsp.:
                                          Wert = 300 Watt (ist der Wert aus dem Trigger)
                                          output_Abzug = 50 Watt (kann auch kleiner oder grösser gewählt werden)
                                          out ist dann = 250 Watt

                                          Die Ausgangsleistung muss addiert werden um das was mit output gesetzt wird wieder auszugleichen. Dabei ist der Wert der Ausgangsleistung immer der vorherige Wert.

                                          1. ausgang_max ist der maximale Wert, der vom BKW ins Netz geht wenn Bedarf besteht

                                          PV = 500
                                          min_PV_Leistung_laden = 100
                                          500 - 100 = 400 Watt gehen dann maximal ins Netz und 100 in den Akku

                                          1. Begrenzung des output und somit der einzustellenden Ausgangsleistung

                                          Der Verweis auf den aktuellen Gesamtverbrauch erfolgt hiermit:

                                          0b568b57-0c15-4378-a202-c8b862f8b4c6-image.png

                                          Wert = Triggervariable

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            The_Stig @lesiflo last edited by

                                            @lesiflo Merci vielmals. So wird einiges klarer. Ich teste weiter...

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            926
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            74
                                            5247
                                            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