NEWS
[Vorlage] Variable Zeitsteuerung mit VIS Editor
-
Stimmt, dann geht's...
Nachteil: Man muss alle Timer neu setzen -
Schaue mir das an und bringe heute Abend noch ein Update raus.
Ich habe mittlerweile so viele Timer mit so vielen unterschiedlichen Bedingungen... Timer neu setzen muss nicht sein. -
Fehler gefunden und behoben. Lade das zip direkt neu hoch. 5 Minuten
-
In etwa so !?
-
@Glasfaser
Ne
Du bist gerade im Bereich, wo das Dropdown für Bool-States erstellt wird. Dass nur true/false statt Zahlenwerte angezeigt werden. Suche im Skript einfach nach "grpNames", dann findest du die verwendete StelleHabe es hochgeladen, ist korrigiert....
Erläuterung:
In der main-Funktion gibt es zwei Bereiche, die mit if/else geteilt sind. If wird durchlaufen, wenn noch keine States vorhanden sind; hier wurde das Gruppen-Dropdown bis eben beschrieben. Danach kommt der Else-Bereich, hier wird z.B. geprüft, ob in der Aufzählung neue Geräte hinzugekommen sind.
Entweder unter diesem If/Else-Block oder darüber hätte das Beschreiben des Dropdowns stattfinden müssen. Habe nun korrigiert (unter dem If/Else-Block, da hier mehrere Befehle ausgeführt werden. -
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
@Glasfaser
NeWar nur ein Test von mir … funktionierte aber
Ahhh .. da ist die Änderung …
-
Habe gerade ein minimales Update hochgeladen. Nur informativ für Nutzer der Uhula-Widgets (hier ja auch verwendet):
Was ich gerade für die Bool-Switch (mdui-switch) gefunden habe: Mit {wid} lässt sich dynamisch die Widget-ID einbinden. Im HTML-Bereich musste immer die Widget-ID angepasst werden. Das ist mit dem dynamischen Binding nicht mehr notwendig. Habe das in meinen Views angepasst und auch hier entsprechend hochgeladen. Gemeint ist folgende Änderung:
<label for="{wid}_checkbox"><label>
statt zum Beispiel
<label for="w00123_checkbox"><label>
-
Da ich diese Woche auch "etwas" Zeit hatte, habe ich mal am Skript weiterentwickelt.
Die fehlende "Timer merken" Funktion ist nun integriert. Außerdem habe ich einiges aufgeräumt und Aufgrund der neuen Funktion die Abfolgen im Skript angepasst.Damit "Timer merken" innerhalb der Tabelle hervorgehoben wird, habe ich drei Varianten von Uhula's CSS direkt integriert. Wenn "Timer merken" aktiv ist, werden die Bedingungen mit "glow" hinterlegt. Je nach Status true/false ist die Farbe auch wieder grün/rot. Wenn ein Timer im Hintergrund schlummert, wird die Zahl der Bedingung rot-blinkend dargestellt.
Für ein manuelles Update aus der letzten Version:
- Neues Skript unterhalb der Variablen (Zeile ca. 65) kopieren und bei euch auch wieder unterhalb der Variablen einsetzen.
- Rest betrifft nur das PopUp für die VIS:
- 2 Widgets für "Bedingungen für Gruppe übernehmen"
- 2 Widgets für "Timer merken" inkl. Sichtbarkeit
- Dialog 40px länger (700 -> 740)
- Dialog Pos Oben 13px (vorher 50px)
Habe das neue Skript bereits zwei Tage im Einsatz, mir ist nichts negatives aufgefallen. Habe auch versucht alle Fälle zu testen, aber falls bei euch dennoch ein fehlerhaftes Verhalten vorkommt, einfach rückmelden. Bin noch eine Weile daheim
Changelog 26.03.2020
- Bugfix für font-size der Tabelle (wurde zuvor nicht korrekt übernommen)
- Gruppenzuordnungen unterteilt in "Zeiten" und "Bedingungen"
- Funktion "Timer merken" hinzugefügt:
- Timer wird gemerkt für den Fall dass die Bedingungen erst nach Trigger-Uhrzeit "true" werden.
- Timer werden aus der "Merkliste" vorzeitig gelöscht, falls sich die Ziel Objekt-ID anderweitig ändert oder der nächste Timer des Devices aktiviert wird.
- "javascript.0.Timer.Devices.Editor.DropDownNr" wird seit Touch-Bedienung nicht mehr benötigt. Kann gelöscht werden.
-
-
@Glasfaser
Freut mich, dass es keine Komplikationen gibt -
Noch nicht .... da ich ja nur deine Erweiterungen bei mir Einbau / bzw. mein VIS danach ändere
Frage :
In den Raum gestellt ...
ich habe zb. 20 Zeiten diese enthalten Bedingungen und "Timer merken ".
Dann würden auf einmal bzw. Zeitversetzt alle Timer nachträglich aktiviert werden je nach Bedingung , wären dann zb. 16 die darin enthalten sind .Ist es möglich , das ich dann zb. die noch 16 anliegende "Timer merken " für diesen Moment zb. heute auf ein Schlag löschen ., bzw. stoppen kann , so das sie nicht mehr etwas triggern sollen .
-
@Glasfaser
Pro Gerät ist immer nur ein Timer im Hintergrund "aktiv".Sind in deinem Beispiel alle 20 Timer auf verschiedene Geräte verteilt? Dann würden tatsächlich alle 20 (oder zumindest die mit "Bedingungen=true") ausgeführt werden. Ansonsten ist immer nur maximal ein Timer pro Gerät im Hintergrund aktiv.
Passt das soweit? Ansonsten bräuchte ich genauere Angaben wie es gewünscht ist. Nach dem letzten Umbau des Skripts können gewisse Funktionen wahrscheinlich einfacher integriert werden.
Edit:
Alle ausstehenden Timer im Hintergrund (also über mehrere Geräte) löschen wäre per Knopfdruck ziemlich simpel. Wäre ein zusätzliches Widget im Hauptview.
Einzelne Timer im Hintergrund können "gelöscht" werden, wenn der entsprechende Timer kurz deaktiviert und wieder aktiviert wird. -
Nee ..... war nur ein Beispiel ( auch bei verschiedenen Geräten ) was mir halt dabei aufgefallen ist mit dieser neuen "Funktion" das man es auch stoppen kann ,
wenn es denn so sei ... so bei anderen Nutzern die dein Skript nutzen ! -
@Glasfaser
Was mir gerade einfällt, hatte die letzten Erkenntnisse schon wieder vergessen:
Wenn so eine Funktion "Alle löschen" Sinn macht, dann ginge das mit Sicherheit auch innerhalb der HTML Tabelle.
Wenn ein Timer im Hintergrund ist, dann kommt temporär eine zusätzliche Spalte. Neben dem im Hintergrund aktiven Timer würde dann ein Reset-Button erscheinen. In der Überschrift könnt in derselben Spalte ein Reset-Button alle Background-Timer löschen.Würde es aber gerne mit "mehr Intelligenz" im Skript lösen. Wenn z.B. immer nur ein Background-Timer ausgeführt werden soll, und die anderen immer löschen, dann wäre dieses Verhalten über eine Variable umschaltbar.
Hier wäre wiederum die Frage offen: Wenn theoretisch 20 Timer gleichzeitig aktiv werden, welcher Timer hätte dann den Vorrang? -
@GiuseppeS
Ist halt die Frage vom nutzen , bzw. von der Übersichlichkeit her .Annahme von mir :
Ein Extra Button ( Reset ) als Gesamtlöschen würde dann bei aktiven noch nicht ausgeführten Timern blinken , wie du es schon so hast und über diesen Button kann man dann die zurückliegenden Timer für den heutigen Tage löschen .Hier wäre wiederum die Frage offen: Wenn theoretisch 20 Timer gleichzeitig aktiv werden, welcher Timer hätte dann den Vorrang?
Die würden im jetzigen Skript alle auf einmal ausgeführt werden .
Wie gesagt .... ist jetzt nur im Raum gestellt diese Situation .....
-
-
@sigi234
Dort sind deine Bedingeungen hinterlegt , bei mir ist es dann so ! -
@sigi234
Hatte es bei dir nicht schonmal funktioniert?Die von dir erwähnte Aufzählung muss existieren. Darin sollten Objekt-IDs enthalten sein, die man als Bedingung nutzen möchte.
-
@GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:
Hatte es bei dir nicht schonmal funktioniert?
Ja, habe ich wieder gelöscht, Warum auch immer.
-
@Glasfaser
Bzgl. Löschung der Background-Timer könnte auch direkt die Spalte mit den Bedingungen genutzt werden. Wäre das unkomplizierteste.
Einfach Doppel-Klick auf die Bedingung innerhalb der Tabelle, löscht den einzelnen Timer.
Doppel-Klick auf die Überschrift "Bed" löscht alle Timer.Wer es nutzen möchte, hat eine Möglichkeit. Wer es nicht nutzen möchte, merkt nicht einmal dass diese Funktion existiert.
@sigi234
Wenns hängt kannst du auch einen Chat starten.