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.
    • 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
                        • sigi234
                          sigi234 Forum Testing Most Active @GiuseppeS last edited by

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

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

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

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

                              @GiuseppeS

                              Keine Ahnung, warum ich die Buttons nicht angezeigt bekommen?

                              Uhulas-CSS habe ich die Neueste, oder muss man deines nehmen?

                              Screenshot (2179).png

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

                                @sigi234
                                Buttons sind unsichtbar. Werden sichtbar wenn du auf ein Geräte links klickst

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

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

                                  @sigi234
                                  Buttons sind unsichtbar. Werden sichtbar wenn du auf ein Geräte links klickst

                                  Man sollte einfach Alles lesen.

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

                                  Die Haupt-Tabelle mit den dargestellten Timern ist interaktiv:

                                  Sobald ein "Gerät", der "Aktiv-Status" oder die "Ist-Zeit" eines Timers einmalig angetippt wird, erscheinen zwei Buttons oben rechts. Es ist möglich, Timer hinzuzufügen (als Kopie des aktuell gewählten Timers) oder Timer zu löschen. Die Buttons verschwinden wieder nach 5s, sodass die Standardansicht immer "ungestört" ist.
                                  Ein Doppelklick auf das Gerät oder auf die Ist-Zeit öffnet den Editor für den Timer.
                                  Ein Doppelklick auf den Aktiv-Status schaltet diesen Status um (toggle).

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

                                    @GiuseppeS

                                    Klingt erstmal gut ... aber wie du weißt , habe ich mehrer View´s .... die dann auch noch 4 einzelne Tabellen ( Timerübersichten ) enthalten .

                                    Mit einem Button auf dem Home View legen ... so war meine Überlegung .( vielleicht als Zusatzoption ) .

                                    Ist halt nur ein Gedanke ............

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

                                      @Glasfaser
                                      Stimmt, solche Fälle gibt's auch. Dann werde ich zusätzlich zur Integration in der Tabelle noch ein Button-State erstellen. Dieser Button kann dann beliebig von der VIS getriggert werden.

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

                                        @GiuseppeS

                                        Jipp .... und hier kann man dann den Button und die Tabelle noch zusätzlich anzeigen lassen , als Übersicht im Haupt-View .. ( über Sichtbarkeit geschaltet )

                                        Button gedrückt , dann anliegende Timer gelöscht und die Liste der anliegende Timer gelöscht .

                                        Habe jetzt natürlich nur ein drinn als Beispiel und noch nicht angepasst :
                                        1.JPG

                                        EDIT :
                                        Beispielausgabe ... ( Länge der Textausgabe angepasst )

                                        1.JPG

                                        1 Reply Last reply Reply Quote 0
                                        • Danny 0
                                          Danny 0 last edited by

                                          Hallo Leute,

                                          dass Script sieht echt super aus leider bekomme ich es nicht zum laufen ... 😞
                                          Ich glaube ich habe ein Verständnis Problem aber bekomme irgend wie nicht die Kurve. 😞

                                          Herzlichen Dank schon mal für eure Unterstützung!

                                          Fehlermeldung nach dem das Script ausgeführt wurde.

                                          09:36:28.451	info	javascript.3 (13977) Start javascript script.js.Instanz_3_comfort.Timer.Devices
                                          09:36:28.469	info	javascript.3 (13977) script.js.Instanz_3_comfort.Timer.Devices: registered 0 subscriptions and 0 schedules
                                          09:36:29.970	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.Editor.ConditionKeyDropDown" not found
                                          09:36:29.971	warn	javascript.3 (13977) at createConditionsJSON (script.js.Instanz_3_comfort.Timer.Devices:247:5)
                                          09:36:29.972	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1167:5)
                                          09:36:29.973	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.ConditionJSON" not found
                                          09:36:29.973	warn	javascript.3 (13977) at createConditionsJSON (script.js.Instanz_3_comfort.Timer.Devices:248:5)
                                          09:36:29.973	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1167:5)
                                          09:36:29.974	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.Editor.DropDownMinutes" not found
                                          09:36:29.975	warn	javascript.3 (13977) at setMinutesDropDown (script.js.Instanz_3_comfort.Timer.Devices:163:5)
                                          09:36:29.975	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1169:5)
                                          09:36:29.978	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.Editor.DropDownAstroTexte" not found
                                          09:36:29.979	warn	javascript.3 (13977) at setAstro (script.js.Instanz_3_comfort.Timer.Devices:488:2)
                                          09:36:29.979	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1170:5)
                                          09:36:29.980	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.Editor.DropDownAstroWerte" not found
                                          09:36:29.981	warn	javascript.3 (13977) at setAstro (script.js.Instanz_3_comfort.Timer.Devices:489:2)
                                          09:36:29.981	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1170:5)
                                          09:36:29.982	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.AstroJSON" not found
                                          09:36:29.982	warn	javascript.3 (13977) at setAstro (script.js.Instanz_3_comfort.Timer.Devices:490:2)
                                          09:36:29.983	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1170:5)
                                          09:36:29.984	warn	javascript.3 (13977) getState "script.js.Instanz_3_comfort.Timer.Devices.TimerJSON" not found (3)
                                          09:36:29.984	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1171:9)
                                          09:36:29.985	info	javascript.3 (13977) script.js.Instanz_3_comfort.Timer.Devices: States werden neu erstellt! Script bitte erneut starten!
                                          09:36:29.985	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.DropDownDevice" not found
                                          09:36:29.986	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1187:9)
                                          09:36:29.987	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.TimerJSON" not found
                                          09:36:29.987	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1188:9)
                                          09:36:29.988	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.DropDownGruppe" not found
                                          09:36:29.990	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1254:5)
                                          09:36:29.991	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.FilterDevice" not found
                                          09:36:29.991	warn	javascript.3 (13977) at Object.main (script.js.Instanz_3_comfort.Timer.Devices:1256:5)
                                          09:36:30.475	warn	javascript.3 (13977) getState "script.js.Instanz_3_comfort.Timer.Devices.TimerJSON" not found (3)
                                          09:36:30.476	warn	javascript.3 (13977) at Object.updateCond (script.js.Instanz_3_comfort.Timer.Devices:255:32)
                                          09:36:30.478	error	javascript.3 (13977) at Object.updateCond (script.js.Instanz_3_comfort.Timer.Devices:256:12)
                                          09:36:31.492	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.Editor.Device" not found
                                          09:36:31.792	warn	javascript.3 (13977) State "script.js.Instanz_3_comfort.Timer.Devices.Editor.Nummer" not found
                                          09:36:31.994	warn	javascript.3 (13977) getState "script.js.Instanz_3_comfort.Timer.Devices.TimerJSON" not found (3)
                                          09:36:31.994	warn	javascript.3 (13977) at buildJson (script.js.Instanz_3_comfort.Timer.Devices:1273:32)
                                          09:36:31.994	warn	javascript.3 (13977) at Object.tableMain (script.js.Instanz_3_comfort.Timer.Devices:1440:89)
                                          09:36:31.995	warn	javascript.3 (13977) getState "script.js.Instanz_3_comfort.Timer.Devices.DropDownDevice" not found (3)
                                          09:36:31.995	warn	javascript.3 (13977) at buildJson (script.js.Instanz_3_comfort.Timer.Devices:1275:21)
                                          09:36:31.996	warn	javascript.3 (13977) at Object.tableMain (script.js.Instanz_3_comfort.Timer.Devices:1440:89)
                                          09:36:31.997	error	javascript.3 (13977) at buildJson (script.js.Instanz_3_comfort.Timer.Devices:1276:35)
                                          09:36:31.997	error	javascript.3 (13977) at Object.tableMain (script.js.Instanz_3_comfort.Timer.Devices:1440:89)
                                          

                                          Jetzt zur Config.

                                          1. ich habe alles was mal javascript.0 ... war in script.js.Instanz_3_comfort. geändert. Ganz einfach mit Suchen und ersetzen.
                                          /* ####################################################################### */
                                          // Nachfolgende Einträge zwingend anpassen:
                                          
                                          // Eine Aufzählung für Geräte (z.B. Rollläden) angeben:
                                          var deviceEnum = "enum.blinds";
                                          
                                          // Eine Aufzählung für States der Bedingungen:
                                          var deviceCond = "enum.functions";
                                          // Widget-Nummer für Widget "EDIT" (View in Dialog)
                                          var DlgWidget = 'w00251'
                                          

                                          f6b12cac-c163-4df2-8a27-da90daae1708-image.png

                                          d6550e6b-766c-4c1f-ac32-fa1c885dd529-image.png

                                          624c8d41-fb64-4dc7-9c48-c08277c0fdbf-image.png

                                          eb84c0af-b36e-4b45-936f-cf25d82edd42-image.png

                                          84718b28-a2e7-4519-bab8-9b1abd0ea9c1-image.png

                                          413ae74c-04ec-44e1-ac46-f300917a59e8-image.png

                                          Vis Vorlage

                                          [{"tpl":"tplContainerButtonDialog","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"buttontext":"","padding":"0","contains_view":"cardRollladenPopUp","noHeader":true,"dialog_width":"352px","dialog_height":"740px","class":"mdui-flatbutton noSwipe mdui-blue","no_style":true,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"modal":true,"locked":false,"visibility-cond":"==","visibility-val":"","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"html_prepend":"<font size=\"5\">EDIT</font>","html_append":"","title":"Timer Bearbeiten","dialog_top":"13px","dialog_left":"calc((100% - 352px)/2)","setValue":"","visibility-oid":"script.js.Instanz_3_comfort.Timer.Devices.FilterDevice"},"style":{"left":"calc(100% - 61px)","top":"5px","width":"auto","height":"auto","z-index":"10"},"widgetSet":"jqui"}]
                                          

                                          Vis PopUp

                                          [{"tpl":"tplJquiSelectList","data":{"oid":"script.js.Instanz_3_comfort.Timer.Devices.Editor.Gruppe","g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"values":"{script.js.Instanz_3_comfort.Timer.Devices.DropDownGruppe}","texts":"{script.js.Instanz_3_comfort.Timer.Devices.DropDownGruppe}","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"no_style":true,"class":"mdui-select noSwipe","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide"},"style":{"left":"91px","top":"26px","height":"39px","width":"247px","z-index":"1"},"widgetSet":"jqui"}]
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • Stratos Gkrekidis
                                            Stratos Gkrekidis last edited by

                                            wie kann ich meine eigene Sollwerte einfügen
                                            z.b für ein thermostatt den status Eco oder Normal.

                                            var sollDropDown = "0;5;10;15;20;30;40;50;60;70;80;90;100;Up;Down;Eco:Normal";

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            469
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            47
                                            919
                                            204961
                                            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