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 die empfohlenen View Einstellungen nun getestet und sehe bei mir keine Auswirkungen / Probleme. Lasse sie nun drin, sodass bei anderen Usern die Darstellungen auf Anhieb passen. Wusste nicht, dass annähernd alle betroffen waren.
      Bei mir sind die Auswirkungen der Einstellungen wahrscheinlich deshalb nicht sichtbar, weil ich sowohl für Cards als auch für die Hintergründe Bilder verwende.

      Werde nachher ein Update der Views hochladen.

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

        @GiuseppeS

        Wäre es möglich ein Meldung ( Debug ) einzubauen , wenn eine Schaltzeit erfolgt.

        z.B . Datenpunktname vom Enum + Wert =
        Meldung : Rollladen Wohnzimmer ( ab )

        Ich arbeite gerne mit der Liste von @Mic

        1.JPG

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

          @Glasfaser
          Wäre wohl ziemlich schnell integriert. Soll es tatsächlich mit dem Schlüssel debugLog kombiniert werden oder doch lieber mit stdLog? Bei debugLog hängen auch die States Änderungen für die Bedingungen.
          Bei stdLog wäre dann das Setzen / Löschen des Timers sichtbar und hiermit auch die Ausführung. Einverstanden? Bei debugLog wäre es somit auch automatisch mit drin.

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

            @GiuseppeS

            Boey dreimal von mir durchgelesen und nicht verstanden was du schreibst bzw. meinst 🙄 😢

            Nicht eine Zukunftsausgabe sondern eine aktuelle Schaltausgabe wenn der Schedule ( für den Rollladen ) geschaltet hat .

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

              @Glasfaser

              😆

              Ok, kein Thema. Zumindest hatte ich dich richtig verstanden und habe es eben schon integriert. Upload in Post 1 ist aktualisiert.

              Wer bereits eine aktuelle Version hat kann auch nur die folgende Funktion "autoScheduler" ersetzen:

              (verändert habe ich Zeile 32 bis 35, bezogen auf unteren Code-Ausschnitt)

              // schedules werden variabel erstellt; zunächst wird gelöscht und wenn create=true wird neu erstellt
              function autoScheduler(TimerJSON, deviceName, timerNr) {
                  var sollwert, tmpSollwert;
                  var scheduleNr = (TimerJSON[deviceName][timerNr].DeviceNr * 10) + timerNr;
                  var create = TimerJSON[deviceName][timerNr].Aktiv;
                  var cronString = TimerJSON[deviceName][timerNr].Cron;
                  var objID = TimerJSON[deviceName][timerNr].ObjID;
                  sollwert = tmpSollwert = TimerJSON[deviceName][timerNr].Sollwert;
                  // Auswertung der Bedingungen
                  var conditionState = condEval(TimerJSON[deviceName][timerNr]);
                  // Timer zunächst immer löschen
                  (function () {
                      if (cronArr[scheduleNr]) {
                          if(stdLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" (" + scheduleNr + ") gelöscht!");}
                          clearSchedule(cronArr[scheduleNr]); cronArr[scheduleNr] = null;
                      }
                      else {
                          if(debugLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" (" + scheduleNr + ") nicht vorhanden! Kein Löschen notwendig!");}
                      }
                  })();
                  // Timer neu erstellen falls AKTIV == true
                  if (create){
                      if (conditionState){
                          // Verschiedene Mappings aus DropDown zu realen States
                          if (sollwert == "An"){sollwert = true}
                          else if (sollwert == "Aus"){sollwert = false}
                          else if (sollwert == "Auf"){sollwert = 100}
                          else if (sollwert == "Ab"){sollwert = 0}
                          else (sollwert = parseInt(sollwert));
                          if(debugLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" erstellen:");}
                          if(stdLog){console.log("Schedule \"" + deviceName + " #" + timerNr + "\": " + scheduleNr + " | " + cronString + " | " + objID + " | " + sollwert);}
                          if(stdLog){            
                              cronArr[scheduleNr] = schedule(cronString, function(){ setState(objID, sollwert); console.log("Timer: " + deviceName + " (" + tmpSollwert + ")")});
                          } else {
                              cronArr[scheduleNr] = schedule(cronString, function(){ setState(objID, sollwert); });
                          }
                      }
                      else {
                          if(debugLog){console.log("Schedule für \"" + deviceName + " #" + timerNr + "\" (" + scheduleNr + ") nicht erstellt: Bedingung(en) nicht erfüllt!");}
                      }
                  }
                  return conditionState;
              }
              

              Log-Ausgabe erfolgt wenn entweder die Variable stdLog oder debugLog auf "true" gesetzt ist. (Default: stdLog = true)

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

                @GiuseppeS

                Top , DANKE 👍

                Timer zum Test erstellt :

                1.JPG

                Ausgabe bei der Uhrzeit :

                2.JPG

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

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

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

                  ... Ich sehe diese Version als Final an, da ich keine weiteren Ideen für Optimierungen habe.

                  Da wäre ich mir nicht so sicher 😎 , mir fällt schon was ein 🤔

                  @GiuseppeS

                  Da gibt es immer nützliche Updates die man findet 😊

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

                    @Glasfaser
                    🤣
                    Da habe ich die Kreativität anderer User unterschätzt 👍

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

                      @GiuseppeS

                      So , habe es auf @Mic Skript angepasst , damit es in meinen Logs gefiltert wird.
                      Mic : Log-Datei aufbereiten für VIS

                      Ergebnis :👍

                      1.JPG

                      .
                      ToDo , wie es gemacht wird :

                      Text Timer:

                      4.JPG

                      auf meinen Filterwert +++ geändert

                      2.JPG

                      Skriptanpassung im Log Skript von @Mic

                      6.JPG

                      5.JPG

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

                        @GiuseppeS

                        Was mir noch einfällt , was ich immer selber geändert habe , ist die Minuten Auswahl im Edit PopUP.

                        Vielleicht eine Anregung es zu ändern , da nicht so viele wissen wie es geht bzw. nicht mit den 5 Minuten Schritten gebunden sind !?

                        8.jpg

                        [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Timer.Devices.Editor.Min","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,"visibility-cond":"==","visibility-val":"manuell","visibility-groups-action":"hide","values":"00;01;02;03;04;05;06;07;08;09;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59","texts":"00;01;02;03;04;05;06;07;08;09;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59","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-oid":"javascript.0.Timer.RollladenOG.Editor.DropDownAstro","name":"manuellMin"},"style":{"left":"247px","top":"143px","height":"39px","width":"52px","z-index":"10"},"widgetSet":"jqui"}]
                        


                        Deine Vorlage mit 5 Minuten schritten :

                        9.jpg

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

                          @Glasfaser
                          Ja, das ist eine Sache die ich manchmal vermisse. Hatte versucht ein Kompromiss zu finden, das eine gewisse Auswahl erfüllt aber wo man nicht ewig scrollen muss.

                          Zwei Vorschläge für die Umsetzung:

                          • eine neue Variable oben im Skript, wo die Schrittweite in Minuten FREI angegeben wird: 1 bedeutet alle 0,1,2,...,59. Eine 2 bedeutet 0,2,4,6,...,58. Für die aktuelle Auswahl müsste entsprechend eine 5 eingetragen werden.
                          • Andere Möglichkeit wäre, dass ich zukünftig das Dropdown für Offsets berücksichtige (aktuell ausgeblendet und daher unberücksichtigt). Manuelle Auswahl wäre weiterhin in 5-Minuten Schritten, aber mit Offset würde es minutiös korrigiert werden können. Vorteil hier: keine weiteren Variablen. Nachteil: noch ein Dropdown für die Einstellung der manuellen Uhrzeit relevant.

                          Welche Option wird bevorzugt?

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

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

                            @Glasfaser
                            Ja, das ist eine Sache die ich manchmal vermisse. Hatte versucht ein Kompromiss zu finden, das eine gewisse Auswahl erfüllt aber wo man nicht ewig scrollen muss.

                            Zwei Vorschläge für die Umsetzung:

                            • eine neue Variable oben im Skript, wo die Schrittweite in Minuten FREI angegeben wird: 1 bedeutet alle 0,1,2,...,59. Eine 2 bedeutet 0,2,4,6,...,58.

                            Jipp …. auf dem Handy sieht es anders aus ….😀 , nutze kein Handy deshalb fällt es nicht auf !

                            Dann lass doch den User mit der Auswahl "Variable" entscheiden , die Idee / Umsetzung finde ich gut 👍

                            1 = 0 …. bis 59 Min
                            2 = 0 , 5, 10,15 …. 55 Min

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

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

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

                              @Glasfaser
                              Ja, das ist eine Sache die ich manchmal vermisse. Hatte versucht ein Kompromiss zu finden, das eine gewisse Auswahl erfüllt aber wo man nicht ewig scrollen muss.

                              Zwei Vorschläge für die Umsetzung:

                              • eine neue Variable oben im Skript, wo die Schrittweite in Minuten FREI angegeben wird: 1 bedeutet alle 0,1,2,...,59. Eine 2 bedeutet 0,2,4,6,...,58.

                              Jipp …. auf dem Handy sieht es anders aus ….😀 , nutze kein Handy deshalb fällt es nicht auf !

                              Dann lass doch den User mit der Auswahl "Variable" entscheiden , die Idee / Umsetzung finde ich gut 👍

                              1 = 0 …. bis 59 Min
                              2 = 0 , 5, 10,15 …. 55 Min

                              Die Idee hierbei war eher:

                              1 = 0.... bis 59 Min
                              2 = 0, 2, 4... bis 58 Min
                              .
                              .
                              5 = 0, 5, 10.... bis 55 Min

                              So hätte ich noch mehr Möglichkeiten abgehakt und der Aufwand wäre sogar minimal geringer.

                              Ok?

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

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

                                So hätte ich noch mehr Möglichkeiten abgehakt und der Aufwand wäre sogar minimal geringer.

                                Ok?

                                Ja , stimmt so kann jeder mehr entscheiden wie er es haben will 👍

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

                                  @Glasfaser
                                  Aufwand ist sehr gering, werde es wahrscheinlich später noch einstellen. Evtl aber auch erst morgen. Für dich wahrscheinlich eher uninteressant da schon selbst umgesetzt.

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

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

                                    @Glasfaser
                                    ….Für dich wahrscheinlich eher uninteressant da schon selbst umgesetzt.

                                    …… deshalb der Vorschlag von mir !

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      ak1 last edited by

                                      Ich habe mich heute erstmalig mit dieser Lösung beschäftigt und ich bin ehrlich beeindruckt. @GiuseppeS Toll gemacht!

                                      Eigentlich müsste doch als Anwendungsfall hier auch die Erstellung einer Anwesenheitssimulation möglich sein. Aufgrund der Berücksichtigung von Astro-Zeiten, Zufallsabweichungen und Bedingungen für die Timer sind die wichtige Komponenten ja vorhanden.

                                      Hat das vielleicht jemand schon versucht oder sich Gedanken dazu gemacht?

                                      Selbst solche Szenarien müssten sich abbilden lassen: Ist der Sonnenaufgang vor der Aufstehzeit, dann braucht der Timer zum Licht Anschalten nicht ausgelöst werden, Ansonsten schon. Eine entsprechende Bedingung ließe sich ja zyklisch per Skript ermitteln und beim Timer auswerten.

                                      VG
                                      ak1

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

                                        @ak1
                                        Schön, dass die diese Lösung gefällt 😊
                                        Das Skript lässt sich beliebig oft anwenden, daher gibt es die Variable "path" weit oben im Skript. Einfach Skript nochmal kopieren und oben die Variable anpassen.
                                        Bei den Views VOR dem nochmaligen Import öffnen und mit Copy/Paste den Pfadanteil "Devices" durch deinen neuen Pfad ersetzen.

                                        Ich nutze das Skript zwei Mal: für die allgemeine Rollladen-Steuerung und für die Anwesenheitssimulation.

                                        Für deine Idee müsstest du zwar ein Hilfsskript verwenden, aber es wäre möglich. Als Output müsste aus dem Skript ein State mit true oder false beschrieben werden. Das State dann als Bedingung nutzen.

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

                                          @GiuseppeS , @Glasfaser,

                                          sehr gute Idee mir der Variablen. So ist es für verschiedene Anwenderwünsche flexibel und das drop down wird nicht ewig lang 😊

                                          Top!
                                          Grüße

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            ak1 last edited by

                                            @GiuseppeS
                                            Hast Du ggf. mal einen Screenshot (nur einen Ausschnitt) mit 2-3 Timern, die Du im Rahmen der Anwesenheitssteuerung zum Ein- und Ausschalten von Lichtern nutzt? Vielleicht ein Besipiel, wo Du tatsächlich auch Astro-Zeiten einbeziehst.

                                            VG
                                            ak1

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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