Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Schleife mit Pausen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Schleife mit Pausen

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

      Hallo Zusammen,

      ich möchte in einem Skript einen Block X mal wiederholen, wobei zwischen den Wiederholungen eine Pause sein soll.

      Ich komme irgendwie nicht dahinter, warum das "Hallo Welt" hier direkt 5 mal ohne Pause ausgegeben wird 😠

      Zwischenablage01.jpg

      Bitte um Hilfestellung.

      Danke.
      Micha

      paul53 G 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @matschkopf last edited by paul53

        @matschkopf sagte

        X mal wiederholen, wobei zwischen den Wiederholungen eine Pause sein soll.

        Nimm "Ausführen Intervall" zusammen mit einer Zählvariablen.

        Blockly_temp.JPG

        1 Reply Last reply Reply Quote 0
        • G
          George_Best @matschkopf last edited by George_Best

          @matschkopf

          Weil javascript nicht wartet bis ein Befehl abgeschlossen ist um mit dem nächsten zu starten (... das macht meines Wissens keine "Hochsprache"...). D.h. JS führt die Schleife 5x kurz hinter einander aus (Pause im ms-Bereich), und es erscheint nach 2 Sekunden 5x kurz hinter einander "Hallo Welt".
          Du müsstest also eigentlich 5x den timeout ineinander verschachteln. Oder du löst es elegant wie von von @paul53 vorgeschlagen mit einem Intervall.

          M 1 Reply Last reply Reply Quote 0
          • M
            matschkopf @George_Best last edited by

            @George_Best
            @paul53

            Danke für die Antworten.
            Auch wenn keine Hochsprache darauf wartet, dass ein Befehl abgeschlossen ist, ist es mir zu "hoch", dass verstehen wohl nur Programmierer. Als Blockly Puzzler hätte ich es anders erwartet. 😵 Egal...

            Was mache ich denn in der eleganten Lösung falsch:

            Zwischenablage02.jpg

            So wird "Hallo Welt" zwar alle 2 Sek einmal ausgegeben, aber nicht nur 3x, sondern unendlich 😠

            T AlCalzone 2 Replies Last reply Reply Quote 0
            • T
              thoMAS @matschkopf last edited by

              @matschkopf mit dem letzen durchlauf der Schleife startest du nocheinmal das Intervall, es wird aber nicht mehr beendet.

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @matschkopf last edited by

                @matschkopf Dreh die Logik rum!

                Erstelle ein Intervall (ohne Stoppen) -> du willst alle 2s etwas ausführen
                Darin die Schleife -> und zwar 3x
                und darin die Ausgabe. -> und zwar das hier

                frank2604 1 Reply Last reply Reply Quote 0
                • frank2604
                  frank2604 @AlCalzone last edited by

                  @alcalzone, @paul53

                  Ich hänge mich hier mal dran, weil der Titel des Threads zu meinem Problem passt.

                  Ich durchlaufe eine Liste mit einer Schleife und bekomme in jedem Durchlauf jeweils Objekt ID und Dauer in Sekunden, um etwas zu schalten (dort wo jetzt noch der Debug Output steht).

                  Der nächste Durchlauf soll aber erst beginnen, nachdem die Dauer des vorherigen abgelaufen ist.

                  Ich finde keine Lösung 😢

                  2022-03-25_17-25-09.png

                  Grüße

                  Frank

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

                    @frank2604 sagte: Der nächste Durchlauf soll aber erst beginnen, nachdem die Dauer des vorherigen abgelaufen ist.

                    Vorschlag:

                    Bild_2022-03-25_185412.png

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

                      @paul53

                      Super! Funktioniert einwandfrei. Ich hatte schon so etwas im Kopf von wegen 'Schleife selber bauen' aber ich wusste bisher noch nichts mit den "Funktionen"-Bausteinen anzufangen. Wieder etwas gelernt.

                      Ganz lieben Dank - auch dafür, dass es so schnell ging und Du Dir auch noch die Mühe gemacht hast, alles in Blockly nachzubauen. 🙏

                      LG Frank

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      812
                      Online

                      32.0k
                      Users

                      80.5k
                      Topics

                      1.3m
                      Posts

                      6
                      9
                      1246
                      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