NEWS
[Vorlage] Variable Zeitsteuerung mit VIS Editor
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Nur eine Aufzählung ist erlaubt. Diese sollte natürlich auch existieren.
Also entweder zeile 5 oder Zeile 6 auskommentieren.
Ok, schön langsam begreife ich es............
-
Bitte achte auf die korrekte Nummern der beiden Checkboxen im HTML Text. Habe den Hinweis oben ergänzt. Evtl. funktioniert es bei dir auch auf Anhieb. Wenn Du die Checkbox für das Aktivieren betätigst, sollte direkt ein Log-Eintrag für den Timer erscheinen. Passt das?
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Nur eine Aufzählung ist erlaubt.
Dann muss ich für jedes Gerät ein Skript erstellen?
-
@sigi234
Oder Du erstellst eine neue Aufzählung mit allen gewünschten Geräten für diesen Timer.
Die Aufzählung wird eigentlich nur für das Initialisieren des JSONs genutzt. Theoretisch kann es auch wie folgt funktionieren (ungetestet!):Wenn deine Geräte aus deiner Aufzählung "enum.functions.Fenster" drin sind. Ändere im Skript den Verweis der Aufzählung auf "enum.functions.Licht" und starte das Skript neu. Alte Geräte sollten erhalten bleiben und die Neuen ergänzt werden.
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Wenn Du die Checkbox für das Aktivieren betätigst, sollte direkt ein Log-Eintrag für den Timer erscheinen. Passt das?
javascript.0 2019-06-21 23:58:14.524 info script.js.Test.Zeit1: Schedule: 1 | 0 10 * * 0,1,2,3,4,5,6 | hm-rpc.1.OEQ0926852 | 100 javascript.0 2019-06-21 23:58:14.524 info script.js.Test.Zeit1: Schedule Nr.: 1 erstellt!
-
@sigi234
Das passt. Sehr gut.
Habe gerade das "fliegende" Ändern der Aufzählung im Skript selbst getestet. Es wurden bei mir wie erwartet zu meinen Rollläden auch meine Lichter (der geänderten Aufzählung) hinzugefügt.
Das kannst Du so nutzen, wie oben von mir beschrieben. Würde ich aber nicht empfehlen: Wenn Du ein Gerät aus Versehen komplett mit allen Timern löschst, dann wird ein Restart des Skripts dieses Gerät nicht wieder erstellen wenn es in der gerade verwendeten Aufzählung nicht vorhanden ist.Ansonsten kann die Angabe der Aufzählung im Skript als eine Art "Import" angesehen werden. Einmal drin, funktionieren die Geräte auch wenn sie nicht mehr in der Aufzählung vorkommen.
-
-
@sigi234 sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Du bist kein Mensch der vielen Worte:
Willst Du mir sagen, dass es funktioniert hat? Oder doch nicht?Nochwas: Du gibst als Sollwerte für die selben Geräte unterschiedliche Typen an. Das Badfenster bekommt als Sollwert mal die 100 und dann ein "Aus" (was False entspricht). Kommt dein Datenpunkt damit klar?
States haben für gewöhnlich 0 bis 100 ODER True/False. Evtl. kommen deine Geräte damit aber auch klar. -
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Du bist kein Mensch der vielen Worte:
Ja, teste es nur............
Also ich habe mal andere Funktionen eingefügt, da bekomme ich immer Fehler.
Momentan geht nur Fenster.Tür:
00:28:13.086 info javascript.0 Stop script script.js.Test.Zeit1 00:28:13.107 info javascript.0 Start javascript script.js.Test.Zeit1 00:28:13.107 info javascript.0 script.js.Test.Zeit1: registered 8 subscriptions and 2 schedules 00:28:14.116 error javascript.0 at Object.main (script.js.Test.Zeit1:548:51) 00:28:24.334 info javascript.0 Stop script script.js.Test.Zeit1 00:28:24.347 info javascript.0 Start javascript script.js.Test.Zeit1 00:28:24.348 info javascript.0 script.js.Test.Zeit1: registered 8 subscriptions and 2 schedules 00:28:25.350 error javascript.0 at Object.main (script.js.Test.Zeit1:548:51)
548: devName = getObject(device_members[i]).common.name;
-
@sigi234
Sicher dass es Fehler sind? Evtl meinst du meine zusätzlichen Logs, weil ich ne Weile das Dropdown Feld debuggen musste.Kannst du das Log kurz kopieren?
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@sigi234
Sicher dass es Fehler sind? Evtl meinst du meine zusätzlichen Logs, weil ich ne Weile das Dropdown Feld debuggen musste.Kannst du das Log kurz kopieren?
javascript.0 2019-06-22 00:35:42.064 error at Timer.processTimers (timers.js:223:10) javascript.0 2019-06-22 00:35:42.064 error at listOnTimeout (timers.js:263:5) javascript.0 2019-06-22 00:35:42.064 error at tryOnTimeout (timers.js:300:5) javascript.0 2019-06-22 00:35:42.064 error at ontimeout (timers.js:438:13) javascript.0 2019-06-22 00:35:42.064 error at Timeout._onTimeout (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1886:34) javascript.0 2019-06-22 00:35:42.064 error at Object.main (script.js.Test.Zeit1:548:51) javascript.0 2019-06-22 00:35:42.064 error Error in callback: TypeError: Cannot read property 'common' of null javascript.0 2019-06-22 00:35:42.063 warn Object "hm-rpc.0.NEQ1826414.1" does not exist javascript.0 2019-06-22 00:35:41.062 info script.js.Test.Zeit1: registered 8 subscriptions and 2 schedules javascript.0 2019-06-22 00:35:41.059 info Start javascript script.js.Test.Zeit1 javascript.0 2019-06-22 00:35:41.047 info Stop script script.js.Test.Zeit1
-
@sigi234
Kann es sein, dass in der Aufzählung ein Gerät vorhanden ist, was real nicht mehr existiert?
hm-rpc.0.NEQ1826414.1? -
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@sigi234
Kann es sein, dass in der Aufzählung ein Gerät vorhanden ist, was real nicht mehr existiert?Ja, ich habe Millionen..................
-
@sigi234
Oh jehh...
Mit solch einem Fall hatte ich jetzt nicht gerechnet. Habe kein Fehler Abfangmechanismus drin, falls ein Gerät innerhalb der Aufzählung real nicht mehr existiert.
Hier würde ich empfehlen, die Aufzählungen zu korrigieren.Zukünftig könnt ich das evtl. abfangen, kann nicht sonderlich kompliziert sein.
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@sigi234
Oh jehh...
Mit solch einem Fall hatte ich jetzt nicht gerechnet. Habe kein Fehler Abfangmechanismus drin, falls ein Gerät innerhalb der Aufzählung real nicht mehr existiert.
Hier würde ich empfehlen, die Aufzählungen zu korrigieren.Zukünftig könnt ich das evtl. abfangen, kann nicht sonderlich kompliziert sein.
Habe es mal raus-genommen , geht jetzt:
javascript.0 2019-06-22 00:47:40.412 info script.js.Test.Zeit1: Schedules werden gesetzt javascript.0 2019-06-22 00:47:40.412 info script.js.Test.Zeit1: Dropdownliste Neu: Badfenster;Badfenster;Badfenster1;Haustuer;Terrassentuer javascript.0 2019-06-22 00:47:40.412 info script.js.Test.Zeit1: Dropdownliste Alt: Badfenster;Badfenster;Badfenster1;Haustuer javascript.0 2019-06-22 00:47:40.412 info script.js.Test.Zeit1: Device # Terrassentuer # fehlt und wird neu hinzugefügt mit Schedules-ID: 4 javascript.0 2019-06-22 00:47:40.412 info script.js.Test.Zeit1: Dropdownliste Neu: Badfenster;Badfenster;Badfenster1;Haustuer javascript.0 2019-06-22 00:47:40.411 info script.js.Test.Zeit1: Dropdownliste Alt: Badfenster;Badfenster;Badfenster1 javascript.0 2019-06-22 00:47:40.411 info script.js.Test.Zeit1: Device # Haustuer # fehlt und wird neu hinzugefügt mit Schedules-ID: 3 javascript.0 2019-06-22 00:47:39.410 info script.js.Test.Zeit1: registered 8 subscriptions and 2 schedules javascript.0 2019-06-22 00:47:39.406 info Start javascript script.js.Test.Zeit1 javascript.0 2019-06-22 00:47:39.397 info Stop script script.js.Test.Zeit1
-
@GiuseppeS
Klasse, wäre es ausserdem noch möglich Objekte mit den Sollwerten "Auf/Zu" zu erweitern?
Gruß Jubbes -
@Jubbes
Auf/Zu wären dann Synonyme für 100%/0%, richtig? Wenn es als Mehrwert angesehen wird kann ich es rein setzen.
Oder:
Wenn ich die fixen Offset Minuten drin habe, gebe ich dir die zwei Programmzeilen extra durch, die Auf/Zu bewerkstelligen. -
@GiuseppeS
Ja danke. Mußt mir dann nur zeigen wo ich die Zeilen einfügen soll. Besser wäre noch Auf/Ab. -
Es ist nun möglich, feste Offsets bei den Astro-Timer zu verwenden. Die Offsets sind zusätzlich zu den Random-Werten nutzbar.
Bei manueller Zeitangabe ist Offset aktuell nicht integriert, da ich den Nutzen nicht erkennen kann. Falls gewünscht einfach mitteilen.Als Synonyme für die Sollwerte "100" und "0" kann nun "Auf" und "Ab" angegeben werden.
Weitere Optimierung: Wenn Timer gelöscht wird, wird nun auch das schedule gelöscht. Muss vor dem Löschen also nicht mehr deaktiviert werden.
Die Dateien im ersten Post sind aktualisiert. Falls schon die vorige Version des Timers läuft, würde ich empfehlen bei 0 zu starten:
Skript stoppen, Objekt "javascript.0/Timer" mit allen Unter-Objekten löschen, View für PopUp neu importieren. Hauptansicht ist identisch geblieben. -
Hallo,
müssen die Views einen genauen Namen haben? Habe sie timer1 und timer2 für das PopUp bennant.
Wenn ich Timer bearbeite anklicke kommt ein PopUp mit der Fehlermeldung view nicht gefunden. Die Widget Nummer habe ich abgeändert. Wenn ich das PopUp einzeln über den Editor aufrufe erscheint es. Ansonsten läuft alles Top. Danke