Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Schedule - Spezial Frage

    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

    Schedule - Spezial Frage

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

      vorab:
      Ich schreibe alles in JS; Blockly nehm ich nicht.
      Bei Schedule benutze ich Cron.
      Handhabe Schedule per Variable und clearschedule ist mir bekannt.

      Sachverhalt:
      Ich möchte ein Gerät für x Minuten einschalten und dann nach weiteren x Minuten ausschalten.
      Beide Werte liegen per DP vor, z.B.
      alle_x = 15 (alle 15 Minuten ein schalten)
      für_x = 2 (dann nach 2 Minuten aus schalten)

      Hatte es so probiert, klappt aber verständlicher Weise nicht:

              alle_x = getState("javascript.0.System.Ulanzi.alle_x_Minuten").val; fuer_x = getState("javascript.0.System.Ulanzi.fuer_x_Minuten").val;
              // schedule '*/15 * * * *'
              sched_alle_x = "*/" + alle_x + " * * * *"; 
              sched_fuer_x = "*/" + (alle_x + fuer_x) + " * * * *";
              log (sched_alle_x + " __ " + sched_fuer_x);
              schedule(sched_alle_x,  function () { setState("awtrix-light.0.display.power",true); log ("Ulanzi ein"); });
              schedule(sched_fuer_x,  function () { setState("awtrix-light.0.display.power",false); log ("Ulanzi aus"); });
              log ("Ulanzi wird alle " + alle_x + " Minuten für " + fuer_x + " Minuten eingeschaltet.");
      

      Wenn ich z.B. sage alle 3 Minuten für 1 Minute ein, dann kommt ja nach meinem Script:
      alle_x = 3,6,9,12,15,.....
      für_x = 4,8,12,16,...

      Somit klappt das nur das erste mal, dann läuft es auseinander.

      Hat da jemand ein Script Schnipsel für mich.

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @bahnuhr last edited by

        @bahnuhr
        Also ich würde per Schedule ein- und mit 'nem Timeout ausschalten.

        bahnuhr 1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active @Codierknecht last edited by

          @codierknecht

          Hatte ich auch schon überlegt:

          sowas:

          schedule(sched_alle_x,  function () { 
          setState("awtrix-light.0.display.power",true); log ("Ulanzi ein"); 
          setTimeout(function() { 
          setState("awtrix-light.0.display.power",false); 
          } , fuer_x);
          });
          
          

          Ich probiers mal.

          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @bahnuhr last edited by

            @bahnuhr

            das funktioniert grundsätzlich.
            allerdings, wenn während der an-phase der javascript adapter neugestartet wird
            oder iobroker neu gestartet wird, dann gibt es den timout nicht mehr.

            da du aber sehr kleinteilig schaltets, wird ja beim nächsten mal an, der timer wieder gestartet

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

            Support us

            ioBroker
            Community Adapters
            Donate

            894
            Online

            31.9k
            Users

            80.2k
            Topics

            1.3m
            Posts

            javascript
            3
            4
            173
            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