NEWS
[Gelöst] Zeitbereich als Trigger für On()
-
Hallo Zusammen,
erstmal muss ich sagen dass das ein super Forum ist. Ich versuche gerade in die Javascript-Programmierung einzusteigen und mir fehlt an der ein oder anderen Stelle noch etwas das Verständnis.
Ich wollte mittels Blockly ein Skript erstellen das nur getriggert wird wenn die Zeit zwischen zwei Zeiten liegt.

Bei der Code-Prüfung ist alles ok und wenn ich das Skript starte bekomme ich folgende Meldungen wenn die Zeit außerhalb des Zeitraumes ist
javascript.0 2017-04-13 21:15:08.605 info script.js.ontest_Blockly: registered 1 subscription and 0 schedules javascript.0 2017-04-13 21:15:08.605 error Error by subscription: empty ID defined. All states matched. javascript.0 2017-04-13 21:15:08.602 info Start javascript script.js.ontest_Blockly javascript.0 2017-04-13 21:15:08.578 error unsubscribe: invalid type of id - booleanWenn sie innerhalb liegt hätte ich die Ausgabe von "Test" im Log erwartet, aber es passiert nichts.
Kann das überhaupt funktionieren oder setzt On() zwingend eine Id voraus.
Gruß
Dolomiti
-
@fsjoke: Also war meine Vermutung mit der Id richtig.
@nobse: Aber der Zeitplan wird doch nur zu einem bestimmten wiederkehrend Zeitpunkt ausgeführt.
Vielleicht zur Erklärung folgendes:
Ziel des Ganzen soll sein dass in meinem Arbeitszimmer die Rollade runterfährt wenn ein Spiel gestartet wird. Dieses Skript funktioniert über Aufruf von Schedule() jede Minute auch soweit. Das ganze ist aber nur nötig wenn es hell draussen ist. Also wollte ich den Skriptteil innerhalb von Schedule() nur tagsüber ausführen lassen und jetzt hänge ich.
!
+ '%" '; if (x < Spieleliste.length-1) { Abfrage += 'or '; } } ! /* Prozesse vom PC abfragen und auswerten */ schedule("*/1 * * * *", function(){ exec("wmic -Uxxx%xxx //10.20.30.40 \'SELECT Name FROM win32_process WHERE " + Abfrage + "\'", function (error, stdout, stderr) { var Prozessliste = stdout.split('\n'); var status = false; var laufendesSpiel = "Keins"; for (x = 2; x < Prozessliste.length-1; x++) { for (y=0; y < Spieleliste.length; y++) { status = (Prozessliste[x].includes(Spieleliste[y])); if (status && getState("hm-rpc.0.xxxx.LEVEL").val >= '60') { setState("hm-rpc.0.xxx.LEVEL",30); laufendesSpiel = Spieleliste[y]; //log('laufendes Spiel: ' + laufendesSpiel); break; } } } }); }); ! -
Der Code bringt dich nicht weiter.
Ziehe bitte dann noch aus Funktionen das Javascript_Funktion rein und hier kannst du dann dein script einstellen.
function setAllCamOn() { var request = require("request"); var url_ein = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; request(url_ein); log("20.00 Uhr CAM alle Eingeschaltet"); } schedule("*/5 * * * *", function () { if (compareTime('20:00', null, ">", null)) { setAllCamOn(); } });So jetzt ist Ostern. Muss mich ab morgen um die Enkelkinder kümmern.
Gruß Norbert
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
