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

                          703
                          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