@paul53
ALLES SUPER!!! Ich habe es auch mit 3 "virtuellen" Fenstern probiert- Alle Intervalle und Verzögerungen werden beendet!
Ich spende dafür an die Community.
@paul53
ALLES SUPER!!! Ich habe es auch mit 3 "virtuellen" Fenstern probiert- Alle Intervalle und Verzögerungen werden beendet!
Ich spende dafür an die Community.
@paul53 said in Blockly- Funktion parallel nutzen?:
Die Funktion "FensterGeschlossen" hat einen falschen Index-Parameter. Richtig:
Ich habe die Variable der Index- Parameter eingesetzt. Leider werden die Intervalle nicht beendet. Hier das Protokoll. Wie kann ich denn den Inhalt der Variable ArrayTimers abfragen?
@paul53 said in Blockly- Funktion parallel nutzen?:
Außerdem fehlen Trigger! Unter den Kommentaren rechts gibt es keinen Code.
Da ist offensichtlich einiges durch den Export schiefgelaufen. Tut mir leid, dass wir uns erst darum kümmern müssen. Die Kommentare sind die Vorbereitungen für die weiteren Fenster, sind also nicht von Belang. Ich denke, dass auch die drei leeren Javascript- Funktionen zu löschen sind. Ich hatte das so gemacht:
@paul53
Die Javafunktionen sind bei Dir doppelt; bei mir nicht.
@paul53 So jetzt die richtige Art und Weise:
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</variable>
<variable id="p(W[d0N[f2HnVK,+ILAG">IndexTimeout</variable>
<variable id="%_qg}v}.9@@x`l~Mv^%;">IndexIntervall</variable>
<variable id="g/ygbE%OPN13N]s~uZ$5">AnzahlFenster</variable>
<variable id="/E-BZ/K@f;6(OVZk^~-%">IndexTimers</variable>
<variable id="0*n-Iisj6AVII3fuc[v|">Öffnungsdauer</variable>
<variable type="interval" id="Intervall1">Intervall1</variable>
<variable type="timeout" id="timeout">timeout</variable>
<variable type="timeout" id="ÖffnungsDauer">ÖffnungsDauer</variable>
<variable type="interval" id="Intervall2">Intervall2</variable>
<variable id="yMoUzx;1^9IrjPE~A@*g">ÖffnungsZeitPunkt</variable>
<variable id="s5T6d/O7[v6{N(jrO,!o">MeldeText</variable>
</variables>
<block type="procedures_defcustomnoreturn" id="S=f#9VBY1~cs$q1L6(jx" x="-2088" y="-2887">
<mutation statements="false">
<arg name="ArrayTimers" varid="g+6nrV3tQ{,IF[m~IK^("></arg>
<arg name="IndexTimeout" varid="p(W[d0N[f2HnVK,+ILAG"></arg>
</mutation>
<field name="NAME">StopTimeout</field>
<field name="SCRIPT">Y2xlYXJUaW1lb3V0KEFycmF5VGltZXJzW0luZGV4VGltZW91dCAtIDFdKTsNCkFycmF5VGltZXJzW0luZGV4VGltZW91dCAtIDFdID0gbnVsbDsNCg==</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
</block>
<block type="comment" id="GzMVcH-3CYbc=i_b~e;B" x="-1212" y="-2888">
<field name="COMMENT">Arbeitszimmerfenster groß</field>
<next>
<block type="procedures_callnoreturn" id="|9ueLg|m=g6;48ItnFsP">
<mutation name="FensterOffen">
<arg name="ArrayTimers"></arg>
<arg name="IndexTimers"></arg>
<arg name="Öffnungsdauer"></arg>
</mutation>
<value name="ARG0">
<block type="math_number" id="*m!iSuBuhscD=JZeWy|!">
<field name="NUM">1</field>
</block>
</value>
<value name="ARG1">
<block type="math_number" id="btJ}~3![4a+YxQ.L`n4)">
<field name="NUM">1</field>
</block>
</value>
<value name="ARG2">
<block type="math_number" id="tAc[wt%;2.x,2L@q{%fk">
<field name="NUM">30000</field>
</block>
</value>
<next>
<block type="timeouts_settimeout_variable" id="]$N9CYLQVS3sQ:-*h@}7">
<field name="NAME">timeout</field>
<value name="DELAY_MS">
<shadow type="math_number" id="CKhF*38oSlH8($1|2aH`">
<field name="NUM">120500</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="debug" id="uthdqp%mA?9Lp`~)6$4K">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="H1:f)d/3jX6R3WZv!x$e">
<field name="TEXT">Start FensterGeschlossen</field>
</shadow>
</value>
<next>
<block type="procedures_callnoreturn" id="{z~1sA~+csUD/$:hct:l">
<mutation name="FensterGeschlossen">
<arg name="ArrayTimers"></arg>
<arg name="IndexTimeout"></arg>
</mutation>
<value name="ARG0">
<block type="math_number" id="445?m5v-$o#=Tep7X{U=">
<field name="NUM">1</field>
</block>
</value>
<value name="ARG1">
<block type="math_number" id="1$WiM)k43X77jh?beHQG">
<field name="NUM">1</field>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
<block type="procedures_defcustomnoreturn" id="$2lBpa`%y;B6kT5%{XL8" x="-2087" y="-2837">
<mutation statements="false">
<arg name="ArrayTimers" varid="g+6nrV3tQ{,IF[m~IK^("></arg>
<arg name="IndexIntervall" varid="%_qg}v}.9@@x`l~Mv^%;"></arg>
</mutation>
<field name="NAME">StopIntervall</field>
<field name="SCRIPT">Y2xlYXJJbnRlcnZhbChBcnJheVRpbWVyc1tJbmRleEludGVydmFsbCAtIDFdKTsNCkFycmF5VGltZXJzW0luZGV4SW50ZXJ2YWxsIC0gMV0gPSBudWxsOw0K</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
</block>
<block type="variables_set" id="bx7(/tEKxr_Bl]Xx,)B@" x="-2088" y="-2788">
<field name="VAR" id="g/ygbE%OPN13N]s~uZ$5">AnzahlFenster</field>
<value name="VALUE">
<block type="math_number" id=")w}rxa.pOVfe$uv6!sp.">
<field name="NUM">5</field>
</block>
</value>
<next>
<block type="variables_set" id="_niy6d)4cvExrsM$L/YS">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
<value name="VALUE">
<block type="lists_repeat" id="1bnihm,HZv.@!r%e,n3q">
<value name="NUM">
<shadow type="math_number" id="x8h[nQ5=DyK:|y8YI]{L">
<field name="NUM">5</field>
</shadow>
<block type="math_arithmetic" id="B_uTA3a_sh|C(oZ(KRvV">
<field name="OP">MULTIPLY</field>
<value name="A">
<shadow type="math_number" id="$4F~_Y|_c|(_VHa5D0hX">
<field name="NUM">3</field>
</shadow>
</value>
<value name="B">
<shadow type="math_number" id="bMTAlX]Y+bjUFZz11Tg%">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="Phu~zO[:eM)#G~Azq3y:">
<field name="VAR" id="g/ygbE%OPN13N]s~uZ$5">AnzahlFenster</field>
</block>
</value>
</block>
</value>
<value name="ITEM">
<block type="logic_null" id="I^cnLUTq+ZRxQlC*VS*0"></block>
</value>
</block>
</value>
<next>
<block type="debug" id="Qnr.yV@?,hrg!Qn,mJIp">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="j7z(zxS#a7]6+Odd{XF|">
<field name="TEXT">test</field>
</shadow>
<block type="text_join" id="86:`bar$6$(~#a*ge%#4">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text" id="Ib+$Id~N#VG/H1u_e*k]">
<field name="TEXT">Liste ArrayTimers: </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="IZgv]TH!|NcY@]Y2d*^Z">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
<block type="procedures_defnoreturn" id="5^HjYAt*+K95^eH{VCT(" x="-2087" y="-2563">
<mutation>
<arg name="ArrayTimers" varid="g+6nrV3tQ{,IF[m~IK^("></arg>
<arg name="IndexTimers" varid="/E-BZ/K@f;6(OVZk^~-%"></arg>
<arg name="Öffnungsdauer" varid="0*n-Iisj6AVII3fuc[v|"></arg>
</mutation>
<field name="NAME">FensterOffen</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK">
<block type="timeouts_setinterval" id="1QhJE}k)trKWh`89rarP">
<field name="NAME">Intervall1</field>
<field name="INTERVAL">1</field>
<field name="UNIT">min</field>
<statement name="STATEMENT">
<block type="comment" id="v?oX~}M?^henzDlV1jb}">
<field name="COMMENT">Prüfung Temperatur- Abfall</field>
<next>
<block type="debug" id="(q~u;{y11i0/1/sV2f5?">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="o16:WvT@x:fkmExF[T`[">
<field name="TEXT">Intervall Temp</field>
</shadow>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="lists_setIndex" id="mE{SWFhfuS0[L,iUQbNM">
<mutation at="true"></mutation>
<field name="MODE">SET</field>
<field name="WHERE">FROM_START</field>
<value name="LIST">
<block type="variables_get" id="Ul$ZCjlT^Y_,A$xCO;Ls">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="AT">
<block type="variables_get" id="4}m$bqS!.YFN=W)0#rt3">
<field name="VAR" id="p(W[d0N[f2HnVK,+ILAG">IndexTimeout</field>
</block>
</value>
<value name="TO">
<block type="timeouts_getinterval" id="R~k|l]p@:Avi+gRl=q#B">
<field name="NAME">Intervall1</field>
</block>
</value>
<next>
<block type="timeouts_settimeout_variable" id="}7~B}r0[z$rXKNR,6W0,">
<field name="NAME">ÖffnungsDauer</field>
<value name="DELAY_MS">
<shadow type="math_number" id="q@=Ix=*vO+/=.24d6bNL">
<field name="NUM">1000</field>
</shadow>
<block type="variables_get" id="6xLrUl?[pMnvAUDI7PNu">
<field name="VAR" id="0*n-Iisj6AVII3fuc[v|">Öffnungsdauer</field>
</block>
</value>
<statement name="STATEMENT">
<block type="timeouts_setinterval" id="v6@6ewa+AzG~782Lp-g4">
<field name="NAME">Intervall2</field>
<field name="INTERVAL">10</field>
<field name="UNIT">sec</field>
<statement name="STATEMENT">
<block type="comment" id="qBHJ8:~,EsO7NS`}ITd=">
<field name="COMMENT">WarteSchleife</field>
<next>
<block type="debug" id="w+nW3xZhrx%__Rp#2G!_">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="?0IDvpCDtkHR{54A-$)T">
<field name="TEXT">Intervall Erinnerung</field>
</shadow>
</value>
<next>
<block type="variables_set" id="VL[)~y$^]UMpdd~NgN-]" disabled="true">
<field name="VAR" id="0*n-Iisj6AVII3fuc[v|">Öffnungsdauer</field>
<value name="VALUE">
<block type="math_arithmetic" id="`)-Biv].KYFy]sG_i16J">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id=":tS,eZ.--]~.Sm)e?S[A">
<field name="NUM">1</field>
</shadow>
<block type="time_get" id="_:ER!6r02vd@Ix+8y7J_">
<mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
<field name="OPTION">object</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="!zH[$Mx_PChS=,{](mlG">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="JeM;yfz?5PkLLZ4pxNqP">
<field name="VAR" id="yMoUzx;1^9IrjPE~A@*g">ÖffnungsZeitPunkt</field>
</block>
</value>
</block>
</value>
<next>
<block type="control" id="xvFv{n+1}8^.s##z1PrY" disabled="true">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">alexa2.0.Echo-Devices.1455c671b2be4dd1951d8e4db04259d2.Commands.speak</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="variables_get" id="7Ys+NSRCu#T7zBt1f`+Q">
<field name="VAR" id="s5T6d/O7[v6{N(jrO,!o">MeldeText</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="lists_setIndex" id="blB~5;Eae=)h{h2IM,!I">
<mutation at="true"></mutation>
<field name="MODE">SET</field>
<field name="WHERE">FROM_START</field>
<value name="LIST">
<block type="variables_get" id="tz9c.oA8usNH)]MxO#vM">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="AT">
<block type="math_arithmetic" id="~!yOMq;]|@)oi?~#dFU9">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="K$H/gfz_vee9wMxLVN}G">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="kB95O:*fnlvsm6iy,#sl">
<field name="VAR" id="p(W[d0N[f2HnVK,+ILAG">IndexTimeout</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="r7Cls,G(iQ^wZy%#%/gC">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
<value name="TO">
<block type="timeouts_getinterval" id="?-Ap#_*g8f]oUsKQN8*P">
<field name="NAME">Intervall2</field>
</block>
</value>
<next>
<block type="debug" id="S3Z]o}ZH5#1HddLr*6Yb">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="Xlw{Fjz@%J]fs5d.P|`B">
<field name="TEXT">TimeOut Öffnungsdauer</field>
</shadow>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
<next>
<block type="lists_setIndex" id=",XUD}nx#!z*U4~bui9d}">
<mutation at="true"></mutation>
<field name="MODE">SET</field>
<field name="WHERE">FROM_START</field>
<value name="LIST">
<block type="variables_get" id="E=b;+aT%jQ$6z%wS%~B*">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="AT">
<block type="math_arithmetic" id="`CiaM+aY500.x_]N(Fc:">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="K$H/gfz_vee9wMxLVN}G">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="FE+|,T{}OQIRjmhqDvqX">
<field name="VAR" id="p(W[d0N[f2HnVK,+ILAG">IndexTimeout</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="+vZO}%w/7t?v=wc9E}SC">
<field name="NUM">2</field>
</shadow>
</value>
</block>
</value>
<value name="TO">
<block type="timeouts_gettimeout" id=".cjuFlM~jcB9(yw;Tog|">
<field name="NAME">ÖffnungsDauer</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
<block type="comment" id="@*A%%xEWJGMKw_QiXqX~" x="-287" y="-2588">
<field name="COMMENT">Wohnzimmerfenster groß</field>
</block>
<block type="comment" id="nA9fJJMq;BYnlkU`X(gG" x="237" y="-2587">
<field name="COMMENT">Schlafzimmerfenster</field>
</block>
<block type="comment" id="C)ymt@4Jy,slQux8ZG^j" x="-313" y="-2288">
<field name="COMMENT">Wohnzimmerfenster klein</field>
</block>
<block type="comment" id="il9Gb%i@YqBme2|9Z7ga" x="-837" y="-2187">
<field name="COMMENT">Arbeitszimmerfensterr klein</field>
</block>
<block type="procedures_defnoreturn" id="zAi0;S.6~*7-V,@?(@6," x="-2088" y="-1863">
<mutation>
<arg name="ArrayTimers" varid="g+6nrV3tQ{,IF[m~IK^("></arg>
<arg name="IndexTimeout" varid="p(W[d0N[f2HnVK,+ILAG"></arg>
</mutation>
<field name="NAME">FensterGeschlossen</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK">
<block type="procedures_callcustomnoreturn" id="qC@2BRvq`%`j-fhz/`BU">
<mutation name="StopIntervall">
<arg name="ArrayTimers"></arg>
<arg name="IndexIntervall"></arg>
</mutation>
<value name="ARG0">
<block type="variables_get" id="7e-UtwLa4;S6l|[nSAa_">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="ARG1">
<block type="variables_get" id="i-@Lg|%8}PIsV+]@-P8l">
<field name="VAR" id="/E-BZ/K@f;6(OVZk^~-%">IndexTimers</field>
</block>
</value>
<next>
<block type="debug" id="TAa]N;KrBTkQYK*BL%:H">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="T98*at1O[p/5:$OB$Ci@">
<field name="TEXT">test</field>
</shadow>
<block type="text_join" id="m*AF.A!1@M{]iJ_:HF[m">
<mutation items="3"></mutation>
<value name="ADD0">
<block type="text_multiline" id="VEZEu:}uJ=Dgn?Rkf-KI">
<field name="TEXT">STOPIntervall0: </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="d`zSlLYuoSA;#qE0X`yK">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="ADD2">
<block type="variables_get" id="nOEFZ0cgXOuY);`2,V7!">
<field name="VAR" id="/E-BZ/K@f;6(OVZk^~-%">IndexTimers</field>
</block>
</value>
</block>
</value>
<next>
<block type="procedures_callcustomnoreturn" id="!:,Nr@f|,-46Afp]fJ}7">
<mutation name="StopIntervall">
<arg name="ArrayTimers"></arg>
<arg name="IndexIntervall"></arg>
</mutation>
<value name="ARG0">
<block type="variables_get" id="v-w^hbXU)^qfHQ{9YNlc">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="ARG1">
<block type="math_arithmetic" id="A?k)bX6+`k4.-QEQbJ31">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="3XI5idkEpUpVU1.+:r%J">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="|L0^ti[yNoGz]fZGBu+R">
<field name="VAR" id="/E-BZ/K@f;6(OVZk^~-%">IndexTimers</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="5nUVeN-5-(n0Fw])*8wj">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
<next>
<block type="debug" id=",`MtO/1LU.{hl3p,L78D">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="T98*at1O[p/5:$OB$Ci@">
<field name="TEXT">test</field>
</shadow>
<block type="text_join" id="~Tn(DAM#?M3dI)7-GvG-">
<mutation items="3"></mutation>
<value name="ADD0">
<block type="text_multiline" id="N*9pA,tszS8=(u5*tqHv">
<field name="TEXT">STOPIntervall1: </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="4_SKW(@S#wJ*[NMIUTh6">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="ADD2">
<block type="variables_get" id="/+d^+5z=Ns/fSY@bzEaN">
<field name="VAR" id="/E-BZ/K@f;6(OVZk^~-%">IndexTimers</field>
</block>
</value>
</block>
</value>
<next>
<block type="procedures_callcustomnoreturn" id="FduII27%5dbe/BsgbClx">
<mutation name="StopTimeout">
<arg name="ArrayTimers"></arg>
<arg name="IndexTimeout"></arg>
</mutation>
<value name="ARG0">
<block type="variables_get" id="8%Ec6h{O-,,h17P~F(@=">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="ARG1">
<block type="math_arithmetic" id="2Jgg3IiMR6pm@!kcX{io">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="3XI5idkEpUpVU1.+:r%J">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id=":2!eIfq2rvf`vn3DE(8k">
<field name="VAR" id="/E-BZ/K@f;6(OVZk^~-%">IndexTimers</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="L~Oj6i*]0QycQvq]o?1l">
<field name="NUM">2</field>
</shadow>
</value>
</block>
</value>
<next>
<block type="debug" id="YlpX|u)3/9ck^Pyy]j4,">
<field name="Severity">info</field>
<value name="TEXT">
<shadow type="text" id="T98*at1O[p/5:$OB$Ci@">
<field name="TEXT">test</field>
</shadow>
<block type="text_join" id="0oE%qLR?#1pvf8R{,kP;">
<mutation items="3"></mutation>
<value name="ADD0">
<block type="text_multiline" id="ROI3:/`5-CPd]%qMrqwT">
<field name="TEXT">STOPTimeout: </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="x%dBU`zok_m,A(byQ3Qg">
<field name="VAR" id="g+6nrV3tQ{,IF[m~IK^(">ArrayTimers</field>
</block>
</value>
<value name="ADD2">
<block type="variables_get" id="a}rI_:m#E:}rIb30z_9U">
<field name="VAR" id="/E-BZ/K@f;6(OVZk^~-%">IndexTimers</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</xml>
@paul53 said in Blockly- Funktion parallel nutzen?:
Poste bitte den kompletten Export (XML) in Code tags.
Ich hoffe, dass es so richtig gepostet ist:
var ArrayTimers, IndexTimeout, IndexIntervall, AnzahlFenster, IndexTimers, _C3_96ffnungsdauer, Intervall1, timeout, _C3_96ffnungsdauer, Intervall2, _C3_96ffnungsZeitPunkt, MeldeText;
// Beschreibe diese Funktion …
async function StopTimeout(ArrayTimers, IndexTimeout) {
clearTimeout(ArrayTimers[IndexTimeout - 1]);
ArrayTimers[IndexTimeout - 1] = null;
}
// Beschreibe diese Funktion …
async function StopIntervall(ArrayTimers, IndexIntervall) {
clearInterval(ArrayTimers[IndexIntervall - 1]);
ArrayTimers[IndexIntervall - 1] = null;
}
function listsRepeat(value, n) {
var array = [];
for (var i = 0; i < n; i++) {
array[i] = value;
}
return array;
}
// Beschreibe diese Funktion …
async function FensterOffen(ArrayTimers, IndexTimers, _C3_96ffnungsdauer) {
Intervall1 = setInterval(async () => {
// Prüfung Temperatur- Abfall
console.info('Intervall Temp');
}, 60000);
ArrayTimers[(IndexTimeout - 1)] = Intervall1;
_C3_96ffnungsDauer = setTimeout(async () => {
_C3_96ffnungsDauer = null;
Intervall2 = setInterval(async () => {
// WarteSchleife
console.info('Intervall Erinnerung');
}, 10000);
ArrayTimers[((IndexTimeout + 1) - 1)] = Intervall2;
console.info('TimeOut Öffnungsdauer');
}, parseInt(_C3_96ffnungsdauer));
ArrayTimers[((IndexTimeout + 2) - 1)] = _C3_96ffnungsDauer;
}
// Beschreibe diese Funktion …
async function FensterGeschlossen(ArrayTimers, IndexTimeout) {
await StopIntervall(ArrayTimers, IndexTimers);
console.info((['STOPIntervall0: ',ArrayTimers,IndexTimers].join('')));
await StopIntervall(ArrayTimers, IndexTimers + 1);
console.info((['STOPIntervall1: ',ArrayTimers,IndexTimers].join('')));
await StopTimeout(ArrayTimers, IndexTimers + 2);
console.info((['STOPTimeout: ',ArrayTimers,IndexTimers].join('')));
}
// Arbeitszimmerfenster groß
await FensterOffen(1, 1, 30000);
timeout = setTimeout(async () => {
timeout = null;
console.info('Start FensterGeschlossen');
await FensterGeschlossen(1, 1);
}, parseInt(120500));
AnzahlFenster = 5;
ArrayTimers = listsRepeat(null, 3 * AnzahlFenster);
console.info(('Liste ArrayTimers: ' + String(ArrayTimers)));
// Wohnzimmerfenster groß
// Schlafzimmerfenster
// Wohnzimmerfenster klein
// Arbeitszimmerfensterr klein
@paul53 Hallo, ich habe nun versucht das Angedachte umzusetzen. Es läuft noch nicht, da die beiden Intervalle nicht gestoppt werden. Ich denke, dass die Indexe nicht in die Liste geschrieben werden und/ oder die Zuordnung zu den Intervallen fehlt. Kannst du Dir das bitte mal anschauen? DANKE
@paul53 Prima- DANKE! Versuche ich mal so umzusetzen.
@paul53 Danke! Muss ich etwas verdauen, sieht aber gut aus!
@codierknecht Mit JS sieht es bei mir schlecht aus. Siehst Du eine Blockly- Möglichkeit, in der Funktion FensterOffen auf eine Antwort für Zustand "Fenster zu" zu warten, mit deren Hilfe dann die Intervalle/ TimeOut in gleicher Funktion beendet werden können?