Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Hilfe gesucht: Zyklische Ausführung wird nicht gestoppt

    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

    Hilfe gesucht: Zyklische Ausführung wird nicht gestoppt

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

      Hi,

      ich verzweifel etwas mit meiner Steuerung des Heizgebläses... 😞
      Eigentlich läuft das Skript gut, doch manchmal läuft es einfach amok. 🙄
      Kann mir einfach nicht erklären wieso. 🤔
      Und zwar endet es in einer Endlosschleife, dabei springt es im Normalfall (sprich meistens) raus, aber manchmal...

      blockly_UI.png
      Von den Debugausgaben her, sollte es eigentlich nicht passieren, zumindest denke ich das, sehe nicht, wieso er in der Schleife bleibt.
      Sieht evtl. jemand etwas, das ich nicht sehe, oder kann mir sagen, wo technisch evtl. etwas schief gehen könnte
      Es folgen Debugs und Blocklycode (im Spoiler)

      javascript.0	2021-02-06 22:15:22.647	warn	(2823) script.js.common.Heizung_NG: Stopp Durchlauf: 3
      javascript.0	2021-02-06 22:15:22.646	warn	(2823) script.js.common.Heizung_NG: Blasen: stopp
      javascript.0	2021-02-06 22:15:22.297	warn	(2823) script.js.common.Heizung_NG: Stopp Durchlauf: 3
      javascript.0	2021-02-06 22:15:22.296	warn	(2823) script.js.common.Heizung_NG: Blasen: stopp
      javascript.0	2021-02-06 22:15:21.946	warn	(2823) script.js.common.Heizung_NG: Stopp Durchlauf: 3
      javascript.0	2021-02-06 22:15:21.945	warn	(2823) script.js.common.Heizung_NG: Blasen: stopp
      javascript.0	2021-02-06 22:15:21.596	warn	(2823) script.js.common.Heizung_NG: Stopp Durchlauf: 3
      javascript.0	2021-02-06 22:15:21.595	warn	(2823) script.js.common.Heizung_NG: Blasen: stopp
      

      <block xmlns="https://developers.google.com/blockly/xml" type="timeouts_setinterval" id="{F~lc_KU5[3*v@zNAgio" x="-129" y="1408">
       <field name="NAME">SendeHeizungAus</field>
       <field name="INTERVAL">350</field>
       <field name="UNIT">ms</field>
       <statement name="STATEMENT">
         <block type="controls_if" id="ylhL~C|Mqz.#pungG`WP">
           <mutation else="1"></mutation>
           <value name="IF0">
             <block type="logic_compare" id="8vVexu:2!$!qf5V*i`KI">
               <field name="OP">LTE</field>
               <value name="A">
                 <block type="variables_get" id="PF/pkhv0{]I+5-[XiUON">
                   <field name="VAR" id="QqcV%p0(#2Rh:vc%kEr5">Durchlauf</field>
                 </block>
               </value>
               <value name="B">
                 <block type="math_number" id="K2%B%np4#`q.qx?dt4R{">
                   <field name="NUM">2</field>
                 </block>
               </value>
             </block>
           </value>
           <statement name="DO0">
             <block type="control" id="@lP~x/(P.Wc]|2}jv2mI">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
               <field name="OID">broadlink2.0.RMPROPLUS-42-fb-44.L.HeizungAusRF</field>
               <field name="WITH_DELAY">FALSE</field>
               <value name="VALUE">
                 <block type="logic_boolean" id=",:9VW`G|x3xp)J;|Ea)A">
                   <field name="BOOL">TRUE</field>
                 </block>
               </value>
               <next>
                 <block type="debug" id="iVYA9`l^+KEMn6V}8Y.)">
                   <field name="Severity">warn</field>
                   <value name="TEXT">
                     <shadow type="text" id="81H+$3NDM@sfV7vY_q*p">
                       <field name="TEXT">Sende "stopp"</field>
                     </shadow>
                   </value>
                   <next>
                     <block type="variables_set" id="6+[VI*`7I%Z9pZJCin_f">
                       <field name="VAR" id="QqcV%p0(#2Rh:vc%kEr5">Durchlauf</field>
                       <value name="VALUE">
                         <block type="math_arithmetic" id="2V)7aC_UUo5u7b/,vP6c">
                           <field name="OP">ADD</field>
                           <value name="A">
                             <shadow xmlns="http://www.w3.org/1999/xhtml" id="}4k#4a5ReRCw.L-#;{MI" type="math_number">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="variables_get" id="k0*oT6Rc/u~N*zl}OPWI">
                               <field name="VAR" id="QqcV%p0(#2Rh:vc%kEr5">Durchlauf</field>
                             </block>
                           </value>
                           <value name="B">
                             <shadow type="math_number" id="{v5EBajL~P-k}rm@ho/F">
                               <field name="NUM">1</field>
                             </shadow>
                           </value>
                         </block>
                       </value>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </statement>
           <statement name="ELSE">
             <block type="update" id="eH.|OBdW|.pI$j)}EM;e">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
               <field name="OID">0_userdata.0.Nachtspeicher_WZ.N8S_Gebläse</field>
               <field name="WITH_DELAY">FALSE</field>
               <value name="VALUE">
                 <block type="logic_boolean" id="r!oa5z8xW5KAdiu/Hal:">
                   <field name="BOOL">FALSE</field>
                 </block>
               </value>
               <next>
                 <block type="debug" id="C@]SULoZSp6uyUCj4$,D">
                   <field name="Severity">warn</field>
                   <value name="TEXT">
                     <shadow type="text" id="+))hOIFdqYPXrNxp#.:Y">
                       <field name="TEXT">Blasen: stopp</field>
                     </shadow>
                   </value>
                   <next>
                     <block type="debug" id="0t6V=)P=URY.cSe-]54I">
                       <field name="Severity">warn</field>
                       <value name="TEXT">
                         <shadow type="text" id="Ssin.FzA]0[v/0-fhRf$">
                           <field name="TEXT"></field>
                         </shadow>
                         <block type="text_join" id="Xp!g}UaNp5^kW7m_}W!a">
                           <mutation items="2"></mutation>
                           <value name="ADD0">
                             <block type="text" id="F$Pj{[(W+XZHcq`R_uh|">
                               <field name="TEXT">Stopp Durchlauf: </field>
                             </block>
                           </value>
                           <value name="ADD1">
                             <block type="variables_get" id="}?1eqRU2/13,~4.s=*Dp">
                               <field name="VAR" id="QqcV%p0(#2Rh:vc%kEr5">Durchlauf</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="timeouts_clearinterval" id="w$NmGQI16lK3vZZ]o*gt">
                           <field name="NAME">SendeHeizungAus</field>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </statement>
         </block>
       </statement>
      </block>
      

      Nachtrag: Ich habe jetzt mal folgene Ergänzung eingefügt, in der Hoffnung, dass so die Endlosschleife erkannt wird.
      Sollte das so gehen?

      blockly_backup.png

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

        @padrino
        Man sieht den entscheidenden Teil nicht.
        Wenn das Intervall SendeHeizungAus mehr als einmal gestartet wurde, lässt es sich nicht mehr stoppen.

        padrino 1 Reply Last reply Reply Quote 0
        • padrino
          padrino Most Active @paul53 last edited by

          @paul53
          Hm, also der sollte eigentlich nur einmal laufen, der Aufruf befindet sich einmal im "Hauptbaum".

          hauptcode.png

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

            @padrino sagte:

            der sollte eigentlich nur einmal laufen

            Eigentlich... Der Trigger kann nicht ein zweites Mal auslösen, bevor das Intervall gestoppt wurde?

            padrino 1 Reply Last reply Reply Quote 0
            • padrino
              padrino Most Active @paul53 last edited by

              @paul53

              Ja, kann er.
              Aber ich hatte das extra mal mit einem extrem langen Intervall getestet und in meinem Test hat jeder Trigger zwar ein neues Intervall gestartet, das konnte dann aber auch von seinem korrekten "Stopp" beendet werden, sprich bei einem neuen Intervalldurchlauf war eine "Kopie des Stopps" zuständig und funktionsfähig. 🤔

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

              Support us

              ioBroker
              Community Adapters
              Donate

              935
              Online

              31.9k
              Users

              80.1k
              Topics

              1.3m
              Posts

              blockly
              2
              5
              288
              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