NEWS
Zeitsteuerung will nicht
-
Hallo Zusammen,
! ich versuche mir eine Zeitsteuerung via VIS zu bauen, bei welcher ich zwei separate an- und Abschaltzeiten definieren kann.
! Zusätzlich soll es einen Schalter aktiv geben.
! Wenn ich nur die Zeiten übergebe passt das, jedoch funktioniert der Schalter aktiv nicht.
! vis.JPG
! Skript:
! ````
var ontime = null;
var offtime1 = null;
! on("javascript.0.FunkStart1_1", function(dp) {
var Einschaltzeit = dp.state.val.split(':'); // Array: [h,m]
var timeHourOn = Einschaltzeit[0];
var timeMinuteOn = Einschaltzeit[1];
log(timeHourOn, "info");
log(timeMinuteOn, "info");
if (ontime) clearSchedule(ontime);ontime = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () { if ("javascript.0.FunkAktiv1"/*FunkAktiv1*/ === true) { sendTo("telegram.0", "send", { text: 'Test Zeitsteuerung1 AN', user: 'Andreas' }); console.info("telegram['Andreas']: " + 'Zeit 1 an'); } });});
! on("javascript.0.FunkStop1_1"/FunkStop1_1/, function(dp) {
var Einschaltzeit = dp.state.val.split(':'); // Array: [h,m]
var timeHourOn = Einschaltzeit[0];
var timeMinuteOn = Einschaltzeit[1];
log(timeHourOn, "info");
log(timeMinuteOn, "info");
if (offtime1) clearSchedule(offtime1);
offtime1 = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
if ("javascript.0.FunkAktiv1"/FunkAktiv1/ === true) {
sendTo("telegram.0", "send", {
text: 'Test Zeitsteuerung1 AUS',
user: 'Andreas'
});
console.info("telegram['Andreas']: " + 'Zeit 1 aus');
}
});
});
```` `komt irgendwas im log wen du den haken setzt ?
Ist die variable auch wirklich ein boolean (true/false) oder wert 0/1 ?
Die abfrage "if ("javascript.0.FunkAktiv1"/FunkAktiv1/ === true) {" sieht schon richtig aus, wen der datenpunkt stimmt :)
-
Oeps Paul hat recht, ohne .val kommt ja kein Wert zum vergleichen ich krische jetzt mal wieder ins Loch….
Sent from my iPhone using Tapatalk
-
Hallo Zusammen,
ich versuche mir eine Zeitsteuerung via VIS zu bauen, bei welcher ich zwei separate an- und Abschaltzeiten definieren kann.
Zusätzlich soll es einen Schalter aktiv geben.
Wenn ich nur die Zeiten übergebe passt das, jedoch funktioniert der Schalter aktiv nicht.
vis.JPG `
Hallo takero78
Könntest du auch das Widget veröffentlichen? Sieht toll aus….
Schon mal ein Danke dafür
Gruß
Adrian
-
Hallo,
ich nutze da im ersten Post verwendete Script. Dies funktioniert auch Tadellos, nur habe ich das Problem das bei einem Systemneustart die Zeiten nicht automatisch neu gesetzt werden.
Was auch relativ logisch ist, da das Script ja nur auf Änderungen an den Zeiten reagieren soll.
Gibt es einen einfachen schnellen Weg dieses Problem zu umgehen?
Ich hatte überlegt einfach ein getState und ein setState bei Scripstart zu setzten, aber ist das sauber?
Jemand eine bessere Idee?
-
Ich hatte überlegt einfach ein getState und ein setState bei Scripstart zu setzten, aber ist das sauber?
Jemand eine bessere Idee? `
Das mit dem setState ist nicht so gut. Vorschlag:var ontime = null; var offtime1 = null; var Einschaltzeit = getState("javascript.0.FunkStart1_1").val.split(':'); var Ausschaltzeit = getState("javascript.0.FunkStop1_1").val.split(':'); function setOn() { var timeHourOn = Einschaltzeit[0]; var timeMinuteOn = Einschaltzeit[1]; log(timeHourOn, "info"); log(timeMinuteOn, "info"); if (ontime) clearSchedule(ontime); ontime = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () { if (getState("javascript.0.FunkAktiv1").val === true) { sendTo("telegram.0", "send", { text: 'Test Zeitsteuerung1 AN', user: 'Andreas' }); console.info("telegram['Andreas']: " + 'Zeit 1 an'); } }); } function setOff() { var timeHourOn = Ausschaltzeit[0]; var timeMinuteOn = Ausschaltzeit[1]; log(timeHourOn, "info"); log(timeMinuteOn, "info"); if (offtime1) clearSchedule(offtime1); offtime1 = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () { if (getState("javascript.0.FunkAktiv1").val === true) { sendTo("telegram.0", "send", { text: 'Test Zeitsteuerung1 AUS', user: 'Andreas' }); console.info("telegram['Andreas']: " + 'Zeit 1 aus'); } }); } setOn(); // Script start setOff(); // Script start on("javascript.0.FunkStart1_1", function(dp) { Einschaltzeit = dp.state.val.split(':'); // Array: [h,m] setOn(); }); on("javascript.0.FunkStop1_1"/*FunkStop1_1*/, function(dp) { Ausschaltzeit = dp.state.val.split(':'); // Array: [h,m setOff(); });