-
-
Save dnoegel/51339bb9de2ced510f1420ee088a801d to your computer and use it in GitHub Desktop.
Blockly
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<xml xmlns="https://developers.google.com/blockly/xml"> | |
<variables> | |
<variable id="Kl3S0K7)wS:E#~kmp_`|">dec</variable> | |
<variable id="Wu=u[10[PLwu)p_g$2ZM">number</variable> | |
<variable id="u?6#BJh2Bp((1W3u)Vnf">bitPosition</variable> | |
<variable id="7vvn=,V[2B9HKo=2Z[%+">einspeisung</variable> | |
<variable type="timeout" id="timeout2">timeout2</variable> | |
<variable type="timeout" id="timeout">timeout</variable> | |
</variables> | |
<block type="comment" id="[}5gf6Mw2aLTH#L`}tJa" x="-888" y="-787"> | |
<field name="COMMENT">MPPT Leistung ausmultiplizieren</field> | |
<next> | |
<block type="on_ext" id="mg~(P98c2ww8_7N|ZVzF"> | |
<mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> | |
<field name="CONDITION">ne</field> | |
<field name="ACK_CONDITION"></field> | |
<value name="OID0"> | |
<shadow type="field_oid" id="O#IIZHS:5H*LR44s?!ue"> | |
<field name="oid">modbus.0.inputRegisters.5010_MPPT_1_Voltage</field> | |
</shadow> | |
</value> | |
<value name="OID1"> | |
<shadow type="field_oid" id="e%uf)DAN#AD=U||`tbag"> | |
<field name="oid">modbus.0.inputRegisters.5012_MPPT_2_Voltage</field> | |
</shadow> | |
</value> | |
<statement name="STATEMENT"> | |
<block type="update" id="6cU9,FP)Q:CH/;Zto-nJ" inline="false"> | |
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> | |
<field name="OID">0_userdata.0.PV.MPPT1</field> | |
<field name="WITH_DELAY">FALSE</field> | |
<value name="VALUE"> | |
<block type="math_round" id="s7Z4aK.FV8|vZjm!)c$3"> | |
<field name="OP">ROUND</field> | |
<value name="NUM"> | |
<shadow type="math_number" id="im$F+KBGG^UZRq%pXvo7"> | |
<field name="NUM">3.1</field> | |
</shadow> | |
<block type="math_arithmetic" id="$sxO)h(^+L-U?W5vJh!M"> | |
<field name="OP">MULTIPLY</field> | |
<value name="A"> | |
<shadow type="math_number" id="Pj%06fiDunc:;}Gd~.LS"> | |
<field name="NUM">1</field> | |
</shadow> | |
<block type="get_value" id="C%UwT(M*EoHX=#.00+CG" inline="false"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.5010_MPPT_1_Voltage</field> | |
</block> | |
</value> | |
<value name="B"> | |
<shadow type="math_number" id="mm*4HeON#-IAM/[tXK}_"> | |
<field name="NUM">1</field> | |
</shadow> | |
<block type="get_value" id="@/|u-(0)zS{{MdtxB|H|" inline="false"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.5011_MPPT_1_Current</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="update" id="R;IJi3D5^g;Q*=Dp}iLJ" inline="false"> | |
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> | |
<field name="OID">0_userdata.0.PV.MPPT2</field> | |
<field name="WITH_DELAY">FALSE</field> | |
<value name="VALUE"> | |
<block type="math_round" id="H1$n0aUl@lmL`9ceJ%ny"> | |
<field name="OP">ROUND</field> | |
<value name="NUM"> | |
<shadow type="math_number" id="OIWSPHrl*=:##g=M)MvU"> | |
<field name="NUM">3.1</field> | |
</shadow> | |
<block type="math_arithmetic" id="n;GJbv*nop*mppM.lsYG"> | |
<field name="OP">MULTIPLY</field> | |
<value name="A"> | |
<shadow type="math_number"> | |
<field name="NUM">1</field> | |
</shadow> | |
<block type="get_value" id=");QE{7LN-J=3lqu7NsrA" inline="false"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.5012_MPPT_2_Voltage</field> | |
</block> | |
</value> | |
<value name="B"> | |
<shadow type="math_number"> | |
<field name="NUM">1</field> | |
</shadow> | |
<block type="get_value" id="6O3LrA-xlx4Osra*PZrP" inline="false"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.5013_MPPT_2_Current</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
<block type="procedures_defcustomnoreturn" id="lz{Fy{/wE{2-%uVacZd0" x="-1463" y="-388"> | |
<mutation statements="false"> | |
<arg name="dec" varid="Kl3S0K7)wS:E#~kmp_`|"></arg> | |
</mutation> | |
<field name="NAME">extractRunningStates</field> | |
<field name="SCRIPT">ZnVuY3Rpb24gZGVjVG9CaXQoZGVjLCBiaXRQb3NpdGlvbikgewogICAgcmV0dXJuIChkZWMgJiAoMSA8PCBiaXRQb3NpdGlvbikpID09PSAwID8gZmFsc2UgOiB0cnVlOwp9CgovLyBDcmVhdGVzIGEgc3RhdGUgaWYgaXQgZG9lcyBub3QgZXhpc3QgeWV0CmZ1bmN0aW9uIGNyZWF0ZVN0YXRlSWZOb3RFeGlzdHMoc3RhdGUsIG5hbWUpCnsKICAgIC8vIGNyZWF0ZVN0YXRlKHN0YXRlLCAwLCB0cnVlLCB7bmFtZTogbmFtZSwgIHR5cGU6ICJudW1iZXIiLCByb2xlOiAndmFsdWUnfSwgZnVuY3Rpb24gKCkge30pOyAgICAKICAgIGlmICggIWV4aXN0c1N0YXRlKHN0YXRlICkpIHsKICAgICAgICBjcmVhdGVTdGF0ZShzdGF0ZSwgMCwgZmFsc2UsIHtuYW1lOiBuYW1lLCAgdHlwZTogIm51bWJlciIsIHJvbGU6ICd2YWx1ZSd9LCBmdW5jdGlvbiAoKSB7fSk7ICAgIAogICAgfSAKfQoKLy8gQ3JlYXRlIHN0YXRlcwpjcmVhdGVTdGF0ZUlmTm90RXhpc3RzKCIwX3VzZXJkYXRhLjAuUFYuUHZUb0xvYWQiLCAiUG93ZXIgZnJvbSBQViB0byBsb2FkIik7CmNyZWF0ZVN0YXRlSWZOb3RFeGlzdHMoIjBfdXNlcmRhdGEuMC5QVi5QdlRvQmF0IiwgIlBvd2VyIGZyb20gUFYgdG8gYmF0Iik7CmNyZWF0ZVN0YXRlSWZOb3RFeGlzdHMoIjBfdXNlcmRhdGEuMC5QVi5QdlRvR3JpZCIsICJQb3dlciBmcm9tIFBWIHRvIGdyaWQiKTsKCmNyZWF0ZVN0YXRlSWZOb3RFeGlzdHMoIjBfdXNlcmRhdGEuMC5QVi5CYXRUb0xvYWQiLCAiUG93ZXIgZnJvbSBCYXQgdG8gbG9hZCIpOwpjcmVhdGVTdGF0ZUlmTm90RXhpc3RzKCIwX3VzZXJkYXRhLjAuUFYuQmF0VG9HcmlkIiwgIlBvd2VyIGZyb20gQmF0IHRvIGdyaWQiKTsKCmNyZWF0ZVN0YXRlSWZOb3RFeGlzdHMoIjBfdXNlcmRhdGEuMC5QVi5HcmlkVG9Mb2FkIiwgIlBvd2VyIGZyb20gZ3JpZCB0byBsb2FkIik7CmNyZWF0ZVN0YXRlSWZOb3RFeGlzdHMoIjBfdXNlcmRhdGEuMC5QVi5HcmlkVG9CYXQiLCAiUG93ZXIgZnJvbSBHcmlkdG8gYmF0dGVyeSIpOwoKY3JlYXRlU3RhdGVJZk5vdEV4aXN0cygiMF91c2VyZGF0YS4wLlBWLlNpZ25lZEJhdCIsICJCYXR0ZXJ5IGJ1dCB3aXRoIG1pbnVzIHNpZ24gZm9yIGNoYXJnaW5nIik7CgoKLy8gRGVjb2RlIHJ1bm5pbmcgc3RhdGUgZmxhZ3MKJHBvd2VyR2VuZXJhdGVkRnJvbVBWID0gZGVjVG9CaXQoZGVjLCAwKTsKJGJhdHRlcnlDaGFyZ2luZyA9IGRlY1RvQml0KGRlYywgMSk7CiRiYXR0ZXJ5RGlzY2hhcmdpbmcgPSBkZWNUb0JpdChkZWMsIDIpOwokbG9hZEFjdGl2ZSA9IGRlY1RvQml0KGRlYywgMyk7CiRwb3dlckZlZWRJbnRvR3JpZCA9IGRlY1RvQml0KGRlYywgNCk7CiRwb3dlckltcG9ydEZyb21HcmlkID0gZGVjVG9CaXQoZGVjLCA1KTsKJHBvd2VyR2VuZXJhdGVkRnJvbUxvYWQgPSBkZWNUb0JpdChkZWMsIDcpOwoKLy8gU2F2ZSBydW5uaW5nIHN0YXRlIG1vcmUgc3BlYWtpbmcgZmllbGRzCnNldFN0YXRlKCIwX3VzZXJkYXRhLjAuUFYuUG93ZXJHZW5lcmF0ZWRGcm9tUFYiLCAkcG93ZXJHZW5lcmF0ZWRGcm9tUFYsIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdHRlcnlDaGFyZ2luZyIsICRiYXR0ZXJ5Q2hhcmdpbmcsIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdHRlcnlEaXNjaGFyZ2luZyIsICRiYXR0ZXJ5RGlzY2hhcmdpbmcsIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkxvYWRBY3RpdmUiLCAkbG9hZEFjdGl2ZSwgdHJ1ZSk7CnNldFN0YXRlKCIwX3VzZXJkYXRhLjAuUFYuUG93ZXJGZWVkSW50b0dyaWQiLCAkcG93ZXJGZWVkSW50b0dyaWQsIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLlBvd2VySW1wb3J0RnJvbUdyaWQiLCAkcG93ZXJJbXBvcnRGcm9tR3JpZCwgdHJ1ZSk7CnNldFN0YXRlKCIwX3VzZXJkYXRhLjAuUFYuUG93ZXJHZW5lcmF0ZWRGcm9tTG9hZCIsICRwb3dlckdlbmVyYXRlZEZyb21Mb2FkLCB0cnVlKTsKCi8vIFJlYWQgY3VycmVudCBwb3dlciBsZXZlbHMgb2YgYmF0LCBwdiwgbG9hZCBhbmQgZ3JpZAokbG9hZCA9IGdldFN0YXRlKCJtb2RidXMuMC5pbnB1dFJlZ2lzdGVycy4xMzAwN19Mb2FkX3Bvd2VyXyIpLnZhbDsKJGdyaWQgPSBnZXRTdGF0ZSgibW9kYnVzLjAuaW5wdXRSZWdpc3RlcnMuMTMwMDlfRXhwb3J0X3Bvd2VyIikudmFsOwokcHYgPSBnZXRTdGF0ZSgibW9kYnVzLjAuaW5wdXRSZWdpc3RlcnMuNTAxNl9Ub3RhbF9EQ19Qb3dlciIpLnZhbDsKLy8kcHYgPSBnZXRTdGF0ZSgibW9kYnVzLjAuaW5wdXRSZWdpc3RlcnMuMTMwMzNfVG90YWxfYWN0aXZlX3Bvd2VyIikudmFsOyAvLyBUaGlzIHJlZ2lzdGVyIGdpdmVzIG1vcmUgcGxhdXNpYmxlIHZhbHVlcyByZWdhcmRpbmcgcHZUb0dyaWQgYW5kIHRoZSBhY3R1YWwgZ3JpZCB2YWx1ZXMuIEJ1dCB3YXMgd3JvbmcgYnkgYSBmZXcgMTAwIHdhdHRzIGluIHRoZSBtb3JudW5nCiRiYXR0ZXJ5ID0gZ2V0U3RhdGUoIm1vZGJ1cy4wLmlucHV0UmVnaXN0ZXJzLjEzMDIxX0JhdHRlcnlfcG93ZXJfIikudmFsOwoKLy8gV3JpdGUgc2lnbmVkIGJhdAoKc2V0U3RhdGUoIjBfdXNlcmRhdGEuMC5QVi5TaWduZWRCYXQiLCAkYmF0dGVyeUNoYXJnaW5nID8gJGJhdHRlcnkgKiAtMSA6ICRiYXR0ZXJ5LCB0cnVlKTsKCi8vIENhbGN1bGF0ZSBQVgokcHZUb0JhdCA9IDA7CiRwdlRvTG9hZCA9IDA7CiRwdlRvR3JpZCA9IDA7CiRsb2FkUmVtYWluaW5nID0gJGxvYWQ7CmlmICgkcG93ZXJHZW5lcmF0ZWRGcm9tUFYpIHsKICAgICRyZW1haW5pbmcgPSAkcHY7CiAgICBpZiAoJHJlbWFpbmluZyA+ICRsb2FkUmVtYWluaW5nKSB7CiAgICAgICAgJHB2VG9Mb2FkID0gJGxvYWRSZW1haW5pbmc7CiAgICAgICAgJHJlbWFpbmluZyAtPSAkbG9hZDsKICAgICAgICAkbG9hZFJlbWFpbmluZyA9IDA7CiAgICB9IGVsc2UgewogICAgICAgICRwdlRvTG9hZCA9ICRyZW1haW5pbmc7CiAgICAgICAgJGxvYWRSZW1haW5pbmcgPSAkbG9hZCAtICRyZW1haW5pbmc7CiAgICAgICAgJHJlbWFpbmluZyA9IDA7CiAgICAgICAgCiAgICB9CiAgICAKICAgIGlmICgkYmF0dGVyeUNoYXJnaW5nKSB7CiAgICAgICAgaWYgKCRyZW1haW5pbmcgPiAkYmF0dGVyeSkgeyAgICAgICAgICAgIAogICAgICAgICAgICAkcHZUb0JhdCA9ICRiYXR0ZXJ5OwogICAgICAgICAgICAkcmVtYWluaW5nIC09ICRiYXR0ZXJ5OwogICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgCiAgICAgICAgICAgICRwdlRvQmF0ID0gJHJlbWFpbmluZzsKICAgICAgICAgICAgJHJlbWFpbmluZyA9IDA7CiAgICAgICAgfQogICAgfQogICAgCiAgICBpZiAoJGdyaWQgPiAwKSB7CiAgICAgICAgJHB2VG9HcmlkID0gTWF0aC5taW4oJGdyaWQsICRyZW1haW5pbmcpOwogICAgfQp9CnNldFN0YXRlKCIwX3VzZXJkYXRhLjAuUFYuUHZUb0xvYWQiLCAkcHZUb0xvYWQpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLlB2VG9CYXQiLCAkcHZUb0JhdCk7CnNldFN0YXRlKCIwX3VzZXJkYXRhLjAuUFYuUHZUb0dyaWQiLCAkcHZUb0dyaWQpOwoKLy8gQ2FsY3VsYXRlIEJhdAokYmF0VG9Mb2FkID0gMDsKJGJhdFRvR3JpZCA9IDA7CmlmICgkYmF0dGVyeURpc2NoYXJnaW5nKSB7CiAgICAkcmVtYWluaW5nID0gJGJhdHRlcnk7CiAgICBpZiAoJHJlbWFpbmluZyA+ICRsb2FkUmVtYWluaW5nKSB7CiAgICAgICAgJGJhdFRvTG9hZCA9ICRsb2FkUmVtYWluaW5nOwogICAgICAgICRyZW1haW5pbmcgLT0gJGxvYWRSZW1haW5pbmc7CiAgICAgICAgJGxvYWRSZW1haW5pbmcgPSAwOwogICAgfSBlbHNlIHsKICAgICAgICAkYmF0VG9Mb2FkID0gJHJlbWFpbmluZzsKICAgICAgICAkbG9hZFJlbWFpbmluZyAtPSAkcmVtYWluaW5nOwogICAgICAgICRyZW1haW5pbmcgPSAwOyAgICAgICAgCiAgICB9CiAgICAKICAgIGlmICgkcG93ZXJGZWVkSW50b0dyaWQpIHsKICAgICAgICAkYmF0VG9HcmlkID0gTWF0aC5taW4oJGdyaWQsICRyZW1haW5pbmcpOwogICAgfQp9CgpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdFRvTG9hZCIsICRiYXRUb0xvYWQpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdFRvR3JpZCIsICRiYXRUb0dyaWQpOwoKLy8gQ2FsY3VsYXRlIGdyaWQKJGdyaWRUb0JhdCA9IDA7CiRncmlkVG9Mb2FkID0gMDsKaWYgKCRncmlkIDwgMCkgewogICAgJHJlbWFpbmluZyA9IE1hdGguYWJzKCRncmlkKTsKICAgIGlmICgkcmVtYWluaW5nID4gJGxvYWRSZW1haW5pbmcpIHsKICAgICAgICAkZ3JpZFRvTG9hZCA9ICRsb2FkUmVtYWluaW5nOwogICAgICAgICRyZW1haW5pbmcgLT0gJGxvYWRSZW1haW5pbmc7CiAgICAgICAgJGxvYWRSZW1haW5pbmcgPSAwOwogICAgfSBlbHNlIHsKICAgICAgICAkZ3JpZFRvTG9hZCA9ICRyZW1haW5pbmc7CiAgICAgICAgJGxvYWRSZW1haW5pbmcgLT0gJHJlbWFpbmluZzsKICAgICAgICAkcmVtYWluaW5nID0gMDsgICAgICAgIAogICAgfQogICAgCiAgICBpZiAoJGJhdHRlcnlDaGFyZ2luZykgewogICAgICAgICRncmlkVG9CYXQgPSBNYXRoLm1pbigkYmF0dGVyeSwgJHJlbWFpbmluZyk7OwogICAgfQp9CgpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkdyaWRUb0xvYWQiLCAkZ3JpZFRvTG9hZCk7CnNldFN0YXRlKCIwX3VzZXJkYXRhLjAuUFYuR3JpZFRvQmF0IiwgJGdyaWRUb0JhdCk7Cgo=</field> | |
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> | |
</block> | |
<block type="comment" id="@eWMPWI}Jgv=g!gqi9^l" x="-1437" y="-338"> | |
<field name="COMMENT">Bei Änderung von Status oder Wirkleistung</field> | |
<next> | |
<block type="comment" id="Y9+|[eH6XJ^+Zi6BgxCr"> | |
<field name="COMMENT">Running state + Leistungen extrahieren</field> | |
<next> | |
<block type="on_ext" id="oD@{|ayE_UpXMeFx-JMY"> | |
<mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> | |
<field name="CONDITION">ne</field> | |
<field name="ACK_CONDITION"></field> | |
<value name="OID0"> | |
<shadow type="field_oid" id="*g.-.]^8Mm,aY6r{bR_]"> | |
<field name="oid">modbus.0.inputRegisters.13000_Running_State</field> | |
</shadow> | |
</value> | |
<value name="OID1"> | |
<shadow type="field_oid" id="!#`V7QQEcDZ9TNGil_#0"> | |
<field name="oid">modbus.0.inputRegisters.13007_Load_power_</field> | |
</shadow> | |
</value> | |
<statement name="STATEMENT"> | |
<block type="timeouts_wait" id="xglFIvzQXQgKW*EoUK!$"> | |
<field name="DELAY">50</field> | |
<field name="UNIT">ms</field> | |
<next> | |
<block type="procedures_callcustomnoreturn" id="|-^)+QIi0Ryjkn9vRV[u"> | |
<mutation name="extractRunningStates"> | |
<arg name="dec"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="get_value" id="/5f;tp-/R|ieNpP`4xrL"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13000_Running_State</field> | |
</block> | |
</value> | |
<next> | |
<block type="update" id="y%UWuC0`E!0g|8P#vK1M" inline="false"> | |
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> | |
<field name="OID">0_userdata.0.PV.EnergyConsumptionToday</field> | |
<field name="WITH_DELAY">FALSE</field> | |
<value name="VALUE"> | |
<block type="math_rndfixed" id="*@;EF1#t%G#`yU]Bx0L@" inline="false"> | |
<field name="n">1</field> | |
<value name="x"> | |
<shadow type="math_number" id="apH8)0nLbYCg^}qU}oI="> | |
<field name="NUM">3.1234</field> | |
</shadow> | |
<block type="math_on_list" id="B`diO,UpC8T732X41zE8"> | |
<mutation op="SUM"></mutation> | |
<field name="OP">SUM</field> | |
<value name="LIST"> | |
<block type="lists_create_with" id="O$Dwrp^[Wo^;fcCgzc|/"> | |
<mutation items="3"></mutation> | |
<value name="ADD0"> | |
<block type="get_value" id="=JvN!E^6E8U@IcT~hU^5"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13016_Daily_direct__Energy_Consumption</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="get_value" id="6B?nSAZhUAt`W]=W,327"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13035_Daily_Import_Energy</field> | |
</block> | |
</value> | |
<value name="ADD2"> | |
<block type="get_value" id="2_C8cO)^JzPdeJBsr/b,"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13025_Daily_battery_discharge_Energy</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
<block type="procedures_defcustomreturn" id=")7@7$^bI?;9JiXb,CqbC" x="-437" y="-88"> | |
<mutation statements="false"> | |
<arg name="number" varid="Wu=u[10[PLwu)p_g$2ZM"></arg> | |
<arg name="bitPosition" varid="u?6#BJh2Bp((1W3u)Vnf"></arg> | |
</mutation> | |
<field name="NAME">getBit</field> | |
<field name="SCRIPT">ICByZXR1cm4gKG51bWJlciAmICgxIDw8IGJpdFBvc2l0aW9uKSkgPT09IDAgPyAwIDogMTsK</field> | |
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> | |
</block> | |
<block type="comment" id="W8B0]%)$Pv/XyA=r~4Mu" x="-863" y="131"> | |
<field name="COMMENT">Alle 10 Minuten: Running States ausgeben</field> | |
<next> | |
<block type="schedule" id="A7^UB.AnCV|,aU,!y0)$"> | |
<field name="SCHEDULE">*/10 * * * *</field> | |
<next> | |
<block type="procedures_callnoreturn" id="ue$MDE`t@$}v8lDOf.}u"> | |
<mutation name="debug output"> | |
<arg name="dec"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="get_value" id="ECcFehd5Ow/i/8k/0|cS"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13000_Running_State</field> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
<block type="procedures_defnoreturn" id="vv(U!g(@pnn)8_.{bCV|" x="-388" y="163"> | |
<mutation> | |
<arg name="dec" varid="Kl3S0K7)wS:E#~kmp_`|"></arg> | |
</mutation> | |
<field name="NAME">debug output</field> | |
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> | |
<statement name="STACK"> | |
<block type="comment" id="4Kc|yjIOj/d!+rX^eB8k"> | |
<field name="COMMENT">create some debug messages so we can check state changes in the log after the fact</field> | |
<next> | |
<block type="debug" id="KOrPE~?_|7q-iX+hf9B7"> | |
<field name="Severity">log</field> | |
<value name="TEXT"> | |
<shadow type="text" id="qi6ijIzs)8YkGt3mXbyd"> | |
<field name="TEXT">test</field> | |
</shadow> | |
<block type="text_join" id="sQoBJpPXUR}I,yDnYLzU"> | |
<mutation items="2"></mutation> | |
<value name="ADD0"> | |
<block type="text" id="@[Qr;#TN3?QNNtRdBFJb"> | |
<field name="TEXT">Power generation</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="procedures_callcustomreturn" id="[di$veE=W)etZ1N1csD!"> | |
<mutation name="getBit"> | |
<arg name="number"></arg> | |
<arg name="bitPosition"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="variables_get" id="!.K$T:bqj+}ijHEBEu1O"> | |
<field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field> | |
</block> | |
</value> | |
<value name="ARG1"> | |
<block type="math_number" id="[?#(KLA~d_4od@i%HKRE"> | |
<field name="NUM">0</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="debug" id=".tDzA6hZ]hWm/Q1Ki+C}"> | |
<field name="Severity">log</field> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">test</field> | |
</shadow> | |
<block type="text_join" id="9_`lIMrC@kQZHlIS.BX5"> | |
<mutation items="2"></mutation> | |
<value name="ADD0"> | |
<block type="text" id="+0Y)usl;k0!LReL=@1TA"> | |
<field name="TEXT">Battery charging</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="procedures_callcustomreturn" id="l-(`+Hf/C:1.Pr$1TME!"> | |
<mutation name="getBit"> | |
<arg name="number"></arg> | |
<arg name="bitPosition"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="variables_get" id="]k8{NSg3:qwE6y~~PPUG"> | |
<field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field> | |
</block> | |
</value> | |
<value name="ARG1"> | |
<block type="math_number" id="f|p*H^X]~uRfJ4zwy{V]"> | |
<field name="NUM">1</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="debug" id="#o:4EZCjL=5M?Gw+0O.i"> | |
<field name="Severity">log</field> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">test</field> | |
</shadow> | |
<block type="text_join" id="OIyVbASBmVYSEM=oZSMm"> | |
<mutation items="2"></mutation> | |
<value name="ADD0"> | |
<block type="text" id="YkP-(f;KKjkroM[%{a;?"> | |
<field name="TEXT">Battery discharging</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="procedures_callcustomreturn" id="pGmRj}_+$eQxsP,i1O@L"> | |
<mutation name="getBit"> | |
<arg name="number"></arg> | |
<arg name="bitPosition"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="variables_get" id="VZ2rjX0pe@PD-b0EK.@n"> | |
<field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field> | |
</block> | |
</value> | |
<value name="ARG1"> | |
<block type="math_number" id="^/WwB;Scl3(cF8[3jylF"> | |
<field name="NUM">2</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="debug" id="2=ESEy@`?o=2!#~*4.[p"> | |
<field name="Severity">log</field> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">test</field> | |
</shadow> | |
<block type="text_join" id="SrIP5yY+X.D22D[VrlP$"> | |
<mutation items="2"></mutation> | |
<value name="ADD0"> | |
<block type="text" id="M5Sk=a6?/W8mc@|rtDHZ"> | |
<field name="TEXT">Positive load</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="procedures_callcustomreturn" id="UCHG|NH^a829VlS_FOc["> | |
<mutation name="getBit"> | |
<arg name="number"></arg> | |
<arg name="bitPosition"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="variables_get" id="Mrs-RQx3Z0}OX1FVc!+c"> | |
<field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field> | |
</block> | |
</value> | |
<value name="ARG1"> | |
<block type="math_number" id="3oaU:Voj|5J0Fn$KdP=^"> | |
<field name="NUM">3</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="debug" id="8*~@Ywry?/piw*O}+,=]"> | |
<field name="Severity">log</field> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">test</field> | |
</shadow> | |
<block type="text_join" id="*K,z(Z;tM4v-M`VT)=sh"> | |
<mutation items="2"></mutation> | |
<value name="ADD0"> | |
<block type="text" id="QsKlyP=k#wB.`!q2W+XJ"> | |
<field name="TEXT">Power feed into the grid</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="procedures_callcustomreturn" id="aknN*P^vup+EdTLM6/yn"> | |
<mutation name="getBit"> | |
<arg name="number"></arg> | |
<arg name="bitPosition"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="variables_get" id="0QUz2T3lebdal%Stjha^"> | |
<field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field> | |
</block> | |
</value> | |
<value name="ARG1"> | |
<block type="math_number" id="d5~PH;7@M`7kTud**ES."> | |
<field name="NUM">4</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="debug" id="s[=~4,hPHDd0]0YAO8|u"> | |
<field name="Severity">log</field> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">test</field> | |
</shadow> | |
<block type="text_join" id="X9{#rK3QZb$[550`!GD$"> | |
<mutation items="2"></mutation> | |
<value name="ADD0"> | |
<block type="text" id="Oe-,=fU/6IGKG3v,/t+0"> | |
<field name="TEXT">Power from the grid</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="procedures_callcustomreturn" id="EGn+kHA^EQ1XRJhx!Vhb"> | |
<mutation name="getBit"> | |
<arg name="number"></arg> | |
<arg name="bitPosition"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="variables_get" id="}2agbC4wrjiK^REZrT={"> | |
<field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field> | |
</block> | |
</value> | |
<value name="ARG1"> | |
<block type="math_number" id=":fd,9cSXwq[{cx76A-+}"> | |
<field name="NUM">5</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
<next> | |
<block type="debug" id="hOK+$jW(m-QrUr#W|/n@"> | |
<field name="Severity">log</field> | |
<value name="TEXT"> | |
<shadow type="text"> | |
<field name="TEXT">test</field> | |
</shadow> | |
<block type="text_join" id="QJDY}eje)+|3SUH(BZyM"> | |
<mutation items="2"></mutation> | |
<value name="ADD0"> | |
<block type="text" id="hj9k)mHycGoRx9vHO]Q{"> | |
<field name="TEXT">Power from load</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="procedures_callcustomreturn" id="Rk4r]0=rc#(qd]Nqjds$"> | |
<mutation name="getBit"> | |
<arg name="number"></arg> | |
<arg name="bitPosition"></arg> | |
</mutation> | |
<value name="ARG0"> | |
<block type="variables_get" id="m,$d6J}Ic:=mV:|i0B58"> | |
<field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field> | |
</block> | |
</value> | |
<value name="ARG1"> | |
<block type="math_number" id=":^V4s@UVYMGm/ada=3N`"> | |
<field name="NUM">7</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
<block type="math_on_list" id="sl_hV.M2*b=eFMg@dm{Q" disabled="true" x="-1838" y="287"> | |
<mutation op="SUM"></mutation> | |
<field name="OP">SUM</field> | |
<value name="LIST"> | |
<block type="lists_create_with" id="$vK([KFw(%Ewg-e_Ua2H"> | |
<mutation items="3"></mutation> | |
<value name="ADD0"> | |
<block type="get_value" id="X5d4D8-,*09FrP9sv%7b"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.5002_Daily__Output_Energy</field> | |
</block> | |
</value> | |
<value name="ADD1"> | |
<block type="get_value" id="PWqL%[w:K;v_?%Obs~Kl"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13035_Daily_Import_Energy</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
<block type="comment" id="tc5]-a5|f#d^#)-`TbLn" x="-1037" y="387"> | |
<field name="COMMENT">Überschusskontrolle</field> | |
<next> | |
<block type="comment" id=":*ibg;.sf07Hot0_|*r?"> | |
<field name="COMMENT">Wenn eingespeist wird…</field> | |
<next> | |
<block type="schedule" id="dy/{h[/S5~y)e#tM)zAW" disabled="true"> | |
<field name="SCHEDULE">* * * * *</field> | |
<statement name="STATEMENT"> | |
<block type="variables_set" id="I5.$e$hhYP_w`[cP|g(i"> | |
<field name="VAR" id="7vvn=,V[2B9HKo=2Z[%+">einspeisung</field> | |
<value name="VALUE"> | |
<block type="get_value" id="OH+*g_U@#+E%Y(tCTyTg" inline="false"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13009_Export_power</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="}:nsS*IVyJ[kuKCisNfW"> | |
<field name="COMMENT">Delay: Kurzfristige Schwankungen glätten</field> | |
<next> | |
<block type="timeouts_settimeout" id="A^,Kz;N4G/4DL-h5{+R3"> | |
<field name="NAME">timeout2</field> | |
<field name="DELAY">20</field> | |
<field name="UNIT">sec</field> | |
<statement name="STATEMENT"> | |
<block type="comment" id="/!9c*r$EwoaP+^a!7Nsj"> | |
<field name="COMMENT">Wert nochmal aktuell lesen</field> | |
<next> | |
<block type="variables_set" id="BrxR8Smf`0FD@{pF2)fE"> | |
<field name="VAR" id="7vvn=,V[2B9HKo=2Z[%+">einspeisung</field> | |
<value name="VALUE"> | |
<block type="get_value" id="qk[9h2E!8ayv^@w.yC(w" inline="false"> | |
<field name="ATTR">val</field> | |
<field name="OID">modbus.0.inputRegisters.13009_Export_power</field> | |
</block> | |
</value> | |
<next> | |
<block type="comment" id="qs9?IcLq8zRL[1}bX)~Z"> | |
<field name="COMMENT">> 0 = Es wird eingespeist</field> | |
<next> | |
<block type="controls_if" id="Ks]6]xX~uzYm:oK1ELhd"> | |
<value name="IF0"> | |
<block type="logic_compare" id="n.}=ts;YDDkh!Xlg#lAJ"> | |
<field name="OP">GT</field> | |
<value name="A"> | |
<block type="variables_get" id="IY=,(@4cZi,}4m!:6!:S"> | |
<field name="VAR" id="7vvn=,V[2B9HKo=2Z[%+">einspeisung</field> | |
</block> | |
</value> | |
<value name="B"> | |
<block type="math_number" id="rtci8=|nXBfF[28@7=MM"> | |
<field name="NUM">0</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
<statement name="DO0"> | |
<block type="timeouts_settimeout" id="kp@Ux=lw.ab@m-obEkoM"> | |
<field name="NAME">timeout</field> | |
<field name="DELAY">1000</field> | |
<field name="UNIT">ms</field> | |
</block> | |
</statement> | |
<next> | |
<block type="comment" id="5U(?]}^Ji~1n*8*k_00T"> | |
<field name="COMMENT">< 0 = Strom wird gekauft</field> | |
<next> | |
<block type="controls_if" id="Oe?CqxP28|{O3LZi#;aI"> | |
<value name="IF0"> | |
<block type="logic_compare" id="2+!fjSPVO6W!}p/,?$CV"> | |
<field name="OP">LT</field> | |
<value name="A"> | |
<block type="variables_get" id="p[h@L5PfD01lfKg@Y5At"> | |
<field name="VAR" id="7vvn=,V[2B9HKo=2Z[%+">einspeisung</field> | |
</block> | |
</value> | |
<value name="B"> | |
<block type="math_number" id="87bH1+jCp-yz40w:N?*L"> | |
<field name="NUM">0</field> | |
</block> | |
</value> | |
</block> | |
</value> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</statement> | |
</block> | |
</next> | |
</block> | |
</next> | |
</block> | |
</xml> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment