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 @Danny 0 last edited by

      @Danny-0
      Optimierungen können gerne vorgeschlagen werden.

      Zum Pfad:
      JavaScript kann nur unter javascript.x States erstellen. Mehr Berechtigungen sind nicht drin. Ist eine Einschränkung vom Adapter. Aber wenn du in Javascript eine andere Instanz nutzen möchtest dann musst du nur die 0 mit deiner Instanz ersetzen, bei "javascript.0.blabla".

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

        Habe noch schnell ein Update hinterher geschoben.

        Auch hier wurden keine neuen Variablen eingeführt. Bedeutet, dass ein manuelles Upgrade aus der letzten Version durchgeführt werden kann, indem man die Code-Zeilen ab Nr. 66 durch die Neuen ersetzt.

        Danke @Glasfaser für den Hinweis bzgl. "manuelles Löschen".

        Changelog 29.03.2020

        • Einzelne Aktive Background-Timer aus "Timer merken" können vorzeitig über Doppelklick auf die Bedingungszahl gelöscht werden
        • Das Löschen aller aktiven Background-Timer kann über ein Doppelklick auf Tabellen-Überschrift "Bed" oder separat über das neue State "javascript.0.Timer.Devices.ResetBackgroundTimers" durchgeführt werden.

        EDIT:

        Habe direkt eine weitere Version hochgeladen. Individuelle Mappings der Sollwerte können nun einfacher durchgeführt werden. Aufgrund der vorbefüllten Variablen, sollte ein Anpassen oder Ergänzen hoffentlich einfach sein.

        Changelog 29.03.2020 v2

        • Sollwerte können über Variablen-Feld oben einfacher angepasst werden
        • Zusätzlich zwei Variablen im oberen Feld: "sollDropDownBool" und "sollWertMapping"

        Für ein manuelles Update aus letzter Version müssen nun gemäß Changelog die zwei neuen Variablen im oberen "Variablen-Bereich" übernommen werden. Des Weiteren auch hier wieder den Code-Bereich ab

        /*
        * Weitere Infos: https://forum.iobroker.net/topic/23346/vorlage-variable-zeitsteuerung-mit-vis-editor
        * Autor: Giuseppe Sicilia (Forum: GiuseppeS)
        

        kopieren und bei euch integrieren.

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

          Habe nun noch schnell die Version hochgeladen, in der die Mappings bzgl. individueller Sollwerte einfacher möglich ist. Schaut nun so aus:

          var sollDropDown = "0;5;10;15;20;30;40;50;60;70;80;90;100;Auf;Ab";
          // Soll-Werte für Bool-States true/false (werden automatisch erkannt)
          var sollDropDownBool = "An;Aus";
          // Falls Soll-Werte individualisiert wurden, bitte nachfolgend die realen Werte hinterlegen/anpassen
          var sollWertMapping = {"Auf": 100, "Ab": 0, "An": true, "Aus": false}
          

          Wenn in sollDropDown oder sollDropDownBool etwas bzgl. ausgeschriebener Sollwerte geändert wird, müssen deren "Übersetzungen" (Mappings) im unteren JSON sollWertMapping eingetragen werden.
          Beispiel:
          Wenn das Skript für Rollläden genutzt wird, könnte in sollDropDown der String "mitte" hinzugefügt werden. Im JSON könnte dann eingetragen werden: "mitte": 50.
          Wenn in diesen drei Variablen etwas geändert werden sollte: Bitte achtet darauf, dass die Einzelwerte durch ; oder , getrennt werden.

          Glasfaser Stratos Gkrekidis 2 Replies Last reply Reply Quote 0
          • Glasfaser
            Glasfaser @GiuseppeS last edited by Glasfaser

            @GiuseppeS

            Danke ... bin gerade am Erweitern 😊

            Im htlm Code
            ( z.b. javascript.0.Timer.RollladenEG.HTML_Rollladenaktor Wohnzimmer.LEVEL )
            ist eine 0 reingerutscht !
            .

            <style>
            .timer-remember-green-glow {
            filter: drop-shadow(0px 0px 2px #4CAF50) drop-shadow(0px 0px 2px #4CAF50) drop-shadow(0px 0px 4px #4CAF50)
            }
            .timer-remember-red-glow {
            filter: drop-shadow(0px 0px 2px #F44336) drop-shadow(0px 0px 2px #F44336) drop-shadow(0px 0px 4px #F44336)
            }
            .timer-remember-red-blink {
            animation: timer-remember-blink-ani 1s linear infinite;
            }
            @keyframes timer-remember-blink-ani {
            0%,50% {filter: drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336) drop-shadow(0px 0px 4px #F44336); }
            51% {filter: none;}
            }
            </style>
            <table style='font-size:1em;width:100%;'><thead>
            <tr>
            <th style='text-align:left;'><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" >Aktiv</button></th>
            <th style='text-align:left;'><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" >Bed</button></th>
            0<th style='text-align:left;'><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" >Zeit</button></th>
            <th style='text-align:left;'>Wochentag</th>
            <th style='text-align:left;'>Soll</th>
            <th style='text-align:left;'>Astro</th>
            <th style='text-align:left;'>Offset</th>
            <th style='text-align:left;'>Zufall</th>
            </tr></thead><tbody>
            
            <tr>
            <td><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" value="Rollladenaktor Wohnzimmer.LEVEL~1~nr"onclick="setOnClickRollladenEG(this.value)"ondblclick="setOnDblClickRollladenEG(this.value)">✅</button></td>
            <td> </td>
            <td><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" value="Rollladenaktor Wohnzimmer.LEVEL~1~time"onclick="setOnClickRollladenEG(this.value)"ondblclick="setOnDblClickRollladenEG(this.value)">20:13</button></td>
            <td>täglich</td>
            <td>Ab</td>
            <td>dusk</td>
            <td>- 20</td>
            <td>± 15</td>
            </tr>
            
            <tr>
            <td><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" value="Rollladenaktor Wohnzimmer.LEVEL~2~nr"onclick="setOnClickRollladenEG(this.value)"ondblclick="setOnDblClickRollladenEG(this.value)">✅</button></td>
            <td> </td>
            <td><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" value="Rollladenaktor Wohnzimmer.LEVEL~2~time"onclick="setOnClickRollladenEG(this.value)"ondblclick="setOnDblClickRollladenEG(this.value)">07:34</button></td>
            <td>täglich</td>
            <td>Auf</td>
            <td>goldenHourEnd</td>
            <td>- 15</td>
            <td>± 15</td>
            </tr>
            
            <tr>
            <td><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" value="Rollladenaktor Wohnzimmer.LEVEL~3~nr"onclick="setOnClickRollladenEG(this.value)"ondblclick="setOnDblClickRollladenEG(this.value)">✅</button></td>
            <td> </td>
            <td><button style="border:none; background-color:transparent; color:white; font-size:1.0em; text-align:left" value="Rollladenaktor Wohnzimmer.LEVEL~3~time"onclick="setOnClickRollladenEG(this.value)"ondblclick="setOnDblClickRollladenEG(this.value)">07:55</button></td>
            <td>täglich</td>
            <td>Auf</td>
            <td>goldenHourEnd</td>
            <td>- 15</td>
            <td>± 15</td>
            </tr>
            
            </body></table>
            
            <script>
            
            function setOnClickRollladenEG(val) {
            var objID = "javascript.0.Timer.RollladenEG.clickTarget";
            servConn.setState(objID, val);}
            
            function setOnDblClickRollladenEG(val) {
            var objID = "javascript.0.Timer.RollladenEG.dblClickTarget";
            servConn.setState(objID, val);}
            
            </script>
            


            .
            2.JPG
            .
            1.JPG

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

              @Glasfaser
              Oh, wo kommt die her. Schaue ich mir direkt mal an. Bin gerade zufällig daheim 😆

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

                @Glasfaser
                In Zeile 1461 ist ein einzelnes Plus-Zeichen. Das kannst du bei dir entfernen. Habe es eben auch im Master entfernt und gerade hochgeladen

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

                  @GiuseppeS

                  Das ist mal ein schneller Service 🙂

                  1.JPG

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

                    @Glasfaser
                    Sag mal, was hast du eigentlich für eine Schriftart oder wo hast du die eingestellt? Global oder pro View?

                    Glasfaser Z 3 Replies Last reply Reply Quote 0
                    • Glasfaser
                      Glasfaser @GiuseppeS last edited by

                      @GiuseppeS
                      im View ( Widget ) eingestellt

                      Jura-DemiBold
                      
                      1 Reply Last reply Reply Quote 1
                      • Stratos Gkrekidis
                        Stratos Gkrekidis @GiuseppeS last edited by

                        @GiuseppeS
                        Danke ... für das neue update (sollwert Mapping)

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

                          @GiuseppeS

                          Nur zur Info !

                          Nach dem einspielen des Updates v2 am 29.03 , hatte ich das Phänomen , das die Scrips später kurz in Pause gegangen sind ( gelb ) und dannach lief alles .( viel später als die neuen State´s erstellt wurden )
                          Habe mir nichts dabei gedacht , es lief ja alles ...

                          Wegen arbeiten an meiner Synology habe ich gestern sie mal neu Rebootet .
                          Heute ohne Grund sind keine Rollladen hochgefahren , beide Scrips sind jetzt ganz in Dauerpause .
                          Habe das System danach neu Rebootet .......
                          .
                          1.png

                          .
                          Ich werde es beobachten , nur ist nichts im Log .

                          G 1 Reply Last reply Reply Quote 0
                          • Stratos Gkrekidis
                            Stratos Gkrekidis last edited by

                            bei mir läuft es wie geschmiert seit heute morgen.

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

                              @Glasfaser
                              Hast du nach dem Einspielen der letzten Version die zwei neuen Variablen oben erstellt?

                              Wenn das Skript auf gelb geht, müssten Fehler im Log angezeigt werden. Wenn das wiederholt vorkommt, bitte im Skript oben Debug-Ausgabe aktivieren.

                              Edit:
                              Eben erst gelesen, dass anscheinend nichts im Log angezeigt wird 🙇

                              Glasfaser 1 Reply Last reply Reply Quote 1
                              • Stratos Gkrekidis
                                Stratos Gkrekidis last edited by

                                das sind mein Änderungen

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

                                var sollWertMapping = {"Up": 100, "Down": 0, "On": true, "Off": false, "Eco": "Eco", "Normal": "Normal"}

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

                                  @GiuseppeS

                                  Vorher den Zusatz/Erweiterung eingetragen und dann den Rest erneuert , dann das Script gestartet . Die Pause kam viele später ....

                                  Edit:
                                  Eben erst gelesen, dass anscheinend nichts im Log angezeigt wird

                                  Keine Panik ... ( habe selber nicht mehr daran gedacht ))
                                  Die große Debug-Ausgabe nimm ich dann mal im Betrieb ,habe Sie aus gehabt !!!

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

                                    @Stratos-Gkrekidis
                                    Das scheint bei dir ja gut zu passen 👍

                                    @Glasfaser
                                    Es spricht dafür, dass der Fehler erst auftritt, wenn ein Timer ausgeführt wird. Evtl könntest du einen regulären Timer testweise auf 15 Uhr o.ä. stellen, um den Fehlerfall früher zu reproduzieren.

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

                                      @GiuseppeS

                                      Kann ich machen .... das ich mehere früher einstelle .

                                      Nur habe ich bestimmt gestern über 20 mal es sowieso in anspruch genommen , wo ich die Ausgabentabelle /Timer merken getestet habe , damit ich es im View einbauen kann .
                                      Und spät Abend´s führen auch alle Rollläden runter .

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

                                        @GiuseppeS
                                        Hallo, und ersteinmal Danke für die tolle Zeitsteuerung, Nutze sie zur Steuerung von RGBW Beleuchtung, perfekt
                                        Was ich leider nicht hinbekomme ist das Aktiv/Inaktiv schalten per Doppelklick, generell klappt das schon(per Maus), allerdings ist ein Doppelklick am Touchscreen eher blöd 😉 Habe schon den 'EDIT' Button aktiviert.. das klappt soweit... jetzt würde ich nur noch gerne im EDIT Fenster auch den Aktiv/Inaktiv Status setzen können... Für eine Hilfestellung wäre ich sehr dankbar.

                                        Mfg. Ulrich

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

                                          @Zoidberg
                                          Hmm. Im EDIT Fenster wäre der Button nicht optimal platziert, da einiges drauf ausgerichtet ist, dass es außerhalb des PopUps eingestellt wird.

                                          Funktioniert es am Touchscreen aus technischer Sicht nicht, oder ist das empfinden eher unschön?

                                          Die Funktion auf ein einfachen Klick/Touch zu legen wäre schnell erledigt.

                                          Dilemma für die Umsetzung sind die optionalen Darstellungsformen.
                                          Einfach-Klick für Edit wäre gut auf der Ist-Uhrzeit. Erledigt!

                                          Aber wohin zum aktivieren/deaktivieren? Weil...
                                          Optional kann die Spalte "Device" und eine Spalte von Nr/Aktiv ausgeblendet werden.
                                          Es muss gewährleistet werden, dass mit einem Einfachen Klick ein Timer ausgewählt werden kann, um einen Timer zu löschen oder zu kopieren (add).

                                          @Glasfaser
                                          Du nutzt ja nicht die Device-Spalte, lässt Du sowohl Timer "Nr" als auch "Aktiv" darstellen?

                                          Würde das wie folgt umsetzen:
                                          Klick auf "Device" oder "Nr" wählt ausschließlich Timer für Del/Add. Doppel-Klick auch wie bisher.

                                          Einfach-Klick auf "Aktiv" togglet den Aktiv-Status.
                                          Einfach-Klick auf "Zeit" öffnet PopUp.

                                          Möglichkeiten für Darstellung wären dann wie folgt:
                                          Entweder "Device" oder "Nr" muss dargestellt werden.
                                          Spalte "Aktiv" muss immer dargestellt werden.

                                          Z Glasfaser 2 Replies Last reply Reply Quote 0
                                          • Glasfaser
                                            Glasfaser @Zoidberg last edited by Glasfaser

                                            @Zoidberg
                                            @GiuseppeS

                                            So geht es ! :

                                            Ist halt der Button nur als Test erstmal reingesetzt :

                                            1.JPG
                                            .
                                            2.JPG
                                            .
                                            3.JPG
                                            .

                                            [{"tpl":"tplValueBoolCheckbox","data":{"oid":"javascript.0.Timer.RollladenEG.Editor.Aktiv","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,"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_append":"<label for=\"w00755_checkbox\"><label>","class":"mdui-switch mdui-blue-acc","html":"Switches Beispiele","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":"0px","top":"351px","width":"50px","height":"30px","z-index":"1"},"widgetSet":"basic"}]
                                            

                                            @GiuseppeS

                                            Du nutzt ja nicht die Device-Spalte, lässt Du sowohl Timer "Nr" als auch "Aktiv" darstellen?
                                            .

                                            .So sieht es aus :

                                            5.JPG

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            650
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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