NEWS
Javascript Delay
-
Hallo zusammen,
ich habe ein Script laufen das mir mittels Telegram Bot Nachrichten schickt wann ich lüften sollte. (Habe Sensoren in allen Räumen)
Da ich mittlerweile jedoch auch noch Magnetschalter angebracht habe würde ich gerne 10min nach öffnen eines Fensters eine weitere Benachrichtigung bekommen die mich an das schließen erinnert.
Meine bisherige Idee
setInterval(function() { // Startet die Funktion in einem festgelegten Intervall. Intervall wird am Ende festgelegt. var balkon_k = getState("rpi2.0.gpio.5.state"/*GPIO 5*/).val; var fenster_k = getState("rpi2.0.gpio.12.state"/*GPIO 12*/).val; if ( ( balkon_k === true || fenster_k === true ) ) { setTimeout(function() { var balkon_k = getState("rpi2.0.gpio.5.state"/*GPIO 5*/).val; var fenster_k = getState("rpi2.0.gpio.12.state"/*GPIO 12*/).val; if ( ( balkon_k === true || fenster_k === true ) ) { sendTo('telegram.0', { // Nachricht inkl. Werte für Temperatur und Luftfeuchtigkeit. text: 'Küche nicht mehr lüften!' }); } else { log('Fenster/Balkon schon geschlossen '); } }, 10000*60); } else { log('Fenster/Balkon geschlossen'); } }, 15000) // Hier wird die Intervalldauer in ms festgelegt wann da Programm erneut starten soll. ;
Der Code sorgt bisher jedoch dafür das zwar wenn das Fenster geöffnet ist, einmal 10min gewartet wird. Dann jedoch alle 15 Sekunden die Nachricht kommt das nicht mehr gelüftet werden soll.
-
Du startest das Script:
Intervall beginnt..
00:00:15 wird geprüft und ein setTimeout angelegt welcher 10 Minuten wartet.. Der erste setTimeout wird also um 00:10:15 ausgelöst.
00:00:30 wird wieder geprüft und wieder ein setTimeout angelegt welcher 10 Minuten wartet.. Der zweite setTimeout wird also um 00:10:30 ausgelöst..
00:00:45 wird wieder geprüft und wieder ein setTimeout angelegt - welcher um 00:10:45 ausgelöst wird…
Und so gehts die ganze Zeit weiter..
Gruß