NEWS
[Vorlage] Variable Zeitsteuerung mit VIS Editor
-
Ich habe deinen Schedule Wert mal geändert
// Darstellung zukünftiger Timer schedule('30 * * * * *', nextTimer);
auf … und der Wechsel mit den Werten ist weg
// Darstellung zukünftiger Timer schedule('*/15 * * * * *', nextTimer);
Edit : Fehler wieder da , dafür jetzt alle 15 Sekunden ….
-
Neue Aufzählung anklicken:
Dabei wählst Du einfach "Benutzerdefinierte Gruppe" und gibst einen Namen deiner Wahl ein.
-
@Glasfaser
Starte bitte den iobroker-docker oder zumindest die Javascript-Instanz neu, falls noch nicht geschehen. Die Darstellung ist zumindest für mich absolut nicht nachvollziehbar. Kannst du diesen Switch der Darstellung auch direkt bei den Objekten sehen?EDIT:
Soeben extra Firefox genutzt, auch wieder nicht möglich die seltsame Darstellung zu reproduzieren. -
OK … werde alles neu starten !
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Neue Aufzählung anklicken:
Dabei wählst Du einfach "Benutzerdefinierte Gruppe" und gibst einen Namen deiner Wahl ein.
-
@sigi234
Indem Du oben auf das zunächst blaue Symbol klickst, kannst Du weitere States zu deinen Aufzählungen hinzufügen:
Daraufhin geht rechts ein Fenster mit allen Objekten auf. Hierbei kannst Du per Drag&Drop States von Rechts nach Links in eine Aufzählung schieben.
Bitte nur einzelne States rein schieben, keine Objekte, die Unter-Objekte besitzen. -
So ... Neustart durchgeführt.
Die Logik muss keiner verstehen , die Anzeigenwerten bleiben jetzt , es kommt nur der Refresh den man sieht .
-
@sigi234
Freut mich, dass es nun verständlich wird mit den Aufzählungen und Co...@Glasfaser
Ausnahmsweise wird bei der Darstellung ein JSON genutzt, der rein virtuell als Variable besteht, also nicht in States zurückgeschrieben wird o.ä.
Vielleicht war iwas im RAM so durcheinander, dass es diesen Switch der Darstellungen gab oder ioBroker hatte was in der Javascript-Instanz durcheinander gebracht. Seltsam ist es jedenfalls... und leider nicht nachvollziehbar.Melde mich für heute dann mal ab
EDIT:
@Glasfaser
Mir ist gerade eingefallen, dass ich einmal ein Skript gelöscht hatte, aber in iobroker dieses Skript nicht beendet wurde. Es lief weiter obwohl davon nichts mehr sichtbar vorhanden war. Konnte das an Änderungen von States nachvollziehen. Nach einem Neustart war alles ok. Ist hier bestimmt der gleiche Fall. Eine alte Version lief noch irgendwie im Hintergrund. -
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@sigi234
Freut mich, dass es nun verständlich wird mit den Aufzählungen und Co...Warum ich sie doppelt und dreifach habe weis ich noch nicht.
-
Ich stelle mal lieber hier die Daten von meinem System ein :
vielleicht hat der ein oder andere den gleichen Fehler !
-
Du hast nur " Licht_Voraum:1 "doppelt .
-
@sigi234
Kann es sein, dass dein "Licht Vorraum 1" doppelt in der Aufzählung vorhanden ist (falls möglich)?
Jedes Gerät wird grundsätzlich mit zwei Timern erstellt, wieso das Erste von dir doppelt erkannt und somit vier Timer erstellt werden, ist zunächst unklar. -
@sigi234
Lösche bitte das Objektjavascript.0.Timer.Devices.TimerJSON
Und starte danach das Skript zweimal neu. Bitte check auch deine Aufzählung, ob da alles rechtmäßig ist.
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@sigi234
Kann es sein, dass dein "Licht Vorraum 1" doppelt in der Aufzählung vorhanden ist (falls möglich)?
Jedes Gerät wird grundsätzlich mit zwei Timern erstellt, wieso das Erste von dir doppelt erkannt und somit vier Timer erstellt werden, ist zunächst unklar.Ich weis warum, das war auf
var splitHTML = true;
-
@sigi234
var splitHTML = trueDas sorgt dafür, dass die Geräte alle in eigene html-States geschrieben werden. Standard TableHTML wird dann nicht weiter befüllt. Daher für mich nicht nachvollziehbar, wieso dann Geräte doppelt vorkommen. Wie dem auch sei, hoffe nun funktioniert alles.
Allgemein, kam eben doch noch dazu meinen letzten Punkt einzubringen:
Im aktuellen Update werden nun neue Timer auf Basis des zuletzt gewählten Timers erstellt. Habe inzwischen bis zu 5 Timer pro Gerät/Rollladen und wollte an Position 2 einen neuen Timer auf Basis von Nr. 1 erstellen. Nun ist es möglichIch sehe diese Version als Final an, da ich keine weiteren Ideen für Optimierungen habe.
Höchstens eine Funktion fällt mir noch ein, was aber bzgl. Umsetzung komliziert ist:
Wenn ein Timer aktiv, aber die Bedingung nicht erfüllt ist, wird die Aktion nicht ausgeführt. Eine Funktion, die ich manchmal vermisse wäre, dass dieser Timer für z.B. 1 Stunde "gemerkt" wird und innerhalb dieser Stunde ausgeführt werden kann, wenn die Bedingung(en) nachträglich erfüllt ist. Würdet ihr solch eine Funktion auch nutzen? Nur für mich würde ich den Aufwand nicht betreiben. -
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
... Ich sehe diese Version als Final an, da ich keine weiteren Ideen für Optimierungen habe.
Da wäre ich mir nicht so sicher , mir fällt schon was ein
-
@Glasfaser
Falls du schon die letzte Version irgendwie integriert haben solltest, in Zeile 644 sollte folgendes stehen:setState("javascript.0.Timer." + path + ".Editor.Nummer", devlen);
Also "devlen" statt "nr-1"
Im zip des ersten Posts habe ich es bereits korrigiert. Wenn nämlich Timer Nr. 1 gelöscht wird, erscheint ein Fehler da "nr-1=0" und die 0 nicht existiert...
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@Glasfaser
Falls du schon die letzte Version irgendwie integriert haben solltest, in Zeile 644 sollteNee , nur ein Testskript läuft .
Was läuft das läuft …. ändere es erst später mal um .( Sind ja dann 8 einzelne Script´s ) -
@Glasfaser
Allerdings könntest du auch ein Script pro Stockwerk nutzen und splitHTML aktivieren. Dann hättest du pro Stockwerk jeweils eine Edit-Möglichkeit und dennoch einzelne Tabellen für die Visu (hast ja glaub nach Stockwerken unterteilt). Anpassungen wären dann schneller übernommenen und die Funktion "für alle Devices übernehmen" wäre nutzbar. Nur ein Vorschlag -
@GiuseppeS
Wäre eine Idee …. aber ...
da nur 3 Bedingungen nutzbar sind ( reichen für mich ), kann ich pro Skript verschiedene Bedingungen pro Fenster/Tür wählen bzw. nutzen