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.
    • 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

                            689
                            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