Skip to content
  • Home
  • 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

Community Forum

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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Wie löse ich Wiederholungen

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 269 Aufrufe 1 Watching
  • Ä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.
  • cashC Offline
    cashC Offline
    cash
    Most Active
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #8

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

                  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

                  622

                  Online

                  32.6k

                  Benutzer

                  82.1k

                  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
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe