Update:
Kleine Änderungen am Blockly ...
-Werte in Datenpunkten bleiben erhalten wenn der growatt den shine wifi stick in den Nachtmodus (Stick stromlos) schickt.
-Inverter Modus wird dann im Datenpunkt auf false gesetzt.
(Auf meinem Shine Wifi S ... habe ich, nachdem bei diesem alle LED leuchteten (Stick ist def. bzw. befindet sich offenbar von sich aus im Flash Modus) mit https://github.com/otti/Growatt_ShineWiFi-S geflasht. Vorteil, man ist die China Cloud los 😉
<xml xmlns="https://developers.google.com/blockly/xml">
<block type="on_ext" id="-ocZf/5hLge#VW1lA%;s" x="63" y="38">
<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="|P],(L|F,CBhh9d4E9,B">
<field name="oid">mqtt.0.energy.solar</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="~xT+=!P4raMB*BBbmxph">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="W$RkGvhfHOm]44i;U{ly">
<field name="OP">EQ</field>
<value name="A">
<block type="get_attr" id="vgu=vnoF-zt#u^iWA^9G">
<value name="PATH">
<shadow type="text" id="]o(]}P%!XOZ`285^g(nB">
<field name="TEXT">InverterStatus</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="7Fl#3Qh19fc5%`.`xC-U">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_number" id="#xR#psf[Mr=i$FnhI^:)">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="update" id="qwH?zD!38x+Yly#ZJz~w">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.AcPower</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="ph7(T{(}%7eXhkH}{C_i">
<value name="PATH">
<shadow type="text" id=",AtcEN3G-?e7L9TUUgb:">
<field name="TEXT">AcPower</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="F)pa?=TeWc)kI{WdCtVY">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="8t!EXGu65;F`qJ+]hSp?">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.DcPower</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="=|~2Tm`CiZB~bj_x#p_~">
<value name="PATH">
<shadow type="text" id="M.RMj,|K)HX7,C5m#}S;">
<field name="TEXT">DcPower</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="|D~EzDq53nMixXdQ3VOo">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="QZqoxR#C|TA@#8B{C|lD">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.AcVoltage</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="%:V,a[:,(F]v3b8k7:hm">
<value name="PATH">
<shadow type="text" id="?PO!jOI~,rSn*q##!f!B">
<field name="TEXT">AcVoltage</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="Kn%hqI!W-#JB}HA@Tqld">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="5CVbKBk4H4TrTy0w-~YW">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.EnergyToday</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="DomXu[MPau}NK,eRQYip">
<value name="PATH">
<shadow type="text" id="|38jLoaoAF^IpyY(Y~Xv">
<field name="TEXT">EnergyToday</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="CN%4zcjb/1XfrOLGOsBA">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="YiY{yTGIEZFRR_Qr%4Tw">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.EnergyTotal</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="y8~.ODsr:_$(|N5a2HLo">
<value name="PATH">
<shadow type="text" id="TVkx7DR{az%t#an*`HlU">
<field name="TEXT">EnergyTotal</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="i1%C0:|uHh((nq,c53aJ">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="n$U=1=K,XSr!J@1afyre">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.AcFrequency</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="axE^j#Al^;F)s#/7:twU">
<value name="PATH">
<shadow type="text" id="HRQiKrnc!{-qj[*a?X18">
<field name="TEXT">AcFrequency</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="_NI~(eQWAhRd(ORUg3F*">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="`XUd_L(r}#fKrP5Nc2O,">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.Temperature</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="#A`YCeA#6Oc#h03uyRfh">
<value name="PATH">
<shadow type="text" id="e1CE-T$X*r;4n[C?yQ(7">
<field name="TEXT">Temperature</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="z7=xR9X$BEFm(J26:mTv">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="e3LCh;?)0u7C:S@[oQm(">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.OperatingTime</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="dL*O,8Q!;a8^rQm7R8Fe">
<value name="PATH">
<shadow type="text" id="#Joe%r@/?x]8Q?IkB?m~">
<field name="TEXT">OperatingTime</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="]mR%@X1#Ee?[Gn:RPf|w">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="c#%pGN8NfhQ`{rCjs83?">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.InverterStatus</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="G/p8?FJT28_G.[od}vER">
<value name="PATH">
<shadow type="text" id="y3p}8K{eypL?(~yBo:s,">
<field name="TEXT">InverterStatus</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="=4d9]mF|NM44QNQPXF1P">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="Vep~k$JDA)ex`y{JY.(3">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.DcVoltage</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="YNPA~xz0OqG@}V#3u@mO">
<value name="PATH">
<shadow type="text" id="LMA]r[T1RG|sCI/q3D$3">
<field name="TEXT">DcVoltage</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="!(xp:);V4md~.Hx:jxdp">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="o]K7]r!i|$~NoeH.$-EF">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.DcInputCurrent</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="[9Lg)?*ZZKunlS!Wv-.0">
<value name="PATH">
<shadow type="text" id="G5#l5o!q|_Ku9.ET{EBe">
<field name="TEXT">DcInputCurrent</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="[8*U/959M)j6c7.gwqf?">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="update" id="RyBk0b!AM1EM]OtB3);Q">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.Growatt.AcOutputCurrent</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_attr" id="[pxN_z1`ZyMyhtMNxN3a">
<value name="PATH">
<shadow type="text" id="`2s^)I3lfZm%_uKt~)ZX">
<field name="TEXT">AcOutputCurrent</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="0AhCqpd||Dxx8Pm*Dh#P">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
</block>
</next>
</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="@6^:!(-U/5%rEC6-)?+6">
<field name="OP">EQ</field>
<value name="A">
<block type="get_attr" id="eIz%wyG5%^Nz3Bqq2w)m">
<value name="PATH">
<shadow type="text" id="e8FUl`3ZGGl66a??/x1(">
<field name="TEXT">InverterStatus</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="PzOICvbA`#MZg*Z%/`yC">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_number" id=";J9FKc$3,mq9}m)grtDA">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="update" id="jY]G5pun,c26.ckC]_?y">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
<field name="OID">0_userdata.0.Growatt.InverterStatus</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">5</field>
<field name="UNIT">sec</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE">
<block type="get_attr" id=":BOG9MKg1G_7kwi}:_xh">
<value name="PATH">
<shadow type="text" id="P^0{T+LcvAt?56dI8={y">
<field name="TEXT">InverterStatus</field>
</shadow>
</value>
<value name="OBJECT">
<block type="on_source" id="@2i^]{6)]KrqQxbilMh0">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
</block>
</statement>
</block>
</statement>
</block>
</xml>