Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. "Wait" in blockly

    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

    "Wait" in blockly

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

      Hallo, ich versuche gerade meine ersten Schritte in blockly. Ich würde gern den Trockner smart machen. Dabei würde ich gern beim unterschreiten eines bestimmten Stromverbrauchs im Abstand von einem festen Zeitraum den Stromverbrauch prüfen um sicherzustellen, dass er wirklich fertig ist.

      Die Idee wäre eine Kombination aus Schleife und timeout. Leider funktioniert das nicht. Laut einem älteren Beitrag ging das aber scheinbar mal. Re: "Wait" in blockly?

      Die Suche im Internet ergab aber auch, dass man das in JS so handhabt.
      Das folgende Skript erzeugt nur 3 Benachrichtigungen/Logeinträge. Das timeout wird nicht beachtet.

      9edc044a-1628-4470-9e2e-f50523e6956d-grafik.png

      var timeout;

      on({id: "0_userdata.0.Testvariable"/Testvariable/, change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      console.warn('trigger gestartet');
      for (var count = 0; count < 3; count++) {
      timeout = setTimeout(function () {
      console.warn('Schleife 1 gestartet');
      sendTo("telegram.0", "send", {
      text: 'test'
      });
      }, 5000);
      }
      });

      crunchip padrino BBTown J 4 Replies Last reply Reply Quote 0
      • crunchip
        crunchip Forum Testing Most Active @init5 last edited by

        @init5 vielleicht hilft das https://forum.iobroker.net/post/405063 oder https://forum.iobroker.net/topic/9569/vorlage-blockly-meldung-wenn-waschmaschine-fertig

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

          @init5
          Versuch mal "wiederholen" durch ein Intervall zu ersetzen.
          Du brauchst dann noch eine Hilfsvariable, die jedesmal hochzählt, also z.B. i=i+1 und ein "stop Intervall", wenn i=3 erreicht ist.

          1 Reply Last reply Reply Quote 0
          • BBTown
            BBTown @init5 last edited by BBTown

            @init5
            das hier könnte Klappen....
            d2e8b4b9-365d-40d9-bfae-690568a9a919-image.png

            <xml xmlns="http://www.w3.org/1999/xhtml">
             <variables>
               <variable type="" id="f;jIO5Z[i]YUh`^N(jPb">Zähler</variable>
               <variable type="undefined" id="Intervall">Intervall</variable>
             </variables>
             <block type="on_ext" id="eYw$(9aoF2RXu7:aVH]B" x="38" y="12">
               <mutation items="1"></mutation>
               <field name="CONDITION">true</field>
               <field name="ACK_CONDITION"></field>
               <value name="OID0">
                 <shadow type="field_oid" id="C$S2r1-Yz.p1$u+j_Mcb">
                   <field name="oid">Test.0.Taster</field>
                 </shadow>
               </value>
               <statement name="STATEMENT">
                 <block type="timeouts_clearinterval" id="799R^d2GR.5}_G{=!bd)">
                   <field name="NAME">Intervall</field>
                   <next>
                     <block type="variables_set" id=")g.h*l+E@FC4Oaok7TBp">
                       <field name="VAR" id="f;jIO5Z[i]YUh`^N(jPb" variabletype="">Zähler</field>
                       <value name="VALUE">
                         <block type="math_number" id="l%C]R5j[IVpW.[o`]nH!">
                           <field name="NUM">0</field>
                         </block>
                       </value>
                       <next>
                         <block type="debug" id="b19#-A[V~YAzxF!r2!zm">
                           <field name="Severity">warn</field>
                           <value name="TEXT">
                             <shadow type="text" id="P,Lgda7gK[TA{=gA?285">
                               <field name="TEXT">trigger erkannt</field>
                             </shadow>
                           </value>
                           <next>
                             <block type="timeouts_setinterval" id="GR3aP~2$T4k;uju?8#A~">
                               <field name="NAME">Intervall</field>
                               <field name="INTERVAL">5</field>
                               <field name="UNIT">sec</field>
                               <statement name="STATEMENT">
                                 <block type="controls_if" id="(kX.%miW8]KV@:)m@#%N">
                                   <mutation else="1"></mutation>
                                   <value name="IF0">
                                     <block type="logic_compare" id="6CX:f1f]Q5(^pa.y}yme">
                                       <field name="OP">LT</field>
                                       <value name="A">
                                         <block type="variables_get" id="$Yv/gec7jJ@A%5{O4.h3">
                                           <field name="VAR" id="f;jIO5Z[i]YUh`^N(jPb" variabletype="">Zähler</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="(sxMa6##QnX(pYq954w{">
                                           <field name="NUM">3</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="math_change" id="{Wr2]/0?*JY82Y81`Vrx">
                                       <field name="VAR" id="f;jIO5Z[i]YUh`^N(jPb" variabletype="">Zähler</field>
                                       <value name="DELTA">
                                         <shadow type="math_number" id="9rz;Cc9hZ%sQ_|`9D^CQ">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_number" id="J8z]1T;|(8!$F}m=eY;v">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="telegram" id="n8/A_-k[;{|be}m*$b`E">
                                           <field name="INSTANCE">.0</field>
                                           <field name="LOG"></field>
                                           <field name="SILENT">FALSE</field>
                                           <field name="PARSEMODE">default</field>
                                           <value name="MESSAGE">
                                             <shadow type="text" id="FYa[zTNpEzNiX^XQ;:I)">
                                               <field name="TEXT">Du bist toll !!!!</field>
                                             </shadow>
                                             <block type="text" id="-;3$cJs,s$j$h}^F94jl">
                                               <field name="TEXT">Der Trockner ist fertig</field>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                   <statement name="ELSE">
                                     <block type="timeouts_clearinterval" id="$g4t*WkryfmzLbM?#@4|">
                                       <field name="NAME">Intervall</field>
                                     </block>
                                   </statement>
                                 </block>
                               </statement>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </statement>
             </block>
            </xml>
            

            1 Reply Last reply Reply Quote 1
            • J
              Jan1 @init5 last edited by

              @init5
              Der Timeout wird beachtet, nur dass Du nach 5 Sekunden eben sofort 3 Nachrichten bekommst. Wiederhole 3x sorgt dafür, dass der Block darunter 3 mal direkt hinter einander ausgeführt wird und somit 3x direkt hinter einander der Timeout läuft und das gleichzeitig, somit laufen auch alle 3 fast zeitgleich ab und der Rest wird dann eben 3 mal ausgeführt.

              1 Reply Last reply Reply Quote 0
              • I
                init5 last edited by

                Hey Leute, vielen Dank für die Hilfe. Entschuldigt die späte Antwort. Hier war coronabedingt einiges los.

                Eure Vorschläge haben natürlich funktioniert. Wenn man einmal sieht wie es richtig wäre, ist alles völlig logisch. Ich poste hier der Vollständigkeit halber noch den kunktionierenden Block.

                b9ac1d85-5108-4887-9d22-6181922a6d21-grafik.png

                var zaehler, Intervall;
                
                
                on({id: "0_userdata.0.Testvariable"/*Testvariable*/, change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  zaehler = 0;
                  console.warn('trigger gestartet');
                  Intervall = setInterval(function () {
                    if (zaehler < 3) {
                      zaehler = (typeof zaehler == 'number' ? zaehler : 0) + 1;
                      console.warn(zaehler);
                      sendTo("telegram.0", "send", {
                          text: 'test',
                          disable_notification: true
                      });
                    } else {
                      (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                    }
                  }, 5000);
                });
                
                //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyXyUyQ192aVQlNDAlN0JsJTJCa19lMGIlNUUuRzhOJTIyJTNFemFlaGxlciUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIydW5kZWZpbmVkJTIyJTIwaWQlM0QlMjJJbnRlcnZhbGwlMjIlM0VJbnRlcnZhbGwlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uJTIyJTIwaWQlM0QlMjIuTnolNURCSlUlM0ZkY0dwZ3E5S1lWUiU1QiUyMiUyMHglM0QlMjItOTYyJTIyJTIweSUzRCUyMi0xMzclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0UwX3VzZXJkYXRhLjAuVGVzdHZhcmlhYmxlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VuZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMmlfcyUzRCUyMzB0R3glMjVSNClMJTdDQ2VrTVUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMl8lMkNfdmlUJTQwJTdCbCUyQmtfZTBiJTVFLkc4TiUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRXphZWhsZXIlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU3Qk0lN0JJWCU2MDUyJTdDdyElMjUlNDBLV1lqSXAyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyYnVDbyU3RCU2MDJUVylVcCU1RTBMSjIlM0FOTCUyMiUyMGlubGluZSUzRCUyMnRydWUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRXdhcm4lM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyb2NDMFY0Tm9ieGolMkJjOC04YW9QaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0V0cmlnZ2VyJTIwZ2VzdGFydGV0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c19zZXRpbnRlcnZhbCUyMiUyMGlkJTNEJTIyJTdDdzRTMGclM0ZLISFTOF8hMX5hJTQwamslMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFSW50ZXJ2YWxsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJJTlRFUlZBTCUyMiUzRTUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIydi5YR0FlRTBEJTVCQUwodFduKE4lNUJ0JTIyJTNFJTNDbXV0YXRpb24lMjBlbHNlJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyWEUlMjMlMkZKTERhRFZqJTVCcmVZJTNEJTI0JTQwcEYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUxUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyaWclNDBsc042clclNDApJTdCX3glN0NJJTJDY2lmJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJfJTJDX3ZpVCU0MCU3QmwlMkJrX2UwYiU1RS5HOE4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0V6YWVobGVyJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkJCJTJGJTNCWEd0MDF5d1d4TSUzRCEhQSUzRE8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2NoYW5nZSUyMiUyMGlkJTNEJTIyUlYzUlklM0JZVGxKN1FKaCU1REZNVW5QJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJfJTJDX3ZpVCU0MCU3QmwlMkJrX2UwYiU1RS5HOE4lMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0V6YWVobGVyJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJERUxUQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIycSpNWFYlMkJBRkd0OEI0ajElN0NWRXhOJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMnVoLUtnOWdUbSU1RSU2MFN0V3lMJTJDbGQlM0ElMjIlMjBpbmxpbmUlM0QlMjJ0cnVlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0V3YXJuJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjh0MyU1RW4lM0JlJTJDWCUyNS5fckFuLVpqa2QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFdHJpZ2dlciUyMGdlc3RhcnRldCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTdEKipLeSUyQ1QoJTNBeiUyRlV1ZUd4YVF3ayUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyXyUyQ192aVQlNDAlN0JsJTJCa19lMGIlNUUuRzhOJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFemFlaGxlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZWxlZ3JhbSUyMiUyMGlkJTNEJTIydi5ZQSU1RVpzRyUyRnpFTll1TEIlMkN1dTYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJJTlNUQU5DRSUyMiUzRS4wJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJMT0clMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlNJTEVOVCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlBBUlNFTU9ERSUyMiUzRWRlZmF1bHQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk1FU1NBR0UlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTQwbmVROWJhJTI1ayUyRiU1RTcxNFdPU2YpVCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0V0ZXN0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkVMU0UlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c19jbGVhcmludGVydmFsJTIyJTIwaWQlM0QlMjJobGdKZ0NqTC1Hbk8lN0JoYiUzRiUzQSUzRjVFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRUludGVydmFsbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=
                
                1 Reply Last reply Reply Quote 1
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                931
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                blockly javascript
                5
                6
                831
                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