NEWS
Experten Hilfe Verbesserung, Verzicht auf 2ten Datenpunkt?
-
Es geht um ein Benutzerinterface das Wechselrichter regelt.
Mittels cURL/api wird kommuniziert.Von sich aus macht das Interface nichts.
Die Kommunikation läuft wie folgt:1.) Status abfragen per cURL.
Als Antwort kommt ein json.2.) Befehl senden per cUrl.
Antwort als json.3.) um den Befehl ordentlich abzuschließen, wird der Status erneut abgefragt.
Antwort als json.Die Schritte 1-3 müssen sequentiell erfolgen.
Zwischen den Schritten für 1) Status abfragen, 2) eigentlicher Befehl senden, 3) erneut Status abfragenvergeht eine unbestimmte Verarbeitungszeit, die mit Pausen im Blockly bisher erfolgreich funktionieren.
Der letzte state ist der wichtigste.
Der wird quittiert mit "ok" oder "pending".Sobald state "ok" -> wird der "setLimit" Datenpunkt bestätigt.
Solange state "pending" -> bleibt "setLimit" unbestätigt.Mit dem Blockly (im Bild) funktioniert das ganz gut.
Damit die Befehle sequentiell abgearbeitet werden, nutze ich dafür einen 2ten Hilfs-Datenpunkt "StepByStep_setLimit".
Auf diesen Datenpunkt würde ich gerne verzichten.Bisher scheitere ich daran, weil die Befehle sequentiell erfolgen müssen.
Inkl. nicht beeinflussenbare, unbestimmte Pausen und weil bei state "pending" der state weiterhin abgefragt werden muss.Ob die timouts im Blockly so ok sind, bin ich mir auch nicht sicher.
Das Ziel ist, dass mit dem Blockly über den Steuerbefehl alles erledigt wird, bis er über das Blockly bestätigt wird.
Was gut funktioniert, jedoch mit dem 2ten Datenpunkt.
Möchte kein pollen rund um die Uhr oder ständigem Triggern des State in einem extra Script.
Das Blockly funktioniert.
Würde mich über eine Lösung ohne 2ten Datenpunkt freuen.
Auch für jede andere Verbesserung, Korrektur, Hilfe freue ich mich.
Blockly:
-
Du solltest das Blockly auch reinstellen, da kann man besser helfen.
-
@sigi234
Gerne
persönliche Daten usw. entfernt.Blockly
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</variable> <variable id=":t,.iH$R*B]I6`WB(XiX">StepByStep-Limit-setzen</variable> <variable id="dIjm#f2?FFp5rZ8.*y*]">cURLsetLimit</variable> <variable id="{/aS[hsekcCjGOG[6k1K">InverterMaxGesamtleistung</variable> <variable id="Habz-i({!8`v2HZBqG.m">cURLstart</variable> <variable id="l]cCL,|tZ]/i+`s)[-v.">setLimitPart1</variable> <variable id="]}B6H?%6!5i!RoH45.IM">inverter1:</variable> <variable id="f#OJfojYX1NYb)`yqBX@">setLimitPart2</variable> <variable id="9IYq){UmB+g2}n!u$x|V">setLimitPart3</variable> <variable id="9EDv~bW6oT6sCJ(D,1eq">cURLstateLimit</variable> <variable id="qYV~7+z$kJxrAd1^~{Xz">LimitStatusObjekt</variable> <variable type="timeout" id="timeout2">timeout2</variable> <variable type="timeout" id="timeout3">timeout3</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="comment" id="Na*iQF(;)e(+9GW,^f/c" x="63" y="1638"> <field name="COMMENT">setLimit 1v2</field> <next> <block type="update" id="iZ0+uBw,wW1MoMhc_ni6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="18xe*2:DBG=R/aVM`bYc"> <field name="NUM">0</field> </block> </value> <next> <block type="on_ext" id="S`3;0}v*cL~wqdO0),NP"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">false</field> <value name="OID0"> <shadow type="field_oid" id="wwAKX@H~PdbVcuxH^/qI"> <field name="oid">0_userdata.0.Datenpunkte.openDTUoB.SetLimit</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="0CUN=tvCh{RsdQ1|=$*`"> <value name="IF0"> <block type="logic_multi_and" id="w|W#f||IwbR]Mq/8ejvg"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="AND0"> <block type="logic_compare" id="SDfz)kyLvr-Muxtjam!%"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="5EbBPt=#H^Aeiekvw!73"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> </block> </value> <value name="B"> <block type="math_number" id="z{XhZEGnyj}`wbbj:9L["> <field name="NUM">0</field> </block> </value> </block> </value> <value name="AND1"> <block type="logic_compare" id="fg,!q~X2XB]g[=kmDVR:"> <field name="OP">NEQ</field> <value name="A"> <block type="on_source" id="VLb2OizFb@%Wt8?m$U4i"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="on_source" id="1^Y8!VvR,N:|t}+u6w-s"> <field name="ATTR">oldState.val</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="U%ZpI+iIVsG^J@#[)|D;"> <field name="VAR" id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</field> <value name="VALUE"> <block type="on_source" id="{L;?PiTg#OvmEHqmYwP4"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="controls_if" id="sD91qO}Q+pWvGs(%kP1T"> <value name="IF0"> <block type="logic_compare" id="JVtIy@G^GTE4/MoX7QfA"> <field name="OP">LT</field> <value name="A"> <block type="math_arithmetic" id="r6C2`maS0mniJX`ZhK1n"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="%4a8vxopU:;qEM|2Be8s"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="`Q^;R!u_4a;qGm*SX_S3"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="NsM~(D,HL9{xf0GkaUHp"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="[I!11Yg-*48Z-BTw$yMP"> <field name="VAR" id="{/aS[hsekcCjGOG[6k1K">InverterMaxGesamtleistung</field> </block> </value> <value name="B"> <shadow type="math_number" id="2)yAI_Z{clo8kP):B,jF"> <field name="NUM">1</field> </shadow> <block type="math_number" id="f+aK_qchHTO*=bfmGyMw"> <field name="NUM">100</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="f{z*kAe;R/fEewkD-dpx"> <field name="NUM">1</field> </shadow> <block type="get_value" id="QBZTB!}!AatT5$0}ftTP"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.SetLimit</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="HWD97snkEd|q2EAV6{Le"> <field name="NUM">60</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="7;V~RLI7O![n{9{`(Yr2"> <field name="VAR" id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</field> <value name="VALUE"> <block type="math_round" id=".Lg)$78b=*f5esi^j1-n"> <field name="OP">ROUNDUP</field> <value name="NUM"> <shadow type="math_number" id="x{nBUy%NP(zl_Y6YYA.,"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="+0pCuk?dc3s[@Fv.9F[M"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="zULjZ+oewSOf.czk,tJb"> <field name="NUM">1</field> </shadow> <block type="math_number" id="Om#mtgB;XT-N?a(~0GyX"> <field name="NUM">60</field> </block> </value> <value name="B"> <shadow type="math_number" id="m464lD4CIGIJvHufNQMK"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="^*yC8B4,89,0]^MM)Wj_"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id=")lz!Fl6fiSTE)%TfS~m0"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="?/f)8duX0z(Zf.3i$N1s"> <field name="VAR" id="{/aS[hsekcCjGOG[6k1K">InverterMaxGesamtleistung</field> </block> </value> <value name="B"> <shadow type="math_number" id="M~YtJr?mx#NAROoe5nt]"> <field name="NUM">1</field> </shadow> <block type="math_number" id="9{m[M3B}^fQ5KGUIis^n"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="KRFm^MAWa6p5QN{8qmPt"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="!{C^^Da5T7I_3Ux~v+ih"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="y,W#ecF@e7j#}Xa3^6)C"> <field name="VAR" id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="+C{gD_:~S{Bhz_.$]jk?"> <value name="IF0"> <block type="logic_compare" id="asEISEDAVnrp[1kxXTgz"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="r!9H1r`l^^4PcI~DT5tW"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.SetLimit</field> </block> </value> <value name="B"> <block type="math_number" id="m3e=QbKt#(^twI7OY0`Z"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="6A4I$1@7uiEnIIe:AVY@"> <field name="VAR" id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</field> <value name="VALUE"> <block type="math_number" id=")$iByvAYI;XoIMoufBz0"> <field name="NUM">100</field> </block> </value> <next> <block type="debug" id="u,?GjJF1%UOkhZ_%!%OH"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="#3{0tq;z{_TJg#)CKg;;"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="yA0YQoE$d7?5DwKYsWh4"> <field name="VAR" id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</field> </block> </value> </block> </next> </block> </statement> <next> <block type="variables_set" id="9glsFn~Yb-o1E_,f9V9@"> <field name="VAR" id="dIjm#f2?FFp5rZ8.*y*]">cURLsetLimit</field> <value name="VALUE"> <block type="text_join" id="j#l7XXpjSQ]_pea6fDuO"> <mutation items="6"></mutation> <value name="ADD0"> <block type="variables_get" id="4|2b5S9~[d~u7c^Kvg|h"> <field name="VAR" id="Habz-i({!8`v2HZBqG.m">cURLstart</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="5)U~W]uguzsa2x*T^42a"> <field name="VAR" id="l]cCL,|tZ]/i+`s)[-v.">setLimitPart1</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="qhul]J~,j~*Ey73k9o,c"> <field name="VAR" id="]}B6H?%6!5i!RoH45.IM">inverter1:</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="5c=/e37}n+*7CQyO}Ijb"> <field name="VAR" id="f#OJfojYX1NYb)`yqBX@">setLimitPart2</field> </block> </value> <value name="ADD4"> <block type="variables_get" id="8dww^|kyY~ZiM5qh[RLV"> <field name="VAR" id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</field> </block> </value> <value name="ADD5"> <block type="variables_get" id="##LwqDXu_Ty^,5V=aU3g"> <field name="VAR" id="9IYq){UmB+g2}n!u$x|V">setLimitPart3</field> </block> </value> </block> </value> <next> <block type="comment" id="Y+nX-p}*xExWw]O`OX~{"> <field name="COMMENT">state abfragen</field> <next> <block type="exec" id="9b)!Xk~Q[EVq5OId-xq="> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="9;-TT-}BY,qROECr/9_6"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="!yz!Hay,[YQQHpLUJ*Iv"> <field name="VAR" id="9EDv~bW6oT6sCJ(D,1eq">cURLstateLimit</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id="]Q)e10Yc1,|BA0=+4/qL"> <field name="VAR" id="qYV~7+z$kJxrAd1^~{Xz">LimitStatusObjekt</field> <value name="VALUE"> <block type="convert_json2object" id="[Z?-h~j!H:[SSJ`S615*"> <value name="VALUE"> <block type="exec_result" id="q=5*b5rz@VdDwh)0I3e+"> <field name="ATTR">result</field> </block> </value> </block> </value> <next> <block type="debug" id="*2N(,pI+I/wa+WB0pY})"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="Tm#1Sc!?@o*[5^fVuc9E"> <field name="TEXT">test</field> </shadow> <block type="convert_json2object" id="]9/0o*OMO8//*4pp#`rU"> <value name="VALUE"> <block type="exec_result" id="f4)+;L@d@p`*4I4Q^GD#"> <field name="ATTR">result</field> </block> </value> </block> </value> <next> <block type="update" id="FfJM}@B,y+IyuV~:1w%o"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=";cLk?eq+-nX?,Ly3S(Df"> <field name="NUM">1</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="irOfk_9RkkVxxbebgIyq"> <field name="COMMENT">setLimit 2v2&#10;limit setzen&#10;state abfragen</field> <next> <block type="on_ext" id="LcW]*D@bBIDIfRY85_ht"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid" id="Esl`z8CUt#,h~K~/67)j"> <field name="oid">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="a9j[r{MnY}F}l::|y)|u"> <value name="IF0"> <block type="logic_compare" id="}f,J@LyGX4gdZ]C@,n5/"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="Me!AW.7.slwct,PV!F`P"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="0HxZtvu{Ol[[^E4mpd%V"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="~-29zc|RN/R59_vcu.C7"> <field name="VAR" id=":t,.iH$R*B]I6`WB(XiX">StepByStep-Limit-setzen</field> <value name="VALUE"> <block type="on_source" id="D%;`=63r+bcOYP}!.6XT"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="comment" id="7;6ArsM!Q}Rb=pV?a+VO"> <field name="COMMENT">limit setzen</field> <next> <block type="logic_switch_case" id="SoQ_l$3)L#9$[+~a.h2z"> <mutation xmlns="http://www.w3.org/1999/xhtml" case="2"></mutation> <value name="CONDITION"> <block type="variables_get" id="-E8Gd6qi^}jZPrt=NeJ;"> <field name="VAR" id=":t,.iH$R*B]I6`WB(XiX">StepByStep-Limit-setzen</field> </block> </value> <value name="CASECONDITION0"> <block type="math_number" id="hPBf+v5hSB$zAi}.!g,Y"> <field name="NUM">1</field> </block> </value> <statement name="CASE0"> <block type="controls_if" id="(/j1x$g%@DmMT*)iLOTL"> <value name="IF0"> <block type="logic_compare" id="QtPdP?Gq5NsbGxyo2fWR"> <field name="OP">EQ</field> <value name="A"> <block type="get_attr" id="Dv?{gFgf0YRVdZo(~1sg"> <value name="PATH"> <shadow type="text" id="$?(@MG+6%N9V1i-UUYPm"> <field name="TEXT">attribute1</field> </shadow> <block type="text_join" id="CJ0,qBY]A/bO#c~CcMwW"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="x{(.M$Y|v,ic??.#xrJD"> <field name="VAR" id="]}B6H?%6!5i!RoH45.IM">inverter1:</field> </block> </value> <value name="ADD1"> <block type="text" id="0Y~I*gJoy^tgUTq;3!+u"> <field name="TEXT">.limit_set_status</field> </block> </value> </block> </value> <value name="OBJECT"> <shadow type="get_object" id="d2Q3/Nn./At|M(8$u8?}"> <field name="OID">Object ID</field> </shadow> <block type="variables_get" id=")TvN^4!0-x^gh|md`GD;"> <field name="VAR" id="qYV~7+z$kJxrAd1^~{Xz">LimitStatusObjekt</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="Mq37N$6;wqc*N-9U6TD8"> <field name="TEXT">Ok</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="A)u(E;W]v9r}zAdXf0NX"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id="bba:UZz4kL,E_wPwG1Gx"> <field name="NAME">timeout</field> <field name="DELAY">3000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="exec" id="jJa!HRPJ+*2zo}86?xe,"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="9;-TT-}BY,qROECr/9_6"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="uYF9)8*S*b]lVBesa,@."> <field name="VAR" id="dIjm#f2?FFp5rZ8.*y*]">cURLsetLimit</field> </block> </value> <statement name="STATEMENT"> <block type="debug" id="16c6x[N:=ziG_cW+F6R("> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="$T#tK3mN:AHkMD{1`drJ"> <field name="TEXT">test</field> </shadow> <block type="convert_json2object" id="K5S4w-vpAuBS$K#ERtTa"> <value name="VALUE"> <block type="exec_result" id="uGyI9Rx3h7IQDdZ}^%FN"> <field name="ATTR">result</field> </block> </value> </block> </value> </block> </statement> <next> <block type="update" id="cGf3(QxbQ*HzfORXpv0@"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="B+7`Le[lTOJ!JE@Dm|tV"> <field name="NUM">2</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> <value name="CASECONDITION1"> <block type="math_number" id="=Z00,W(i%aVs5E3Q/@wT"> <field name="NUM">2</field> </block> </value> <statement name="CASE1"> <block type="timeouts_cleartimeout" id="6Xt{E`vrFM%ZyMX_h)Uc"> <field name="NAME">timeout2</field> <next> <block type="timeouts_settimeout" id="NpxU/17PPns2F|8}@(Z6"> <field name="NAME">timeout2</field> <field name="DELAY">3000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="exec" id="?GX_~r0CQoRfl(/w,d+v"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="9;-TT-}BY,qROECr/9_6"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="FD{Ta;YrV3K31Dn_QK$S"> <field name="VAR" id="9EDv~bW6oT6sCJ(D,1eq">cURLstateLimit</field> </block> </value> <statement name="STATEMENT"> <block type="variables_set" id="Lnz$7g0M5ez*%EZf_3N3"> <field name="VAR" id="qYV~7+z$kJxrAd1^~{Xz">LimitStatusObjekt</field> <value name="VALUE"> <block type="convert_json2object" id="59[qo(R/it!Aq?3?pXR#"> <value name="VALUE"> <block type="exec_result" id="?u:XdVwYJVGbr/23NSi2"> <field name="ATTR">result</field> </block> </value> </block> </value> <next> <block type="debug" id="1ei;!-3fXh|/G/;g59I?"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="Tm#1Sc!?@o*[5^fVuc9E"> <field name="TEXT">test</field> </shadow> <block type="convert_json2object" id="rqnzUoxRg#g+U?Tva]=`"> <value name="VALUE"> <block type="exec_result" id="%$%T4?r20x7l4amiEpI9"> <field name="ATTR">result</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="update" id="T7Xgbyqi.MSg9X@fUIdb"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="vU4KG8^k9fZa1auIBG3~"> <field name="NUM">3</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> <value name="CASECONDITION2"> <block type="math_number" id="DgrfN*L45FSUCK*Jzw)!"> <field name="NUM">3</field> </block> </value> <statement name="CASE2"> <block type="timeouts_cleartimeout" id="9kiE0kp)/0HM0Afql%*Z"> <field name="NAME">timeout3</field> <next> <block type="timeouts_settimeout" id="!7AFr+9ySeMuw%Yy2I{@"> <field name="NAME">timeout3</field> <field name="DELAY">3000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="]iaSt|r#Tx{fd4z#,m$k"> <value name="IF0"> <block type="logic_compare" id="4=rcc${Vch%X/W=nDF01"> <field name="OP">EQ</field> <value name="A"> <block type="get_attr" id="F^YZ``-z{=V+/UWP0l2{"> <value name="PATH"> <shadow type="text" id="$?(@MG+6%N9V1i-UUYPm"> <field name="TEXT">attribute1</field> </shadow> <block type="text_join" id="[dpHK40N9mH)Z11rXi%B"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="pRR2G%J}#=0(}/)/[7VA"> <field name="VAR" id="]}B6H?%6!5i!RoH45.IM">inverter1:</field> </block> </value> <value name="ADD1"> <block type="text" id="Y)/{mIBZ}I)f1y,kfkbc"> <field name="TEXT">.limit_set_status</field> </block> </value> </block> </value> <value name="OBJECT"> <shadow type="get_object" id="d2Q3/Nn./At|M(8$u8?}"> <field name="OID">Object ID</field> </shadow> <block type="variables_get" id="VJXybZ:OHaZWV/G]QLcj"> <field name="VAR" id="qYV~7+z$kJxrAd1^~{Xz">LimitStatusObjekt</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="hd$x9(-,y|Y:pe{W6!k!"> <field name="TEXT">Ok</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="a#f:[zm1/S8f~JPK^*#r"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="BM:OwK6_*Nf-Q)i+1mGm"> <field name="TEXT">OK OK</field> </shadow> </value> <next> <block type="update" id="YQGQ](oXqf7:g#gC+tbp"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="c)1eX@lQ|D2g$J3Ow-v9"> <field name="NUM">0</field> </block> </value> <next> <block type="update" id="-.(dId,bM7zJkY]`p0]t"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.SetLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="L`~mb^zyX4LD{6QgpZph"> <field name="VAR" id="W8v*svw]j2ihd2,z}Tm=">setLimitProzentWert</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="9-v8F|28!9PvhzjljAIi"> <value name="IF0"> <block type="logic_compare" id="EOo(3g(93VG`b9XanCqu"> <field name="OP">EQ</field> <value name="A"> <block type="get_attr" id="C8x=;n%K}glz*Wlk(_}!"> <value name="PATH"> <shadow type="text" id="$?(@MG+6%N9V1i-UUYPm"> <field name="TEXT">attribute1</field> </shadow> <block type="text_join" id="_E)D4Y.#h6W5l!@eM2-p"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="QymSYCxq7+(LH`DEOD$@"> <field name="VAR" id="]}B6H?%6!5i!RoH45.IM">inverter1:</field> </block> </value> <value name="ADD1"> <block type="text" id="kI?qgT.P.pUF(YlYnC2D"> <field name="TEXT">.limit_set_status</field> </block> </value> </block> </value> <value name="OBJECT"> <shadow type="get_object" id="d2Q3/Nn./At|M(8$u8?}"> <field name="OID">Object ID</field> </shadow> <block type="variables_get" id="l.can+bpr0V1LSFpNlf0"> <field name="VAR" id="qYV~7+z$kJxrAd1^~{Xz">LimitStatusObjekt</field> </block> </value> </block> </value> <value name="B"> <block type="text" id="Rs39ZwY?c`e)1aWyK(aG"> <field name="TEXT">Pending</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="70XRa;_O-CeL9+Lh8`*{"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="8=CS2CUp}c)3h`)@,[;%"> <field name="TEXT">PENDING AUSSTEHEND .... in Bearbeitung</field> </shadow> </value> <next> <block type="update" id="dH,uk??i7QE^vzivKU]L"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Datenpunkte.openDTUoB.StepByStep_SetLimit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="{n6YJ^^pW-@X}vymz_6f"> <field name="NUM">2</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>