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 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
                                          • Z
                                            Zoidberg @GiuseppeS last edited by

                                            @GiuseppeS Technisch ist der DoppelKlick auf dem Touch eher unschön.. möcht eigentlich alles aus dem einfach Klick vermeiden, bzw. verhindern.. Btw. gibt es eine möglichkeit in VIS global Rechtsklick und Doppelklick zu unterdrücken ?

                                            @Glasfaser Danke werde ich mal testen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            907
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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