Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Timeout in einer Schleife

    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

    Timeout in einer Schleife

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

      Hallo liebe Gemeinde, notgedrungen musste ich meine Klärgruben-Steuerung beerdigen. Darum habe ich mir gedacht, das kann doch genauso gut mein iobroker übernehmen. Daher habe ich ein Sonoff 4CH Relay genommen, Tasmota darauf gemacht und steuer damit meine 4 Magnetventile in meiner Klärgrube. Nun muss ich noch die Schaltzeiten einrichten und fertig...! Dache ich mir!

      Wie war mein Plan. Durch mehrere Datenpunkte mit Zeiten(Minuten) wollte ich einen Ablauf auf Basis von Timeouts steuern. Das hat auch gut funktioniert. Jetzt mein Problem. Ich muss innerhalb einer Timeout-Abarbeitung eine Schleife einbinden. Da zwei meiner Schritte sich 4 oder 5 mal wiederholen müssen. Leider funktioniert meine Schleife nicht innerhalb der Timeout-Funktion? Hat jemand eine Idee? Wie man das anderes gelöst bekommt?

      Danke für eure Hilfe

      blockly.PNG

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="R?HN~tve/crI~*alH=bB">cnt</variable>
          <variable id="tzCm+HTX_;U8Ac.UcYrW">cnt2</variable>
          <variable id="l`ZPnB,P_M%T0buA5qRd">cnt3</variable>
          <variable type="interval" id="Intervall13">Intervall13</variable>
          <variable type="interval" id="Intervall14">Intervall14</variable>
          <variable id="ZEf:6K{Tl`IfYTh7(M,l">counter</variable>
          <variable type="interval" id="Intervall15">Intervall15</variable>
          <variable id="1TJp(/z1FqL=qov_Cn}b">cnt4</variable>
          <variable type="interval" id="Intervall16">Intervall16</variable>
          <variable id="j_`1%k0?lTcFN!dX$m,}">cnt5</variable>
        </variables>
        <block type="on_ext" id="B-uN*SMDrRHETe-GU@%1" x="-187" y="38">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="xVJoSUG^)OU0D+2lC)z`">
              <field name="oid">0_userdata.0.vis_Abwasser.Grubenpumpe_automatik_aktiv</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="comment" id="A@q-,2Z;ohy}K[hQ+Qi}">
              <field name="COMMENT">30 Sek.</field>
              <next>
                <block type="timeouts_clearinterval" id="r(n%Ad?SADm5ISNY/Sht">
                  <field name="NAME">Intervall14</field>
                  <next>
                    <block type="timeouts_clearinterval" id="KS]_aICG^P0P|hqa9alR">
                      <field name="NAME">Intervall13</field>
                      <next>
                        <block type="variables_set" id="m}$pV~~:hCW7%clL~_R`">
                          <field name="VAR" id="R?HN~tve/crI~*alH=bB">cnt</field>
                          <value name="VALUE">
                            <block type="math_number" id="6Ie;Au4I8|;H~BN]n@C0">
                              <field name="NUM">30</field>
                            </block>
                          </value>
                          <next>
                            <block type="variables_set" id="_-^aWKyLI2nc(`z[=Of5">
                              <field name="VAR" id="tzCm+HTX_;U8Ac.UcYrW">cnt2</field>
                              <value name="VALUE">
                                <block type="math_number" id="(.C:_o:6UE-W%e%@[zP`">
                                  <field name="NUM">30</field>
                                </block>
                              </value>
                              <next>
                                <block type="variables_set" id="fG=$Y[+FsHeI*-5HOVGL">
                                  <field name="VAR" id="l`ZPnB,P_M%T0buA5qRd">cnt3</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="yy90Wmm^Y}GSEzXLL-/f">
                                      <field name="NUM">30</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="debug" id="O#(9bRPC3~l%_3Zv((jL">
                                      <field name="Severity">log</field>
                                      <value name="TEXT">
                                        <shadow type="text" id="U$Zi:9v9Sgr^u}z/):eL">
                                          <field name="TEXT">start 1</field>
                                        </shadow>
                                      </value>
                                      <next>
                                        <block type="timeouts_setinterval" id="S,_:I|nO:g;+2c|i_Byw">
                                          <field name="NAME">Intervall13</field>
                                          <field name="INTERVAL">10</field>
                                          <field name="UNIT">sec</field>
                                          <statement name="STATEMENT">
                                            <block type="variables_set" id="rEWpD|##]FeY`qPC[o8V">
                                              <field name="VAR" id="R?HN~tve/crI~*alH=bB">cnt</field>
                                              <value name="VALUE">
                                                <block type="math_arithmetic" id="]PJmgo}o4$)jCn-_Fm)S">
                                                  <field name="OP">MINUS</field>
                                                  <value name="A">
                                                    <shadow type="math_number">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="variables_get" id="R9a((V;~tv~$B;URnCm^">
                                                      <field name="VAR" id="R?HN~tve/crI~*alH=bB">cnt</field>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <shadow type="math_number" id="*%8_Er:MU|f:%*u|DFvZ">
                                                      <field name="NUM">10</field>
                                                    </shadow>
                                                  </value>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="controls_if" id="jp#oj(^=9WN3x67VYK0)">
                                                  <value name="IF0">
                                                    <block type="logic_compare" id="B41M5p|%@FQ7l^C(t3]x">
                                                      <field name="OP">LTE</field>
                                                      <value name="A">
                                                        <block type="variables_get" id="D89}N_Zi{DBcPa=LDk=C">
                                                          <field name="VAR" id="R?HN~tve/crI~*alH=bB">cnt</field>
                                                        </block>
                                                      </value>
                                                      <value name="B">
                                                        <block type="math_number" id="rD_qr.Z6IPS+Jv,0m],*">
                                                          <field name="NUM">0</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <statement name="DO0">
                                                    <block type="timeouts_clearinterval" id="`G8Ak-!UHf9K37Ek:G`p">
                                                      <field name="NAME">Intervall13</field>
                                                      <next>
                                                        <block type="debug" id=";:b|l=_)2_F?PzC2jMJ3">
                                                          <field name="Severity">log</field>
                                                          <value name="TEXT">
                                                            <shadow type="text" id="O1x$!Lt~j|%=F(!^}Q!7">
                                                              <field name="TEXT">ende 1</field>
                                                            </shadow>
                                                          </value>
                                                          <next>
                                                            <block type="timeouts_clearinterval" id="Tj0~}t/J~w}kgDe|*0G$">
                                                              <field name="NAME">Intervall14</field>
                                                              <next>
                                                                <block type="debug" id="/0k8^[0:;m(vY,EpiK/d">
                                                                  <field name="Severity">log</field>
                                                                  <value name="TEXT">
                                                                    <shadow type="text" id="`BreO*s]6/~fgyeM5S9o">
                                                                      <field name="TEXT">start 2</field>
                                                                    </shadow>
                                                                  </value>
                                                                  <next>
                                                                    <block type="timeouts_setinterval" id="+O)ls_{~e8?*[U88YPbT">
                                                                      <field name="NAME">Intervall14</field>
                                                                      <field name="INTERVAL">10</field>
                                                                      <field name="UNIT">sec</field>
                                                                      <statement name="STATEMENT">
                                                                        <block type="variables_set" id="5d-;_i*t4*2gjd9dIbvL">
                                                                          <field name="VAR" id="tzCm+HTX_;U8Ac.UcYrW">cnt2</field>
                                                                          <value name="VALUE">
                                                                            <block type="math_arithmetic" id="|{,1t*Vs/6lp/R{h-6#I">
                                                                              <field name="OP">MINUS</field>
                                                                              <value name="A">
                                                                                <shadow type="math_number">
                                                                                  <field name="NUM">1</field>
                                                                                </shadow>
                                                                                <block type="variables_get" id="TLs@0*YGMPi2v6X!ofwS">
                                                                                  <field name="VAR" id="tzCm+HTX_;U8Ac.UcYrW">cnt2</field>
                                                                                </block>
                                                                              </value>
                                                                              <value name="B">
                                                                                <shadow type="math_number" id="3sp;=.Va-X~MYjRB(t{n">
                                                                                  <field name="NUM">10</field>
                                                                                </shadow>
                                                                              </value>
                                                                            </block>
                                                                          </value>
                                                                          <next>
                                                                            <block type="controls_if" id="FDwIwn9oLr{@LhLdL+$Z">
                                                                              <value name="IF0">
                                                                                <block type="logic_compare" id="om-#R%}ZPB^|K=%iD[Yi">
                                                                                  <field name="OP">LTE</field>
                                                                                  <value name="A">
                                                                                    <block type="variables_get" id="Cj/S|16+Tn]?*mv4O28w">
                                                                                      <field name="VAR" id="tzCm+HTX_;U8Ac.UcYrW">cnt2</field>
                                                                                    </block>
                                                                                  </value>
                                                                                  <value name="B">
                                                                                    <block type="math_number" id="%mrDC/bGMlDYgEHg/N80">
                                                                                      <field name="NUM">0</field>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </value>
                                                                              <statement name="DO0">
                                                                                <block type="timeouts_clearinterval" id="4VP%4X;:T`?GNg^cX[3e">
                                                                                  <field name="NAME">Intervall14</field>
                                                                                  <next>
                                                                                    <block type="debug" id="4|J|WfNA-48!Co@9[iZ1">
                                                                                      <field name="Severity">log</field>
                                                                                      <value name="TEXT">
                                                                                        <shadow type="text" id="g:$HhyE.|tvRoB5}|Rih">
                                                                                          <field name="TEXT">ende 2</field>
                                                                                        </shadow>
                                                                                      </value>
                                                                                      <next>
                                                                                        <block type="debug" id="r7@0s#8KJuKX!yq`.G!r">
                                                                                          <field name="Severity">log</field>
                                                                                          <value name="TEXT">
                                                                                            <shadow type="text" id="99q8?96V4(Q?0rVOf;A@">
                                                                                              <field name="TEXT">beginn er schleife</field>
                                                                                            </shadow>
                                                                                          </value>
                                                                                          <next>
                                                                                            <block type="variables_set" id="o2@V4WKOWL2rM8wB;r^j">
                                                                                              <field name="VAR" id="ZEf:6K{Tl`IfYTh7(M,l">counter</field>
                                                                                              <value name="VALUE">
                                                                                                <block type="math_number" id="YHo*$I^]dSGUrb^IK}2L">
                                                                                                  <field name="NUM">0</field>
                                                                                                </block>
                                                                                              </value>
                                                                                              <next>
                                                                                                <block type="controls_repeat_ext" id="$O)KzT8O8%|J:]R$K$eV">
                                                                                                  <value name="TIMES">
                                                                                                    <shadow type="math_number" id="SP$Ts?2X?;dL;x5p]b5R">
                                                                                                      <field name="NUM">4</field>
                                                                                                    </shadow>
                                                                                                  </value>
                                                                                                  <statement name="DO">
                                                                                                    <block type="math_change" id="A[*~0Z392@bVDyJa%0H@">
                                                                                                      <field name="VAR" id="ZEf:6K{Tl`IfYTh7(M,l">counter</field>
                                                                                                      <value name="DELTA">
                                                                                                        <shadow type="math_number" id="riCL[?HcI[FOvpF#Wp?b">
                                                                                                          <field name="NUM">1</field>
                                                                                                        </shadow>
                                                                                                      </value>
                                                                                                      <next>
                                                                                                        <block type="debug" id="rro;:w?~~Dbhm(h1()jT">
                                                                                                          <field name="Severity">log</field>
                                                                                                          <value name="TEXT">
                                                                                                            <shadow type="text">
                                                                                                              <field name="TEXT">start 3</field>
                                                                                                            </shadow>
                                                                                                            <block type="text_join" id="GK}5L3GNyS^3~fqP4{u,">
                                                                                                              <mutation items="2"></mutation>
                                                                                                              <value name="ADD0">
                                                                                                                <block type="text" id="eFA;JTAtD)C`=hDJkb(D">
                                                                                                                  <field name="TEXT">Counter : </field>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                              <value name="ADD1">
                                                                                                                <block type="variables_get" id="r#W2(P!su80g|uc6i!f8">
                                                                                                                  <field name="VAR" id="ZEf:6K{Tl`IfYTh7(M,l">counter</field>
                                                                                                                </block>
                                                                                                              </value>
                                                                                                            </block>
                                                                                                          </value>
                                                                                                          <next>
                                                                                                            <block type="debug" id="G,W1||k$ii(]b?Kv8lO8">
                                                                                                              <field name="Severity">log</field>
                                                                                                              <value name="TEXT">
                                                                                                                <shadow type="text" id="=yQi)L6;jH:aY%O7HvMh">
                                                                                                                  <field name="TEXT">start 4 (in der schleife)</field>
                                                                                                                </shadow>
                                                                                                              </value>
                                                                                                              <next>
                                                                                                                <block type="timeouts_clearinterval" id="p*k[~};Ix{K}35X!=4LL">
                                                                                                                  <field name="NAME">Intervall15</field>
                                                                                                                  <next>
                                                                                                                    <block type="timeouts_setinterval" id="#z7P.f7^(aEmj0L*^n^3">
                                                                                                                      <field name="NAME">Intervall15</field>
                                                                                                                      <field name="INTERVAL">10</field>
                                                                                                                      <field name="UNIT">sec</field>
                                                                                                                      <statement name="STATEMENT">
                                                                                                                        <block type="variables_set" id="o;,Wq/7@%6V)-GVyfpp#">
                                                                                                                          <field name="VAR" id="1TJp(/z1FqL=qov_Cn}b">cnt4</field>
                                                                                                                          <value name="VALUE">
                                                                                                                            <block type="math_arithmetic" id="XKQL=3wi=ZEj2eajYBL?">
                                                                                                                              <field name="OP">MINUS</field>
                                                                                                                              <value name="A">
                                                                                                                                <shadow type="math_number">
                                                                                                                                  <field name="NUM">1</field>
                                                                                                                                </shadow>
                                                                                                                                <block type="variables_get" id="Z!lAQty{JsZzA6`9?Ar-">
                                                                                                                                  <field name="VAR" id="1TJp(/z1FqL=qov_Cn}b">cnt4</field>
                                                                                                                                </block>
                                                                                                                              </value>
                                                                                                                              <value name="B">
                                                                                                                                <shadow type="math_number" id="Uvs]zpkWecOa-VWRIf~7">
                                                                                                                                  <field name="NUM">10</field>
                                                                                                                                </shadow>
                                                                                                                              </value>
                                                                                                                            </block>
                                                                                                                          </value>
                                                                                                                          <next>
                                                                                                                            <block type="controls_if" id="P-VrzcrkT(U~45o0onq.">
                                                                                                                              <value name="IF0">
                                                                                                                                <block type="logic_compare" id="q|#|QJSm,_4By7R.I8^V">
                                                                                                                                  <field name="OP">LTE</field>
                                                                                                                                  <value name="A">
                                                                                                                                    <block type="variables_get" id="R8tS+$99o#rH}|R42ljA">
                                                                                                                                      <field name="VAR" id="1TJp(/z1FqL=qov_Cn}b">cnt4</field>
                                                                                                                                    </block>
                                                                                                                                  </value>
                                                                                                                                  <value name="B">
                                                                                                                                    <block type="math_number" id="]EdhS1A-LBJCm66-sT{0">
                                                                                                                                      <field name="NUM">0</field>
                                                                                                                                    </block>
                                                                                                                                  </value>
                                                                                                                                </block>
                                                                                                                              </value>
                                                                                                                              <statement name="DO0">
                                                                                                                                <block type="timeouts_clearinterval" id="jN?Dpd5tkMVMI5`V:-pD">
                                                                                                                                  <field name="NAME">Intervall15</field>
                                                                                                                                  <next>
                                                                                                                                    <block type="debug" id="n{p9Xnl7NNHlf_p9*T-*">
                                                                                                                                      <field name="Severity">log</field>
                                                                                                                                      <value name="TEXT">
                                                                                                                                        <shadow type="text" id="j,(+wb5-zY66,el=ZNF$">
                                                                                                                                          <field name="TEXT">ende 5</field>
                                                                                                                                        </shadow>
                                                                                                                                      </value>
                                                                                                                                      <next>
                                                                                                                                        <block type="debug" id=";+ib=I/w89uG}w3C,/AF">
                                                                                                                                          <field name="Severity">log</field>
                                                                                                                                          <value name="TEXT">
                                                                                                                                            <shadow type="text" id="8tvX@bCg0nHHpV6^b2X4">
                                                                                                                                              <field name="TEXT">start 5 (in der schleife)</field>
                                                                                                                                            </shadow>
                                                                                                                                          </value>
                                                                                                                                          <next>
                                                                                                                                            <block type="timeouts_clearinterval" id="Qi4Jza:w]dfY+n^+pjt3">
                                                                                                                                              <field name="NAME">Intervall16</field>
                                                                                                                                              <next>
                                                                                                                                                <block type="timeouts_setinterval" id=")vzgF{)n=v])M#6g})^W">
                                                                                                                                                  <field name="NAME">Intervall16</field>
                                                                                                                                                  <field name="INTERVAL">10</field>
                                                                                                                                                  <field name="UNIT">sec</field>
                                                                                                                                                  <statement name="STATEMENT">
                                                                                                                                                    <block type="variables_set" id="um|}u~9{$6:lrOQ@u=vB">
                                                                                                                                                      <field name="VAR" id="j_`1%k0?lTcFN!dX$m,}">cnt5</field>
                                                                                                                                                      <value name="VALUE">
                                                                                                                                                        <block type="math_arithmetic" id="KG}hZ?Syx4lr~kkBku|p">
                                                                                                                                                          <field name="OP">MINUS</field>
                                                                                                                                                          <value name="A">
                                                                                                                                                            <shadow type="math_number">
                                                                                                                                                              <field name="NUM">1</field>
                                                                                                                                                            </shadow>
                                                                                                                                                            <block type="variables_get" id="AMkY4aU()JSS-DC-2.;{">
                                                                                                                                                              <field name="VAR" id="j_`1%k0?lTcFN!dX$m,}">cnt5</field>
                                                                                                                                                            </block>
                                                                                                                                                          </value>
                                                                                                                                                          <value name="B">
                                                                                                                                                            <shadow type="math_number" id="Y}Qy%*ug*]j0lSd#z+rp">
                                                                                                                                                              <field name="NUM">10</field>
                                                                                                                                                            </shadow>
                                                                                                                                                          </value>
                                                                                                                                                        </block>
                                                                                                                                                      </value>
                                                                                                                                                      <next>
                                                                                                                                                        <block type="controls_if" id="tz2RQ{)8T8`BrW;^(fr*">
                                                                                                                                                          <value name="IF0">
                                                                                                                                                            <block type="logic_compare" id="2Z*hYr,2_V;k,=gop1|R">
                                                                                                                                                              <field name="OP">LTE</field>
                                                                                                                                                              <value name="A">
                                                                                                                                                                <block type="variables_get" id="#6@(EjZYWd]C%+k^dQ`}">
                                                                                                                                                                  <field name="VAR" id="j_`1%k0?lTcFN!dX$m,}">cnt5</field>
                                                                                                                                                                </block>
                                                                                                                                                              </value>
                                                                                                                                                              <value name="B">
                                                                                                                                                                <block type="math_number" id="_2k?^zW]wQ]CRrTx!`9=">
                                                                                                                                                                  <field name="NUM">0</field>
                                                                                                                                                                </block>
                                                                                                                                                              </value>
                                                                                                                                                            </block>
                                                                                                                                                          </value>
                                                                                                                                                          <statement name="DO0">
                                                                                                                                                            <block type="timeouts_clearinterval" id=":`Kat$LTMj929[b;KZ8p">
                                                                                                                                                              <field name="NAME">Intervall16</field>
                                                                                                                                                              <next>
                                                                                                                                                                <block type="debug" id="}6X?J@[+O8S~7WBj3*o%">
                                                                                                                                                                  <field name="Severity">log</field>
                                                                                                                                                                  <value name="TEXT">
                                                                                                                                                                    <shadow type="text" id="y;qFK7YkikE+~pjLO{`D">
                                                                                                                                                                      <field name="TEXT">ende 5</field>
                                                                                                                                                                    </shadow>
                                                                                                                                                                  </value>
                                                                                                                                                                </block>
                                                                                                                                                              </next>
                                                                                                                                                            </block>
                                                                                                                                                          </statement>
                                                                                                                                                        </block>
                                                                                                                                                      </next>
                                                                                                                                                    </block>
                                                                                                                                                  </statement>
                                                                                                                                                </block>
                                                                                                                                              </next>
                                                                                                                                            </block>
                                                                                                                                          </next>
                                                                                                                                        </block>
                                                                                                                                      </next>
                                                                                                                                    </block>
                                                                                                                                  </next>
                                                                                                                                </block>
                                                                                                                              </statement>
                                                                                                                            </block>
                                                                                                                          </next>
                                                                                                                        </block>
                                                                                                                      </statement>
                                                                                                                    </block>
                                                                                                                  </next>
                                                                                                                </block>
                                                                                                              </next>
                                                                                                            </block>
                                                                                                          </next>
                                                                                                        </block>
                                                                                                      </next>
                                                                                                    </block>
                                                                                                  </statement>
                                                                                                </block>
                                                                                              </next>
                                                                                            </block>
                                                                                          </next>
                                                                                        </block>
                                                                                      </next>
                                                                                    </block>
                                                                                  </next>
                                                                                </block>
                                                                              </statement>
                                                                            </block>
                                                                          </next>
                                                                        </block>
                                                                      </statement>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      

      blockly_teil1.PNG
      gehören zusammen!
      blockly_teil2.PNG

      Asgothian paul53 2 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @schroed99 last edited by Asgothian

        @schroed99 sagte in Timeout in einer Schleife:

        Hallo liebe Gemeinde, notgedrungen musste ich meine Klärgruben-Steuerung beerdigen. Darum habe ich mir gedacht, das kann doch genauso gut mein iobroker übernehmen. Daher habe ich ein Sonoff 4CH Relay genommen, Tasmota darauf gemacht und steuer damit meine 4 Magnetventile in meiner Klärgrube. Nun muss ich noch die Schaltzeiten einrichten und fertig...! Dache ich mir!

        Wie war mein Plan. Durch mehrere Datenpunkte mit Zeiten(Minuten) wollte ich einen Ablauf auf Basis von Timeouts steuern. Das hat auch gut funktioniert. Jetzt mein Problem. Ich muss innerhalb einer Timeout-Abarbeitung eine Schleife einbinden. Da zwei meiner Schritte sich 4 oder 5 mal wiederholen müssen. Leider funktioniert meine Schleife nicht innerhalb der Timeout-Funktion? Hat jemand eine Idee? Wie man das anderes gelöst bekommt?

        Danke für eure Hilfe

        blockly.PNG

        zeig mal deine Timeout funktion. (als screenshot, nicht als xml, den können nicht alle importieren)

        Auch in einem Timeout kannst du mit schleifen arbeiten, wenn du es geschickt machst.

        A.

        schroed99 1 Reply Last reply Reply Quote 0
        • schroed99
          schroed99 @Asgothian last edited by schroed99

          @asgothian Hallo, vielen Dank für den Hinweis. Ich habe zwei Teile des Blockly oben in meinen Text eingefügt. Ich hoffe, man kann erkennen, worauf ich hinaus möchte. Der Ablauf ohne die Schleife funktioniert. Nur wurde mir heute gesagt das die Phase Belüftung und Pause jeweils 4-mal hintereinander durchgeführt werden soll. Daher dachte ich mir eine Schleife, um die beiden Blöcke zu bauen.

          Asgothian 1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @schroed99 last edited by

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

            Asgothian 1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @Asgothian last edited by

              @asgothian

              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 minuten

              Zyklus 4 für Z4 Minuten (Abzug 1)
              pause für P4 minuten

              Wenn das soweit stimmt, würde ich das so lösen:

              Screen Shot 2022-05-18 at 23.07.58 .png

              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.

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

                @schroed99 sagte: Wie man das anderes gelöst bekommt?

                Dafür kann man eine Funktion als Schleife verwenden. Vorschlag:

                Bild_2022-05-18_232513707.png

                Great SUN schroed99 3 Replies Last reply Reply Quote 0
                • Great SUN
                  Great SUN @paul53 last edited by

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

                  Asgothian paul53 2 Replies Last reply Reply Quote 0
                  • Asgothian
                    Asgothian Developer @Great SUN last edited by

                    @great-sun

                    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

                    ar zykluswiderholungen, idx, repeat, Zykluszeiten, Pausenzeiten, timeout, Zyklusaktionen, timeout2;
                    
                    // Describe this function...
                    async function Do_Action(idx, repeat) {
                     setStateDelayed((Zyklusaktionen[(idx - 1)]), true, false, parseInt(((0) || "").toString(), 10), false);
                     timeout = setTimeout(async function () {
                       setStateDelayed((Zyklusaktionen[(idx - 1)]), false, false, parseInt(((0) || "").toString(), 10), false);
                       timeout2 = setTimeout(async function () {
                         repeat = (typeof repeat == 'number' ? repeat : 0) + -1;
                         if (repeat > 0) {
                           await Do_Action(idx, repeat);
                         } else {
                           idx = (typeof idx == 'number' ? idx : 0) + 1;
                           if (idx > Zyklusaktionen.length) {
                             idx = 1;
                           }
                           await Do_Action(idx, getState((zykluswiderholungen[(idx - 1)])).val);
                         }
                       }, parseInt((parseFloat(getState((Pausenzeiten[(idx - 1)])).val) * 60000)));
                     }, parseInt((parseFloat(getState((Zykluszeiten[(idx - 1)])).val) * 60000)));
                    }
                    
                    
                    zykluswiderholungen = [1, 4, 1, 1];
                    Zykluszeiten = ['dp Name z1', 'dp Name z2', 'dp Name z3', 'dp Name z4'];
                    Pausenzeiten = ['dp Name p1', 'dp Name p2', 'dp Name p3', 'dp Name p4'];
                    Zyklusaktionen = ['dp Aktion 1', 'dp Aktion 2', 'dp Aktion 3', 'dp Aktion 4'];
                    await Do_Action(1, getState((zykluswiderholungen[(idx - 1)])).val);
                    

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

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

                      Great SUN 1 Reply Last reply Reply Quote 1
                      • Great SUN
                        Great SUN @paul53 last edited by

                        @paul53 Für mich sicher, aber für den Thread-Owner schätze ich nicht 😉

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

                          @great-sun sagte: aber für den Thread-Owner schätze ich nicht

                          Sorry, Verwechslung.

                          1 Reply Last reply Reply Quote 0
                          • Great SUN
                            Great SUN @Asgothian last edited by

                            @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

                            1 Reply Last reply Reply Quote 0
                            • schroed99
                              schroed99 @Asgothian last edited by

                              @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öchtenAblauf_Klärung.png

                              Ich melde mich sobald ich deinen Vorschlag umgesetzt habe. Vielen Dank bis hier her...

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

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

                                1 Reply Last reply Reply Quote 0
                                • schroed99
                                  schroed99 @Asgothian last edited by

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

                                  vorschlag1_fehler.PNG
                                  vorschlag1_blockly.PNG

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

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

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • Asgothian
                                      Asgothian Developer @schroed99 last edited by

                                      @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.
                                      Screenshot 2022-05-19 at 11.16.54.png

                                      A.

                                      schroed99 1 Reply Last reply Reply Quote 0
                                      • schroed99
                                        schroed99 @Asgothian last edited by schroed99

                                        @asgothian Ich habe die Zahl eingetragen, die Warnungen kommen weiterhin.

                                        vorschlag1_fehler2.PNG

                                        3f62116c-a70b-4b02-ac69-d20c596be5eb-image.png

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

                                          @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) durch anzahlBelueftung + 3.

                                          Bild_2022-05-19_122059045.png

                                          schroed99 1 Reply Last reply Reply Quote 0
                                          • Asgothian
                                            Asgothian Developer @schroed99 last edited by Asgothian

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            717
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            32
                                            1656
                                            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