Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Schleife mit Blockly

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Schleife mit Blockly

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 3 Kommentatoren 2.9k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    Jan1
    schrieb am zuletzt editiert von
    #1

    Ich bekomme die Schleifen Funktion bei Blockly nicht auf die Reihe.

    Ich möchte das eine Ansage einfach 3x wiederholt wird, aber irgendwie versteh ich die Logik wie das abläuft nicht und schicke mit dem Blockly mein Pi in eine Endlosschleife. Kann mir bitte einer die grundsätzliche Funktion erklären und wie man den Block richtig setzt?

    5076_2018_10_24_11_54_23_window.png

    1 Antwort Letzte Antwort
    0
    • H Online
      H Online
      holgerwolf
      schrieb am zuletzt editiert von
      #2

      Das Hochzählen des Zählers muss in die Schleife (grüner Kasten).

      Gruß

      Holger

      1 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        Jan1
        schrieb am zuletzt editiert von
        #3

        Das hatte ich auch schon, dann war der Pi sofort in einer Schleife gehangen.

        Wie setzte ich eigentlich die Schleife "wiederhole x mal" richtig ein? Das Problem liegt wohl darin, das er die Aktion dann eben sehr schnell x mal hintereinander ausführt und ich das nicht mitbekomme.

        Wie geschrieben, mir ist das nicht ganz schlüssig wie die Schleife abläuft und deshalb tu ich mich schwer die richtig einzusetzen.

        Könnte mir einer das Blockly so basteln, dass der Text einfach 3x so hintereinander ausgegeben wird, und keine Überschneidung gibt? Wenn ich das vor mir habe, fällt hoffentlich endlich der Groschen :lol:

        1 Antwort Letzte Antwort
        0
        • AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          schrieb am zuletzt editiert von
          #4

          @Jan1:

          Könnte mir einer das Blockly so basteln, dass der Text einfach 3x so hintereinander ausgegeben wird, und keine Überschneidung gibt? Wenn ich das vor mir habe, fällt hoffentlich endlich der Groschen :lol: `

          Wenn du in etwa weißt, wie lange die Ausgabe dauert, nimm ein Intervall. Darin kannst du eine Variable hochzählen lassen und nach dem 3. Mal das Intervall beenden.

          Dann wird der Code darin z.B. nach 1000, 2000 und 3000 ms ausgeführt. Hab kein Blockly zur Hand, sonst würde ich es schnell zusammen klicken.

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          1 Antwort Letzte Antwort
          0
          • J Offline
            J Offline
            Jan1
            schrieb am zuletzt editiert von
            #5

            Wo muss denn hier das "Stop" hin? 5076_2018_10_25_09_26_44_window.png

            1 Antwort Letzte Antwort
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #6

              Einmal in den Sonst-Abschnitt deiner äußeren Abfrage, damit bei Änderung der Ringing-Variable auf false das Intervall gestoppt wird.

              Und einmal in das Intervall selbst ans Ende mit einer Abfrage "Falls Zähler >= 3, dann stop".

              So wie es aktuell aufgebaut ist, besteht aber die Gefahr, dass das Intervall mehrfach gestartet wird - sofern es möglich ist, dass Ringing mehrfach auf wahr gesetzt wird.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                Jan1
                schrieb am zuletzt editiert von
                #7

                Danke für Deine Hilfe. Mit der Änderung läuft es. Hatte ich mir schon gedacht, das ich hier noch eine "falls" Bedingung benötige um das wieder zu stoppen.

                Was mir allerdings überhaupt nicht gefällt, dass das Blockly für das bisschen Funktion so groß sein muss, wenn ich es mit einer Schleife oder Intervall erledigen will. Ich bin wieder zur Urversion zurück und rufe einfach 3 mal die Aktion zeitlich versetzt auf, so wie ich es am Anfang hatte :lol:

                Das läuft genau wie ich es will, nur dachte ich mir, dass das doch recht primitiv ist und das ganze sollte doch auch eleganter zu lösen sein. Man lernt eben immer dazu 😉

                1 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #8

                  @Jan1:

                  Das läuft genau wie ich es will, nur dachte ich mir, dass das doch recht primitiv ist und das ganze sollte doch auch eleganter zu lösen sein. Man lernt eben immer dazu 😉 `
                  Manchmal sind die einfachsten Lösungen doch die besten. Größere Anzahlen kann man z.B. so mit einer Schleife realisieren (ohne vorzeitigen Abbruch der Ausgabe):

                  Schleife über i von 1 bis 100
                  -- Timeout (i * 1000ms): Sprachausgabe
                  

                  nur weiß ich nicht, ob variable Timeouts in Blockly möglich sind.

                  In JS ist das ein Dreizeiler (ungefähr).

                  Die Idiotensichere Variante wäre übrigens noch viel komplizierter…

                  • Erkennen ob bereits ein "Sprachausgabeprozess" läuft

                  • Überschneidende Trigger entweder hinten anstellen oder ignorieren

                  • Erkennen, wann die einzelne Sprachausgabe abgeschlossen ist und dann Timeout für die nächste starten (für unterschiedlich lange Texte)

                  • und, und, und...

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  751

                  Online

                  32.4k

                  Benutzer

                  81.4k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Anmelden

                  • Du hast noch kein Konto? Registrieren

                  • Anmelden oder registrieren, um zu suchen
                  • Erster Beitrag
                    Letzter Beitrag
                  0
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe