Test Adapter Zendure Solarflow
-
Hi, ich habe das Problem, dass mein Akku (AB2000) zwar geladen, aber nicht mehr entladen wird. Wenn er auf 100% geladen ist, geht der Bypass an (soweit ok), wenn dann die Sloarleistung auf 0 ist geht der Akku auf Standby (nicht ok, sollte eigentlich jetzt zum WR einspeisen. Mehrfache Resets und propieren aller Einstellungen haben nicht geholfen.
Der Adapter bietet ja die Möglichkeit, den Bypass (passMode) auf true oder false zu setzen. Gibt es vielleicht auch eine Möglichkeit, den Standby Modus zu deaktivieren? Aktuell gibt es ja nur den Datenpunkt packState als read only. Der steht bei mir auf Idle.
VG,
Christoph -
Hallo zusammen,
ich hab zu meinem Blocky vom 27. September noch einen kleinen Umbau gemacht.
Habe noch einen ByPass Funktion eingebaut. Kann nun noch den Speicher unahäng der Regelung z.B. 30% auf Laden.
Wenn der Ziehlwert erreicht ist wird der Bypass verlassen und die Regelung springt wieder an.Blocky Source Code
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="?{jN^vZ6c:z]+SKK9u]S" x="113" y="38"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="5i?DqVDm=Sl~hcqB`UE4"> <field name="oid">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="o8e+7}pZLMmk$dz7xzEK"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="sA%1[c/1-kG!VJAzht~+"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="~=Su*]W5(SW(VzH{BkGA"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz</field> </block> </value> <value name="B"> <block type="logic_boolean" id=".tPVPk3Y)3~Xjii)Ze}N"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="$H^}m~@@aU55OnSW3I#Y"> <field name="COMMENT">LadenBypass ein => 100</field> <next> <block type="update" id="Jnq9!pG@1Dga$9suIR1~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.actual_value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="hMFfvO*jpo]y7^D:Q3xF"> <field name="NUM">100</field> </block> </value> <next> <block type="comment" id="el7$@dOBsd$Rs^)K;Sh4"> <field name="COMMENT">Eingangsleistung des Accu einstellen fix als Test</field> <next> <block type="control" id="uCWlqv8[P}UtMYaTDdO{"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Y=o=(l+xY$ai~!#3Egb4"> <field name="NUM">500</field> </block> </value> <next> <block type="comment" id="f:2^eNVj.7sz%hb`g[ZX"> <field name="COMMENT">Ausgangsleistung des Accu auf Null stellen</field> <next> <block type="control" id="34Fj3#mI1//FSf%/AZQ["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Ausgangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="da,ap^iQ:!:vioc[Iavx"> <field name="NUM">0</field> </block> </value> <next> <block type="comment" id="s=CQ}cD.(eCDDHEYMwJ="> <field name="COMMENT">AC Modus des ACCU umschalten</field> <next> <block type="controls_if" id="zWBpv/M^Z*Hl~{|0SIgB"> <value name="IF0"> <block type="logic_compare" id="Sp-N#3rJE0=_+ju?F}MQ"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="9_3;D0BxXX1C:7q/A-vl"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="`4-mf4jVB+^zhcwu$L=F"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="eY$rZNZ)?/teNH{=I/SD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="KNdgbs3@6zr`7-z^3[Wa"> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="comment" id="Xw963TOZc%CMy#|M:]ln"> <field name="COMMENT">Wenn SOC größer 20% exit</field> <next> <block type="controls_if" id="JICQ`iNE5Q[zwk}L_e+)"> <value name="IF0"> <block type="logic_compare" id="Iyp`,~@V86|af4mY^[k6"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="Le+Q8Dtj[2q|fSs;jaVB"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_SOC</field> </block> </value> <value name="B"> <block type="math_number" id="c4c`K=AB02Qy7;CIS;C2"> <field name="NUM">30</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="B+DW128WRT4=-ML77`Zs"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="MYQ;h]Lj8cUd+%Lfq(7$"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </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="comment" id="8O;B@D#^%ZHGnJ!V^:8s"> <field name="COMMENT">LadenBypass aus => 50</field> <next> <block type="update" id="62~RL1*SF6!R*ZAE7Xzg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.actual_value</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="TVl||}pj9@G12SV5`F#8"> <field name="NUM">50</field> </block> </value> <next> <block type="comment" id="m]8_{7x^`#xI[xK,We!T"> <field name="COMMENT">LadenBypass aus => 50</field> <next> <block type="update" id=".$@*H8c,!Y^K9MzHG;8F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="p@Z^bs^Sa)GyFK!UvGur"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="=+EzH#q|HDP)r|mgQ;@e"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=":RDkpD4Nm~wv_L9e-lmS"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="|6m-!pKH=)Bn646@gI.="> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="|n97^C`9Q^U-#7dXwk^l"> <field name="NUM">1</field> </shadow> <block type="get_value" id="qbL=vtU@J*M$d{!].s?2"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LoBc9oA}{xbY)akBMXqT"> <field name="NUM">1</field> </shadow> <block type="get_value" id="hWYJv*IU#APgk(DaJu1j"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> </block> </value> </block> </value> <next> <block type="controls_if" id="ceVh]OqX#F59jQX=_A82"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_multi_or" id="zzQz=Nw0BB-DW+pre9FW"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="OR0"> <block type="logic_compare" id="F!%doR3V{ps!xg(^/)$c"> <field name="OP">EQ</field> <value name="A"> <block type="logic_compare" id="!aN#[GQtM(MZs?YVN97R"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="eP%*kt~ASkHx$],CV,vj"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Energie.VAR_PV_Gesamt</field> </block> </value> <value name="B"> <block type="math_number" id=";m3U=|7L5^gq(yBrRmJu"> <field name="NUM">100</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="N%*#K2iCUT$bZg,JX,5K"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="OR1"> <block type="logic_compare" id="ed49_,`_-D#j|oMjn~F*"> <field name="OP">EQ</field> <value name="A"> <block type="logic_compare" id="Y?w)Lq|I4sM~c~Rv)8,E"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="Muelu(c~OXl$XM~ej8AL"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> </block> </value> <value name="B"> <block type="math_number" id="peDLLzc7@$@xupw,4?sK"> <field name="NUM">-20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="tw]lrF5_HzIg1y_p]rS*"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="*OmZxLQ02d/-/$Stjw*b"> <field name="COMMENT">Entladen des ACCU beginnen, wenn PV kleiner</field> <next> <block type="comment" id="#sGXaA}7FOlrqJ_f`nXC"> <field name="COMMENT">100W ist und Überschuss -20W ist </field> <next> <block type="comment" id="BTTPMWm/de,d7~Ti|/I:"> <field name="COMMENT">Berechnung des Leistungsüberschuss</field> <next> <block type="update" id="fce@-pMl:1kZ%lAb1IM5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id=",=I/6z]|3NAu8ylXEr|)"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="=+EzH#q|HDP)r|mgQ;@e"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=";D#iA~8Yj630O($CMi?N"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id=";f|).sI:pOi1s(r$G`8b"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="|n97^C`9Q^U-#7dXwk^l"> <field name="NUM">1</field> </shadow> <block type="get_value" id="XmrX=:RmGSQt*7n%!~|o"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LoBc9oA}{xbY)akBMXqT"> <field name="NUM">1</field> </shadow> <block type="get_value" id="hm2nF$NvSUz9w[Ph*f/d"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> </block> </value> </block> </value> <next> <block type="comment" id="(X`(4fciVop@p}TH.nVb"> <field name="COMMENT">Eingangsleistung des Accu eingestellt</field> <next> <block type="comment" id="]XhQeDA_ukB``{0~P-O_"> <field name="COMMENT">auf maximal 100W eingestellt</field> <next> <block type="control" id="=o2{GPV4w=:]aci4|vY?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Ausgangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="Rj3Uaj4{~c;!x!eGEeXD"> <value name="VALUE"> <block type="math_constrain" id="7~D[JsL|_N~VeFwt`pE`"> <value name="VALUE"> <shadow type="math_number" id="(9UIPj)LKTV=|#F^uD,q"> <field name="NUM">50</field> </shadow> <block type="math_arithmetic" id="TvZBnp(B!y!/Hr[yexE9"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="l(:X{x7E+4zu10Q|5@!j"> <field name="NUM">1</field> </shadow> <block type="math_round" id="_)86b/RxGH%v7o10%~/M"> <field name="OP">ROUNDUP</field> <value name="NUM"> <shadow type="math_number" id="gyY9z7s?_CrnAoD0q10E"> <field name="NUM">3.1</field> </shadow> <block type="get_value" id="SQT#4`Dl*V==lu[7Mku8"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="ejRA-VP8RdO[Iz7W6[$B"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!9ne=tscadHC,quP|dlU"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Ausgangsleistung</field> </block> </value> </block> </value> <value name="LOW"> <shadow type="math_number" id="k$b@7b)3I?3u8R,%^no("> <field name="NUM">0</field> </shadow> </value> <value name="HIGH"> <shadow type="math_number" id="x8}*eX!Nsg$Dq)p(Q9S_"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="6FlPzjR)45^mU;rnz8p_"> <field name="COMMENT">Eingangsleistung des Accu auf Null stellen</field> <next> <block type="control" id="O*;k.`?nQqdF;AGd[Yjl"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="0$zTn8u`[.f`wpK+*xUS"> <field name="NUM">0</field> </block> </value> <next> <block type="comment" id="-~_5VyBb;ylrRC)CVgRk"> <field name="COMMENT">AC Modus des ACCU umschalten</field> <next> <block type="controls_if" id="Qz5c%hJbta[0TsYo42G)"> <value name="IF0"> <block type="logic_compare" id="PCZ^h^:V2=5@+]D*iCbs"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="Ja-*zcvCMNYqr-Y4Q2*@"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="o(ptKr$+j]BZj.X$nPnn"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="[xw_(|,6{QxRl3l}OU|e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="For~)Qm/@`puW%Y=Lwfo"> <field name="NUM">2</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="G_4D1.-E}b39`tK,`p@h"> <field name="OP">EQ</field> <value name="A"> <block type="logic_compare" id=")4oG(hBh|woVdp?U$Z/J"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="b#SXNQu8zasH2]DmJ/+O"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> </block> </value> <value name="B"> <block type="math_number" id="xy[}^j;9IX?1xZaDWLP2"> <field name="NUM">25</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="^Xvl!s^SoM`S_|8(_eNe"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="G9P2tg|9szmpM|qUeCL{"> <field name="COMMENT">Laden des ACCU bei Überschuss von 50W starten</field> <next> <block type="comment" id="/@qBjbc!3z8~W#5,%$[_"> <field name="COMMENT">Berechnung des Leistungsüberschuss</field> <next> <block type="update" id="F|]m4r4](W#[I.ng@TV."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="r[=XTMA%cnbIn^Pee0fl"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="=+EzH#q|HDP)r|mgQ;@e"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="}zN=Zw6/H0n=h[qE7/4A"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="$SPNl@SIOfLS#XuJim?X"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="|n97^C`9Q^U-#7dXwk^l"> <field name="NUM">1</field> </shadow> <block type="get_value" id="A~X6.C[D;6{m0OUoaQNn"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LoBc9oA}{xbY)akBMXqT"> <field name="NUM">1</field> </shadow> <block type="get_value" id="VI*:6et}%oHfeYDXTXC3"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> </block> </value> </block> </value> <next> <block type="comment" id="?C:dB}qv6J|If!(XDnSL"> <field name="COMMENT">Eingangsleistung des Accu einstellen automatisch</field> <next> <block type="control" id="8ES?0+H.?*6WB)Db,A95"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="a#?Rc,ig.mU;stV[6|y+"> <value name="VALUE"> <block type="math_arithmetic" id="7f2rA,rq(G(~e~r-2~^Z"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="ecZ@g`|]9L~62{9uVOi`"> <field name="NUM">1</field> </shadow> <block type="math_round" id="5wqtClm)6p{$Z494]D^1"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="gyY9z7s?_CrnAoD0q10E"> <field name="NUM">3.1</field> </shadow> <block type="get_value" id="@[g^nLwrxmwdO31{d5@x"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="TrR3-E94Fn#4%z?Z,8V4"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id=")}E4JPL*{|iWH:AdEU(Y"> <field name="COMMENT">Ausgangsleistung des Accu auf Null stellen</field> <next> <block type="control" id="M~JoD8lXuhv4j#gU*m9k"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Ausgangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="i^YZ!2WuHV3ktOc$AhXp"> <field name="NUM">0</field> </block> </value> <next> <block type="comment" id="*,)7aCz|jh}:uaS,2GR:"> <field name="COMMENT">AC Modus des ACCU umschalten</field> <next> <block type="controls_if" id="hs}ny/(:f|/yN$k(z%Vd"> <value name="IF0"> <block type="logic_compare" id="0KG90XF+I%LTADZ?njWn"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="rdIV]ZanAz;uq|*Y$yn#"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="*3^uPB)zPc}vh}Hdp@v0"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="[Rl,me7J7UVe{xgY0~8V"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="1@P+5#/pu}qW_MHl|Izi"> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Blocky Screen Shot:
IOBroker Lacelace ScreenShot:
-
@nograx Gäbe es die Möglichkeit die Anzeige und das Setzen des Energieplans mit aufzunehmen?
-
@stephanh zunächst mal vielen Dank an dich Stephan und auch an Horst-Werner für das Blockly Script. Hab das bei mir eingespielt. Die Werte etwas auf meine Bedürfnise angepasst. Es funktioniert alles gut.
Stephan an die Funktion hab ich auch schon gedacht find ich cool. Eine Frage zum Script vom 07.10. da sind 2 Datenpunkte zu sehen also der actual_value ist das ein Datenpunkt den du mit der VIS Steuerst?
Der andere ist LadenBypassNetz., welchen Datenpunkt vom Hyper hast du da genommen? Den pass oder den passMode?
-
@onkelsep hi, hab die mal einen aktuellen Screenshot dazu angehangen:
Das LadenBpassNetz ist eine Datenpunkt bei mir. Damit ich die Regelung umgehen kann, wenn ich Speicher selbst mal laden möchte.
Neues Blocky anbei.Hab das zwischenzeitlich nochmal geändert auf die Schritte 25/50/75/100 Prozent.
Actual_Value ist nur ein Kontrollwert gewesen, ob das alles funktioniert.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="comment" id="mEn|D$D,*TTBxu#X,JLa" x="113" y="-12"> <field name="COMMENT">Hyper200 - ByPass Schaltung </field> <next> <block type="on_ext" id="?{jN^vZ6c:z]+SKK9u]S"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="5i?DqVDm=Sl~hcqB`UE4"> <field name="oid">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="o8e+7}pZLMmk$dz7xzEK"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_multi_or" id="V%G*`tZyxF8ei2BinHE_"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <value name="OR0"> <block type="logic_compare" id="IM/fwkOAWP7@{9J{2(1c"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="@K4*uBE|:UIo$1=Q,xg)"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_25</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Wi2IPATC3H+=x1{U/86M"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="OR1"> <block type="logic_compare" id="sA%1[c/1-kG!VJAzht~+"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="~=Su*]W5(SW(VzH{BkGA"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_50</field> </block> </value> <value name="B"> <block type="logic_boolean" id=".tPVPk3Y)3~Xjii)Ze}N"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="OR2"> <block type="logic_compare" id="*=JZ@Vbamul##:mAt^=I"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="1E%Svz6IdnYm$-i=1oJ7"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_75</field> </block> </value> <value name="B"> <block type="logic_boolean" id="VyS28@qKq|(T,Mg5[bF/"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="OR3"> <block type="logic_compare" id="vLff5M::CutJ~D_[h6Ev"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Zc)EcTJf)a8=3_HptlPV"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_100</field> </block> </value> <value name="B"> <block type="logic_boolean" id="hsr~@!~!B}gvuTj)5zI]"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="$H^}m~@@aU55OnSW3I#Y"> <field name="COMMENT">LadenBypassNetz_SOC</field> <next> <block type="controls_if" id="%Tzbx2$li_0Lqi9Inwjv"> <mutation elseif="3" else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="JBx6J/`$|WksmN!a-*kn"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="nWC,Y2Vkdcg4NB~%w*{-"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_25</field> </block> </value> <value name="B"> <block type="logic_boolean" id="yNl,#wft;qR(InJ1qWZ)"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="|V}=CyeInWd=i;OF!Ign"> <field name="COMMENT">LadenBypassNetz_SOC auf 25%</field> <next> <block type="update" id="S_)T|qpE0O#g~=Ls7Y_~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz_SOC</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="}(cpq_W5Nf]*y]n8;_$S"> <field name="NUM">25</field> </block> </value> <next> <block type="update" id="#Xv9t;Y9QS2kVqkK(,sM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_50</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="P_9[x!L8Zty1I({oq`PT"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="9-;iC)R$n)T/BGM-Ykwx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_75</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="pKrl?BWxv7:#d47Qf!E8"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="y/j_OyTMO;4}r.ed#~Ls"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_100</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="8~XzU@m~%aWr_A(W3J~#"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="C;w:,9|CD3Y#rNL59lZt"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="QW6~(?~![%ea_]aR#f$G"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_50</field> </block> </value> <value name="B"> <block type="logic_boolean" id="-@0xlFLO~2oNMX~%qO)("> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id=":^:WIlrznnrGAu?WGbo4"> <field name="COMMENT">LadenBypassNetz_SOC auf 50%</field> <next> <block type="update" id="=p%yDa=hPaTCJ9YEJMT3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz_SOC</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="1x%Mj1)-`yL1(]CUJt`8"> <field name="NUM">50</field> </block> </value> <next> <block type="update" id="uhds8:0f5sIjDw^O^e$*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_25</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="|;UVBmHri$jw~DxPu!C}"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="8V815$%GZmVbhKv=g9J?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_75</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Q`?DXB]t-W6LKeBN=,cO"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="3IB[~YpSl(99^Vm[?(?e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_100</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="=CeEq`6BL;ufjQ5}iW(D"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_compare" id="2Qct-qVSPD9Ru6eT~[om"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="wrhamMd@#k[$2c`2Rnoq"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_75</field> </block> </value> <value name="B"> <block type="logic_boolean" id="iDTXG[hj?_)*;x0gyy:}"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO2"> <block type="comment" id="2$q,Hei0,20mY7xcUZaC"> <field name="COMMENT">LadenBypassNetz_SOC auf 75%</field> <next> <block type="update" id="c+i.cZ*:sB0hlwT73!MZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz_SOC</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="kPlCROWq=Z~+47Z|9~Z]"> <field name="NUM">75</field> </block> </value> <next> <block type="update" id=")bPfNjZ9Zx^Q.U7u!s-1"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_25</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="_XI/Q-{tpqI3omc+KzcB"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="mRdA8#g;Z[s3:$!iTX3x"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_50</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="RLf1Jn!wy3EIXSWa=f`G"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="Kmk(Z{O)u.QRv9;^eJF5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_100</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="u|{8}N?o@!.,(5mcijwz"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF3"> <block type="logic_compare" id="nae.ZOY7|b8bx!(Ca^CT"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Ha4u;h`IDR:7#n?[Lt17"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_100</field> </block> </value> <value name="B"> <block type="logic_boolean" id="J.{W=1g}y!-CB_a#{,mp"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO3"> <block type="comment" id="GnWE%Gy~=d*L3p-06HU@"> <field name="COMMENT">LadenBypassNetz_SOC auf 100%</field> <next> <block type="update" id="(EGFbnudg]jiSmg)=TT?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz_SOC</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="KoTR!Z3nXs`1_`mB:Atv"> <field name="NUM">100</field> </block> </value> <next> <block type="update" id="P8c1$Fn;(AxEOHjm%LLe"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_25</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="adtqbt;FZ}3HA]_Y!3X~"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id=",fKUuSB0~*bgI4emsc_E"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_50</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="+Ad[%8Xrvr0]1tP%ID/A"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="e:DWC(4==CMv$=sYnJi2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_75</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="r};nT](.qDRf{Be0D:nq"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="el7$@dOBsd$Rs^)K;Sh4"> <field name="COMMENT">Eingangsleistung des Accu einstellen fix als Test</field> <next> <block type="control" id="uCWlqv8[P}UtMYaTDdO{"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="7p}@,^hnqW%bGv}`aH[p"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz_Leistung</field> </block> </value> <next> <block type="comment" id="f:2^eNVj.7sz%hb`g[ZX"> <field name="COMMENT">Ausgangsleistung des Accu auf Null stellen</field> <next> <block type="control" id="34Fj3#mI1//FSf%/AZQ["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Ausgangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="da,ap^iQ:!:vioc[Iavx"> <field name="NUM">0</field> </block> </value> <next> <block type="comment" id="s=CQ}cD.(eCDDHEYMwJ="> <field name="COMMENT">AC Modus des ACCU umschalten</field> <next> <block type="controls_if" id="zWBpv/M^Z*Hl~{|0SIgB"> <value name="IF0"> <block type="logic_compare" id="Sp-N#3rJE0=_+ju?F}MQ"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="9_3;D0BxXX1C:7q/A-vl"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="`4-mf4jVB+^zhcwu$L=F"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="eY$rZNZ)?/teNH{=I/SD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="KNdgbs3@6zr`7-z^3[Wa"> <field name="NUM">1</field> </block> </value> </block> </statement> <next> <block type="comment" id="Xw963TOZc%CMy#|M:]ln"> <field name="COMMENT">Wenn SOC größer 30% exit</field> <next> <block type="controls_if" id="JICQ`iNE5Q[zwk}L_e+)"> <value name="IF0"> <block type="logic_compare" id="Iyp`,~@V86|af4mY^[k6"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="Le+Q8Dtj[2q|fSs;jaVB"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_SOC</field> </block> </value> <value name="B"> <block type="get_value" id="Il2[o5:dox!RwXYAlB?!"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenBypassNetz_SOC</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="B+DW128WRT4=-ML77`Zs"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_25</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="MYQ;h]Lj8cUd+%Lfq(7$"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="jJb!9oov$+:f[lr#xbov"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_50</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="V4PUBkB/OnIsz]Dn~VGT"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="@fmlXp?D-INpw?M.w|Q7"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_75</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="I^C.Sf^c|)!RqQ](vY7J"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="0{M_X:TL=@o@WOgO]$F9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.LadenByPassNetz_100</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="EjlJR^kNc!:~E!OXw5zP"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="comment" id="m]8_{7x^`#xI[xK,We!T"> <field name="COMMENT">LadenBypass aus => 50</field> <next> <block type="update" id=".$@*H8c,!Y^K9MzHG;8F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="p@Z^bs^Sa)GyFK!UvGur"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="=+EzH#q|HDP)r|mgQ;@e"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=":RDkpD4Nm~wv_L9e-lmS"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="|6m-!pKH=)Bn646@gI.="> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="|n97^C`9Q^U-#7dXwk^l"> <field name="NUM">1</field> </shadow> <block type="get_value" id="qbL=vtU@J*M$d{!].s?2"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LoBc9oA}{xbY)akBMXqT"> <field name="NUM">1</field> </shadow> <block type="get_value" id="hWYJv*IU#APgk(DaJu1j"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> </block> </value> </block> </value> <next> <block type="controls_if" id="ceVh]OqX#F59jQX=_A82"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_multi_or" id="zzQz=Nw0BB-DW+pre9FW"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="OR0"> <block type="logic_compare" id="F!%doR3V{ps!xg(^/)$c"> <field name="OP">EQ</field> <value name="A"> <block type="logic_compare" id="!aN#[GQtM(MZs?YVN97R"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="eP%*kt~ASkHx$],CV,vj"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Energie.VAR_PV_Gesamt</field> </block> </value> <value name="B"> <block type="math_number" id=";m3U=|7L5^gq(yBrRmJu"> <field name="NUM">100</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="N%*#K2iCUT$bZg,JX,5K"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="OR1"> <block type="logic_compare" id="ed49_,`_-D#j|oMjn~F*"> <field name="OP">EQ</field> <value name="A"> <block type="logic_compare" id="Y?w)Lq|I4sM~c~Rv)8,E"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="Muelu(c~OXl$XM~ej8AL"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> </block> </value> <value name="B"> <block type="math_number" id="peDLLzc7@$@xupw,4?sK"> <field name="NUM">-20</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="tw]lrF5_HzIg1y_p]rS*"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="*OmZxLQ02d/-/$Stjw*b"> <field name="COMMENT">Entladen des ACCU beginnen, wenn PV kleiner</field> <next> <block type="comment" id="#sGXaA}7FOlrqJ_f`nXC"> <field name="COMMENT">100W ist und Überschuss -20W ist </field> <next> <block type="comment" id="BTTPMWm/de,d7~Ti|/I:"> <field name="COMMENT">Berechnung des Leistungsüberschuss</field> <next> <block type="update" id="fce@-pMl:1kZ%lAb1IM5"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id=",=I/6z]|3NAu8ylXEr|)"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="=+EzH#q|HDP)r|mgQ;@e"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=";D#iA~8Yj630O($CMi?N"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id=";f|).sI:pOi1s(r$G`8b"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="|n97^C`9Q^U-#7dXwk^l"> <field name="NUM">1</field> </shadow> <block type="get_value" id="XmrX=:RmGSQt*7n%!~|o"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LoBc9oA}{xbY)akBMXqT"> <field name="NUM">1</field> </shadow> <block type="get_value" id="hm2nF$NvSUz9w[Ph*f/d"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> </block> </value> </block> </value> <next> <block type="comment" id="(X`(4fciVop@p}TH.nVb"> <field name="COMMENT">Eingangsleistung des Accu eingestellt</field> <next> <block type="comment" id="]XhQeDA_ukB``{0~P-O_"> <field name="COMMENT">auf maximal 100W eingestellt</field> <next> <block type="control" id="=o2{GPV4w=:]aci4|vY?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Ausgangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="Rj3Uaj4{~c;!x!eGEeXD"> <value name="VALUE"> <block type="math_constrain" id="7~D[JsL|_N~VeFwt`pE`"> <value name="VALUE"> <shadow type="math_number" id="(9UIPj)LKTV=|#F^uD,q"> <field name="NUM">50</field> </shadow> <block type="math_arithmetic" id="TvZBnp(B!y!/Hr[yexE9"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="l(:X{x7E+4zu10Q|5@!j"> <field name="NUM">1</field> </shadow> <block type="math_round" id="_)86b/RxGH%v7o10%~/M"> <field name="OP">ROUNDUP</field> <value name="NUM"> <shadow type="math_number" id="gyY9z7s?_CrnAoD0q10E"> <field name="NUM">3.1</field> </shadow> <block type="get_value" id="SQT#4`Dl*V==lu[7Mku8"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="ejRA-VP8RdO[Iz7W6[$B"> <field name="NUM">1</field> </shadow> <block type="get_value" id="!9ne=tscadHC,quP|dlU"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Ausgangsleistung</field> </block> </value> </block> </value> <value name="LOW"> <shadow type="math_number" id="k$b@7b)3I?3u8R,%^no("> <field name="NUM">0</field> </shadow> </value> <value name="HIGH"> <shadow type="math_number" id="x8}*eX!Nsg$Dq)p(Q9S_"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id="6FlPzjR)45^mU;rnz8p_"> <field name="COMMENT">Eingangsleistung des Accu auf Null stellen</field> <next> <block type="control" id="O*;k.`?nQqdF;AGd[Yjl"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="0$zTn8u`[.f`wpK+*xUS"> <field name="NUM">0</field> </block> </value> <next> <block type="comment" id="-~_5VyBb;ylrRC)CVgRk"> <field name="COMMENT">AC Modus des ACCU umschalten</field> <next> <block type="controls_if" id="Qz5c%hJbta[0TsYo42G)"> <value name="IF0"> <block type="logic_compare" id="PCZ^h^:V2=5@+]D*iCbs"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="Ja-*zcvCMNYqr-Y4Q2*@"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="o(ptKr$+j]BZj.X$nPnn"> <field name="NUM">2</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="[xw_(|,6{QxRl3l}OU|e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="For~)Qm/@`puW%Y=Lwfo"> <field name="NUM">2</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="G_4D1.-E}b39`tK,`p@h"> <field name="OP">EQ</field> <value name="A"> <block type="logic_compare" id=")4oG(hBh|woVdp?U$Z/J"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="b#SXNQu8zasH2]DmJ/+O"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> </block> </value> <value name="B"> <block type="math_number" id="xy[}^j;9IX?1xZaDWLP2"> <field name="NUM">25</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="^Xvl!s^SoM`S_|8(_eNe"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="G9P2tg|9szmpM|qUeCL{"> <field name="COMMENT">Laden des ACCU bei Überschuss von 50W starten</field> <next> <block type="comment" id="/@qBjbc!3z8~W#5,%$[_"> <field name="COMMENT">Berechnung des Leistungsüberschuss</field> <next> <block type="update" id="F|]m4r4](W#[I.ng@TV."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="r[=XTMA%cnbIn^Pee0fl"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="=+EzH#q|HDP)r|mgQ;@e"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="}zN=Zw6/H0n=h[qE7/4A"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="$SPNl@SIOfLS#XuJim?X"> <field name="NUM">0</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="|n97^C`9Q^U-#7dXwk^l"> <field name="NUM">1</field> </shadow> <block type="get_value" id="A~X6.C[D;6{m0OUoaQNn"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="LoBc9oA}{xbY)akBMXqT"> <field name="NUM">1</field> </shadow> <block type="get_value" id="VI*:6et}%oHfeYDXTXC3"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> </block> </value> </block> </value> <next> <block type="comment" id="?C:dB}qv6J|If!(XDnSL"> <field name="COMMENT">Eingangsleistung des Accu einstellen automatisch</field> <next> <block type="control" id="8ES?0+H.?*6WB)Db,A95"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Eingangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="a#?Rc,ig.mU;stV[6|y+"> <value name="VALUE"> <block type="math_arithmetic" id="7f2rA,rq(G(~e~r-2~^Z"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="ecZ@g`|]9L~62{9uVOi`"> <field name="NUM">1</field> </shadow> <block type="math_round" id="5wqtClm)6p{$Z494]D^1"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="gyY9z7s?_CrnAoD0q10E"> <field name="NUM">3.1</field> </shadow> <block type="get_value" id="@[g^nLwrxmwdO31{d5@x"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Überschuss</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="TrR3-E94Fn#4%z?Z,8V4"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="comment" id=")}E4JPL*{|iWH:AdEU(Y"> <field name="COMMENT">Ausgangsleistung des Accu auf Null stellen</field> <next> <block type="control" id="M~JoD8lXuhv4j#gU*m9k"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_Einzustellende_Ausgangsleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="i^YZ!2WuHV3ktOc$AhXp"> <field name="NUM">0</field> </block> </value> <next> <block type="comment" id="*,)7aCz|jh}:uaS,2GR:"> <field name="COMMENT">AC Modus des ACCU umschalten</field> <next> <block type="controls_if" id="hs}ny/(:f|/yN$k(z%Vd"> <value name="IF0"> <block type="logic_compare" id="0KG90XF+I%LTADZ?njWn"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="rdIV]ZanAz;uq|*Y$yn#"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="*3^uPB)zPc}vh}Hdp@v0"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="[Rl,me7J7UVe{xgY0~8V"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.VAR_Zendure.VAR_AC_Modus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="1@P+5#/pu}qW_MHl|Izi"> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="Pd(VMOb!i1z@d[TRqTPy" x="226" y="312"> <field name="COMMENT">LadenBypass auf 25, 50, 75 oder 100%</field> </block> </xml>
-
@stephanh Super, vielen Dank noch mal.
Ich überlege gerade ob es Sinn macht einen Tiefentladeschutz einzubauen. Das Problem ist die unter Grenze beim Akku hab ich auf 10 % gestellt hab aber beobachtet dass die selbstentladung in ca. 10 Stunden 1% war z.B. Nachts und wenn am Tag auch nichts kommt geht die Entladung ja weiter. Laut irgendeiner Beschreibung hab ich irgendwo gelesen dass der Hyper bei 5% angeblich selbst über AC Laden dafür sort dass der Akku nicht tiefentladen wird. Ob das aber klappt? Keine Ahnung. Aber vielleicht hat das jemand hier schon mal beobachtet was passiert wenn der 5% hat ob der Hyper das selbst macht, dann würde sich das ja im Script erübrigen. -
@onkelsep Das mit dem Tiefentladeschutz hört sich gut an.
So sieht das im LoveLace bei mir aus:
-
@stephanh sieht gut aus vor allem die 4 Buttons 25/50/75/100 %
-
@onkelsep sagte in Test Adapter Zendure Solarflow:
@stephanh Super, vielen Dank noch mal.
Ich überlege gerade ob es Sinn macht einen Tiefentladeschutz einzubauen. Das Problem ist die unter Grenze beim Akku hab ich auf 10 % gestellt hab aber beobachtet dass die selbstentladung in ca. 10 Stunden 1% war z.B. Nachts und wenn am Tag auch nichts kommt geht die Entladung ja weiter. Laut irgendeiner Beschreibung hab ich irgendwo gelesen dass der Hyper bei 5% angeblich selbst über AC Laden dafür sort dass der Akku nicht tiefentladen wird. Ob das aber klappt? Keine Ahnung. Aber vielleicht hat das jemand hier schon mal beobachtet was passiert wenn der 5% hat ob der Hyper das selbst macht, dann würde sich das ja im Script erübrigen.Tiefenentladeschutz bietet der Adapter bereits In den Einstellungen "Spannungs-Überwachung nutzen" aktivieren. Dann wird die Einspeiseleistung auf 0 gesetzt wenn die Spannung einer Batterie in einen kritischen Bereich fällt. Gleichzeitig wird unter control der state "lowVoltageBlock" gesetzt.
-
@nograx
ok, das wusste ich nicht, allerdings noch die Frage. Ab wann ist der kritische Bereich?
Eine Nachladung aus dem Hausnetz muss dann trotzdem noch realisiert werden um nicht in den Tiefentladezustand zu kommen also dann wenn der Hyper beispielsweise sehr lange laufen würde ohne nachzuladen geht die Leistung immer weiter runter im Standby. -
@onkelsep sagte in Test Adapter Zendure Solarflow:
@nograx
ok, das wusste ich nicht, allerdings noch die Frage. Ab wann ist der kritische Bereich?
Eine Nachladung aus dem Hausnetz muss dann trotzdem noch realisiert werden um nicht in den Tiefentladezustand zu kommen also dann wenn der Hyper beispielsweise sehr lange laufen würde ohne nachzuladen geht die Leistung immer weiter runter im Standby.Wenn die Spannung unter 46,1V fällt. Das reicht locker. Zur tiefenentladung kommt es vermutlich dann, wenn unter diesem Bereich noch eine hohe Leistung abgerufen wird. Das BMS schaltet dann nicht mehr rechtzeitig ab und die Batterien sind tot. Das Zendure Gerät ist auch recht unzuverlässig was den Akkustand angeht.
Live Beispiel bei mir gerade. Laut Zendure sind meine 4 Batterien (2 Hubs) zu 22% und 15% gefüllt. Mein Adapter sagt 0%. Spannung ist jetzt bei 46,0V. Schau dir mal ein Lifepo4 48V Spannungsfeld zu SOC Diagram an. Demnach sind 46V ca. 5%. Der Spannungsabfall ist in dem Bereich enorm. Wenn du da dann noch mit hoher Leistung rangehst kann es im Ernstfall innerhalb kürzester Zeit auf unter 40V fallen, und dann sind die faktisch tot. Je mehr Batterien am Hub sind, desto geringer das Risiko. Denn dann verteilt sich die Leistung ja auf alle Batterien.
Und vermutlich tritt das meistens im Winter auf, wenn die Batterien nicht mehr auf 100% gehen und dann der %-Wert des Hubs immer weiter von der Realität abweicht.
-
@nograx
Vielen Dank für die Erklärung. Das war mir nicht bewusst mit der Spannung. OK dass die % Anzeige in der APP unzuverlässig sein kann ist mir bewusst. Vorallem wie du schon schreibst wenn der im Winter nicht voll wird. Werde mir mal so ein Diagramm ansehen ebenso mal die Spannung bei mir mal beobachten. Den Hacken hab ich im Adapter auf alle Fälle gesetzt.
Vielen Dank noch mal.
Übrigens der Adapter ist genial. Super Arbeit -
@nograx eine Frage: wie binde ich einen weiteren SolarFlow Hub ein? Ich habe einen zweiten in der Zenudure-App eingebunden, aber der Adapter zeigt weiterhin nur den einen an. Des weiteren habe ich einen meiner beiden Akkus auf den zweiten Hub umgehängt. Wie mache ich das im Adapter?
Schon mal besten Dank!
-
@diet99 sagte in Test Adapter Zendure Solarflow:
@nograx eine Frage: wie binde ich einen weiteren SolarFlow Hub ein? Ich habe einen zweiten in der Zenudure-App eingebunden, aber der Adapter zeigt weiterhin nur den einen an. Des weiteren habe ich einen meiner beiden Akkus auf den zweiten Hub umgehängt. Wie mache ich das im Adapter?
Schon mal besten Dank!
Das sollte eigentlich automatisch gehen, der sollte zweite Hub sollte sofort auftauchen (ggf. mal den Adapter neustarten). Beim Akku müsstest du vermutlich den Baum des Akkus löschen, dieser würde nicht mehr aktualisiert werden.
-
@nograx Moin! Und danke für die Antwort!
Nein, der taucht leider nicht automatisch auf - auch nach Neustart des Adapters nicht. Das war meine erste Idee gewesen. Außerdem startet der Adapter ja eh alle paar Stunden neu. Den Akku hab ich rausgeworfen, das hat geklappt. -
@diet99 sagte in Test Adapter Zendure Solarflow:
@nograx Moin! Und danke für die Antwort!
Nein, der taucht leider nicht automatisch auf - auch nach Neustart des Adapters nicht. Das war meine erste Idee gewesen. Außerdem startet der Adapter ja eh alle paar Stunden neu. Den Akku hab ich rausgeworfen, das hat geklappt.Das ist höchst seltsam. Nutzt du einen zweiten Account für ioBroker und hast den ersten Hub freigegeben und vergessen den zweiten auch freizugeben? Was anderes fällt mir da eigentlich nicht ein...
-
@nograx said in Test Adapter Zendure Solarflow:
Nutzt du einen zweiten Account für ioBroker und hast den ersten Hub freigegeben und vergessen den zweiten auch freizugeben?
Danke! Das war die Lösung! Da hatte ich gar nicht mehr drüber nachgedacht, daß man die beiden Hubs ja getrennt freigeben kann und muß!
Gut, daß wir drüber gesprochen habenJetzt funktioniert es!
-
@diet99 sagte in Test Adapter Zendure Solarflow:
@nograx said in Test Adapter Zendure Solarflow:
Nutzt du einen zweiten Account für ioBroker und hast den ersten Hub freigegeben und vergessen den zweiten auch freizugeben?
Danke! Das war die Lösung! Da hatte ich gar nicht mehr drüber nachgedacht, daß man die beiden Hubs ja getrennt freigeben kann und muß!
Gut, daß wir drüber gesprochen habenJetzt funktioniert es!
Top
-
@nograx Danke für die schnelle Hilfe! Und für die ständige Weiterentwicklung!
-
Auch von mir einen herzlichen Dank an @nograx für die Entwicklung und ständige Weiterentwicklung dieses Adapters. Ich bin eigentlich ein Home Assistent Benutzer und verwende jetzt diesen Adapter mit einem schnell aufgebauten RasPi um über MQTT in Home Assistent meine neue Speicher-Lösung Hyper 2000 mit einem AB2000S zu steuern.
Die Lösung über den MQTT-Server hätte zwar auch funktioniert, ich hätte aber feste Zeiten fürs Laden einstellen müssen und bei Überschuss den Speicher über eine Shelly Plug steuern können, aber mit dem iobroker-Adapter ist das viel flexibler.
Der Speicher hängt an einer vor 10 Jahren installierten 7.15kWp Anlage über den AC-Eingang. Mir ist bewusst, dass das Wirkungsgradmäßig nicht die beste Lösung ist, ggf. hänge ich noch 2 Solar Module an den Hyper, aber auf dem Dach ist kein Platz mehr , da muss ich erst mal einen Platz für finden.
Hat zwar eine Weile gedauert, bis ich alles zur Zufriedenheit umgesetzt habe und alle Automationen so laufen, wie ich es will, jetzt passt es aber.
Ich hatte allerdings erst Erfolg mit dem Steuern des Speichers, als ich den Fall-Back auf den MQTT-Server abgeschaltet hatte.
Der nächste Schritt ist das Einbinden des Speichers in evcc.