NEWS
MQTT String mit Blockly in neue separate Datenpunkte
-
Hallo
ich brauche mal wieder Hilfe
ein Wifi Stick von meinem Solar Wechselrichter sendet Daten die im ioBroker unter MQTT/0/energy/solar als String landen.
Nun habe ich unter "0_userdata.0.Growatt" neue Datenpunkte erstellt, dort sollen die Daten jeweils Separat geschrieben werden.Dazu habe ich mir folgendes Blockly gebastelt das die im String enthaltenen Daten "liest" und dann in die jeweiligen Datenpunkte unter 0_userdata.0.Growatt schreibt ... das funktioniert auch, nur im Blockly gibt es Warnmeldungen, es stimmt also etwas nicht.
Der String sieht im übrigen so aus
{"InverterStatus":1,"DcPower":418.9,"DcVoltage":128.8,"DcInputCurrent":3.2,"AcFrequency":50.02,"AcVoltage":233.8,"AcOutputCurrent":1.7,"AcPower":412.1,"EnergyToday":1.9,"EnergyTotal":2135.6,"OperatingTime":2.147483647e7,"Temperature":30,"Mac":"AA:BB:CC:5A:7D:0E","Cnt":6328}
-
-
@snupy
Vermutung: Die Ziel-Datenpunkte sind nicht vom Typ Zahl ("number")?... und lies nicht 5 mal das Objekt ein. Dafür gibt es
Wert
unter "Trigger". -
Moin und vielen Dank für die raschen Antworten
@Wildbill ... ich werde mir das heute nochmal anschauen
@paul53 ... ja die Datenpunkte waren vom Typ String
habs korrigiert, danke auch für den zweiten Tipp jetzt läuft es so wie es soll !!
ich lade den Export des Blockly mal mit hoch ... vielleicht nutzt es ja mal jemand
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="-ocZf/5hLge#VW1lA%;s" x="13" y="13"> <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="|P],(L|F,CBhh9d4E9,B"> <field name="oid">mqtt.0.energy.solar</field> </shadow> </value> <statement name="STATEMENT"> <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> </block> </xml>
-
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>