NEWS
Timeout in einer Schleife
-
@schroed99 Der Aufbau mit den Intervallen macht in der Form eigentlich keinen Sinn.
Allerdings habe ich noch nicht verstanden wie das ganze laufen soll. Kannst du einen vollständigen Ablauf incl. der von Dir ansteuerbaren Datenpunkte mal beschreiben ?
A.
-
wenn ich das richtig verstanden habe, willst du den folgenden Ablauf haben:
Zyklus eins für Z1 Minuten (beschicken 1)
pause für P1 Minuten- 4 mal wiederholen:
Zyklus 2 für Z2 Minuten (belüften 1)
pause für P2 minuten
Zyklus 3 für Z3 Minuten (klären 1)
pause für P3 minutenZyklus 4 für Z4 Minuten (Abzug 1)
pause für P4 minutenWenn das soweit stimmt, würde ich das so lösen:
Du musst natürlich die korrekten Datenpunktnamen eintragen. Aktuell läuft das ganze automatisch los und wiederholt sich endlos.
Wenn du es explizit triggern und anhalten willst musst du den 1. DoAction with Baustein in einen Trigger packen. Davor noch ein stop timeout und stop timeout2 zur Sicherheit.
Um das dauerhaft weiterlaufen zu stoppen must du in dem falls idx > length of... umstellen auf <= length of und den doAction nur im "Falls" Zweig ausführen
A.
- 4 mal wiederholen:
-
@schroed99 sagte: Wie man das anderes gelöst bekommt?
Dafür kann man eine Funktion als Schleife verwenden. Vorschlag:
-
@paul53 @Asgothian Sorry für's Offtopic...
Jetzt weiß ich, warum ich mich nicht mit Blockly beschäftige... Bei so komplexen Abläufen blick ichs nicht mehr
Bin ich froh, dass ich als Softwareentwickler mich mit so schönen Dingen, wie JS beschäftigen kann
Mich würde tatsächlich mal interessieren was aus dem Blockly von Euch wird, wenn man das in JS umwandelt. Vielleicht mag mir das ja jemand als PM schicken?
-
In JS würde ich das etwas anders lösen - z.Bsp. nicht mit 4 getrennten arrays sondern mit einem Array von Objekten. Ansonsten halt so wie hinterm spoiler
-
@great-sun sagte: was aus dem Blockly von Euch wird, wenn man das in JS umwandelt.
Von Blockly generiert:
var zyklus, msg, aktiv, idAktor; // Beschreibe diese Funktion … async function schleife() { switch (zyklus) { case 1: msg = 'Beschicken'; aktiv = 9; idAktor = 'default'; break; case 6: msg = 'Klären'; aktiv = 1; idAktor = 'default'; break; case 7: msg = 'Abzug'; aktiv = 2; idAktor = 'default'; break; default: msg = 'Belüften'; aktiv = 12; idAktor = 'default'; break; } console.log(msg); setStateDelayed(idAktor, true, false, parseInt(((0) || "").toString(), 10), false); aktiv = parseFloat(60000) * aktiv; await wait(aktiv); console.log(('Pause nach Zyklus ' + String(zyklus))); setStateDelayed(idAktor, false, false, parseInt(((0) || "").toString(), 10), false); await wait(720000); zyklus = (typeof zyklus == 'number' ? zyklus : 0) + 1; if (zyklus <= 7) { await schleife(); } } // Start on({id: 'default', change: "gt"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; zyklus = 1; await schleife(); });
Hätte ich gewusst, dass JS besser für Dich ist, hätte ich mich nicht mit Blockly abgemüht.
-
@paul53 Für mich sicher, aber für den Thread-Owner schätze ich nicht
-
@great-sun sagte: aber für den Thread-Owner schätze ich nicht
Sorry, Verwechslung.
-
@asgothian Japp, da kann man schöne Ablaufroutinen bauen. Hab ich auch so gemacht, wenn ich z.B. meinen "Kinomodus" einschalte:
Parallel: Leinwand runter fahren, GeräteGruppe1 einschalten
Pause
IR Commandos senden um die Geräte richtig einzustellen (Eingangskanäle für Beamer, TVBox/PS, TOSLink-Verteiler)
Subwoofer Verstärker einschalten -
@asgothian Guten Morgen Asgothian, vielen Dank für die schnelle Antwort. Ich werde deinen Vorschlag direkt mal testen. Denke aber du hast es sehr gut verstanden worauf ich hinaus möchte. Ja, es ist schwer sich ordentlich auszudrücken Aber klasse! Anbei noch eine Grafik die es evt. besser darstellt. Für die anderen die eine Klärgrubensteuerung bauen möchten
Ich melde mich sobald ich deinen Vorschlag umgesetzt habe. Vielen Dank bis hier her...
-
@paul53 Hallo Paul53, auch an dich vielen lieben Dank! Dein Ansatz sieht auch sehr vielversprechend aus. Ich werde auch deinen Vorschlag testen. Mit der Funktion hatte ich auch anfangs gedacht. Da ich aber den Ablauf so statisch aufgebaut habe, wollte ich direkt darin meine Schleife um die zwei Zyklen bauen. Ich sehe gerade, das wäre immer Mist geworden...! Danke für eure Ideen.
-
@asgothian Hallo Asgothian, ich habe deinen Vorschlag übernommen. Leider wirft der Skript verschiedene Warnungen. Könntest du den Blockly Export bereitstellen. Ich hab mein iobroker auf deutsch eingestellt. Bin mir daher unsicher die richtigen Funktionen eingezogen zu haben.
-
@paul53 Hallo Paul, ich habe deinen Vorschlag ausprobiert, perfekt! Genau dieses Verhalten wollte ich erreichen. Jetzt stellt sich mir die Frage, ob ich die Zyklen um die Belüftung/Pause auch dynamisch aufbauen könnte? Bedeutet ich möchte per Datenpunkt einstellen, wie viele Kreise er um die beiden Zyklen drehen soll? Weißt du, was ich meine?
-
@schroed99 Den export kann ich nicht einstellen, Aber:
du hast an dieser stelle die Variable "idx" benutzt, die zu dem Zeitpunkt keinen Wert hat. Das dürfte einer der Fehler sein. Bitte statt IDX dort die Zahl 1 einsetzen.
A.
-
@asgothian Ich habe die Zahl eingetragen, die Warnungen kommen weiterhin.
-
@schroed99 sagte: Zyklen um die Belüftung/Pause auch dynamisch aufbauen könnte?
Meinst Du die Anzahl der Belüftungszyklen? Wenn ja, dann ersetze die Zahl 6 durch
anzahlBelueftung + 2
und die Zahl 7 (an 2 Stellen) durchanzahlBelueftung + 3
. -
@schroed99 Du hast da noch einen Elefanten im Raum:
Die Texte in dem Array Zyklusaktionen müssen auf Datenpunkte zeigen die du mit wahr oder falsch steuern kannst. Bisher hast du da nur Namen. Da muss das rein was bei dem Skript von @paul53 in die Variable idAktor geschrieben wird.
A.
-
@paul53 Perfekt! Jetzt tut es genau was es soll! Danke für Euer beider Unterstützung. Alleine wäre ich nie darauf gekommen. Die Denkanstöße haben geholfen, andere Skripte auch zu überarbeiten. Vielen Dank
Hier der Code für User mit einen ähnlichen Thema.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="DuKnNK_fb{/Qq{IFWG$v">zyklus</variable> <variable id="Z}P^~lcsIWmg$xymi]s|">msg</variable> <variable id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</variable> <variable id="5e7CDB8d+z)p64]UEPq)">aktiv</variable> <variable id="j=8.H21R4p}Bl_6Ddd*o">idAktor</variable> </variables> <block type="on_ext" id="#2~L4UEK6FMI+P3C8_A}" x="88" y="-62"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="~YXNBsr?ey*s$f%:jZ4i"> <field name="oid">0_userdata.0.vis_Abwasser.Grubenpumpe_automatik_aktiv</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id=";:Rs|y!a%3wq;-Gq4y)*"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> <value name="VALUE"> <block type="math_number" id="s-)-z[loX]EMloKW0R@j"> <field name="NUM">1</field> </block> </value> <next> <block type="variables_set" id="3t3kFLx5D@^``,VtG=iF"> <field name="VAR" id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</field> <value name="VALUE"> <block type="get_value" id="0P~iY+t6f^Sol4pT||2S"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.vis_Abwasser.Grubenpumpe_belueftungs_zyklen</field> </block> </value> <next> <block type="procedures_callnoreturn" id="$n5B(VFgEN|}34zr:zK6"> <mutation name="schleife"></mutation> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="KAYmjF~QMX34:y[iSp-^" x="88" y="138"> <field name="NAME">schleife</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="logic_switch_case" id="XpXI#,j.tC[~8GE+~{XJ"> <mutation xmlns="http://www.w3.org/1999/xhtml" case="2" default="1"></mutation> <value name="CONDITION"> <block type="variables_get" id="Xoh).rKK_L[CJQ0^}+s0"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> </block> </value> <value name="CASECONDITION0"> <block type="math_number" id="FJUpW46g[o_p9Un*Nw~^"> <field name="NUM">1</field> </block> </value> <statement name="CASE0"> <block type="variables_set" id="0J#T-Qd7+AzZ5/[U5^m:"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="TAm,2C|I#_JI1FaKw%$C"> <field name="TEXT">Beschicken</field> </block> </value> <next> <block type="variables_set" id="WU.#loWYjVs;k[ZjmX|]"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="Dl8@Hb3TsdNEjD;lnCUc"> <field name="NUM">9</field> </block> </value> <next> <block type="variables_set" id=":sn1O`h-VhceoMK_}_zI"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="j8$xrAL~{Ydw9I(iUNH#"> <field name="oid">sonoff.0.ESP01RelayX401.POWER1</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="CASECONDITION1"> <block type="math_arithmetic" id="),k9?lv.o/om3NomMr{W"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="vc33fGuq!FL{t{]S!_;G"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="/$`U7I8kK^YGGgl(DAd7"> <field name="VAR" id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</field> </block> </value> <value name="B"> <shadow type="math_number" id=";ss@7U#hL!Y5^=@d-cyg"> <field name="NUM">2</field> </shadow> </value> </block> </value> <statement name="CASE1"> <block type="variables_set" id="]YYXU.NFb7e.b8{r]`%d"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="B7cr[{hU-7$(jxs(WceL"> <field name="TEXT">Klären</field> </block> </value> <next> <block type="variables_set" id=")Fq{]z_uqqB=GtjEjpdu"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="6d=`Qh,[~2xrxDp9i`!*"> <field name="NUM">1</field> </block> </value> <next> <block type="variables_set" id="*q!j9!sgKD)sJ%*5siPA"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="9J0G}NXJt{.8;!RJ)(43"> <field name="oid">sonoff.0.ESP01RelayX401.POWER2</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="CASECONDITION2"> <block type="math_arithmetic" id="fE`0aSbODB?[jtna2h}v"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="9/@{ZNE,kkpqqO2SG.2G"> <field name="VAR" id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</field> </block> </value> <value name="B"> <shadow type="math_number" id="XO++b0v;S*j;NMzvi;BH"> <field name="NUM">3</field> </shadow> </value> </block> </value> <statement name="CASE2"> <block type="variables_set" id="hGGvl6[y[m4/|,yw.QPA"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="~MYYG0S{7.2[+7412#d^"> <field name="TEXT">Abzug</field> </block> </value> <next> <block type="variables_set" id="C3odK@MB[#t1Z!(50$h~"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="wGY=4_:8UGJK@F[qh?CK"> <field name="NUM">2</field> </block> </value> <next> <block type="variables_set" id="4SJl[9P1}0vuufWTQ,gH"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="K]x~$R#NFUG$7nrxrjbr"> <field name="oid">sonoff.0.ESP01RelayX401.POWER3</field> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ONDEFAULT"> <block type="variables_set" id="cn^2?^q%(MRPg+t~|#f%"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="twa}Ya*L[_eS--R(9S$V"> <field name="TEXT">Belüften</field> </block> </value> <next> <block type="variables_set" id=".dN:vw*pv!Rx![CkY*me"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="tkz!m@SJi@i$wECG?W*u"> <field name="NUM">2</field> </block> </value> <next> <block type="variables_set" id="sAiPw#-5qUpH59i,w_q@"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="mfa)=^OKxEB7*Vy[5hJ7"> <field name="oid">sonoff.0.ESP01RelayX401.POWER4</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id=",laPhqT$2^q}#uw|]$57" inline="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="kpr2?rx6Oo(R!:{uo?[L"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="|OWmKH~#2EH#6pT;!b!z"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> </block> </value> <next> <block type="control_ex" id="?xxiMro8f;`R8-;/C}1-" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="R6fq3uZ1TbEH^yDHOu+5"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="|1;~@dEA*KaUDfky)uq]"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="xGaD39SHe-c!$4B$s7_,"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="62Up,oPj.ONas*pY]Qv]"> <field name="NUM">0</field> </shadow> </value> <next> <block type="variables_set" id="3li0*|1lax?f;F+:xi_C"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_arithmetic" id="f~Cr0$$;v1AjdeH+XL1O"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="N*%].JB82X(RWzub}nc4"> <field name="NUM">6000</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="]8qP1.$j[3NPArG{fwGg"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="j9)yUKvy`yucNRO%|w-B"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> </block> </value> </block> </value> <next> <block type="timeouts_wait" id="{2_Egnhe*UM9dv?aB_0q"> <field name="DELAY">aktiv</field> <field name="UNIT">ms</field> <next> <block type="debug" id="jpLPS1!9N,JjrD~RrbNj" inline="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="}?Aue~0~0}p3Ot%QMZ_m"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="Q_1MS;Z#CD-9!QqR+ov," inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="H(-VA)t,[tNL65R]phgS"> <field name="TEXT">Pause nach Zyklus </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="f)mniute:lYRX;Lo1L#o"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> </block> </value> </block> </value> <next> <block type="control_ex" id="5XKm$I@/+?lxIq6-oWgE" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="ejUb?Vk`*~ZA?E~#|6-~"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="7=4Y)RVjD|n{@V44yt$%"> <field name="BOOL">FALSE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="IUheJ~n5,kLG+,l?=x{="> <field name="NUM">0</field> </shadow> </value> <next> <block type="timeouts_wait" id="!1,aeu-Y^,Q9fm6k-f0-"> <field name="DELAY">20</field> <field name="UNIT">sec</field> <next> <block type="math_change" id="8!jZ7qRMdtTg`][GxhqZ"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> <value name="DELTA"> <shadow type="math_number" id="_ovQLRk0lG81[Pr2ZD)^"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="5lv2Cb$=H;.$u7|}!?c!"> <value name="IF0"> <block type="logic_compare" id="^k+eR16;c*YM0*wF2Ej`"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="c=`nSX8+Nm|,zsbI/TED"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> </block> </value> <value name="B"> <block type="math_number" id="W0y?-yQIX9R,GFvo]o?O"> <field name="NUM">7</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="Xo=5qp[$2KyN_0Lygm8m"> <mutation name="schleife"></mutation> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@schroed99 sagte: Hier der Code
Du musst noch die Bedingung für die Fortführung der Schleife anpassen:
-
@paul53 Ja, das ist richtig. Wenn der Skript eingestellt ist, sollte der Durchlauf genau 3 mal pro Tag ausreichend sein. Bedeutet jeder durchlauf mit allen 7 Schritten dauert in Summe 8 Stunden. Daraus folgt, genau 3 Durchläufe pro Tag.
Vielen Dank nochmal...
Gruß TristanHier nochmal die Anpassung, welche Paul gemeint hat.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="DuKnNK_fb{/Qq{IFWG$v">zyklus</variable> <variable id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</variable> <variable id="Z}P^~lcsIWmg$xymi]s|">msg</variable> <variable id="5e7CDB8d+z)p64]UEPq)">aktiv</variable> <variable id="j=8.H21R4p}Bl_6Ddd*o">idAktor</variable> </variables> <block type="on_ext" id="#2~L4UEK6FMI+P3C8_A}" x="88" y="-62"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="~YXNBsr?ey*s$f%:jZ4i"> <field name="oid">0_userdata.0.vis_Abwasser.Grubenpumpe_automatik_aktiv</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id=";:Rs|y!a%3wq;-Gq4y)*"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> <value name="VALUE"> <block type="math_number" id="s-)-z[loX]EMloKW0R@j"> <field name="NUM">1</field> </block> </value> <next> <block type="variables_set" id="3t3kFLx5D@^``,VtG=iF"> <field name="VAR" id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</field> <value name="VALUE"> <block type="get_value" id="0P~iY+t6f^Sol4pT||2S"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.vis_Abwasser.Grubenpumpe_belueftungs_zyklen</field> </block> </value> <next> <block type="procedures_callnoreturn" id="$n5B(VFgEN|}34zr:zK6"> <mutation name="schleife"></mutation> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="KAYmjF~QMX34:y[iSp-^" x="88" y="138"> <field name="NAME">schleife</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="logic_switch_case" id="XpXI#,j.tC[~8GE+~{XJ"> <mutation xmlns="http://www.w3.org/1999/xhtml" case="2" default="1"></mutation> <value name="CONDITION"> <block type="variables_get" id="Xoh).rKK_L[CJQ0^}+s0"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> </block> </value> <value name="CASECONDITION0"> <block type="math_number" id="FJUpW46g[o_p9Un*Nw~^"> <field name="NUM">1</field> </block> </value> <statement name="CASE0"> <block type="variables_set" id="0J#T-Qd7+AzZ5/[U5^m:"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="TAm,2C|I#_JI1FaKw%$C"> <field name="TEXT">Beschicken</field> </block> </value> <next> <block type="variables_set" id="WU.#loWYjVs;k[ZjmX|]"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="Dl8@Hb3TsdNEjD;lnCUc"> <field name="NUM">9</field> </block> </value> <next> <block type="variables_set" id=":sn1O`h-VhceoMK_}_zI"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="j8$xrAL~{Ydw9I(iUNH#"> <field name="oid">sonoff.0.ESP01RelayX401.POWER1</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="CASECONDITION1"> <block type="math_arithmetic" id="),k9?lv.o/om3NomMr{W"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="vc33fGuq!FL{t{]S!_;G"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="/$`U7I8kK^YGGgl(DAd7"> <field name="VAR" id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</field> </block> </value> <value name="B"> <shadow type="math_number" id=";ss@7U#hL!Y5^=@d-cyg"> <field name="NUM">2</field> </shadow> </value> </block> </value> <statement name="CASE1"> <block type="variables_set" id="]YYXU.NFb7e.b8{r]`%d"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="B7cr[{hU-7$(jxs(WceL"> <field name="TEXT">Klären</field> </block> </value> <next> <block type="variables_set" id=")Fq{]z_uqqB=GtjEjpdu"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="6d=`Qh,[~2xrxDp9i`!*"> <field name="NUM">1</field> </block> </value> <next> <block type="variables_set" id="*q!j9!sgKD)sJ%*5siPA"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="9J0G}NXJt{.8;!RJ)(43"> <field name="oid">sonoff.0.ESP01RelayX401.POWER2</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="CASECONDITION2"> <block type="math_arithmetic" id="fE`0aSbODB?[jtna2h}v"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="9/@{ZNE,kkpqqO2SG.2G"> <field name="VAR" id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</field> </block> </value> <value name="B"> <shadow type="math_number" id="XO++b0v;S*j;NMzvi;BH"> <field name="NUM">3</field> </shadow> </value> </block> </value> <statement name="CASE2"> <block type="variables_set" id="hGGvl6[y[m4/|,yw.QPA"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="~MYYG0S{7.2[+7412#d^"> <field name="TEXT">Abzug</field> </block> </value> <next> <block type="variables_set" id="C3odK@MB[#t1Z!(50$h~"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="wGY=4_:8UGJK@F[qh?CK"> <field name="NUM">2</field> </block> </value> <next> <block type="variables_set" id="4SJl[9P1}0vuufWTQ,gH"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="K]x~$R#NFUG$7nrxrjbr"> <field name="oid">sonoff.0.ESP01RelayX401.POWER3</field> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ONDEFAULT"> <block type="variables_set" id="cn^2?^q%(MRPg+t~|#f%"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> <value name="VALUE"> <block type="text" id="twa}Ya*L[_eS--R(9S$V"> <field name="TEXT">Belüften</field> </block> </value> <next> <block type="variables_set" id=".dN:vw*pv!Rx![CkY*me"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_number" id="tkz!m@SJi@i$wECG?W*u"> <field name="NUM">2</field> </block> </value> <next> <block type="variables_set" id="sAiPw#-5qUpH59i,w_q@"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> <value name="VALUE"> <block type="field_oid" id="mfa)=^OKxEB7*Vy[5hJ7"> <field name="oid">sonoff.0.ESP01RelayX401.POWER4</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id=",laPhqT$2^q}#uw|]$57" inline="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="kpr2?rx6Oo(R!:{uo?[L"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="|OWmKH~#2EH#6pT;!b!z"> <field name="VAR" id="Z}P^~lcsIWmg$xymi]s|">msg</field> </block> </value> <next> <block type="control_ex" id="?xxiMro8f;`R8-;/C}1-" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="R6fq3uZ1TbEH^yDHOu+5"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="|1;~@dEA*KaUDfky)uq]"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="xGaD39SHe-c!$4B$s7_,"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="62Up,oPj.ONas*pY]Qv]"> <field name="NUM">0</field> </shadow> </value> <next> <block type="variables_set" id="3li0*|1lax?f;F+:xi_C"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> <value name="VALUE"> <block type="math_arithmetic" id="f~Cr0$$;v1AjdeH+XL1O"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="N*%].JB82X(RWzub}nc4"> <field name="NUM">60000</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="]8qP1.$j[3NPArG{fwGg"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="j9)yUKvy`yucNRO%|w-B"> <field name="VAR" id="5e7CDB8d+z)p64]UEPq)">aktiv</field> </block> </value> </block> </value> <next> <block type="timeouts_wait" id="{2_Egnhe*UM9dv?aB_0q"> <field name="DELAY">aktiv</field> <field name="UNIT">ms</field> <next> <block type="debug" id="jpLPS1!9N,JjrD~RrbNj" inline="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="}?Aue~0~0}p3Ot%QMZ_m"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="Q_1MS;Z#CD-9!QqR+ov," inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="H(-VA)t,[tNL65R]phgS"> <field name="TEXT">Pause nach Zyklus </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="f)mniute:lYRX;Lo1L#o"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> </block> </value> </block> </value> <next> <block type="control_ex" id="5XKm$I@/+?lxIq6-oWgE" inline="true"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="ejUb?Vk`*~ZA?E~#|6-~"> <field name="VAR" id="j=8.H21R4p}Bl_6Ddd*o">idAktor</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="7=4Y)RVjD|n{@V44yt$%"> <field name="BOOL">FALSE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="IUheJ~n5,kLG+,l?=x{="> <field name="NUM">0</field> </shadow> </value> <next> <block type="timeouts_wait" id="!1,aeu-Y^,Q9fm6k-f0-"> <field name="DELAY">20</field> <field name="UNIT">sec</field> <next> <block type="math_change" id="8!jZ7qRMdtTg`][GxhqZ"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> <value name="DELTA"> <shadow type="math_number" id="_ovQLRk0lG81[Pr2ZD)^"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="5lv2Cb$=H;.$u7|}!?c!"> <value name="IF0"> <block type="logic_compare" id="^k+eR16;c*YM0*wF2Ej`"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="c=`nSX8+Nm|,zsbI/TED"> <field name="VAR" id="DuKnNK_fb{/Qq{IFWG$v">zyklus</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="=1GvY1`!n|gD+W}/y[+j"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="Olj%1fZ%^64YjAqmIT,="> <field name="NUM">1</field> </shadow> <block type="variables_get" id="t0:G([-2Gn+Eev.eh!r6"> <field name="VAR" id=":Mj#Vtl}cC1M:v#90=PD">anzahlBelueftung</field> </block> </value> <value name="B"> <shadow type="math_number" id="}Vs.kYIcqv@{p-XTS/w3"> <field name="NUM">3</field> </shadow> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="Xo=5qp[$2KyN_0Lygm8m"> <mutation name="schleife"></mutation> <next> <block type="debug" id="au5|8a.:-r/9RJ2))RAJ"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="N%T)TpX4lmHQRuuROx4]"> <field name="TEXT">ende</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>