Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Variable zur Zeitsteuerung verwenden

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Variable zur Zeitsteuerung verwenden

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

      Hallo,

      ich habe Variablen in denen Uhrzeiten hinterlegt sind.
      Basierend darauf sollen Datenpunkte verändert werden oder Funktionen des Scriptes aufgerufen werden.

      Kann ich das irgendwie mit JS umgesetzt bekommen? Ich meine eine Schleife im Hauptteil die alle x Sekunden die Variablen abfragt geht zwar - Aber schön wäre ja eine Triggermöglichkeit die sich von selbst meldet wenn ein Zeitpunkt erreicht ist?

      Danke!

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

        @warhammer73 sagte: ich habe Variablen in denen Uhrzeiten hinterlegt sind.

        Du meinst Datenpunkte?
        In welchem Format?

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

          @paul53
          Variablen (Genauer ein 2 dimensionales Array) im Script, keine Datenpunkte.

          1 Reply Last reply Reply Quote 0
          • arteck
            arteck Developer Most Active last edited by arteck

            ist schon der 2-te kryptische thread von dir...

            gibbet da mehr infos zu ?? meine Glaskugel ist gerade zur Politur... da musst du dich ein wenig mehr zu eussern

            am besten incl des arrays

            W 1 Reply Last reply Reply Quote 0
            • W
              warhammer73 @arteck last edited by

              @arteck
              Was war denn an der Frage nach einer FB kryptisch?

              Oder was ist an der Frage hier kryptisch?
              In einem Array stehen Uhrzeiten, das sollte doch ziemlich eindeutig sein.
              Wenn eine Uhrzeit erreicht wird ist aus meiner Sicht auch eine einfach Bedingung.
              Die Reaktion darauf soll sein einen Datenpunkt zu verändern oder eine Funktion im Script aufzurufen.
              Was brauchst Du noch an Infos?

              bahnuhr arteck 2 Replies Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active @warhammer73 last edited by

                @warhammer73

                Ein Schedule mit Variablen macht man so:

                schedule(DP_Minute + " " + DP_Stunde + " * * *",  function () {
                     // tue was
                });
                

                und ein on mit o.g. DP auf Veränderung reagieren.

                (oder ich habs falsch verstanden).

                1 Reply Last reply Reply Quote 0
                • arteck
                  arteck Developer Most Active @warhammer73 last edited by

                  @warhammer73 wie ist der array aufgebaut

                  steht da eine Uhrzeit drin wenn ja welche und wie in welchen Format
                  oder ist da ein timestamp drin

                  wenn das alles so einfach währe hätte ich nicht doof gefragt...
                  da du ja anscheinend kein plan davon hast währe es ratsam uns Daten zur verfügung zur stellen
                  einfacher für uns es zu lösen und einfacher für dich es zur verstehen

                  W 1 Reply Last reply Reply Quote 0
                  • W
                    WolfgangFB last edited by WolfgangFB

                    @bahnuhr
                    Ich habe warhammer73 so verstanden, dass er ein Arry mit Zeiten hat (vermutlich sortiert) und dann sollen nacheinander zu den dort gespeicherten Zeiten Aktionen ausgeführt werden, also z.B. Zeitarray=["15:34", "17:28"];
                    Die Idee mit dem schedule hatte ich auch, also am Anfang den ersten Zeiteintrag in ein ScheduleString umwandel (also z.B. "34 15 * * *" und dann im Funktionsteil den ScheduleString neu setzen (hier "27 17 * * *") und dann den Job neu starten.

                    var ScheduleString = "20 15 18 * * *";
                    const job = schedule(ScheduleString, function (){
                        console.log("Piep");
                        ScheduleString = "30 15 18 * * *";
                    // hier den ScheduleString eben aus dem nächsten Array Wert berechnen
                        job.reschedule(ScheduleString);
                        });
                    

                    Das Skript hat einmal um 18:15:20 und um 18:50:30 "Piep" ausgegeben.

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      WolfgangFB @WolfgangFB last edited by WolfgangFB

                      @wolfgangfb
                      Mit Array würde das dann so aussehen:

                      var ScheduleArray = ["00 27 18 * * *", "10 27 18 * * *"];
                      var ScheduleString = ScheduleArray.shift();
                      console.log(ScheduleString);
                      const job = schedule(ScheduleString, function (){
                          console.log("Piep");
                          if (ScheduleArray.length > 0){
                              ScheduleString = ScheduleArray.shift();
                              console.log(ScheduleString);
                              job.reschedule(ScheduleString);
                              }
                          });
                      
                      W 1 Reply Last reply Reply Quote 0
                      • W
                        warhammer73 @arteck last edited by

                        @arteck said in Variable zur Zeitsteuerung verwenden:

                        @warhammer73 wie ist der array aufgebaut

                        steht da eine Uhrzeit drin wenn ja welche und wie in welchen Format
                        oder ist da ein timestamp drin

                        wenn das alles so einfach währe hätte ich nicht doof gefragt...
                        da du ja anscheinend kein plan davon hast währe es ratsam uns Daten zur verfügung zur stellen
                        einfacher für uns es zu lösen und einfacher für dich es zur verstehen

                        Wie gerade schon geschrieben denke ich Du gehst von der falschen Seite aus los (Jedenfalls für meine Erwartungen).
                        Wenn die Antwort ist "Es gibt eine Lösung unter Verwendung vom Unix Timestamp oder vom tibetanischen Mondkalender" dann steht im Array eben der tibetanische Mondkalender. Javascript ist eine Programmiersprache und egal wie die Quellzeit formatiert ist lässt die sich doch ins Zielformat konvertieren. Warum soll ich mich jetzt auf "01.01.2023, 02:00, 22:00" festlegen und die Lösung die Dir vermutlich vorschwebt braucht aber "0200 2200 20230101"?
                        Insofern verstehe ich nicht was das ursprüngliche Quellformat (Das auch an der Stelle noch variabel ist) für die Lösungsfindung für eine Rolle spielt.

                        ... und nein, ich habe keinen Plan welche Lösungsansätze das JS im IOBroker dafür bietet - sonst würde ich nicht fragen.
                        Programmtechnisch einen Format in ein anderes umzuwandeln habe ich vor >40 Jahren das erste mal gemacht. Also Programme schreiben kriege ich hin.

                        1 Reply Last reply Reply Quote 0
                        • W
                          warhammer73 @WolfgangFB last edited by

                          @wolfgangfb
                          Danke, das sieht doch schon gut aus, muss ich mich mal mit dem gesamten Format beschäftigen, so spontan scheint es ja ans cron Format angelehnt zu sein.

                          W 1 Reply Last reply Reply Quote 0
                          • W
                            WolfgangFB @warhammer73 last edited by

                            @warhammer73 sagte in Variable zur Zeitsteuerung verwenden:

                            @wolfgangfb
                            Danke, das sieht doch schon gut aus, muss ich mich mal mit dem gesamten Format beschäftigen, so spontan scheint es ja ans cron Format angelehnt zu sein.

                            Ja, ist cron ähnlich, siehe
                            https://www.npmjs.com/package/node-schedule

                            Wie Du aus dem Array die passeden Eintraäge machst weißt Du wohl selbst.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            935
                            Online

                            31.6k
                            Users

                            79.6k
                            Topics

                            1.3m
                            Posts

                            5
                            12
                            419
                            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