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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script Anfängerfragen, u.a. SetInterval

NEWS

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

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

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

Script Anfängerfragen, u.a. SetInterval

Geplant Angeheftet Gesperrt Verschoben JavaScript
1 Beiträge 1 Kommentatoren 2.4k 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #1

    Hi Zusammen,

    ein eigener Script Versuch und im Grundgerüst schon drei "Fehler/Probleme":

    1. Intervall stoppt nicht

    2. Die Logs bei true und false werden jeweils doppelt ausgegeben

    3. Die erste Aktivierungsmeldung kommt erst nach ein paar Sekunden

    createState('alarm01', 0);
    
    on({id: "javascript.0.alarm01"}, function(obj) {
      if (obj.newState.val === true || obj.newState.val === "true") {
    
      // Alarm wurde aktiviert
      var alarmIntervall01 = setInterval(function() {alarm01()} ,8000);
      } else {
    
      // Alarm wurde deaktiviert
      clearInterval(alarmIntervall01);
      log("#### Alarm01 deaktiviert #####");
      }
      });
    
    // Was soll alle 8 Sekunden wiederholt werden, solange der Alarm aktiv ist:
    function alarm01() {
            log("#### Alarm01 #####");
    }
    

    1. Intervall stoppt nicht

    Wenn der Alarm mit false gestoppt wirf, wird im Log "#### Alarm01 deaktiviert ####" zweimal ausgegeben.

    Das Intervall läuft aber weiter. Alle 8 Sekunden wird "#### Alarm01 ####" zweimal weiter ausgegeben.

    Meine Vermutung (Achtung: blutiger Anfänger) ist, dass alarmInterval01 irgendwie global gesetzt werden muss.

    2. Die Logs bei true und false werden jeweils doppelt ausgegeben

    Ich ändere die JavaScriptvariable javascript.0.alarm01 über einen Schalter in VIS von true auf false und umgekehrt.

    Jedes Log wird aber doppelt ausgegeben. Bei true die Alarmmeldung alle 8 Sekunden zweimal.

    Bei false die Deaktivierungsmeldung zweimal (einmalig).

    Als Workaround könnte ich den timer aus der Beschreibung einbauen:

    var timer;
    
            if (!timer) {
                   timer = setTimeout(function () {
               timer = null;
            }, 4000);
    
            // wird im ersten Lauf durchgeführt (Timer = 0) danach für 4 Sekunden nicht
            log("#### alarm01 - wurde ausgeführt #####");
            }
    

    Das fühlt sich aber irgendwie falsch an.

    3. Die erste Aktivierungsmeldung kommt erst nach ein paar Sekunden

    Ich vermute, erst wenn der Timer das erste mal durch ist, wird die Funktion aufgerufen?

    Wen dem so ist, könnte ich die Funktion eimal vor dem setInterval aufrufen.

    Würde nur gerne sicher gehen und das gerade entstehende Wissen nicht auf falschen Beinen aufbauen ;-)

    Für einen Tipp wäre ich dankbar ;-)

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    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

    263

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