NEWS
[Vorlage] Variable Zeitsteuerung mit VIS Editor
-
@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 -
@Glasfaser
Vllt versteh ich dich falsch, aber in der Aufzählung für die Bedingungen können beliebig viele States hinterlegt sein. Bei mir sind es bestimmt 10 oder mehr. Es sind nur 3 Stück gleichzeitig in einem Timer nutzbar, hier ist die selbst erlegte Einschränkung. Natürlich hat es auch Vorteile, für bestimmte Timer nur bestimmte Bedingungen anzugeben und nicht alle. Bedingung "HaustuerIsOpen" macht z.B. wenig Sinn bei Timer für die Terrasse aber dafür ist der Rest einfacher.
Mit geht's nur darum, dass es bei dir eine bewusste Entscheidung ist tatsächlich 8 Skripte zu nutzen und nicht weil etwas unklar war. -
Werde deine Idee auf ein / zwei Script überdenken
Brauche aber dafür eine ruhige Minute ….. um das ganze zu ändern. -
Mal eben ….. auf die schnelle das Erdgeschoss neu erstellt , wollte kein Rosamunde Pilcher schauen
Erdgeschoss : 1 x Script (splitHTML ) mit 4 Rollladen
Oben : Geräteauswahl / Timerauswahl / Timer An-Aus / Timer bearbeiten / DEL
Unten : Welcher Timer kommtJa … hast recht ist einfacher
-
@Glasfaser
Freut mich, wenn ich helfen konnte -
ich habe das aktuelle Skript auch getestet und läuft alles soweit.
Vor allem die Variable "path" macht es jetzt deutlich einfacher, das Skript auf andere Anwendungsfälle zu erweitern. Vielen Dank dafür...Weitere Optimierungsideen für das Skript habe ich momentan auch nicht.
Grüße