NEWS
Wahl eines Datenpunktes
-
Mahlzeit, ich komme logisch irgendwie nicht weiter.
Ich habe 6 Datenpunkte, wovon einer Zeitgesteuert aktiviert werden soll.
Dazu gehören 20 Datenpunkte, in denen das Programm laufen soll,
was zu einer bestimmten Uhrzeit anlaufen soll. Dazu gehören 20 Datenpunkte mit einer Startzeit.
Beendet wird das nicht da das folge Programm das übernehmen soll.
Wie bekomme ich es in Blockly hin, das der richtige der 6 Datenpunkte dann aktiviert wird.
Also muss praktisch aus dem Datenpunkt der in dem Datenpunkt aktuell aktiv ist der Wert gelesen werden und der richtige der 6 Datenpunkte auf true gesetzt werden, um das richtige Programm zu starten.Das ist eines der 20 Uhrzeit Programme:
alle 20 Programm Steuerungen befindet sich in einem Blockly was soweit auch funktioniert.
Zur eingestellten Zeit, wird auch in Programm_Aktuell das Programm eingestellt was gerade läuft. Nun muss aus Programm aktuell der Wert genommen werden und der richtige der 6 Datenpunkte geschaltet werden.Das sind die 20 Uhrzeiten und die 20 Programme die laufen sollen:
Das sein die 6 Programme wovon eines aktiviert werden soll:
Hintergrund: mit den 6 Datenpunkten wird jeweils ein Blockly gesteuert, womit ein Datenstring per USB an einen Controller gesendet werden soll.
Die Uhrzeiten und welches Programm in den 20 Programm Datenpunkten laufen soll möchte ich später per Vis einstellen können.Das ist die Aktuelle View, mit der Die Programme eingestellt werden können:
Ich hatte es so versucht, doch will es so leider nicht die Datenpunkte schalten und auch die nicht aktiven dann abschalten.
Es muss doch eine globale Lösung geben für alle 20 Programme:
@paul53 vielleicht magst du ja mal drüber schauen !? Ich komme nicht weiter!!! -
@Aphofis
Programm_Aktuell muss ein Trigger sein, damit auf dessen Änderung reagiert wird.
Weshalb wertest Du 6 Werte (0...5) aus ? Im ersten Screenshot tauchen nur die Werte 0...3 auf. -
@paul53
Ich habe in dem Blockly 20 Zeitsteuerungen!
Kann es jetzt aber anders machen per javascript und VIS direkt die 6 Datenpunkte Zeitgesteuert steuern.
Nur will das Javascript iwie die Datenpunkte nicht sauber schalten.
Kann es sein, das dass Javascript mit Großbuchstaben und den Unterstrichen Probleme hat !? kann man das im Javascript irgendwie anpassen !?
Ich würde auch gerne, das das Script die Datenpunkte in:Aqua_Control.0.Tunze_Steuerung.
erstellt. Anstatt in
javascript.0.Timer.
Das Dazugehörige VIS Widget kann ich dann auch die richtigen Datenpunkte anpassen.
In TimerTargetNamesintervall;sequenzial;puls;wave;stop;feed
eingetragen
und in TimerTargetAqua_Control.0.Tunze_Steuerung.intervall;Aqua_Control.0.Tunze_Steuerung.sequenzial;Aqua_Control.0.Tunze_Steuerung.puls;Aqua_Control.0.Tunze_Steuerung.wave;Aqua_Control.0.Tunze_Steuerung.stop;Aqua_Control.0.Tunze_Steuerung.feed
Der Quellcode ist:
//Script tested & Ok //Legt Timer an //Wichtige Einstellungen const AnzahlTimer = 20; //Wieviele Timer anlegen? Der erste ist 1, nicht 0! //let setTimeout; const logging = true; //Logmeldungen an/aus const praefix = "javascript.0.Timer."; //Grundpfad // let Presence = getState("radar2.0._nHere").val; //Pfad zum Anwesenheitsdatenpunkt. Erwartet wird eine Zahl >= let Presence = true var Wochentage = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]; //Array für createStateschleife zum anlegen der Wochentage var Astrotrigger = ["dawn", "sunrise", "dusk", "goldenHour", "dusk", "sunset"]; //Array für Astro //if (logging) { log(Astrotrigger.length.toString()) }; createState(praefix + "TimerTargets", "", false, { read: true, write: true, name: "Ziele welche geschaltet werden", type: "string", def: "" }); //Zentrale Source für die Anzeige in vis, Erstellung in der TimerRoot createState(praefix + "TimerTargetNames", "", false, { read: true, write: true, name: "Smartnames für die Ziele", type: "string", def: "" }); for (let x = 1; x < AnzahlTimer + 1; x++) { //Datenpunkte anlegen createState(praefix + x + ".Aktiv", false, false, { read: true, write: true, name: "Timer aktiv", type: "boolean", role: "switch", def: false }); //Legt fest ob der Timer aktiv ist createState(praefix + x + ".Rolle", 2, false, { read: true, write: true, name: "Rolle", type: "number", role: "value", def: 2 }); //Legt fest ob der Timer für An oder Aus zuständig ist createState(praefix + x + ".TimerTimestamp", "00:00:00", false, { read: true, write: true, name: "Zeitstempel für schaltzeit", type: "string", def: "00:00:00" }); createState(praefix + x + ".TimerAstroTimestamp", "00:00:00", false, { read: true, write: true, name: "Zeitstempel für Astroschaltzeit", type: "string", def: "00:00:00" }); createState(praefix + x + ".TimerAstroShift", 0, false, { read: true, write: true, name: "Zeitverschiebung für Astroschaltzeit", type: "number", def: 0 }); for (let y = 0; y < 7; y++) { //Einträge für jeden Wochentag anlegen createState(praefix + x + ".Timer" + Wochentage[y], true, false, { read: true, write: true, name: Wochentage[y], type: "boolean", role: "switch", def: true }); }; createState(praefix + x + ".TimerChoice", "Zeit", false, { read: true, write: true, name: "Funktionswahl für Timer/Astro", type: "string", def: "Zeit" }); //Gewählte Funktion, Timer oder Astro createState(praefix + x + ".SwitchTarget", "", false, { read: true, write: true, name: "Ziel für Schaltvorgang", type: "string", def: "" }); createState(praefix + x + ".OnlyIfPresence", false, false, { read: true, write: true, name: "Nur ausführen falls jemand anwesend", type: "boolean", role: "switch", def: false }); //Legt fest ob der Timer aktiv ist createState(praefix + x + ".OnlyIfNoPresence", false, false, { read: true, write: true, name: "Nur ausführen falls niemand anwesend", type: "boolean", role: "switch", def: false }); //Legt fest ob der Timer aktiv ist }; //**************************** //Datenpunkte Id"s zuweisen var id1 = []; for (let x = 1; x < AnzahlTimer + 1; x++) {//Anzahl der Timer let y = 0; id1[x] = []; id1[x][y] = (praefix + x + ".Aktiv"); y = y + 1; id1[x][y] = (praefix + x + ".Rolle"); y = y + 1; id1[x][y] = (praefix + x + ".TimerTimestamp"); y = y + 1; id1[x][y] = (praefix + x + ".TimerAstroTimestamp"); y = y + 1; id1[x][y] = (praefix + x + ".TimerAstroShift"); y = y + 1; id1[x][y] = (praefix + x + ".TimerChoice"); y = y + 1; for (let z = 0; z < Wochentage.length; z++) {//Schleifenvariable für Wochentage id1[x][y] = (praefix + x + ".Timer" + Wochentage[z]); y = y + 1; }; id1[x][y] = (praefix + x + ".SwitchTarget"); y = y + 1; id1[x][y] = (praefix + x + ".OnlyIfPresence"); y = y + 1; id1[x][y] = (praefix + x + ".OnlyIfNoPresence"); y = y + 1; }; // TimerVariablenArray anlegen für schedules var TimerAction = []; for (let x = 1; x < AnzahlTimer + 1; x++) { TimerAction[x] = null; }; //Alle Daten in MyTimer Array einlesen var MyTimer = []; for (let x = 1; x < AnzahlTimer + 1; x++) { MyTimer[x] = []; for (let y = 0; y < id1[x].length; y++) { //log("x=" + x + " y=" + y); MyTimer[x][y] = getState(id1[x][y]).val; //log(MyTimer[x][y]); }; }; //******************************************************** */ function MakeCronString(whichone) { //String nach Cronsyntax zusammenbauen für Schedule var DaysSubString = ""; for (let x = 0; x < 7; x++) { if (MyTimer[whichone][x + 6] == true) { //Beginnend mit dem 6ten Eintrag (TimerSonntag) die 7 Wochentage durchzählen und Werte anhängen DaysSubString = DaysSubString + x + ","; }; }; DaysSubString = DaysSubString.substr(0, DaysSubString.length - 1); //Komma am Ende entfernen if (DaysSubString == "0,1,2,3,4,5,6") { DaysSubString = "*"; }; // Sternchen wenn alle Tage gewählt var tempString = ""; if (MyTimer[whichone][5] == "Zeit") { //Wenn Zeit gewählt tempString = SplitTime(MyTimer[whichone][2])[1] + " " + SplitTime(MyTimer[whichone][2])[0] + " * * " + DaysSubString; log("CronString für Timer " + whichone + " erstellt " + tempString); } else if (MyTimer[whichone][5] != "Zeit") { //Wenn Astro gewählt tempString = SplitTime(MyTimer[whichone][3])[1] + " " + SplitTime(MyTimer[whichone][3])[0] + " * * " + DaysSubString; log("Cronstring für Timer " + whichone + " Astro erstellt " + tempString); }; return tempString; }; //spezifischen Timer setzen function SetTimer(whichone) { if (MyTimer[whichone][0] == true) { log("Timer " + whichone + " wird gesetzt") TimerAction[whichone] = schedule(MakeCronString(whichone), function () { DoAction(whichone); if (MyTimer[whichone][5] != "Zeit") { //Wenn Astro gewählt RefreshAstro(whichone); //Neue Astrozeit setzen nach Ausführung } }); }; }; function RefreshAstro(whichone) { if (logging) { log("Refresh Astro") }; SetChoosenAstroTime(whichone, true); SetTimer(whichone); }; //Alle Timer setzen function SetAllTimer() { if (logging) { log("Setting all Timers") }; for (let x = 1; x < AnzahlTimer + 1; x++) { SetTimer(x); } }; //spezifischen Timer löschen function KillTimer(whichone) { clearSchedule(TimerAction[whichone]); if (logging) { log("Timer " + whichone + " killed") }; } //Astro oder Zeit Gateway function AstroOrTime(whichone) { if (MyTimer[whichone][5] == "Zeit") { if (logging) { log("Zeit gewählt " + MyTimer[whichone][2]) }; } else if (MyTimer[whichone][5] != "Zeit") { SetChoosenAstroTime(whichone); log("Astro gewählt, Variante " + MyTimer[whichone][5]); }; }; function SetChoosenAstroTime(whichone, GoToTomorrow) { //Zeit für gewählte Astrozeit eintragen let Shift = parseInt(MyTimer[whichone][4]); //Wert für Shift let AstroChoice = MyTimer[whichone][5].trim(); //Wert für Astroereignis //Berücksichtigen ob Event schon vorbei ist und dann für morgen setzen let today = new Date(); let jetzt = new Date(); let tomorrow = today.setDate(today.getDate() + 1); let tomorrowAstroTime = getAstroDate(AstroChoice, tomorrow); tomorrowAstroTime.setMinutes(tomorrowAstroTime.getMinutes() + Shift);//zammrechna log(AstroChoice + " beginnt heute um:" + getAstroDate(AstroChoice).toLocaleTimeString('de-DE', { hour12: false }) + " und beginnt morgen um " + tomorrowAstroTime.toLocaleTimeString('de-DE', { hour12: false })); //log(getAstroDate(AstroChoice).getTime() + " " + today.getTime() + " " + today.toLocaleTimeString()); //log("Astro=" + getAstroDate(AstroChoice) + " Heute=" + jetzt + " " + "todayzeit=" + today.toLocaleTimeString()); let AstroTime = getAstroDate(AstroChoice); //Astrotime einlesen AstroTime.setMinutes(AstroTime.getMinutes() + Shift);//zammrechna AstroTime.toLocaleTimeString('de-DE', { hour12: false }); //if (getAstroDate(AstroChoice).getTime() < jetzt.getTime()) { //Wenn Astrozeit vor aktueller Zeit dann Astrozeit von morgen verwenden if (AstroTime.getTime() <= jetzt.getTime() || GoToTomorrow == true) { //Wenn Astrozeit vor aktueller Zeit dann Astrozeit von morgen verwenden setState(id1[whichone][3], tomorrowAstroTime.toLocaleTimeString('de-DE', { hour12: false })); MyTimer[whichone][3] = tomorrowAstroTime.toLocaleTimeString('de-DE', { hour12: false }); log("Astrotime von morgen verwendet, Event is heute bereits vorüber = " + tomorrowAstroTime.toLocaleTimeString('de-DE', { hour12: false })); } //else if (getAstroDate(AstroChoice).getTime() > jetzt.getTime()) { else if (AstroTime.getTime() > jetzt.getTime()) { setState(id1[whichone][3], AstroTime.toLocaleTimeString('de-DE', { hour12: false })); MyTimer[whichone][3] = AstroTime.toLocaleTimeString('de-DE', { hour12: false }); log("Astrotime von heute verwendet, Event kommt heute noch = " + AstroTime.toLocaleTimeString('de-DE', { hour12: false }) + " Morgen=" + tomorrowAstroTime.toLocaleTimeString('de-DE', { hour12: false })); } else { log("Derf ned sei"); }; }; function DoAction(whichone) { if (MyTimer[whichone][0] == true) { //Wenn Timer aktiv if ((MyTimer[whichone][14] == true && Presence !=0) || (MyTimer[whichone][13] == true && Presence == 0) || (MyTimer[whichone][13] == true && MyTimer[whichone][14] == true)) { //Wenn "bei Anwesenheit" aktiv if (MyTimer[whichone][1] == 1) { // Wenn die Rolle Anschalter ist setState(MyTimer[whichone][13], true); //Switchtarget aktivieren log(MyTimer[whichone][13] + " Timer " + whichone + " hat angeschaltet"); } else if (MyTimer[whichone][1] == 0) { //Wenns die Rolle Ausschalter ist setState(MyTimer[whichone][13], false);//Switchtarget deaktivieren log("Timer " + whichone + " hat ausgeschaltet"); }; }; }; }; //if (logging) { log(SplitTime("12:05") + h + m) }; //Zeit in Stunden und Minuten teilen für Cronstring function SplitTime(Time) { var timesplit = Time.split(":", 2); //h = timesplit[0] / m = timesplit[1]; return timesplit; }; function main() { SetAllTimer(); }; main(); //Trigger für Timer x onStop(function () { //Bei Scriptende alle Timer löschen for (let x = 1; x < AnzahlTimer + 1; x++) { KillTimer(x); }; }, 100); for (let x = 1; x < AnzahlTimer + 1; x++) { //Alle Timer durchlaufen und Trigger setzen on(id1[x][5], function (dp) { //Bei Änderung AstroChoice MyTimer[x][5] = getState(id1[x][5]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); AstroOrTime(x); SetTimer(x); if (logging) log("AstroChoice geändert" + " für Timer " + x); }); on(id1[x][1], function (dp) { //Bei Änderung Rolle MyTimer[x][1] = getState(id1[x][1]).val; //Nach Änderung neuen Wert einlesen if (MyTimer[x][1] == 2) {//Wenn TimerRolle=2 =inaktiv MyTimer[x][0] = false; setState(id1[x][0], false); } else { MyTimer[x][0] = true; setState(id1[x][0], true); }; KillTimer(x); SetTimer(x); if (logging) log("Rolle geändert" + " für Timer " + x); }); on(id1[x][4], function (dp) { //Bei Änderung Shift MyTimer[x][4] = getState(id1[x][4]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); AstroOrTime(x); SetTimer(x); if (logging) log("Shift geändert" + " für Timer " + x); }); on(id1[x][2], function (dp) { //Bei Änderung Zeit (TimerTimestamp) //setTimeout(function () { //1sek Timeout um prellen zu vermeiden MyTimer[x][2] = getState(id1[x][2]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTimestamp Zeit geändert auf " + MyTimer[x][2] + " für Timer " + x); //}, 1000); }); on(id1[x][0], function (dp) { //Bei Änderung Timer Aktiv MyTimer[x][0] = getState(id1[x][0]).val; //Nach Änderung neuen Wert einlesen if (logging) log("TimerActive geändert auf " + MyTimer[x][0] + " für Timer " + x); //KillTimer(x); //SetTimer(x); }); on(id1[x][6], function (dp) { //Bei Änderung Wochentage MyTimer[x][6] = getState(id1[x][6]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTag " + Wochentage[0] + " geändert auf " + MyTimer[x][6] + " für Timer " + x); }); on(id1[x][7], function (dp) { //Bei Änderung Wochentage MyTimer[x][7] = getState(id1[x][7]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTag " + Wochentage[1] + " geändert auf " + MyTimer[x][7] + " für Timer " + x); }); on(id1[x][8], function (dp) { //Bei Änderung Wochentage MyTimer[x][8] = getState(id1[x][8]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTag " + Wochentage[2] + " geändert auf " + MyTimer[1][8] + " für Timer " + x); }); on(id1[x][9], function (dp) { //Bei Änderung Wochentage MyTimer[x][9] = getState(id1[x][9]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTag " + Wochentage[3] + " geändert auf " + MyTimer[x][9] + " für Timer " + x); }); on(id1[x][10], function (dp) { //Bei Änderung Wochentage MyTimer[x][10] = getState(id1[x][10]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTag " + Wochentage[4] + " geändert auf " + MyTimer[x][10] + " für Timer " + x); }); on(id1[x][11], function (dp) { //Bei Änderung Wochentage MyTimer[x][11] = getState(id1[x][6]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTag " + Wochentage[5] + " geändert auf " + MyTimer[x][11] + " für Timer " + x); }); on(id1[x][12], function (dp) { //Bei Änderung Wochentage MyTimer[x][12] = getState(id1[x][12]).val; //Nach Änderung neuen Wert einlesen KillTimer(x); SetTimer(x); if (logging) log("TimerTag " + Wochentage[6] + " geändert auf " + MyTimer[x][12] + " für Timer " + x); }); on(id1[x][12], function (dp) { //Bei Änderung Switchtarget MyTimer[x][13] = getState(id1[x][13]).val; //Nach Änderung neuen Wert einlesen if (logging) log("TimerTag " + Wochentage[6] + " geändert auf " + MyTimer[x][12] + " für Timer " + x); }); };
Mit freundlicher weitergabe von carlo
Irgendwie wird immer nur puls auf true gesetzt aber nix weiter -
@Aphofis sagte:
Kann es sein, das dass Javascript mit Großbuchstaben und den Unterstrichen Probleme hat !?
Großbuchstaben und Unterstriche machen keine Probleme.
@Aphofis sagte in Wahl eines Datenpunktes:
Script die Datenpunkte in: Aqua_Control.0.Tunze_Steuerung. erstellt.
Mit der Funktion von @Mic kann man Datenpunkte auch unter einem eigenen Ordner erstellen, wenn man Zeile 21 anpasst
const WHERE = '0_userdata.0'; // You could change the starting path accordingly. Not recommended to change, though.
-
@paul53
Das hat schon mal geklappt mit dem eigenen Ordner.
Die gewählten Datenpunkte im VIS werden korrekt in den einzelnen Timern gesetzt, doch werden die falschen Datenpunkte der switch Datenpunkte geschaltet.
Obgleich TimerTargetNames und TimerTargets sogar in der selben Reihenfolge sind.
Alle widgets hab ich einzelne durchforstet und die sind richtig eingestellt.
Woran, kann der Fehler liegen, das nicht die richtigen Datenpunkte geschaltet werden. -
Das ist das dazugehörige Timer Widget
[{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.Timer.1.OnlyIfNoPresence","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_append":"wenn abwesend","class":""},"style":{"left":"786px","top":"519px","width":"157px","height":"20px","font-size":"small"},"widgetSet":"basic"},{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.Timer.1.OnlyIfPresence","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_append":"wenn anwesend","class":"mdui-Title"},"style":{"left":"630px","top":"519px","width":"157px","height":"20px","font-size":"small"},"widgetSet":"basic"},{"tpl":"tplValueBool","data":{"oid":"javascript.0.Timer.1.Aktiv","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"Timer 1","html_true":"Timer 1","class":"mdui-flatbutton mdui-center ","html_append":"","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide"},"style":{"left":"630px","top":"454px","height":"25px","width":"80px","text-align":"","z-index":"5","cursor":"default"},"widgetSet":"basic"},{"tpl":"tplValueBoolCtrl","data":{"oid":"javascript.0.Timer.1.TimerSonntag","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"<diff class=\"mdui-red\" >So:","html_true":"<diff class=\"mdui-green\" >So:","class":"mdui-raisedbutton"},"style":{"left":"630px","top":"541px","width":"40px","height":"20px","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplValueBoolCtrl","data":{"oid":"javascript.0.Timer.1.TimerMontag","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"<diff class=\"mdui-red\" >Mo:","html_true":"<diff class=\"mdui-green\" >Mo:","class":"mdui-raisedbutton"},"style":{"left":"672px","top":"541px","width":"40px","height":"20px","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplValueBoolCtrl","data":{"oid":"javascript.0.Timer.1.TimerDienstag","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"<diff class=\"mdui-red\" >Di:","html_true":"<diff class=\"mdui-green\" >Di:","class":"mdui-raisedbutton"},"style":{"left":"715px","top":"541px","width":"40px","height":"20px","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplValueBoolCtrl","data":{"oid":"javascript.0.Timer.1.TimerMittwoch","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"<diff class=\"mdui-red\" >Mi:","html_true":"<diff class=\"mdui-green\" >Mi:","class":"mdui-raisedbutton"},"style":{"left":"757px","top":"541px","width":"40px","height":"20px","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplValueBoolCtrl","data":{"oid":"javascript.0.Timer.1.TimerDonnerstag","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"<diff class=\"mdui-red\" >Do:","html_true":"<diff class=\"mdui-green\" >Do:","class":"mdui-raisedbutton"},"style":{"left":"799px","top":"541px","width":"40px","height":"20px","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplValueBoolCtrl","data":{"oid":"javascript.0.Timer.1.TimerFreitag","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"<diff class=\"mdui-red\" >Fr:","html_true":"<diff class=\"mdui-green\" >Fr:","class":"mdui-raisedbutton"},"style":{"left":"842px","top":"541px","width":"40px","height":"20px","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplValueBoolCtrl","data":{"oid":"javascript.0.Timer.1.TimerSamstag","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"<diff class=\"mdui-red\" >Sa:","html_true":"<diff class=\"mdui-green\" >Sa:","class":"mdui-raisedbutton"},"style":{"left":"884px","top":"541px","width":"40px","height":"20px","text-align":"center"},"widgetSet":"basic"},{"tpl":"tplValueBool","data":{"oid":"","g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"true","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_false":"","html_true":"","class":"mdui-flatbutton mdui-center mdui-green-pulse","html_append":"","visibility-oid":"javascript.0.Timer.1.Aktiv"},"style":{"left":"630px","top":"454px","height":"25px","width":"80px","text-align":"","z-index":"0","cursor":"default"},"widgetSet":"basic"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Timer.1.SwitchTarget","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"{javascript.0.Timer.TimerTargets}","texts":"{javascript.0.Timer.TimerTargetNames}","height":"150","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"class":"mdui-select","no_style":true},"style":{"left":"724px","top":"452px","width":"200px","z-index":10,"height":"25px","font-size":"small"},"widgetSet":"jqui"},{"tpl":"tplValueStringRaw","data":{"oid":"javascript.0.Timer.1.TimerAstroTimestamp","g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"!=","visibility-val":"Zeit","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"visibility-oid":"javascript.0.Timer.1.TimerChoice","views":null,"class":"mdui-value"},"style":{"left":"849px","top":"494px","width":"90px","height":"22px","z-index":3,"background-color":"","color":"","text-align":"","font-weight":"","font-size":"","border-color":"","border-width":"","border-style":""},"widgetSet":"basic"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Timer.1.Rolle","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"0;1;2","texts":"Ausschalten;Einschalten;Nix macha","height":"120","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true,"views":null,"class":"mdui-select"},"style":{"left":"630px","top":"487px","width":"100px","height":"28px","z-index":8,"font-size":"small"},"widgetSet":"jqui"},{"tpl":"tplJquiInput","data":{"oid":"javascript.0.Timer.1.TimerAstroShift","g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"label":"+/-","digits":"0","size":"1","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"visibility-cond":"!=","visibility-val":"Zeit","visibility-groups-action":"hide","visibility-oid":"javascript.0.Timer.1.TimerChoice","views":null,"class":"mdui-input"},"style":{"left":"847px","top":"573px","width":"93px","height":"20px","font-size":"","z-index":9,"font-weight":"bold","color":"black"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Timer.1.TimerChoice","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"Zeit;dawn;sunrise;goldenHour;dusk;sunset","texts":"Zeit;Morgendämmerung;Sonnenaufgang;Goldene Stunde;Abenddämmerung; Sonnenuntergang;","height":"200","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true,"views":null,"class":"mdui-select"},"style":{"left":"630px","top":"567px","width":"198px","height":"25px","font-size":"small","font-weight":"bold","z-index":9},"widgetSet":"jqui"},{"tpl":"tplJquiInputDatetime","data":{"oid":"javascript.0.Timer.1.TimerTimestamp","g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"Zeit","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"size":"5","timeOnly":true,"hideSeconds":true,"visibility-oid":"javascript.0.Timer.1.TimerChoice","views":null,"class":"mdui-input"},"style":{"left":"849px","top":"491px","width":"90px","height":"25px","font-weight":"","z-index":9,"font-size":"","text-align":"right"},"widgetSet":"jqui"}]
-
@Aphofis sagte:
Woran, kann der Fehler liegen, das nicht die richtigen Datenpunkte geschaltet werden.
Mit Vis/Widgets kenne ich mich nicht aus.
-
Ich denke mal es liegt irgendwo im JavaScript und nicht am Widget! Da in den timer datenpunkten die richtigen Programme eingetragen werden aber nicht an die Switch datenpunkte übergeben wird. Iwo muss ein Fehler sein
-
@Aphofis sagte in Wahl eines Datenpunktes:
Ich denke mal es liegt irgendwo im JavaScript
Ändere mal in Zeile 178 [13] --> [15]
if ((MyTimer[whichone][14] && Presence) || (MyTimer[whichone][15] && !Presence) || (MyTimer[whichone][15] && MyTimer[whichone][14])) { //Wenn "bei Anwesenheit" aktiv
-
@paul53
Habe ich geändert! zwar wurde beim ersten mal der richtige Datenpunkt geschaltet aber dann beim zweiten Timer nicht mehr da wurde dann der selbe Datenpunkt gewählt obwohl im timer SwitchTarget der richtige Datenpunkt eingetragen wurde.
Hatte im timer Sequenzial gewählt und im Timer stand dann auch "javascript.0.Timer.sequenzial" ohne"".
wenn ich zwischen den Timern den letzten Datenpunkt manuell auf false setze bringt auch keine Änderung. -
@Aphofis sagte:
obwohl im timer SwitchTarget der richtige Datenpunkt eingetragen wurde.
Zeigt das Log "... hat angeschaltet" auch die falsche ID an ?
-
Meine LOG:
-
@Aphofis
Noch mal in das Script geschaut: Ab Zeile 312 steht Unsinn. Ändere [12] --> [13] und passe die Log-Ausgabe an.on(id1[x][13], function (dp) { //Bei Änderung Switchtarget MyTimer[x][13] = dp.state.val; //Nach Änderung neuen Wert einlesen
EDIT: Enthalten die Datenpunkte ".OnlyIfPresence" und ".OnlyIfNoPresence" Konstanten ? Es gibt dafür keinen Trigger.
-
-
wenn ich einen Datenpunkt raus kopiere ist bei sequenzial der Pfad javascript.0.Timer.sequenzial
Wie ist denn dann der richtige Datenpunkt Pfad ??? -
@Aphofis sagte:
Pfad javascript.0.Timer.sequenzial
Also sollte das Log doch den richtigen Datenpunkt zeigen, der auch auf true steht ?
-
@paul53
Ich sehe nicht wo der Pfad falsch sein soll!
wie gesagt, erste Schaltung Timer 1 wird der richtige Datenpunkt geschaltet dann aber Timer 2 soll ein anderer der 6 Datenpunkte geschaltet werden und es wir wieder sequenzial geschaltet anstatt wie eingestellt puls.
Andere Frage, kann man es per Javascript so programmieren, das wenn ein neuer Datenpunkt der im aktuellen Timer auf true gesetzt wird, das die anderen 5 dann abgeschaltet werden !?
Insofern die Timer dann bald auch funktionieren -
Ich wollte 20 Timer erstellen, die dann später die Strömungspumpen steuern und jetzt 40 Timer zu erstellen, damit dann jeweils keine Ahnung paar Sekunden später nach aktivieren eines neuen Datenpunktes dann der alte per timer abgeschaltet wird.
-
Hier wird Das Programm aus TimerTargetNames genommen und in SwitchTarget eingetragen
Hier wird der Timer ein oder aus geschaltet
Hier werden die Wochentage de/aktiviert
Hier wird die Uhrzeit geschaltet
Hier wird die Anwesenheit eingestellt was aber im Javascript ausgeklammert ist per
//let Presence = getState("radar2.0._nHere").val; //Pfad zum Anwesenheitsdatenpunkt. Erwartet wird eine Zahl >=0 let Presence = true
-
@paul53
also habe alles noch mal gelöscht und komplett neu installiert.
jetzt werden alle Datenpunkte richtig geschaltet.
Bleibt nur noch das bei aktivieren eines neuen Datenpunktes muss der vorherige auf false gesetzt werden.
Wie kann man das in das Javascript am besten einbauen ???