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(); });
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