Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly- Funktion parallel nutzen?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly- Funktion parallel nutzen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • UMuellex
      UMuellex last edited by

      Ich habe an verschiedenen Fenstern Öffnungssensoren. Für jedes einzelnen Fenster übergebe ich an 1 Funktion z.B. Öffnungszeitpunkt und -dauer. Sobald mehr als ein Fenster geöffnet wird, muss die Funktion mehrfach mit den übergebenen Parametern unabhängig gestartet werden. Gibt es dafür eine Lösung? Ich denke da an eine Art Serie. Danke schon mal für die Beteiligung!

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @UMuellex last edited by

        @umuellex sagte in Blockly- Funktion parallel nutzen?:

        Sobald mehr als ein Fenster geöffnet wird, muss die Funktion mehrfach mit den übergebenen Parametern unabhängig gestartet werden. Gibt es dafür eine Lösung?

        Eine Lösung wofür? Wo liegt das Problem?

        Die Fenster werden ja nicht auf die Millisekunde zum gleichen Zeitpunkt geöffnet.
        Also muss diese Funktion zwingend mehrfach nacheinander aufgerufen werden.

        Und aus den paar Sätzen kann man sich wenig zusammenreimen: Zeigen!
        https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

        UMuellex 1 Reply Last reply Reply Quote 0
        • UMuellex
          UMuellex @Codierknecht last edited by

          @codierknecht Also: Meine Beschreibung sollte ein Extrakt zur Einleitung sein. Ich wollte den Fokus auf die Funktion einer Blockly- Funktion legen.
          Aber nun die Details zum besseren Verständnis:

          1. Ich triggere beim Öffnen/ Schließen auf eine jeweilige Funktion FensterOffen bzw. FensterGeschlossen:
            9d6ab5a2-a8ff-441b-99c3-2e2ca43b2762-image.png
          2. In der Funktion FensterOffen prüfe ich den Abfall der Raumtemperatur in einem Intervall. Ein zweites Intervall zur Erinnerung an das Schließen startet, wenn das TimeOut "Öffnungsdauer" abgelaufen ist:515cc6d5-1c5b-49bd-9547-cdd7e19fd3f9-image.png
          3. Die Funktion FensterGeschlossen beendet im Wesentlich die Intervalle bzw. das TimeOut:
            725bb01e-781a-45ce-93f0-9726d3b638fa-image.png

          Ich vermute im Moment, dass in der Kombination der beiden Funktionen der Fehler liegt. Wie soll Funktion FensterGeschlossen bei mehr als einem Start der Funktion FensterOffen wissen, welche Intervalle/ TimeOuts der Funktion FensterOffen es beenden soll? Bei zwei Starts (=zwei Fenster geöffnet) mit einem 1 menütigem Versatz funktionierte es mehrfach, so dass ich danach alle Fenster einbezogen habe.

          Ich hoffe, dass ich die Problematik ausreichend genau dargestellt habe.

          paul53 Codierknecht 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @UMuellex last edited by

            @umuellex sagte: welche Intervalle/ TimeOuts der Funktion FensterOffen es beenden soll?

            Jedes Fenster benötigt seine eigenen Timer.

            1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @UMuellex last edited by

              @umuellex
              Ah - jetzt habe ich auch verstanden was Du meinst.

              Man könnte beim Start des Scripts ein Array mit Objekten für jedes Fenster füllen.
              Jedes dieser Objekte enthält Variablen für dessen Timeouts.

              Wenn ein Fenster geöffnet/geschlossen wird, sucht man sich im Array das passende Objekt (Fenster) und startet/stoppt nur die Timeouts zum jeweiligen Fenster.

              Jetzt kommt das große ABER:
              In JS wäre das vermutlich relativ easy.
              Ich wüsste aber nicht, wie man das in Blockly realisieren könnte.

              UMuellex 1 Reply Last reply Reply Quote 0
              • UMuellex
                UMuellex @Codierknecht last edited by

                @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?

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @UMuellex last edited by paul53

                  @umuellex sagte: eine Blockly- Möglichkeit

                  Ich habe es mal auf die Timer-Behandlung beschränkt. Jedes Fenster hat einen Index-Bereich für die Timer von 3.

                  Blockly_temp.JPG

                  Javascript-Funktion stopTimeout(arrTimers, idxTimeout):

                  clearTimeout(arrTimers[idxTimeout - 1]);
                  arrTimers[idxTimeout - 1] = null;
                  

                  Javascript-Funktion stopIntervall(arrTimers, idxIntervall):

                  clearInterval(arrTimers[idxIntervall - 1]);
                  arrTimers[idxIntervall - 1] = null;
                  
                  UMuellex 1 Reply Last reply Reply Quote 0
                  • UMuellex
                    UMuellex @paul53 last edited by

                    @paul53 Danke! Muss ich etwas verdauen, sieht aber gut aus!

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @UMuellex last edited by

                      @umuellex sagte: Muss ich etwas verdauen

                      Die Timerliste kann man so initialisieren:

                      Blockly_temp.JPG

                      Das erste Fenster hat idxTimers = 1, das zweite Fenster idxTimers = 4 usw.

                      UMuellex 2 Replies Last reply Reply Quote 0
                      • UMuellex
                        UMuellex @paul53 last edited by

                        @paul53 Prima- DANKE! Versuche ich mal so umzusetzen.

                        1 Reply Last reply Reply Quote 0
                        • UMuellex
                          UMuellex @paul53 last edited by

                          @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? DANKEZeitz.CZS1a.ÖffnungsZeit_Fenster.xml

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @UMuellex last edited by

                            @umuellex sagte: Kannst du Dir das bitte mal anschauen?

                            Poste bitte den kompletten Export (XML) in Code tags.

                            UMuellex 1 Reply Last reply Reply Quote 0
                            • UMuellex
                              UMuellex @paul53 last edited by UMuellex

                              @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 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @UMuellex last edited by

                                @umuellex sagte: Ich hoffe, dass es so richtig gepostet ist:

                                Nein, das ist unbrauchbar.

                                UMuellex 1 Reply Last reply Reply Quote 0
                                • UMuellex
                                  UMuellex @paul53 last edited by

                                  @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 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @UMuellex last edited by paul53

                                    @umuellex sagte: richtige Art und Weise:

                                    Ja, aber es fehlt einiges und sieht sehr wirr aus:

                                    Blockly_temp.JPG

                                    Die beiden Funktionen bei mir oben rechts waren sehr weit unten versteckt.

                                    UMuellex 1 Reply Last reply Reply Quote 0
                                    • UMuellex
                                      UMuellex @paul53 last edited by

                                      @paul53
                                      Die Javafunktionen sind bei Dir doppelt; bei mir nicht.😳

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @UMuellex last edited by paul53

                                        @umuellex sagte: Die Javafunktionen sind bei Dir doppelt; bei mir nicht.

                                        Es kann sein, dass ich sie bei mir vorher nicht gelöscht habe.

                                        Außerdem fehlen Trigger! Unter den Kommentaren rechts gibt es keinen Code.

                                        UMuellex 1 Reply Last reply Reply Quote 0
                                        • UMuellex
                                          UMuellex @paul53 last edited by

                                          @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:
                                          5816fbe5-033b-4813-a3ed-d70775e1bde6-image.png

                                          paul53 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @UMuellex last edited by paul53

                                            @umuellex sagte: Ich hatte das so gemacht:

                                            Es sieht schon besser aus, aber es fehlen immer noch Trigger.
                                            Innerhalb der Funktion "FensterOffen" sind falsche Index-Variablen verwendet worden. Die Funktion "FensterGeschlossen" hat einen falschen Index-Parameter. Richtig:

                                            Blockly_temp.JPG

                                            EDIT: An den Array-Parameter muss die bei Skriptstart erzeugte Timerliste übergeben werden. Wenn zum Test keine Trigger verwendet werden, muss auch die Reihenfolge eingehalten werden:

                                            Blockly_temp.JPG

                                            Anmerkung: Man kann kein Array mit zusätzlichem Text loggen.

                                            UMuellex 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            757
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            23
                                            597
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo