NEWS
Pause zwischen 2 Befehlen
-
Immer wenn die Bodenfeuchtigkeit zu gering ist, soll eine Message an Telegram gesendet werden.
Dann soll wieder in einer Stunde getestet werden.
Aber es funktioniert nicht.
Diese Meldung kommt: "script.js.Pflanzenmelder: Invalid callback for setTimeout! - string"
Jemand eine Idee?// Ist die Pflanze gegossen ? var request = require('request'); var fs = require('fs'); on({id: "ble.0.c4:7c:8d:6b:12:c1.moisture", change: 'any'}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val; if (Wasserstatus < '40') { sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !'); //sendTo('telegram.0', '@Nicole Hallo! Ich will gegossen werden !') function time_out() { history.back(); } to = setTimeout("time_out()", 3600000); }; });
-
- Wozu dienen die require() ?
- Wo ist history.back() deklariert ?
- Wenn man etwas zyklisch ausführt, benötigt man auch eine Abbruch-Bedingung
- Richtig:
setTimeout(time_out, 3600000);
-
-
@paul53 sagte in Pause zwischen 2 Befehlen:
setTimeout(time_out, 3600000);
Wie kann ich das im Script einfach machen ?
Hast Du ein Beispiel mit Settmieout? -
@thobastian sagte in Pause zwischen 2 Befehlen:
Wie kann ich das im Script einfach machen ?
var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val; var timer = null; function time_out() { if (Wasserstatus < 43) { sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !'); //sendTo('telegram.0', '@Nicole Hallo! Ich will gegossen werden !') timer = setTimeout(time_out, 3600000); } else timer = null; } time_out(); // Script start on("ble.0.c4:7c:8d:6b:12:c1.moisture", function (obj) { // Wertänderung Wasserstatus = obj.state.val; if(Wasserstatus < 40 && !timer) time_out(); });
-
Mir ist nicht so 100%ig klar, was du eigentlich willst, aber wenn es darum geht, jede Stunde die Feuchtigkeit zu prüfen, wäre schedule die einfachste Lösung. So würde dein Script zu jeder vollen Stunde ausgeführt:
schedule({'0 * * * *'}, function(){ var Wasserstatus = getState('ble.0.c4:7c:8d:6b:12:c1.moisture').val; if (Wasserstatus < '40') { sendTo('telegram.0', '@Thomas Hallo! Ich bin die Pflanze im Wohnzimmer. Ich muß gegossen werden !'); } });
-
@Alexi Hallo Alexi, ja, das hast Du Recht. Die Programmierung ist auch sauberer. Danke!