Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. [Gelöst] clearInterval will nicht so wie ich

NEWS

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    1.1k

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.6k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    6.2k

[Gelöst] clearInterval will nicht so wie ich

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 3 Kommentatoren 1.5k 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.
  • C Offline
    C Offline
    Chauffeur
    schrieb am zuletzt editiert von
    #1

    Hallo, ihr Lieben.

    Hätte mal wieder ein kleines Problem. Ich bemühe mich grad wirklich, in JS durchzusteigen, aber das ist (und bleibt wohl) ein Buch mit 7 Siegeln.

    Also, ich würde mit setInterval gerne eine Schleife erstellen. Da meine Versuche bisher (mit dem Hauptzweck) viel zu wirr und unübersichtlich (und fehlerbehaftet) waren, habe ich erstmal ein kleines Testskript geschrieben, um überhaupt ein Gespür für setInterval zu bekommen. Dieses soll alle 3 Sek abhängig eines Datenpunktwertes (1, 2, oder eine andere Zahl) ins log eintragen:

    "ist ne Eins", "ist ne Zwei", "Aus die Maus" (Für jede Zahl ausser 1+2) und generell "Änderung" bei jeder Änderung.

    soweit klappt alles, nur die clearInterval-Funktion will einfach nicht… je nachdem, wohin ich sie setzte wird sie scheinbar einfach ignoriert bzw. bringt bereits im Skript ne Meldung.

    Sobald ich die Zahl im Datenpunkt ändere (z.B. von 1 auf 2) kommt zwar "Änderung", aber es laufen "Es ist ne Eins" und "Es ist ne Zwei" parallel weiter.

    Vielleicht kann mir jemand sagen, wie man das hier besser hinbekommt?

    ! ````
    var Datenpunkt = "javascript.0.GardenspotsColor.Gardentime"/Gardentime/;
    ! function Text1() {
    console.log('Ist ne Eins');
    }
    ! function Text2() {
    console.log('Ist ne Zwei');
    }
    ! on(Datenpunkt, function (data) {
    console.log ('Änderung');
    clearInterval (timer1);
    clearInterval (timer2);

    if (data.state.val == 1) {
        var timer1 =  setInterval (Text1, 3000);
    

    }

    ! else if (data.state.val == 2) {
    var timer2 = setInterval (Text2, 3000);
    }

    else {
    console.log ('Aus die Maus');
    

    }
    });

    
    Danke schonmal
    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Deklarier mal die Timer-Variablen außerhalb einer Funktion:

      ! ````
      var Datenpunkt = "javascript.0.GardenspotsColor.Gardentime"/Gardentime/;
      ! function Text1() {
      console.log('Ist ne Eins');
      }
      ! function Text2() {
      console.log('Ist ne Zwei');
      }
      ! var timer1 = null;
      var timer2 = null;
      ! on(Datenpunkt, function (data) {
      console.log ('Änderung');
      if(timer1) clearInterval (timer1);
      if(timer2) clearInterval (timer2);

      if (data.state.val == 1) {
          timer1 =  setInterval (Text1, 3000);
      }
      

      ! else if (data.state.val == 2) {
      timer2 = setInterval (Text2, 3000);
      }

      else {
      console.log ('Aus die Maus');
      }
      

      });

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB; Proxmox mit 2 VM (iob / openCCU)

      1 Antwort Letzte Antwort
      0
      • DolomitiD Offline
        DolomitiD Offline
        Dolomiti
        schrieb am zuletzt editiert von
        #3

        Hallo,

        ich hab das mal ausprobiert. Kann es daran liegen das du versuchst die Timer zu clearen, diese aber noch gar nicht deklariert sind. Versuch mal die Variablendeklaration vor dem ersten function(). Damit funktioniert es bei mir.

        ! ````
        createState("javascript.0.GardenspotsColor.Gardentime");
        var Datenpunkt = "javascript.0.GardenspotsColor.Gardentime"/Gardentime/;
        var timer1, timer2;
        function Text1() {
        console.log('Ist ne Eins');
        }
        ! function Text2() {
        console.log('Ist ne Zwei');
        }
        ! on(Datenpunkt, function (data) {
        console.log ('Änderung');
        clearInterval (timer1);
        clearInterval (timer2);
        if (data.state.val == 1) {
        timer1 = setInterval (Text1, 3000);

        }

        ! else if (data.state.val == 2) {
        timer2 = setInterval (Text2, 3000);

        }

        else {
        console.log ('Aus die Maus');
        

        }

        !
        });
        ! ````

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Intel N100 (32GB,256GB SSD), Proxmox -> Debian 13 in VM (Master) + Debian 13 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

        1 Antwort Letzte Antwort
        0
        • DolomitiD Offline
          DolomitiD Offline
          Dolomiti
          schrieb am zuletzt editiert von
          #4

          OK, da war ich etwas zu langsam ;)

          Und die if (timer1)… Abfrage hab ich auch nicht drin. Wieder was gelernt.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Intel N100 (32GB,256GB SSD), Proxmox -> Debian 13 in VM (Master) + Debian 13 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

          1 Antwort Letzte Antwort
          0
          • C Offline
            C Offline
            Chauffeur
            schrieb am zuletzt editiert von
            #5

            Vielen herzlichen Dank schonmal.

            Die Timer-Variablen an den Anfang zu setzten hatte ich tatsächlich schon versucht, aber halt nicht mit "= null" oder leer, sondern gleich mit setInterval. Da wurden die aber immer sofort ausgeführt… Auf sowas wie die Deklaration muß man als Laie erst mal kommen (hab ich aus Beispielen auch nie verständlich rausgelesen...)

            Das if bei clearInterval hatte ich auch schon probiert, aber kann ja nicht gehen, wenn die Timer nicht richtig funktionieren...

            Wunderbar, da kann ich jetzt mal weiter dran arbeiten und mein eigentliches Script neu entwerfen/überarbeiten...

            Puh, ich glaub, für die JS-Logik bin ich zu alt... :( :mrgreen:

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            181

            Online

            33.0k

            Benutzer

            83.6k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2026
            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