Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Wie löse ich Wiederholungen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    575

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Wie löse ich Wiederholungen

Scheduled Pinned Locked Moved JavaScript
8 Posts 3 Posters 269 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • cashC Offline
    cashC Offline
    cash
    Most Active
    wrote on last edited by
    #1

    Ich brauche da mal einen Ratschlag. Bisher lasse ich mich an alles mögliche erinnern z. B. Fenster schließen in Abhängigkeit der Innen- und Außentemperatur. Da das alles nicht wichtig ist werde ich genau einmal erinnert. Das löse ich mit setTimeout. Das reicht mir auch nach wie vor. Da ich ggf. das ganze dann mit einer Prio 2 Pushnachricht über Pushover löse. Pushover schickt mit dann jede Minute eine neue Push bis ich es bestätige.

    Jetzt brauche ich etwas was mich solange erinnert bis sich wirklich der Status der Tür verändert hat. Aber wie mache ich das am Besten?

    Soll ich setIntervall nutzen, ein Schedule, eine Schleife? Was ist Sinnvoll?

    Grundgerüst:

    Wenn Arbeitstag dann erste Erinnerung in 75 Minuten danach alle 30 Minuten. Wenn freier Tag Erinnerung alle 120 Minuten.

    Setze Erinnerung wenn Status Tür = 3. Nach Ablauf Push verschicken. Erinnerung abrechen wenn Status Tür = 2.

    MicM 1 Reply Last reply
    0
    • cashC cash

      Ich brauche da mal einen Ratschlag. Bisher lasse ich mich an alles mögliche erinnern z. B. Fenster schließen in Abhängigkeit der Innen- und Außentemperatur. Da das alles nicht wichtig ist werde ich genau einmal erinnert. Das löse ich mit setTimeout. Das reicht mir auch nach wie vor. Da ich ggf. das ganze dann mit einer Prio 2 Pushnachricht über Pushover löse. Pushover schickt mit dann jede Minute eine neue Push bis ich es bestätige.

      Jetzt brauche ich etwas was mich solange erinnert bis sich wirklich der Status der Tür verändert hat. Aber wie mache ich das am Besten?

      Soll ich setIntervall nutzen, ein Schedule, eine Schleife? Was ist Sinnvoll?

      Grundgerüst:

      Wenn Arbeitstag dann erste Erinnerung in 75 Minuten danach alle 30 Minuten. Wenn freier Tag Erinnerung alle 120 Minuten.

      Setze Erinnerung wenn Status Tür = 3. Nach Ablauf Push verschicken. Erinnerung abrechen wenn Status Tür = 2.

      MicM Offline
      MicM Offline
      Mic
      Developer
      wrote on last edited by
      #2

      @cash sagte in Wie löse ich Wiederholungen:

      Jetzt brauche ich etwas was mich solange erinnert bis sich wirklich der Status der Tür verändert hat. Aber wie mache ich das am Besten?
      (...)
      Setze Erinnerung wenn Status Tür = 3. Nach Ablauf Push verschicken. Erinnerung abrechen wenn Status Tür = 2.

      Das ist in JavaScript clearInterval(). Hier mal schnell zusammenkopiert ein Beispiel-Script, kannst du so im JS-Adapter testen:

      let intervalTimer;
      let counter = 0;
      intervalTimer = setInterval(function() {
          counter++;
          if (counter < 6) {
              log('Ausführung Nr. ' + counter);
          } else {
              log('Es sind bereits 5 Befehle gesendet, jetzt brechen wir ab.')
              clearInterval(intervalTimer);
              intervalTimer = null;
          }
      }, 2000);
      
      cashC 1 Reply Last reply
      0
      • MicM Mic

        @cash sagte in Wie löse ich Wiederholungen:

        Jetzt brauche ich etwas was mich solange erinnert bis sich wirklich der Status der Tür verändert hat. Aber wie mache ich das am Besten?
        (...)
        Setze Erinnerung wenn Status Tür = 3. Nach Ablauf Push verschicken. Erinnerung abrechen wenn Status Tür = 2.

        Das ist in JavaScript clearInterval(). Hier mal schnell zusammenkopiert ein Beispiel-Script, kannst du so im JS-Adapter testen:

        let intervalTimer;
        let counter = 0;
        intervalTimer = setInterval(function() {
            counter++;
            if (counter < 6) {
                log('Ausführung Nr. ' + counter);
            } else {
                log('Es sind bereits 5 Befehle gesendet, jetzt brechen wir ab.')
                clearInterval(intervalTimer);
                intervalTimer = null;
            }
        }, 2000);
        
        cashC Offline
        cashC Offline
        cash
        Most Active
        wrote on last edited by
        #3

        @Mic Ist das wirklich die Beste Lösung? Wie schon geschrieben das Programmieren kriege ich hin mir geht es mehr darum was die Beste Lösung für dieses Problem ist...

        MicM 1 Reply Last reply
        0
        • T Do not disturb
          T Do not disturb
          ticaki
          wrote on last edited by
          #4

          Was du mit Schleife meinst ist mir jetzt nicht wirklich klar.
          Imho ist eine Kombination aus setTimeout und setInterval die sauberste Lösung.
          CronJob/Schedule würde ich nur für Aufgaben verwenden die zum Zeitpunkt X ausgeführt werden müssen.

          Gruß Tim

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          cashC 1 Reply Last reply
          0
          • T ticaki

            Was du mit Schleife meinst ist mir jetzt nicht wirklich klar.
            Imho ist eine Kombination aus setTimeout und setInterval die sauberste Lösung.
            CronJob/Schedule würde ich nur für Aufgaben verwenden die zum Zeitpunkt X ausgeführt werden müssen.

            Gruß Tim

            cashC Offline
            cashC Offline
            cash
            Most Active
            wrote on last edited by
            #5

            @ticaki Schleife:

            for(let i = 0; i < Speaker_Anzahl; i++) {
            

            Die erste Erinnerung habe ich nun mit setTimeout gemacht und die folgenden kürzeren mit setintervall.

            Danke.

            1 Reply Last reply
            0
            • cashC cash

              @Mic Ist das wirklich die Beste Lösung? Wie schon geschrieben das Programmieren kriege ich hin mir geht es mehr darum was die Beste Lösung für dieses Problem ist...

              MicM Offline
              MicM Offline
              Mic
              Developer
              wrote on last edited by Mic
              #6

              @cash sagte in Wie löse ich Wiederholungen:

              @Mic Ist das wirklich die Beste Lösung?

              Was stört dich denn daran bzw. warum denkst du, dass es keine gute Lösung sei?

              cashC 1 Reply Last reply
              0
              • MicM Mic

                @cash sagte in Wie löse ich Wiederholungen:

                @Mic Ist das wirklich die Beste Lösung?

                Was stört dich denn daran bzw. warum denkst du, dass es keine gute Lösung sei?

                cashC Offline
                cashC Offline
                cash
                Most Active
                wrote on last edited by
                #7

                @Mic Mich stört nichts daran und da ich keine Ahnung habe frage ich lieber mal nach. Beim suchen fand ich teils unterschiedliche Ansichten wann man setIntervall nutzen sollte oder eben nicht. Da ich dort mit den Antworten und Beispielen aber wenig anfangen konnte bzw nicht richtig verstanden habe wurde ich unsicher. Spontan hatte ich selber auch an setIntervall gedacht.

                MicM 1 Reply Last reply
                0
                • cashC cash

                  @Mic Mich stört nichts daran und da ich keine Ahnung habe frage ich lieber mal nach. Beim suchen fand ich teils unterschiedliche Ansichten wann man setIntervall nutzen sollte oder eben nicht. Da ich dort mit den Antworten und Beispielen aber wenig anfangen konnte bzw nicht richtig verstanden habe wurde ich unsicher. Spontan hatte ich selber auch an setIntervall gedacht.

                  MicM Offline
                  MicM Offline
                  Mic
                  Developer
                  wrote on last edited by
                  #8

                  @cash
                  Passt doch, dann nimm einfach setInterval() / clearInterval(), das läuft wirklich sehr zuverlässig.

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  680

                  Online

                  32.7k

                  Users

                  82.6k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Home
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe