NEWS
Test Adapter Zendure Solarflow
-
@nograx Kann ich bestätigen. Die einzelnen Solarleistungen werden nicht mehr angezeigt:
-
@nograx OK, dann warte ich bis du auch so weit bist. Der Rest funktioniert ja.
Eventuell kannst du ja noch die Berechnung in kWh von mir mit aufnehmen, nur so als Vorschlag. Die API liefert das ja nicht. Die errechneten Werte stimmen ziemlich genau mit denen der App überein. -
Klappt bei euch die Ausgabe der Lade/Entladezeit? Da ich hier keine Werte bekomme errechne ich mir das selber.
Akkukapazität in Ah = Akkuanzahl x Kapazität/Ah: 2 x 20 Ah = 40 Ah (bei 2 x AB1000)
Spannung_PV_Panel = Spannung des Moduls bei max. Leistung (aus Datenblatt vom Panel)Die Variablen für "remainInputTime" und "remainOutTime" müsst ihr am besten unter 0_userdata.0 selber anlegen. Evtl. eigene Namen vergeben.
Ladezeit:
Entladezeit:
Export Blockly
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="y{EyYfI6aqO8WcNtPY2w">Akkukapazität</variable> <variable id="JcbPVIO%aKu!SI`JU!JD">Spannung_PV_Panel</variable> <variable id="!sszI/Un!f$3Hn!1tk]B">Restakku</variable> <variable id="}bL170$YMV{_n7LhpGBh">Ladestrom</variable> <variable id="`lOge52h.+zOY`PGJnbm">Ladezeit</variable> <variable id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</variable> <variable id="=VOm[,NN_4Fw5ed:086w">ladezeit_std</variable> </variables> <block type="comment" id="0^!mX,ag|{B$l?KZ}|UK" x="775" y="539"> <field name="COMMENT">Ladezeit berechnen</field> <next> <block type="variables_set" id="%Vl9XZ[$GMcs[`qohyq?"> <field name="VAR" id="y{EyYfI6aqO8WcNtPY2w">Akkukapazität</field> <value name="VALUE"> <block type="math_number" id="V^nvYM1W~tFYLcrSW%?r"> <field name="NUM">38.4</field> </block> </value> <next> <block type="variables_set" id="pg#LClGOjY,#MY7d0jzj"> <field name="VAR" id="JcbPVIO%aKu!SI`JU!JD">Spannung_PV_Panel</field> <value name="VALUE"> <block type="math_number" id="PA8C_0?Qc{R8fas-hV1q"> <field name="NUM">31.21</field> </block> </value> <next> <block type="on_ext" id="-*eavH]~|+T`*5!_u%e;"> <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="`_;Zkj?K=RLIsH)Hx2K/"> <field name="oid">zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="s/YcoZ4hO]7s2=r0JtL^"> <field name="VAR" id="!sszI/Un!f$3Hn!1tk]B">Restakku</field> <value name="VALUE"> <block type="math_arithmetic" id="l2hqe6uq%QR)HjLZp[:)"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="U.3*7Od6k;ghubO(hNz8"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="[fcQlzl5H[rk]Q.oM[t0"> <field name="VAR" id="y{EyYfI6aqO8WcNtPY2w">Akkukapazität</field> </block> </value> <value name="B"> <shadow type="math_number" id="tNY#^EVgu|?FCRcVcqRr"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="c#6mk`@C`ErD^`Fqk}Sg" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="3e_E)w^DLR.[*$|bYW!6"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="X/:pi@s:YDVIz14asd1?" inline="false"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="z=JnJ[KV?c^5m{Rb,msG"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="C#O;Z){J.o#{DIpd6N?y"> <field name="VAR" id="y{EyYfI6aqO8WcNtPY2w">Akkukapazität</field> </block> </value> <value name="B"> <shadow type="math_number" id="*`j,@!H9ujzx3_f=l4cl"> <field name="NUM">1</field> </shadow> <block type="get_value" id="_I:nxP70pMkv;kI^u66j"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="(4xaN|=t8Ba`uD%{U/H+"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="controls_if" id=":UFbeKem?j7-OimUDh3c"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id=".pvE#7x[T{-RFL?|/70P"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="H)fS@0:/ZD0qnCcS(Cu5"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower</field> </block> </value> <value name="B"> <block type="math_number" id=").TzP*5M$S[VM]%sH6xx"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="h(N?0XJj6L*4Ih,k?-Wb"> <field name="VAR" id="}bL170$YMV{_n7LhpGBh">Ladestrom</field> <value name="VALUE"> <block type="math_arithmetic" id="Diq[[l,%jJoK~SEH%mgV"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="`s}jI^~:y:H{K?lfg__K"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="}_!SwYmvLqys9]5tA0];"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="llxw:a{n~#0Eyqq4NYy6"> <field name="NUM">1</field> </shadow> <block type="get_value" id="FRt=/;a{aDwSfX3PV8nx"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="NL#5MAp_EEg_m4,GUmv+"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="2#|hmH%)^Z,;4b;rg0t)"> <field name="VAR" id="JcbPVIO%aKu!SI`JU!JD">Spannung_PV_Panel</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="`ZA/6w^SAfpI61756S74"> <field name="NUM">2</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="Xr5g_mKP!2ms[;a!F7t*"> <field name="VAR" id="`lOge52h.+zOY`PGJnbm">Ladezeit</field> <value name="VALUE"> <block type="math_arithmetic" id="Y2EkD?z!ii7znx{8tzUQ"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="I:}-3F3h(R,9Lr:TVQ3`"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=";oFfIK[AcS_$Y*0/I,*X" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="VZ2Ra3A*87J[t{Y2vCm7"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="ha|yev/:juj*Mz3K]4~j" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="X2A9GcU3zX_vWAb_Z%3P"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="}zAgf*nJ%Hvt{w_Oc,=I"> <field name="VAR" id="!sszI/Un!f$3Hn!1tk]B">Restakku</field> </block> </value> <value name="B"> <shadow type="math_number" id="s(bc]%.$C|CI21HcOf1K"> <field name="NUM">1.3</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="A9K?p@IIdLLxXDS1S:Rd"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="xbU:n8FrM:JzTOvc]XCV"> <field name="VAR" id="}bL170$YMV{_n7LhpGBh">Ladestrom</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="U-s@rqdzd|J{mO|tLsZN"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="Cu62qYG.pn{)]-7k?Dk_"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> <value name="VALUE"> <block type="math_modulo" id="`?T]=8CW9!`l65y9_lA:"> <value name="DIVIDEND"> <shadow type="math_number" id="QZ|BCq[:AYInR?K:plOz"> <field name="NUM">64</field> </shadow> <block type="variables_get" id="wK;;QlJJ?8TI@KVKpECi"> <field name="VAR" id="`lOge52h.+zOY`PGJnbm">Ladezeit</field> </block> </value> <value name="DIVISOR"> <shadow type="math_number" id="Mx_LMHgznO/jsh)a_YvO"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="`%3^%]{=n=omnx//?r.D"> <field name="VAR" id="=VOm[,NN_4Fw5ed:086w">ladezeit_std</field> <value name="VALUE"> <block type="math_arithmetic" id="$8Em0!,(ju2X8:X7?F-f"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="#)P@)|RD%,^l[4mXA)Qg"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="6Nph4BRdjMeR7ypb/h;x" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="gk(bxszYj-8oicyU^3X}"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="(h(/9QZc@^$Ibtp@dLR4"> <field name="VAR" id="`lOge52h.+zOY`PGJnbm">Ladezeit</field> </block> </value> <value name="B"> <shadow type="math_number" id="]4~#=gBD*RDDL_(m}ug/"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="E/!m;U7e@*%{qxgTRXN#"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="Dy!xFuu-eU4pQ-:%=-57"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="6d-pWm-burHQ.*sRJC+9"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="5u$zbiWX0Tb(4Xsnx#.x"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="p=wFsc/w|@vus?R?$dUJ"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> <value name="B"> <block type="math_number" id="`-[L)p@1J(NF(,A{g8(Q"> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="rQz^Bw5l3hI#=EhTBkTs"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text_join" id="*A5Ks]vzGT4Q|+Z~v`%d"> <mutation items="4"></mutation> <value name="ADD0"> <block type="variables_get" id="~;NB[W.,7VV^nBTL:iXm"> <field name="VAR" id="=VOm[,NN_4Fw5ed:086w">ladezeit_std</field> </block> </value> <value name="ADD1"> <block type="text" id="AXN-`:E6N[c*r*v#^RAH"> <field name="TEXT">:</field> </block> </value> <value name="ADD2"> <block type="text" id=":~CD`PfoOYsHvQ=_7-$,"> <field name="TEXT">0</field> </block> </value> <value name="ADD3"> <block type="math_round" id="#6.cB,SUy]patR)*5$Cv"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="U+ZA*?oz60S#xQ]rsx0V"> <field name="NUM">3.1</field> </shadow> <block type="variables_get" id="xmgR9jeJEG47+FVO!he."> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="|w!Rr2kx+Pe0Yn,w.PsE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text_join" id="%I|CjdFI!yn`hZ9ZYUAr"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="V;h9~k{YnG_nY(/09sb$"> <field name="VAR" id="=VOm[,NN_4Fw5ed:086w">ladezeit_std</field> </block> </value> <value name="ADD1"> <block type="text" id="tA:JP+r(/3;rkg6be:j-"> <field name="TEXT">:</field> </block> </value> <value name="ADD2"> <block type="math_round" id="~^WNC8MZCwi*w.F?,t9B"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="U+ZA*?oz60S#xQ]rsx0V"> <field name="NUM">3.1</field> </shadow> <block type="variables_get" id="M6E4q7eD;^fram%+FS%1"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="3g;pUDzNW0w3#WSXsB=B"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="QGQ81pMxTZUo40StjM%V"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower</field> </block> </value> <value name="B"> <block type="math_number" id="@3v$5PeaR=g)XHY@1#9#"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="c6d6_.DK05Af^A4qw}($"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id=":3Dt+0b{~?o*xK#zl@2I"> <field name="TEXT">0</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="comment" id="/kKDTf.b[BXI;3@z?S^U"> <field name="COMMENT">Endladezeit berechnen</field> <next> <block type="on_ext" id="-VY6uVv5|qV1,,%-c0ts"> <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="RVw37Xv/+_l0a|vhZC@D"> <field name="oid">zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="5}r@EE1q%$TVm}M@z!J2"> <field name="VAR" id="!sszI/Un!f$3Hn!1tk]B">Restakku</field> <value name="VALUE"> <block type="math_arithmetic" id="Mi.Sl*eD:fiWEr*E;`4B" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="3e_E)w^DLR.[*$|bYW!6"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="nV=oWUzXOc@Z^EocV:,~" inline="false"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="z=JnJ[KV?c^5m{Rb,msG"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="A3DFN1|%W7[ZHsAw{/fK"> <field name="VAR" id="y{EyYfI6aqO8WcNtPY2w">Akkukapazität</field> </block> </value> <value name="B"> <shadow type="math_number" id="*`j,@!H9ujzx3_f=l4cl"> <field name="NUM">1</field> </shadow> <block type="get_value" id="u%RzP+MN-@Z3q#|jH@p)"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="J/edd2*@!L%W~x0czzO1"> <field name="NUM">100</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="1.TOTFI#-9W]$,Aly6JT"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="*y6Nrn`Y2t40FWw}r)A?"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="2qmOAlmhWKm2XMB1p4tH"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower</field> </block> </value> <value name="B"> <block type="math_number" id="QmHkzMr5vTTx8j49{CK}"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Bk2jv4495@cW(2?w1pv_"> <field name="VAR" id="}bL170$YMV{_n7LhpGBh">Ladestrom</field> <value name="VALUE"> <block type="math_arithmetic" id="a{DVP6E%%Ps]qEp;Qz0}"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="`s}jI^~:y:H{K?lfg__K"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="X0B/biEcj{Z0Dc=K$%Qe"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="llxw:a{n~#0Eyqq4NYy6"> <field name="NUM">1</field> </shadow> <block type="get_value" id="C96_lVEC{G[tN[],:1D/"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="NL#5MAp_EEg_m4,GUmv+"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Hs/#G!wi4nf+RG!lxO8/"> <field name="VAR" id="JcbPVIO%aKu!SI`JU!JD">Spannung_PV_Panel</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="7|w^L7BJPsr@kg^Q,-3A"> <field name="NUM">2</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="/)vg;u/FD2HB?f4*Dnk:"> <field name="VAR" id="`lOge52h.+zOY`PGJnbm">Ladezeit</field> <value name="VALUE"> <block type="math_arithmetic" id="G@,1szYHo|[!!?REb[TT"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="I:}-3F3h(R,9Lr:TVQ3`"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="_llKaN,--nmtiv|gW*sP" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="VZ2Ra3A*87J[t{Y2vCm7"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="BGhn@o3w5yLD_Nohz7H-" inline="false"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="X2A9GcU3zX_vWAb_Z%3P"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="ab)5sQn$b5Rh}VYB~|$G"> <field name="VAR" id="!sszI/Un!f$3Hn!1tk]B">Restakku</field> </block> </value> <value name="B"> <shadow type="math_number" id="TS,XL3fPev?{(w{*gf14"> <field name="NUM">1.3</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number" id="A9K?p@IIdLLxXDS1S:Rd"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="bqg^%unIv/[5Rx%2t+Qq"> <field name="VAR" id="}bL170$YMV{_n7LhpGBh">Ladestrom</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="#[M{Gx!_HOq:#N#c3ua9"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="Ny%ib{Z~rw*`tp|I73gN"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> <value name="VALUE"> <block type="math_modulo" id="$#I07pq%nO)(-zn.y7qI"> <value name="DIVIDEND"> <shadow type="math_number" id="QZ|BCq[:AYInR?K:plOz"> <field name="NUM">64</field> </shadow> <block type="variables_get" id="5N;b6|/v-bKAKq;AT6dZ"> <field name="VAR" id="`lOge52h.+zOY`PGJnbm">Ladezeit</field> </block> </value> <value name="DIVISOR"> <shadow type="math_number" id="Uz)%aWJHTk)LQk#jQ!,E"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="!41QYhGM9mn=V$qn%o5q"> <field name="VAR" id="=VOm[,NN_4Fw5ed:086w">ladezeit_std</field> <value name="VALUE"> <block type="math_arithmetic" id="P*(8pIt)19s4W@F_Mj09"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="#)P@)|RD%,^l[4mXA)Qg"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="f.~-COZ?GmtTiO(xsPh!" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="gk(bxszYj-8oicyU^3X}"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="?vYIGU^EaY9z^4FWXmm3"> <field name="VAR" id="`lOge52h.+zOY`PGJnbm">Ladezeit</field> </block> </value> <value name="B"> <shadow type="math_number" id="]4~#=gBD*RDDL_(m}ug/"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="cL($n5^l2;o.n]{X,XIg"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="@nnKwenc8Y?$5{DNJa]U"> <field name="NUM">60</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="+MrOC$PJ.s:XW*NKYU:8"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="@Dv]ZZnB-`1igoLsT)yQ"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="~s2X^Ek_uF^Gh(PpqLrU"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> <value name="B"> <block type="math_number" id="c+QVI{~dH_o`z7P6L?iK"> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="wOk#YxmO2P(RKBUI~z(T"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text_join" id="kV0VQ#=Z?7@Ke,g=O!Hr"> <mutation items="4"></mutation> <value name="ADD0"> <block type="variables_get" id="lepo)3#*;{!Be[!1bw!t"> <field name="VAR" id="=VOm[,NN_4Fw5ed:086w">ladezeit_std</field> </block> </value> <value name="ADD1"> <block type="text" id="G9E)4`[9t;;fS6/+m3NM"> <field name="TEXT">:</field> </block> </value> <value name="ADD2"> <block type="text" id="U}0?xB^$R5D2RHJaN5q*"> <field name="TEXT">0</field> </block> </value> <value name="ADD3"> <block type="math_round" id=",Sy[/DxUI{2t7ab},%E2"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="U+ZA*?oz60S#xQ]rsx0V"> <field name="NUM">3.1</field> </shadow> <block type="variables_get" id="rvUPj@!|eC7~tE/^:1yh"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="FJ#j^#R1/W,tjPMeMnlY"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text_join" id="QjjLSj$P0uPc(@sIG;U]"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="U@;AtX-e6*IW4s.jbpX+"> <field name="VAR" id="=VOm[,NN_4Fw5ed:086w">ladezeit_std</field> </block> </value> <value name="ADD1"> <block type="text" id="GSZAzCP^huon7J/G(;5r"> <field name="TEXT">:</field> </block> </value> <value name="ADD2"> <block type="math_round" id="k4C8?@`!m#r.InCJL[%r"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="U+ZA*?oz60S#xQ]rsx0V"> <field name="NUM">3.1</field> </shadow> <block type="variables_get" id="a$/wx}bNig,jH8M_^CqP"> <field name="VAR" id="O^EBe~zb4T$B=87LqdjD">ladezeit_min</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="$4$UB$5N*porfZX$pFBH"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=";nP^D`kw35;XmX.UKq)U"> <field name="ATTR">val</field> <field name="OID">zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower</field> </block> </value> <value name="B"> <block type="math_number" id="?KbNiIWARUQf4zd_;m7}"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="zSGxcU6SMNsk1T~_8f9%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="*YGgeihzw5n:LX/n/b!s"> <field name="TEXT">0</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>
-
@lesiflo Ist seit gestern in einem ersten Ansatz in der Latest Version drin.
Kannst du mir das Blockly mal als Javascript umwandeln (sollte ein Blockly/Javascript Button geben) dann kann ich sicher was davon verwenden. Danke.
Mal schauen ggf. traue ich mich ja dieses Wochenende das Update durchzuführen Dann schaue ich mal was Zendure da geändert hat. Meine Vermutung ist das sie durch das Vertauschen nun 2 neue Namen für die Werte genommen haben.
-
@nograx Bitte schön, Berechnung in kWh
var timeout, timeout2, timeout3, Entladen_Soll, Akkukapazit_C3_A4t, Spannung_PV_Panel, Restakku, Ladestrom, Ladezeit, ladezeit_min, ladezeit_std; // Aktuelle PV-Leistung [W] on({ id: [].concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.solarInputPower']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : '') > 0) { setStateDelayed('mqtt.0.openWB.set.pv.2.W' /* W */, (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.solarInputPower').val * -1), 50, false); (() => { if (timeout) { clearTimeout(timeout); timeout = null; }})(); } else if ((obj.state ? obj.state.val : '') == 0) { timeout = setTimeout(async () => { timeout = null; setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.packState' /* packState */, 0); setState('mqtt.0.openWB.set.pv.2.W' /* W */, 0); }, 60000); } }); // Ladeleistung in Akku [W] on({ id: [].concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : '') > 0) { setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.packState' /* packState */, 1); setState('mqtt.0.openWB.set.houseBattery.W' /* W */, getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val); if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val > 0) { setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower' /* InOutPackPower */, getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower_Wh' /* InOutPackPower_Wh */, (Math.round(getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.packInputPower_kWh').val * 1000))); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower_Grafana' /* InOutPackPower_Grafana */, (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val * -1)); setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime' /* remainOutTime */, 0, true, 1000, false); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Ladestatus' /* Ladestatus */, 'Laden [W]'); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Ladestatus_Wh' /* Ladestatus_Wh */, 'Geladen [Wh]'); } if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val == 0 && getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val == 0) { setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower' /* InOutPackPower */, 0); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower_Grafana' /* InOutPackPower_Grafana */, 0); setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime' /* remainInputTime */, 0, true, 1000, false); setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime' /* remainOutTime */, 0, true, 1000, false); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Ladestatus' /* Ladestatus */, 'Standby'); } (() => { if (timeout2) { clearTimeout(timeout2); timeout2 = null; }})(); } else if ((obj.state ? obj.state.val : '') == 0) { timeout2 = setTimeout(async () => { timeout2 = null; setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.packState' /* packState */, 0); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower' /* InOutPackPower */, 0); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower_Grafana' /* InOutPackPower_Grafana */, 0); setState('mqtt.0.openWB.set.houseBattery.W' /* W */, 0); }, 30000); } }); // Entnahmeleistung aus Akku [W] on({ id: [].concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : '') > 0) { setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.packState' /* packState */, 2); setState('mqtt.0.openWB.set.houseBattery.W' /* W */, (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val * -1)); if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val > 0) { setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower' /* InOutPackPower */, getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower_Wh' /* InOutPackPower_Wh */, (Math.round(getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.outputPackPower_kWh').val * 1000))); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower_Grafana' /* InOutPackPower_Grafana */, getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val); setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime' /* remainInputTime */, 0, true, 1000, false); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Ladestatus' /* Ladestatus */, 'Entladen [W]'); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Ladestatus_Wh' /* Ladestatus_Wh */, 'Geliefert [Wh]'); } (() => { if (timeout3) { clearTimeout(timeout3); timeout3 = null; }})(); } else if ((obj.state ? obj.state.val : '') == 0) { timeout3 = setTimeout(async () => { timeout3 = null; setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.packState' /* packState */, 0); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower_Grafana' /* InOutPackPower_Grafana */, 0); setState('0_userdata.0.Eigene_Variablen.PV.Solarflow.InOutPackPower' /* InOutPackPower */, 0); setState('mqtt.0.openWB.set.houseBattery.W' /* W */, 0); }, 30000); } }); // Aktueller Ladestand des Akkus [%] und Ausgangsleistung auf 0 setzen on({ id: [].concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; setState('mqtt.0.openWB.set.houseBattery.%Soc' /* %Soc */, getState('zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel').val); if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel').val <= getState('zendure-solarflow.0.73bkTV.7rk1nVD9.minSoc').val) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 0); } }); // Ausgangsleistung einstellen - Variabel on({ id: [].concat(['0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus']).concat(['mqtt.0.openWB.global.WHouseConsumption']).concat(['0_userdata.0.Eigene_Variablen.PV.Solarflow.Umschalten_Auto_Manu']), change: 'ne' }, async (obj) => { if (getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Umschalten_Auto_Manu').val == 1 && getState('zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel').val >= getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Min_SOC_entladen').val) { if (getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus').val == 1 || getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus').val == 2 && compareTime(getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.AkkuOut_Start').val, '06:00', 'between', null)) { Entladen_Soll = getState('mqtt.0.openWB.global.WHouseConsumption').val + getState('mqtt.0.openWB.pv.W').val; if (Entladen_Soll > 50) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 50); } else if (Entladen_Soll > 100) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 100); } else if (Entladen_Soll > 200) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 200); } else if (Entladen_Soll > 300) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 300); } else if (Entladen_Soll > 400) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 400); } else if (Entladen_Soll > 500) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 500); } else if (Entladen_Soll > 600) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 600); } else if (Entladen_Soll <= 0) { setStateDelayed('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 0, 30000, false); } } } }); // Ausgangsleistung einstellen - Fest sofort on({ id: [].concat(['0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus']).concat(['0_userdata.0.Eigene_Variablen.PV.Solarflow.Umschalten_Auto_Manu']), change: 'ne' }, async (obj) => { if (getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Umschalten_Auto_Manu').val == 0 && getState('zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel').val >= getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Min_SOC_entladen').val) { if (getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus').val == 1) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.SetOutputPower').val); } else if (getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus').val == 0 || getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus').val == 2) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, 0); } } }); // Ausgangsleistung einstellen - Fest nach Zeit schedule("2,17,32,47 17-22 * * *", async () => { if ((getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Entladen_Modus').val == 2 && compareTime(getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.AkkuOut_Start').val, '23:00', 'between', null) && getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Umschalten_Auto_Manu').val == 0 && getState('zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel').val >= getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.Min_SOC_entladen').val)) { setState('zendure-solarflow.0.73bkTV.7rk1nVD9.control.setOutputLimit' /* Einzustellende Ausgangsleistung */, getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.SetOutputPower').val); } }); // Ladezeit berechnen Akkukapazit_C3_A4t = 38.4; Spannung_PV_Panel = 31.21; on({ id: [].concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; Restakku = Akkukapazit_C3_A4t - (Akkukapazit_C3_A4t * getState('zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel').val) / 100; if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val > 0) { Ladestrom = (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val / Spannung_PV_Panel) / 2; Ladezeit = ((Restakku / 1.3) / Ladestrom) * 60; ladezeit_min = Ladezeit % 60; ladezeit_std = (Ladezeit - ladezeit_min) / 60; if (ladezeit_min < 10) { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime' /* remainInputTime */, ([ladezeit_std,':','0',Math.round(ladezeit_min)].join('')), 1000, false); } else { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime' /* remainInputTime */, ([ladezeit_std,':',Math.round(ladezeit_min)].join('')), 1000, false); } } else if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val == 0) { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime' /* remainInputTime */, '0', 1000, false); } }); // Endladezeit berechnen on({ id: [].concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; Restakku = (Akkukapazit_C3_A4t * getState('zendure-solarflow.0.73bkTV.7rk1nVD9.electricLevel').val) / 100; if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val > 0) { Ladestrom = (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val / Spannung_PV_Panel) / 2; Ladezeit = ((Restakku / 1.3) / Ladestrom) * 60; ladezeit_min = Ladezeit % 60; ladezeit_std = (Ladezeit - ladezeit_min) / 60; if (ladezeit_min < 10) { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime' /* remainOutTime */, ([ladezeit_std,':','0',Math.round(ladezeit_min)].join('')), 1000, false); } else { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime' /* remainOutTime */, ([ladezeit_std,':',Math.round(ladezeit_min)].join('')), 1000, false); } } else if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val == 0) { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime' /* remainOutTime */, '0', 1000, false); } }); on({ id: [].concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower']).concat(['zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower']), change: 'ne' }, async (obj) => { if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val > 0) { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.Restzeit' /* Restzeit */, getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainInputTime').val, 1000, false); } else if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val > 0) { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.Restzeit' /* Restzeit */, getState('0_userdata.0.Eigene_Variablen.PV.Solarflow.remainOutTime').val, 1000, false); } else if (getState('zendure-solarflow.0.73bkTV.7rk1nVD9.outputPackPower').val == 0 && getState('zendure-solarflow.0.73bkTV.7rk1nVD9.packInputPower').val == 0) { setStateDelayed('0_userdata.0.Eigene_Variablen.PV.Solarflow.Restzeit' /* Restzeit */, '0:00', 1000, false); } }); // Akkuheizung on({ id: [].concat(['hm-rpc.0.LEQ0122954.1.TEMPERATURE']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : '') < 10 && compareTime('07:00', '17:00', 'between', null) || (obj.state ? obj.state.val : '') < 8 && (compareTime('17:01', '23:59', 'between', null) || compareTime('00:00', '06:59', 'between', null))) { setState('shelly.0.SHPLG-S#5AD46F#1.Relay0.Switch' /* Switch */, true); setStateDelayed('shelly.0.SHPLG-S#5AD46F#1.Relay0.Switch' /* Switch */, false, 2700000, false); } else if ((obj.state ? obj.state.val : '') >= 15) { setState('shelly.0.SHPLG-S#5AD46F#1.Relay0.Switch' /* Switch */, false); } });
-
@nograx Du solltest noch warten mit dem Update. Bei mir passen die Leistungsdaten in der App seit dem nicht mehr.
Meine Akku's sind voll, 1920 Wh. An Solar wurde aber nur 1.53 kWh erzeugt. Die Akkus waren vorher auf 1%. Immerhin passen aber die errechneten Wert im iobroker. -
@lesiflo super - dankeschön!
Was muß ich da jetzt alles auf mein System anpassen? Nur die vier Werte Solarleistung, Ladeleistung, Entladeleistung und Ausgangsleistung? -
@lesiflo Das scheint ein serverseitiges Problem zu sein. Wird im PV-Forum auch bereits diskutiert und trat wohl schon einige Tage vor der Auslieferung des Updates auf.
-
@lesiflo da kommen beim Start jetzt diese Fehlermeldungen. Muß ich die Variablen zuerst bei mir anlegen? So ganz habe ich das Prinzip irgendwie noch nicht verstanden.
Danke! -
@diet99 Ja, genau. Die 4 angemeckerten Variablen musst du bei dir am besten unter 0_userdata.0. in einem eigenen Ordner anlegen und dann im Script an der jeweiligen Stelle eintragen.
Alles was gelb markiert ist kann du rauslöschen, ist für meine Wallbox.
-
gelöscht
-
@diet99 sagte in Test Adapter Zendure Solarflow:
@lesiflo Das scheint ein serverseitiges Problem zu sein. Wird im PV-Forum auch bereits diskutiert und trat wohl schon einige Tage vor der Auslieferung des Updates auf.
Ok, ist mir nicht aufgefallen da ich immer auf meine errechneten Werte geschaut habe, die passen ja.
-
@lesiflo Super - vielen Dank. Klappt jetzt offenbar.
Die Zeilen mit mqtt wollte ich gerade noch nachfragen, aber das hast Du ja geschrieben, daß die rauskönnen.Nun muß ich nur noch schauen, wie ich die erzeugten Daten visualisieren kann.
Werden die eigentlich irgendwo als historische Daten abgelegt, oder wie funktioniert das genau? -
@diet99 Dafür gibt es mehrere Möglichkeiten. Am besten den history-Adapter installieren und dann für die jeweiligen Datenobjekte auswählen.
History-Adapter
Rechts auf das Zahnrad klicken
Dann auf "Aktiviert" klicken. Ich nutze jedoch influxdb und nicht history. Damit kann man noch etwas mehr machen.
-
@diet99 sagte in Test Adapter Zendure Solarflow:
@lesiflo Super - vielen Dank. Klappt jetzt offenbar.
Die Zeilen mit mqtt wollte ich gerade noch nachfragen, aber das hast Du ja geschrieben, daß die rauskönnen.Nun muß ich nur noch schauen, wie ich die erzeugten Daten visualisieren kann.
Werden die eigentlich irgendwo als historische Daten abgelegt, oder wie funktioniert das genau?Visualisieren z.B. damit:
-
@lesiflo ich hätte mir jetzt eher sowas vorgestellt:
Dein Script läuft jedenfalls sauber! Ich hab gerade mal den PVHub angeworfen, um den restlichen Tagesertrag einzuspeisen:
Danke dafür
-
@diet99 Für rechts unten benötigst du die influxdb und Grafana. Darüber reicht der history Adapter und der Adapter für die Material Design Widget's. Links oben ist der energiefluss-erweitert adapter
-
@lesiflo ich habe eine neue Version bereitgestellt, sollte heute Nacht ins Latest wandern, schneller per Installation von github. Die PV Inputs funktionieren dann auch wieder mit der neuen Firmware.
Verbrauchswerte werden da von mir auch im calculations Ordner berechnet. Das wird per eigenen Script gemacht und können von der App abweichen. Wenn es funktioniert würde ich die dann um 0 Uhr immer in einen „yesterday“ datenpunkt schieben sodass man mit einem history Adapter für eine visualisierung arbeiten kann.
-
@nograx Alles klar. Hab's mal installiert. Energie-Daten kommen auch rein ebenso wieder für pvPower1 und pvPower2. Sieht bisher gut aus, werde das mal bis heute Abend beobachten und dir Rückmeldung geben. Top ! Danke dafür.
Es gibt ja jetzt auch Datenpunkte für die Lade/Entladezeit, die allerdings bei mir noch nicht befüllt werden. Kommt da noch was?
-
@lesiflo ja entladezeit sollte gehen. Ladezeit aktuell nicht - da übermittelt Zendure tatsächlich keine Daten. Da werde ich mir noch was überlegen. Die Prozentanzeige funktioniert bei mir auch überhaupt nicht, da ich die Einspeisung über die Spannung der Akkus stoppe wenn unter 46,2 Volt damit die nicht leer laufen. Dann zieht mir der Standby aber Energie aus dem Akku welcher bei der % keine Auswirkung hat. Hatte das schon so weit das er angeblich 50% hatte aber faktisch leer war… die Grenze verschiebt sich erst wieder wenn der Akku wieder voll ist.