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. while(getState(x).val)...

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    137

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

while(getState(x).val)...

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 175 Aufrufe 2 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.
  • Dominic ReberD Offline
    Dominic ReberD Offline
    Dominic Reber
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen

    Heut sind meine Xiaomi Rauchmelder angekommen und zu meinem Erstaunen wurden sie durch ConBee 2 korrekt in den IoBroker eingebunden - coole Sache.

    Nun stellt er einen Wert auf true, sobald Rauch gesensed wird.

    Ich möchte jetzt, sobald er dies bemerkt, alle 5 Sekunden über Sonos den Ort des Rauches ausgeben.

    on({id: "deconz.0.Sensors.7.fire", change: "ne"}, function (obj) {
            if(obj.newState.val){
             console.log('Feueralarm ausgelöst');
             require("request")('http://192.168.1.xxx:5005/say/FEUER im Zimmer von x/de-de/60').on("error", function (e) {console.error(e);});
          }
      });
    

    Also das Skript funktioniert. Nur möchte ich alle 5 Sekunden überprüfen, ob der Wert noch auf true ist, und wenn ja, das Skript nochmals ausführen.

    while(getState('...').val){
    .....
    sleep(5000);
    }
    

    scheint nicht möglich zu sein. (Wahrscheinlich weil er einen Thread blockiert)

    Wie löse ich das?

    Danke

    1 Antwort Letzte Antwort
    0
    • K Offline
      K Offline
      klassisch
      Most Active
      schrieb am zuletzt editiert von
      #2

      Dazu gibt es hier einen Beitrag
      https://forum.iobroker.net/topic/32305/intervall-zur-datenabfrage-festlegen

      Und es gibt die Funktion setInterval

      https://www.a-coding-project.de/ratgeber/javascript/setinterval

      Wie bei allen timern, hinterher wieder clearen mit clearInterval

      Dominic ReberD 1 Antwort Letzte Antwort
      0
      • K klassisch

        Dazu gibt es hier einen Beitrag
        https://forum.iobroker.net/topic/32305/intervall-zur-datenabfrage-festlegen

        Und es gibt die Funktion setInterval

        https://www.a-coding-project.de/ratgeber/javascript/setinterval

        Wie bei allen timern, hinterher wieder clearen mit clearInterval

        Dominic ReberD Offline
        Dominic ReberD Offline
        Dominic Reber
        schrieb am zuletzt editiert von
        #3

        @klassisch Super, danke

        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

        831

        Online

        32.5k

        Benutzer

        81.7k

        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