Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Javascript: agressive Intervalle

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Javascript: agressive Intervalle

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

      @rene55

      Mach doch einfach 3 x timeout.
      Oder ich habe dich nicht verstanden.

      setTimeout(function() {
                      // tue was 1
      }, 9000);   
      setTimeout(function() {
                      // tue was 2
      }, 15000);   
      setTimeout(function() {
                      // tue was 3
      }, 18000);   
      
      
      Rene55 1 Reply Last reply Reply Quote 0
      • Rene55
        Rene55 @Codierknecht last edited by

        @codierknecht Könnte klappen, ist schon mal dynamisch.

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

          @bahnuhr Ja schon richtig verstanden. Ich wollte es nur 'elegant' haben.

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

            @rene55
            Ich rate mal: Du willst damit etwas ausgeben und Deine Familie terrorisieren?
            Nach dem Motto: "Hömma du Vollhorst, mach endlich datt Fenster zu!!!" 😁 😁 😁

            Die Differenz (3000) könnte man auch noch dynamisch der Funktion als Parameter mitgeben.

            Hoffentlich verprügelt Dich niemand 😉

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

              @rene55 sagte: soll sofort etwas getan (Ansage, Nachricht, etc) werden, nach 9 Sekunden soll das wiederholt werden, dann nach 6 Sekunden und dann nach 3 Sekunden

              Da es nach Blockly generiertem Code aussieht, eine Blockly-Version:

              Blockly_temp.JPG

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

                @paul53 Das wird wohl der richtige Ansatz für mich werden! Danke.
                Woran kannst du erkennen, dass es ein von Blockly erzeugter Code ist?

                Codierknecht paul53 2 Replies Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @Rene55 last edited by

                  @rene55 sagte in Javascript: agressive Intervalle:

                  Woran kannst du erkennen, dass es ein von Blockly erzeugter Code ist?

                  Weil z.B. die Callbacks von kaum jemandem so geschrieben würden 😉

                  Rene55 1 Reply Last reply Reply Quote 0
                  • Rene55
                    Rene55 @Codierknecht last edited by

                    @codierknecht Fast gut geraten. Es soll eine Ansage werden dass ICH die Einnahme von Tabletten nicht vergesse. Die drei Sekunden sind hier natürlich zu Testzwecken. Werden dann wohl so ca. 6 Minuten werden. Hinzu kommt dannnoch die Möglichkeit (irgendein Taster), die Ansagen abzubrechen, wenn ich meine Pillen genommen habe.

                    1 Reply Last reply Reply Quote 0
                    • Rene55
                      Rene55 @Codierknecht last edited by

                      @codierknecht sagte in Javascript: agressive Intervalle:

                      Callbacks

                      Wie schreibt man die denn 'richtig'?

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

                        @rene55 sagte: Woran kannst du erkennen, dass es ein von Blockly erzeugter Code ist?

                        Im ursprünglichen Code sind Zeilen 5 und 9 typische Blockly-Konstrukte, die man als Javascript-Programmierer i.d.R. so nicht schreiben würde.

                        Rene55 1 Reply Last reply Reply Quote 1
                        • Rene55
                          Rene55 @paul53 last edited by Rene55

                          @paul53 Ja, besonders Zeile 9 hätte ich aus meinem Hirn so nicht hinbekommen!

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

                            @rene55 sagte in [gelöst] Javascript: agressive Intervalle:

                            Wie schreibt man die denn 'richtig'?

                            Die sind ja nicht falsch. Aber die würden die meisten (oder zumindest so einige) Programmierer wohl etwas anders formulieren.
                            Wie @paul53 schon schreibt, ist auch gerade das Dekrimieren des Counter so "typisch Blockly".

                                if (counter) {
                                    counter--;
                                    doAnything(counter);
                                } else {
                                    if (Intervall) { clearInterval(Intervall); Intervall = null; };
                                    log('Fertig');
                                }
                            
                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @Codierknecht last edited by

                              @codierknecht
                              Da der Teil innerhalb der Intervall-Callback-Funktion ausgeführt wird, kann man sich die Prüfung und das Rücksetzen auf null sparen.

                                  if (counter > 0) {
                                      counter--;
                                      doAnything(counter);
                                  } else {
                                      clearInterval(Intervall);
                                      log('Fertig');
                                  }
                              

                              Die Prüfung "counter > 0" ist sinnvoll, wenn nicht garantiert werden kann, dass counter mit einer positiven ganzen Zahl initialisiert wurde.

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

                                @paul53 sagte in [gelöst] Javascript: agressive Intervalle:

                                kann man sich die Prüfung und das Rücksetzen auf null sparen

                                ... auch das 😉

                                Rene55 1 Reply Last reply Reply Quote 0
                                • Rene55
                                  Rene55 @Codierknecht last edited by

                                  @codierknecht @paul53 Danke euch beiden - wieder was gelernt 😊

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  701
                                  Online

                                  31.7k
                                  Users

                                  79.7k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  17
                                  357
                                  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