Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] JS-Skript - Schedule funktioniert nicht (mehr)

    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

    [Gelöst] JS-Skript - Schedule funktioniert nicht (mehr)

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

      Ich habe ein kleines Skript (hier auf das wesentliche reduziert), dass in einem festen Zyklus aufgerufen werden soll (hier jede Minute)

      function Heizung () {
      
          const THIS_SCRIPT = "TEST-SKRIPT - ";
      
          log (THIS_SCRIPT + "------------ CHECK SCHEDULE ------------", "info");    
      }
      
      schedule("0/1 * * * *", Heizung);
      

      Wie ich festgestellt habe, klappt es mit dem "schedule" leider überhaupt.

      Statt des Starts jede Minute läuft das Skript nur jede Stunde.

      Das Skript selbst läuft schon seit langem und ist einstmals auch korrekt getriggert worden. Allerdings habe ich dieses Fehlverhalten erst jetzt zufällig über die Log-Einträge festgestellt: zur Zeit ist die Heizng nicht ganz so wichtig für das Wohlbefinden.

      Was könnte sich geändert haben?

      Mein System:

      Admin 3.5.0

      JS 3.6.4

      Dieses Skript läuft in einer eigenen JS-Instanz (der zweiten)

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

        @Karl_999:

        in einem festen Zyklus aufgerufen werden soll (hier jede Minute) `

        schedule("* * * * *", Heizung);
        

        oder

        schedule("*/1 * * * *", Heizung);
        
        1 Reply Last reply Reply Quote 0
        • G
          gst666 last edited by

          Ich würde

          schedule("* * * * *", Heizung);
          

          wegen der Lesbarkeit bevorzugen

          Noch zur kurzen Erläuterung:

          Der Schrägstrich kann ein mathematischen geteilt sein:

          9/3 * * * *
          ````wäre mit````
          3 * * * *
          ````identisch.
          
          0/1 sollte Null ergeben. Daher wird Dein Skript immer zur 0\. Minute ausgeführt.
          
          Der Schrägstrich kann aber auch als Intervallangabe verwendet werden:
          

          */5 * * * *
          bedeutet das das Skript alle 5 Minuten ausgeführt wird. Entsprechend wird bei
          */1 * * * *
          das Skript jede Minute ausgeführt. Daher kann man auch gleich


          1 Reply Last reply Reply Quote 0
          • K
            Karl_999 last edited by

            Ich muss zugeben, dass das Intervall 1 Minute leider etwas ungeschickt war. Da kam das Probölem selbst nicht klar genug heraus.

            @gst666:

            Der Schrägstrich kann ein mathematischen geteilt sein:

            9/3 * * * *
            

            wäre mit

            3 * * * *
            

            identisch. `

            Das ist so nicht korrekt.

            Die genaue Definition des Intervall bedeutet hier:

            Start zur Minute 9 und dann alle drei Minuten. Dies wird auch im Skript so angegeben: einfach mal oben CRON antippen und dann den Ausdruck eingeben. Damit würde zur Minute 3 und 6 kein Trigger kommen.

            Die echte CRON-Syntax ist jedoch in diesem Fall etwas anders https://de.wikipedia.org/wiki/Cron#Beispiele

            Danach muss es

            1-59/2 * * * *
            ````heißen. Also zwischen Minute 1 und 59 triggere alle 2 Minuten. Und siehe da: der JS-Adapter macht es nun genau richtig.
            
            Fazit: Die im JS-Adapter vorgeschlagene Syntax ist (teilweise) leider falsch.
            1 Reply Last reply Reply Quote 0
            • K
              Karl_999 last edited by

              Nachtrag:

              Ich habe gerade festgestellt, dass die CRON-Einstellungen der Adapter auf der Instanzen-Seite zum gleichen Verhalten führen.

              Dort fiel es mir bislang nicht auf, da die betroffenen Adapter bei mir nur der Anzeige dienen und ich sie natürlich nicht dauernd überwacht habe.

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

              Support us

              ioBroker
              Community Adapters
              Donate

              663
              Online

              31.7k
              Users

              79.9k
              Topics

              1.3m
              Posts

              3
              5
              2741
              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