Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Timer mit Input / Zeitsteuerung Blockly

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Timer mit Input / Zeitsteuerung Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Snupy @paul53 last edited by

      @paul53

      ich habe dein blockly heute nochmal probiert komme da aber auf keinen grünen zweig ...
      hast du das mal getestet ? ich bekomme jede mange rote errors 😉 vielleicht kannst du mir ja nochmal auf die Sprünge helfen !

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

        @snupy sagte: hast du das mal getestet ?

        Ja, gerade: Habe Startzeit auf "2021-04-15 17:03:00" gesetzt und dann das Skript gestartet, gleich nach 17:03:00 bei laufendem Skript die Startzeit auf 17:04:00 geändert.

        Blockly_temp.JPG

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="0/dnk[:V}C~?v.v@.]n%">startzeit</variable>
           <variable type="cron" id="schedule1">schedule1</variable>
         </variables>
         <block type="procedures_callnoreturn" id="EyKkr2b9:=(hJ+Q`ixHf" x="87" y="-87">
           <mutation name="start"></mutation>
           <next>
             <block type="comment" id="eian95Go_0Q2*G=BLO*z">
               <field name="COMMENT">Startzeit</field>
               <next>
                 <block type="on_ext" id="_jkCnUMqcOR*1l1EYej9">
                   <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=",Y%6conFs}])9o#*MZ+[">
                       <field name="oid">0_userdata.0.Timer_Input.Startzeit</field>
                     </shadow>
                   </value>
                   <statement name="STATEMENT">
                     <block type="schedule_clear" id="5kA8XHik3Nb;i(naWmKs">
                       <field name="NAME">schedule1</field>
                       <next>
                         <block type="procedures_callnoreturn" id="afgs_zQh@`O^EmKMLp;i">
                           <mutation name="start"></mutation>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
           </next>
         </block>
         <block type="procedures_defnoreturn" id="ZEBjs1GLZIW-n|m;7$lg" x="262" y="12">
           <field name="NAME">start</field>
           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           <statement name="STACK">
             <block type="variables_set" id="9n|FtG`?YyK*uOV{{8KL">
               <field name="VAR" id="0/dnk[:V}C~?v.v@.]n%">startzeit</field>
               <value name="VALUE">
                 <block type="convert_from_date" id="`7xWyT/UN!,wdF}yUl]j">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                   <field name="OPTION">object</field>
                   <value name="VALUE">
                     <block type="get_value" id="{ZexKrQmTZs@I]DFZE9C">
                       <field name="ATTR">val</field>
                       <field name="OID">0_userdata.0.Timer_Input.Startzeit</field>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="schedule_create" id="?[E=a-%a_l*087J%;^C7">
                   <field name="NAME">schedule1</field>
                   <value name="SCHEDULE">
                     <shadow type="field_cron" id=",_qaV`ld5JrZ8B/-N_I;">
                       <field name="CRON">* * * * *</field>
                     </shadow>
                     <block type="cron_builder" id="S)/Ek8/wPO)`h;yHE*R/">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" seconds="false" as_line="false"></mutation>
                       <field name="LINE">FALSE</field>
                       <field name="WITH_SECONDS">FALSE</field>
                       <value name="DOW">
                         <shadow type="text" id="72[2Nn4WLE-4^ZUcUi6K">
                           <field name="TEXT">*</field>
                         </shadow>
                       </value>
                       <value name="MONTHS">
                         <shadow type="text" id="S.roWs^?9:=9%.cm-l{k">
                           <field name="TEXT">*</field>
                         </shadow>
                       </value>
                       <value name="DAYS">
                         <shadow type="text" id=";XvfK#,o|@dCDcR2zYht">
                           <field name="TEXT">*</field>
                         </shadow>
                       </value>
                       <value name="HOURS">
                         <shadow type="text" id="{%h[4.!lN{Xg4Y}R!Cip">
                           <field name="TEXT">*</field>
                         </shadow>
                         <block type="convert_from_date" id="$)qn%v{T#W[@U6e%6~6$">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                           <field name="OPTION">h</field>
                           <value name="VALUE">
                             <block type="variables_get" id="j7Rc[KqyM(LhuE8*Il!=">
                               <field name="VAR" id="0/dnk[:V}C~?v.v@.]n%">startzeit</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <value name="MINUTES">
                         <shadow type="text" id="cHIYW2y;Xt{Q@+2#To]g">
                           <field name="TEXT">*</field>
                         </shadow>
                         <block type="convert_from_date" id="V}5Lzxq?bnhKoxW$h4tg">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                           <field name="OPTION">m</field>
                           <value name="VALUE">
                             <block type="variables_get" id="6)65ojQ`)Axe)Vw;_rs@">
                               <field name="VAR" id="0/dnk[:V}C~?v.v@.]n%">startzeit</field>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="STATEMENT">
                     <block type="debug" id=".g^a?WR}*(`-8Y%,=5,0">
                       <field name="Severity">log</field>
                       <value name="TEXT">
                         <shadow type="text" id="Ci8KvvD-]PLt$j01^3uM">
                           <field name="TEXT">Aktion zur Startzeit</field>
                         </shadow>
                       </value>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
           </statement>
         </block>
        </xml>
        

        EDIT: Später auf Zeiten "17:21:00" und "17:23:00" (ohne Datum) geändert: Funktioniert.

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

          @paul53

          @paul53

          vermutlich bin ich echt zu blöd ... das script bringt bei mir sofort error ... habe extra nochmal nen neuen Datenpunkt unter 0_userdata.0.Timer_Input.Timer_Input_Startzeit angelegt
          irgendwo muß ich da ja was falsch machen 😞

          Blockly error.JPG

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

            @snupy sagte: irgendwo muß ich da ja was falsch machen

            Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
            Welche zusätzlichen Informationen liefert der Tab "Log"?

            @snupy sagte in Timer mit Input / Zeitsteuerung Blockly:

            habe extra nochmal nen neuen Datenpunkt unter 0_userdata.0.Timer_Input.Timer_Input_Startzeit angelegt

            Weshalb? Der von mir angelegte DP entsprach genau Deiner Struktur (Nur der Name war anders).

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

              @paul53

              blockly_timer.JPG

              habe zwischenzeitlich mal die Endzeit mit eingefügt ...
              wo finde ich den Tab "Log" der zusätzliche Informationen liefert ? 😉 .... du meinst den hier ....

              log.JPG

              var startzeit, endzeit, schedule1, schedule2;
              
              // Beschreibe diese Funktion …
              function start() {
                startzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Startzeit").val).getTime();
                schedule1 = schedule((getDateObject(startzeit).getMinutes()).trim() + ' ' + getDateObject(startzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                  console.log('Aktion zur Startzeit');
                  setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, true);
                });
              }
              
              // Beschreibe diese Funktion …
              function start2() {
                endzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Endzeit").val).getTime();
                schedule2 = schedule((getDateObject(endzeit).getMinutes()).trim() + ' ' + getDateObject(endzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                  console.log('Aktion zur Endzeit');
                  setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, false);
                });
              }
              
              
              start();
              on({id: '0_userdata.0.Timer_Input.Timer_Input_Startzeit', change: "ne"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                (function () {if (schedule1) {clearSchedule(schedule1); schedule1 = null;}})();
                start();
              });
              
              start2();
              on({id: '0_userdata.0.Timer_Input.Timer_Input_Endzeit', change: "ne"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                (function () {if (schedule2) {clearSchedule(schedule2); schedule2 = null;}})();
                start2();
              });
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Snupy last edited by paul53

                @snupy
                Bei mir enthält die angemeckerte Zeile 6 vor .trim() noch ein .toString()

                  schedule1 = schedule((getDateObject(startzeit).getMinutes()).toString().trim() + ' ' + getDateObject(startzeit).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                

                Welche Version des javascript-Adapters? Meine: 5.0.5

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

                  @paul53

                  habe zwei raspis einen 3+ als Backup und einen 4'er ... auf beiden läuft / lief js 4.8.4
                  auf dem 4'er habe ich gerade js geupdatet auf 5.0.14 ... ergebniss ... nüscht ... geht nicht

                  1 Reply Last reply Reply Quote 0
                  • S
                    Snupy last edited by

                    so extra zurück auf 5.0.5 ... raspi neustart ... nüscht

                    javascript.0 2021-04-15 23:17:38.889 error (2508) at Script.runInContext (vm.js:131:20)
                    javascript.0 2021-04-15 23:17:38.888 error (2508) at script.js.Timer_Test:39:3
                    javascript.0 2021-04-15 23:17:38.888 error (2508) at script.js.Timer_Test:22:1
                    javascript.0 2021-04-15 23:17:38.888 error (2508) at start (script.js.Timer_Test:6:64)
                    javascript.0 2021-04-15 23:17:38.887 error (2508) script.js.Timer_Test: TypeError: getDateObject(...).getMinutes(...).trim is not a function

                    var startzeit, endzeit, schedule1, schedule2;
                    
                    // Beschreibe diese Funktion …
                    function start() {
                      startzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Startzeit").val).getTime();
                      schedule1 = schedule((getDateObject(startzeit).getMinutes()).trim() + ' ' + getDateObject(startzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                        console.log('Aktion zur Startzeit');
                        setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, true);
                      });
                    }
                    
                    // Beschreibe diese Funktion …
                    function start2() {
                      endzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Endzeit").val).getTime();
                      schedule2 = schedule((getDateObject(endzeit).getMinutes()).trim() + ' ' + getDateObject(endzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                        console.log('Aktion zur Endzeit');
                        setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, false);
                      });
                    }
                    
                    
                    start();
                    on({id: '0_userdata.0.Timer_Input.Timer_Input_Startzeit', change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      (function () {if (schedule1) {clearSchedule(schedule1); schedule1 = null;}})();
                      start();
                    });
                    
                    start2();
                    on({id: '0_userdata.0.Timer_Input.Timer_Input_Endzeit', change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      (function () {if (schedule2) {clearSchedule(schedule2); schedule2 = null;}})();
                      start2();
                    });
                    
                    
                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Snupy last edited by paul53

                      @snupy
                      Vielleicht muss der Block "CRON" gelöscht und neu eingefügt werden?

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

                        @paul53

                        👏 👍

                        du bist ein Held ! mach dir ein Bier auf oder was auch immer !!!

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        469
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        2
                        14
                        2227
                        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