NEWS
Variable Zeitsteuerung
-
Ich bin mir nicht ganz sicher ob ich verstanden habe was du möchtest.
So wie ich das verstanden habe gibst du in Vis eine Zeit ein, zu der eingegebenen Zeit soll eine Aktion ausgeführt werden.
Dazu willst du alle 5 Minuten überprüfen ob sich das object mit der Zeit geändert hat.
Du kannst mit "on(id)" auf Änderungen des Objekts reagieren, dann brauchst du das Objekt nicht alle 5 Minuten abfragen.
-
Hallo Jey Cee,
danke für deine Antowrt, genauso möchte ich es machen.
Ich habe das Script folgendermaßen umgestellt:
Das geht:
on("javascript.0.Lights.Diningroom.Light_1.off", function (val){ log("neue Schaltzeit: "); log("--------Start new OffTime"); var offTime = [23,0,0]; off=getState("javascript.0.Lights.Diningroom.Light_1.off").val; offTime = off.split(":"); log("--------Set New Off Time: " + off); //schedule({hour: offTime[0], minute: offTime[1]}, function () { //log("-------- Testzeit:" + off); //}); });Das geht nicht:
on("javascript.0.Lights.Diningroom.Light_1.off", function (val){ log("neue Schaltzeit: "); log("--------Start new OffTime"); var offTime = [23,0,0]; off=getState("javascript.0.Lights.Diningroom.Light_1.off").val; offTime = off.split(":"); log("--------Set New Off Time: " + off); schedule({hour: offTime[0], minute: offTime[1]}, function () { log("-------- Testzeit:" + off); }); });Sobald der schedule hinzukommt passiert genau wie in der Cronjob Variante nichts, keine Fehlermeldungen o.ä.
Gruß,
Mark
-
Ja das ist ein Zusatzmodul. Ich hab bisher erst einmal ein modul selber nach installiert und das Händisch im Terminal.
> (d.h. unter "Zusätzliche NPM-Module" einzutragen)
Kannst du mir sagen wo es das gibt? Wenn es zur Verfügung steht dann Teste das mal.Mit "npm list" kannst du im Terminal sehen welche module installiert sind. Evtl. musst du den Befehl im ioBroker ordner ausführen.
-
Wenn Du unter "Instanzen" in die "Adapterkonfiguration" von javascript gehst, gibt es den Punkt "Zusätzliche NPM-Module".
ich bekomme das:
#/opt/iobroker$ npm list | grep schedule │ ├─┬ node-schedule@0.5.1 │ ├─┬ node-schedule@0.2.9 │ └─┬ node-schedule@0.6.0 npm ERR! missing: node-uuid@~1.4.0, required by request@2.40.0 npm ERR! missing: combined-stream@~0.0.4, required by form-data@0.1.4 npm ERR! missing: mime@~1.2.11, required by form-data@0.1.4 npm ERR! missing: async@~0.9.0, required by form-data@0.1.4 npm ERR! missing: assert-plus@^0.1.5, required by http-signature@0.10.1 npm ERR! missing: asn1@0.1.11, required by http-signature@0.10.1 npm ERR! missing: ctype@0.5.3, required by http-signature@0.10.1 npm ERR! missing: hoek@0.9.x, required by hawk@1.1.1 npm ERR! missing: boom@0.4.x, required by hawk@1.1.1 npm ERR! missing: cryptiles@0.2.x, required by hawk@1.1.1 npm ERR! missing: sntp@0.2.x, required by hawk@1.1.1 npm ERR! extraneous: xml2js@0.4.15 /opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js npm ERR! not ok code 0EDIT: habe schedule gerade ausprobiert:
schedule("15 15 * * *", function() { setState("hm-rpc.0.HEQxxxxxx.1.STATE", false); log("Lampe aus"); });das geht!
-
Die Ausgabe sagt es sind mehrere Versionen von node-schedule in verschiedenen Unterordnern installiert ist. Wenn einer von diesen Unterordnern javascript.0 ist fehlts wo anders. Sonst einfach mal bei Zusätzliche NPM-Module angeben.
Die Warnmeldungen kann man glaub ich ignorieren, zumindest mach ich das Mittlerweile so bis was nicht funktioniert.
-
Ich hänge mich hier mal dran, funktioniert die Variable Zeitsteuerung?
Ich versuche darüber:
on({time: {hour: parseInt(getState("javascript.0.Li_Stunde").val, 10), minute: parseInt( getState("javascript.0.Li_Minute").val, 10)}}, function () { log('Test Aufwachen!'); });Das zu realisieren. Li_Stunde und Li_Minute können über Increase geändert werden und werden auch richtig unter Objekten angezeigt. Leider funktioniert das nur zu genau der Zeit, die auch zum Anlegen des Scripts hinterlegt war. Änderungen werden ignoriert.
Grüße
Brati
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