Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Vorlage] Variable Zeitsteuerung mit VIS Editor

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Variable Zeitsteuerung mit VIS Editor

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      GiuseppeS @baeri last edited by

      @baeri
      Ok, ich schaue mir das mal an. Habe es seltsamerweise auch im zweiten Skript. Evtl habe ich was falsches exportiert. Habe bei mir immer zwei Timer laufen... Melde mich nachher noch mal.

      Glasfaser 1 Reply Last reply Reply Quote 0
      • Glasfaser
        Glasfaser @GiuseppeS last edited by Glasfaser

        @GiuseppeS

        Habe auch eben getestet .( Nutze keine Gruppen )

        Wenn der Datenpunkt für grpNames = "A;B;C;D;E;F;G;H;I;J" schon angelegt ist ,
        übernimmt bzw. ändert er den Datenpunkt nicht , erst bei einem kompletten löschen aller angelegten Datenpunkte .

        1 Reply Last reply Reply Quote 0
        • B
          baeri last edited by

          Stimmt, dann geht's...
          Nachteil: Man muss alle Timer neu setzen

          1 Reply Last reply Reply Quote 0
          • G
            GiuseppeS last edited by

            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.

            1 Reply Last reply Reply Quote 0
            • G
              GiuseppeS last edited by

              Fehler gefunden und behoben. Lade das zip direkt neu hoch. 5 Minuten

              Glasfaser 1 Reply Last reply Reply Quote 0
              • Glasfaser
                Glasfaser @GiuseppeS last edited by

                @GiuseppeS

                In etwa so !?

                1.JPG

                G 1 Reply Last reply Reply Quote 0
                • G
                  GiuseppeS @Glasfaser last edited by

                  @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 Stelle 😉

                  Habe 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.

                  Glasfaser 1 Reply Last reply Reply Quote 1
                  • Glasfaser
                    Glasfaser @GiuseppeS last edited by Glasfaser

                    @GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

                    @Glasfaser
                    Ne 😲

                    War nur ein Test von mir … 😁 funktionierte aber 👻

                    Ahhh .. da ist die Änderung …

                    1.JPG

                    1 Reply Last reply Reply Quote 0
                    • G
                      GiuseppeS last edited by

                      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>
                      
                      1 Reply Last reply Reply Quote 0
                      • G
                        GiuseppeS last edited by

                        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 1 Reply Last reply Reply Quote 1
                        • Glasfaser
                          Glasfaser @GiuseppeS last edited by Glasfaser

                          @GiuseppeS

                          Danke ....

                          Gerade an der Terrassentür getestet 👍

                          1.JPG

                          ...........mit Log Ausgabe 👍

                          .
                          2.JPG

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            GiuseppeS @Glasfaser last edited by

                            @Glasfaser
                            Freut mich, dass es keine Komplikationen gibt 👍

                            Glasfaser 1 Reply Last reply Reply Quote 0
                            • Glasfaser
                              Glasfaser @GiuseppeS last edited by

                              @GiuseppeS

                              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 .

                              G 1 Reply Last reply Reply Quote 0
                              • G
                                GiuseppeS @Glasfaser last edited by GiuseppeS

                                @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.

                                Glasfaser 1 Reply Last reply Reply Quote 0
                                • Glasfaser
                                  Glasfaser @GiuseppeS last edited by Glasfaser

                                  @GiuseppeS

                                  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 !

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    GiuseppeS @Glasfaser last edited by

                                    @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?

                                    Glasfaser 1 Reply Last reply Reply Quote 0
                                    • Glasfaser
                                      Glasfaser @GiuseppeS last edited by

                                      @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 .....

                                      1 Reply Last reply Reply Quote 0
                                      • sigi234
                                        sigi234 Forum Testing Most Active @GiuseppeS last edited by

                                        @GiuseppeS

                                        Das stehe ich auf der Leitung:

                                        var deviceCond = "enum.functions.timerconditions";
                                        

                                        Screenshot (2177).png

                                        Glasfaser G 2 Replies Last reply Reply Quote 0
                                        • Glasfaser
                                          Glasfaser @sigi234 last edited by

                                          @sigi234
                                          Dort sind deine Bedingeungen hinterlegt , bei mir ist es dann so !

                                          1.JPG

                                          1 Reply Last reply Reply Quote 0
                                          • G
                                            GiuseppeS @sigi234 last edited by

                                            @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.

                                            sigi234 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            893
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            47
                                            919
                                            204671
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo