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); }; }); -
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); -
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); }; }); -
@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? -
@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 !'); } }); -
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!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
