NEWS
while(getState(x).val)...
-
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
-
Dazu gibt es hier einen Beitrag
https://forum.iobroker.net/topic/32305/intervall-zur-datenabfrage-festlegenUnd es gibt die Funktion setInterval
https://www.a-coding-project.de/ratgeber/javascript/setinterval
Wie bei allen timern, hinterher wieder clearen mit clearInterval
-
@klassisch Super, danke