Test Adapter Zendure Solarflow
-
@OnkelSep
Das sind alias:zu den daten Punkten in der Instanz. Hatte die mir so angelegt.
Und hier noch Datenpunkte, die fest angelegt hab.
-
@stephanh OK, werden die Automatisch angelegt? Oder muss ich die dann manuell anlegen. Kann im Moment nicht testen bin gerade nicht daheim.
-
@onkelsep Die musst du von Hand anlegen.
-
@stephanh OK; Vielen Dank
-
@stephanh Hmm irgendwas passt da nicht, hab das eben importiert, aber da ist nur der kleine Block drin. War der bei dir evtl. einzeln markiert?
-
@onkelsep werde es denke morgen nochmal Online stellen.
Hab einen weiteren Fehler gefunden. Hab die falsche Variable geschaltet. -
@stephanh OK Danke, das war tatsächlich nur der eine Block
-
@nograx
Klappt soweit super mit V1.8.8 , aber ich habe über den Datenpunkt "zendure-solarflow.0.info.connection" in den Benutzerdefinierten einstellungen Telegram angewiesen mir eine Nachricht zu schicken ob die Anlage mit der Cloud verbunden ist oder nicht. Leider bekomme ich jetzt alle 3 Std. eine Meldung das die Anlage offline ist und sofort darauf das sie online ist. Ist dieser ON/OFF wechsel so gewollt oder könntest du das während des Restarts deaktivieren.Dann verständniss fragen :
ist es normal das unter "zendure-solarflow.0.xxxxxxxxxx.packData.yyyyyyyyyyyy.model" immer AB1000 steht , auch wenn man ein Zendure AIO2400 hat .
Warum tauchen bei meinem System nun auch DPs auf, die nur für den Hyper und ACE interessant sind .
Warum kann an sonnigen Tagen der Dateninhalt von "zendure-solarflow.0.xxxxxxxx.calculations.energyWhMax" bei einer AIO 2400 grösser als 2400 Wh werden. Ich dachte das energyWhMax sich auf die Kapazität des Akkus bezieht, wodurch dann aber 2400 Wh die Max grenze wären.Ich weiss das sind viele Punkte , aber habe gesammelt .
Aber kann ohne bedenken sagen das der Adapter einer meiner Lieblingsadapter ist , nur weiter so. -
@muppibaer sagte in Test Adapter Zendure Solarflow:
@nograx
Klappt soweit super mit V1.8.8 , aber ich habe über den Datenpunkt "zendure-solarflow.0.info.connection" in den Benutzerdefinierten einstellungen Telegram angewiesen mir eine Nachricht zu schicken ob die Anlage mit der Cloud verbunden ist oder nicht. Leider bekomme ich jetzt alle 3 Std. eine Meldung das die Anlage offline ist und sofort darauf das sie online ist. Ist dieser ON/OFF wechsel so gewollt oder könntest du das während des Restarts deaktivieren.Ja das ist so "gewollt" bzw weiß ich aktuell nicht wie ich das anders lösen könnte. Der Restart vom Adapter ist zwingend nötig damit ein neue Login Daten erzeugt werden - ansonsten kommen irgendwann keine Daten mehr an. Beim Restart wird der Adapter immer in "offline" gesetzt, da ja die Verbindung getrennt wird. Du könntest mal versuchen den Datenpunkt "errorMessage" zu nutzen. Da sollte sich der Wert nur ändern wenn beim Login Fehler auftreten (natürlich schwer zu testen ).
Dann verständniss fragen :
ist es normal das unter "zendure-solarflow.0.xxxxxxxxxx.packData.yyyyyyyyyyyy.model" immer AB1000 steht , auch wenn man ein Zendure AIO2400 hat .Ja und Nein. Eine Zuordnung zum Batterietypen kann man nur über die Seriennummer machen. Diese beginnen beim AB1000 mit "A" und beim AB2000 mit "C". Da die SN beim AIO auch mit A anfängt meint mein Adapter es ist ein AB1000 ... definitiv etwas was ich noch optimieren werden.
Warum tauchen bei meinem System nun auch DPs auf, die nur für den Hyper und ACE interessant sind .
Weil Zendure die seit neusten bei allen Geräten mitsendet und mir das aktuell etwas zu viel Aufwand ist da noch eine Abfrage einzubauen ob der DP für das aktuelle Gerät Sinn ergibt... ansonsten würdest du im Log etliche Fehlermeldungen sehen das ein State nicht gesetzt werden kann weil er nicht existiert.
Warum kann an sonnigen Tagen der Dateninhalt von "zendure-solarflow.0.xxxxxxxx.calculations.energyWhMax" bei einer AIO 2400 grösser als 2400 Wh werden. Ich dachte das energyWhMax sich auf die Kapazität des Akkus bezieht, wodurch dann aber 2400 Wh die Max grenze wären.
Das sollte eigentlich nicht passieren, kannst du mir mal sagen was im DP "productName" im Root das AIO steht?
Ich weiss das sind viele Punkte , aber habe gesammelt .
Aber kann ohne bedenken sagen das der Adapter einer meiner Lieblingsadapter ist , nur weiter so.Danke
-
Hab nun das Blocky von @horst-werner leicht auf meine Bedürfnisse angeändert.
Dazu noch ein kleines Skript dazu geschrieben um die Accu Restlaufzeit in den IOBroker zu bekommen.danke @horst-werner für das Skript
Blocky Sreenshots:
Blocky Source Code:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="#6btDDy?iZ!l,V3]+M[x">Dauer</variable> <variable id=")tGESEmT]pYF.v)Eih|^">Tage</variable> <variable id="H68M?Flzm6{D=L;BBK%C">Stunden</variable> <variable id=";M]VNL_)$W;Cm)4apwb]">Minuten</variable> <variable id="Jyr]SpQCUB)T*mci^oil">Sekunden</variable> </variables> <block type="on_ext" id="n._n/=eOXkf;Z1~fZ?bX" x="37" y="-387"> <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="BFe.YK%XHc?YYHP6tf4O"> <field name="oid">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </shadow> </value> <statement name="STATEMENT"> <block type="control" id="]s!W9A(D6=L74|a]SZH=" disabled="true"> <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="get_value" id="!cQF;GFRb1V|3W;ID2d="> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Energie.VAR_Leistung_Momentan</field> </block> </value> <next> <block type="comment" id="-Lkh|F82sn.`Kii9s`[,"> <field name="COMMENT">Berechnung des Leistungsüberschuss</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="Iyp`,~@V86|af4mY^[k6"> <field name="OP">NEQ</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_AC_Modus</field> </block> </value> <value name="B"> <block type="math_number" id="c4c`K=AB02Qy7;CIS;C2"> <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="el7$@dOBsd$Rs^)K;Sh4" disabled="true"> <field name="COMMENT">Eingangsleistung des Accu einstellen fix als Test</field> <next> <block type="control" id="uCWlqv8[P}UtMYaTDdO{" disabled="true"> <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">50</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> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="schedule" id="S},%B!W7FjU|w+;Bi3u/" x="38" y="1037"> <field name="SCHEDULE">*/1 * * * *</field> <statement name="STATEMENT"> <block type="comment" id="x#L9[%LY|Yrx`l)DWm|n"> <field name="COMMENT">Restlaufzeit</field> <next> <block type="variables_set" id="NGhPKnI{-#S+~-F(/+4V"> <field name="VAR" id="#6btDDy?iZ!l,V3]+M[x">Dauer</field> <value name="VALUE"> <block type="math_arithmetic" id="=AHH/`%,74@j*}v88$79"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="ss`$pp4N5KKR^%MLk[D%"> <field name="NUM">59940</field> </shadow> <block type="get_value" id="M!/uUuyyD[unsj=$0Ez8"> <field name="ATTR">val</field> <field name="OID">alias.0.VAR_Zendure.VAR_Batterie_Restzeit</field> </block> </value> <value name="B"> <shadow type="math_number" id="sG@8|B`I9EJyZbW3Bw~?"> <field name="NUM">1</field> </shadow> <block type="math_number" id="DuB.$eV{^CH~YoRbWI!P"> <field name="NUM">60</field> </block> </value> </block> </value> <next> <block type="variables_set" id="Sm7w-b~@F1b=S==:S9+r"> <field name="VAR" id=")tGESEmT]pYF.v)Eih|^">Tage</field> <value name="VALUE"> <block type="math_round" id="xi=g@xHGER/T10.(r93|"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <shadow type="math_number" id="~S?pQpLpEFpa}{mQW}9u"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="iumt6*=QPH?P=aQmK%(b"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="K#i?[YYSv^Ec`bF~2gF!"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="rgi-r`PN.ucKW~sdteP5"> <field name="VAR" id="#6btDDy?iZ!l,V3]+M[x">Dauer</field> </block> </value> <value name="B"> <shadow type="math_number" id="sG@8|B`I9EJyZbW3Bw~?"> <field name="NUM">1</field> </shadow> <block type="math_number" id="~|C2.UnvXs:[5^6V:!GP"> <field name="NUM">86400</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="to`OEZ#;|PmOdO?,xF_U"> <field name="VAR" id="H68M?Flzm6{D=L;BBK%C">Stunden</field> <value name="VALUE"> <block type="math_round" id="4^C^0hI%D[PPGw|Q51gp"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <shadow type="math_number" id="~S?pQpLpEFpa}{mQW}9u"> <field name="NUM">3.1</field> </shadow> <block type="math_modulo" id="Q+$cIIL:6y4drDlY_ECh"> <value name="DIVIDEND"> <shadow type="math_number" id="iy$xPJVc:g=bcolI1bFD"> <field name="NUM">64</field> </shadow> <block type="math_arithmetic" id="}%sfc15Dcwyaj7Hq`|;V"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="yi*z)KB_*J;7[/x?%X=I"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="si[BlX(p=RNnGJw3wXaW"> <field name="VAR" id="#6btDDy?iZ!l,V3]+M[x">Dauer</field> </block> </value> <value name="B"> <shadow type="math_number" id="sG@8|B`I9EJyZbW3Bw~?"> <field name="NUM">1</field> </shadow> <block type="math_number" id="#U$78u5#qCOP:~(}+-+^"> <field name="NUM">3600</field> </block> </value> </block> </value> <value name="DIVISOR"> <shadow type="math_number" id="B/S$l*V/xyMAQJgIdrE4"> <field name="NUM">24</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="O-%R!_LPrg}X?k?Q[RSR"> <field name="VAR" id=";M]VNL_)$W;Cm)4apwb]">Minuten</field> <value name="VALUE"> <block type="math_round" id="~*hJK[4dJ*K}#VV%O,qV"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <shadow type="math_number" id="~S?pQpLpEFpa}{mQW}9u"> <field name="NUM">3.1</field> </shadow> <block type="math_modulo" id="hN/x.G#X6Y9]yDgL}EH;"> <value name="DIVIDEND"> <shadow type="math_number" id="iy$xPJVc:g=bcolI1bFD"> <field name="NUM">64</field> </shadow> <block type="math_arithmetic" id="?UI^*D?-Os8}ADtscPBk"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="A%dnPP1|BP(;!4~5MNZL"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="+1`ruy!k=mJDZ9V.E%jh"> <field name="VAR" id="#6btDDy?iZ!l,V3]+M[x">Dauer</field> </block> </value> <value name="B"> <shadow type="math_number" id="sG@8|B`I9EJyZbW3Bw~?"> <field name="NUM">1</field> </shadow> <block type="math_number" id="JW-Vm8M6qw.R$AE-Dp,h"> <field name="NUM">60</field> </block> </value> </block> </value> <value name="DIVISOR"> <shadow type="math_number" id="~%aHqA8i)W;b43`,6.(0"> <field name="NUM">60</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="+lLLq,w7.p(XvQo:l~n{"> <field name="VAR" id="Jyr]SpQCUB)T*mci^oil">Sekunden</field> <value name="VALUE"> <block type="math_modulo" id="l%R%U7ScDU47,66yP*Ia"> <value name="DIVIDEND"> <shadow type="math_number" id="iy$xPJVc:g=bcolI1bFD"> <field name="NUM">64</field> </shadow> <block type="variables_get" id="iS^1Rsjx{XDVs0f5`uGK"> <field name="VAR" id="#6btDDy?iZ!l,V3]+M[x">Dauer</field> </block> </value> <value name="DIVISOR"> <shadow type="math_number" id="uu!+F}OJ.-0mNo;2N0v+"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="update" id="(g+SDiV]@I6UoHl8jE.i"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte_iOBroker.VAR_Zendure.Restlaufzeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_join" id="|gSv+WZHIMcsYv;iY}y5"> <mutation items="8"></mutation> <value name="ADD0"> <block type="variables_get" id="AEuZrhGcq`:b9D$1EUv2"> <field name="VAR" id=")tGESEmT]pYF.v)Eih|^">Tage</field> </block> </value> <value name="ADD1"> <block type="text" id="_N5MntuQ3.OAGrQ,UEnV"> <field name="TEXT"> Tag(e), </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="ahR|//tRz@U^a(7*H#(e"> <field name="VAR" id="H68M?Flzm6{D=L;BBK%C">Stunden</field> </block> </value> <value name="ADD3"> <block type="text" id="V0sqG%|UzZe:%=_GTSO%"> <field name="TEXT"> Stunde(n), </field> </block> </value> <value name="ADD4"> <block type="variables_get" id="1o2w?6.gthlIa^+0_QaP"> <field name="VAR" id=";M]VNL_)$W;Cm)4apwb]">Minuten</field> </block> </value> <value name="ADD5"> <block type="text" id="1oy#IR@#^HupeI(++C48"> <field name="TEXT"> Minute(n) </field> </block> </value> <value name="ADD6"> <block type="variables_get" id="JH;~zJ28k}}/dhdHzsmF"> <field name="VAR" id="Jyr]SpQCUB)T*mci^oil">Sekunden</field> </block> </value> <value name="ADD7"> <block type="text" id="r1vCJbBz?HBY0B$x4z_Z"> <field name="TEXT">s</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
ScreenShots der Alias und Variablen, wie ich Sie verwendet habe
IOBroker Lovelace ScreenShots:
-
@stephanh Wou, super. ziehe mir das morgen mal rein. Vielen Dank erst mal.
-
Danke für deine Antwort, und natürlich auch für diesen echt tollen Adapter.
Ich hab 2 AIO Anlagen bei beiden steht in zendure-solarflow.0.xxxxxx.yyyyyyyy.productName "SolarFlow AIO ZY"
, vieleicht wäre es einfacher in den Adaptereinstellungen ein Auswahl oder Eingabe Feld für die Akkugrösse einzufügen.Werde es über errorMessage mal versuchen , aber dachte bisher das dort eine Meldung nur auf läuft wenn keine Verbindung beim Login hergestellt werden kann. Wird dort auch eine Meldung ausgegeben wenn die Verbindung verloren geht oder abbricht ?
Trifft es dann zu das Du einfach den gesammten Adapter alle 3 Std. neu startest, wäre es nicht einfacher das der Adapter sich nur aus- und wieder einloggt.Dann noch eine frage zum bereich calculations , wie genau sind die Ergebnisse dort. frage nur weil es immer wieder vor kommt das die ausgelesenen AIO daten z.b Soc gerade jetzt noch 38 % angibt , die berechnung aber nur noch 1,2%
-
@nograx Heute nachmittag hatte ich diesen Fehler:
Erst drei Stunden später, um 17:44 Uhr, gab es wieder eine erfolgreiche Verbindung.
Wäre es möglich, in diesem Fehlerfalle einen automatischen Reconnect-Versuch zu starten? -
@diet99 sagte in Test Adapter Zendure Solarflow:
@nograx Heute nachmittag hatte ich diesen Fehler:
Erst drei Stunden später, um 17:44 Uhr, gab es wieder eine erfolgreiche Verbindung.
Wäre es möglich, in diesem Fehlerfalle einen automatischen Reconnect-Versuch zu starten?hm ja da kann ich sicher noch was machen. Aber schon witzig das beim Login der Server erreichbar war, Millisekunden später aber bei der Abfrage der Geräte offenbar nicht mehr.
-
@stephanh vielen Dank für dieses coole Script
Nutzt Du einen Hyper2000 oder den SolarHub.
Ich habe mit einem ähnlichen Script aktuell ein paar Probleme und suche nach der Ursache
Welche Region in der Zendure App nutzst Du Global oder EU ? -
@chris2201 Das Skript kommt von @horst-werner hab es nur etwas angepasst.
Ich nutze den Hyper2000. Region ist EU für die Server.
Läuft bis jetzt ohne Probleme,
-
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?