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 @Snupy last edited by Snupy

      gelöscht 😉

      1 Reply Last reply Reply Quote 0
      • 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

                          547
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

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