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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [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 sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

      Und noch ein Update hinterher: Keine neue Funktionalität, aber höherer Komfort.

      • Die Sollwerte-Auswahl im PopUp wird entsprechend der hinterlegten Devices angezeigt. Ist es ein Boolean Device (true/false), wird in der Auswahl nur An/Aus zur Auswahl dargestellt.
      • Wenn kein boolean, dann wird der Rest angezeigt (Zahlenwerte + Auf/ab)

      Update durchgeführt , Werte der DropDown-Liste werden je nach Aktor erfüllt .
      Wie immer …. 👍

      Frage ……., bei den Updates muss ich immer händisch die Werte ändern , könntest du es nicht mit reinnehme , dann ist es kompatibel mit @Mic Log Script .

      3.JPG
      .
      1.JPG
      .
      2.JPG

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

        @Glasfaser
        Wie verwendest du denn die Zusatzangaben "Timer: " und "+++ " zur Filterung im Log-Script?
        Evtl. geht es auch ohne diese Zusätze, wenn du auf den Script-Namen alleine filterst.
        Also falls GiuseppeS dies nicht in sein Script einbaut, Zusatz-Strings zur Logausgabe zu ermöglichen.

        @GiuseppeS - nur nebenbei: vielen Dank für deine tolle Arbeit 👍, ich setze dein Script zwar noch nicht ein, aber werde ich bald machen 🙂

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

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

          @Glasfaser
          Wie verwendest du denn die Zusatzangaben "Timer: " und "+++ " zur Filterung im Log-Script?
          Evtl. geht es auch ohne diese Zusätze, wenn du auf den Script-Namen alleine filterst.
          Also falls GiuseppeS dies nicht in sein Script einbaut, Zusatz-Strings zur Logausgabe zu ermöglichen.

          Ich benutze nur die "+++ " anstatt " Timer: " zum Filtern in meiner Liste

          {
              id:          'javascript',
              filter_all:  ['+++'],
              filter_any:  [''],
              blacklist:   ['Error'],
              clean:       ['script.js.Timer.Rollladen.Timer_Rollladen_EG:','script.js.Timer.Aktor.Timer_Aktor:','script.js.Timer.Rollladen.Timer_Rollladen_OG:','.LEVEL','.STATE','script.js.Fritzbox.QRCode:','Timer.Außen.Steckdose_Carport_prüfen_und_aus:','script.js.Synology.Backup1: ','script.js.Synology.Backup2: ','script.js.Homematic_CCU.Gartenbeleuchtung_an_aus:','script.js.Kalender_Zeit.Astrocheck_Dusk:','script.js.Kalender_Zeit.Astrocheck_Sunset:','+++ ',' +++'],
              columns:     ['date','msg'],
            },
          

          8.JPG

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

            @Glasfaser
            Ich kann die Variable einbauen. Würde sie "logPraefix" taufen und in die Log-Ausgabe einbinden.
            Da sich die Variable im Bereich der erweiterten Optionen befinden wird, sehe ich keine Probleme für Nutzer der Script-Kategorie "Anfänger".
            Werde ich nachher schnell einbinden...

            @Mic
            Kann die netten Worte nur zurückgeben. Habe selbst des öfteren von deinem Script gehört und werde es auch demnächst einsetzen 👍

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

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

              @Glasfaser
              Ich kann die Variable einbauen. Würde sie "logPraefix" taufen und in die Log-Ausgabe einbinden.
              Da sich die Variable im Bereich der erweiterten Optionen befinden wird, sehe ich keine Probleme für Nutzer der Script-Kategorie "Anfänger".
              Werde ich nachher schnell einbinden...

              Ja danke … muß nicht sofort sein , kannst Du demnächst mal in einem Update mit einbinden !

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

              @Mic
              Kann die netten Worte nur zurückgeben. Habe selbst des öfteren von deinem Script gehört und werde es auch demnächst einsetzen 👍

              Dito …..., deshalb mache ich hier Werbung 😎

              1 Reply Last reply Reply Quote 1
              • Mic
                Mic Developer @GiuseppeS last edited by Mic

                @GiuseppeS 🙂

                @Glasfaser
                Danke 🙂 Ich will diesen Thread nicht übernehmen, falls mehr Austausch notwendig, dann besser im Log-Script-Thread.
                Aber wie sieht es aus, wenn du unter "filter_all" statt +++ einfach script.js.Timer. eingibst? Oder nimmst du das +++ für alles, was du loggen willst? Dann macht es das natürlich einfacher...
                Alternativ könntest du alle Anfangs-Bestandteile der zu loggenden Scripte unter "filter_any" hinzufügen, also script.js.Timer., script.js.Synology. etc.

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

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

                  @Glasfaser
                  Aber wie sieht es aus, wenn du unter "filter_all" statt +++ einfach script.js.Timer. eingibst?

                  Nee … lass mal …. Danke 👍 , für mich ist es kein Problem es so zu lassen , es sind nicht nur die Rollladen hinterlegt …. sonst funktionieren die anderen Meldungen nicht .

                  PS: Lese auch deine Änderung …. Trotzdem Danke für die Tips

                  1 Reply Last reply Reply Quote 0
                  • Mic
                    Mic Developer last edited by

                    Passt 🙂 Habe oben meine Nachricht noch korrigiert und ergänzt...

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

                      @Mic

                      Danke für die Tipps , kann man immer gebrauchen 😐

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

                        Update ist raus: 15.09.2019 v2

                        • Log-Ausgabe wird über Variable "logPraefix" manipuliert. Default-Wert = "Timer: ", was somit der aktuellen Ausgabe entspricht.
                        1 Reply Last reply Reply Quote 1
                        • A
                          ak1 last edited by

                          Ich möchte nochmal zu dem Thema „Anwesenheitssimulation“ nachhaken.
                          Ich habe beispielsweise einen Timer, der an Wochentagen um 06:05 +- 3 Min (Zufall) das Licht im Bad einschaltet. Ein zweiter Timer schaltet es dann gegen 06:25 (wieder +- ein paar Minuten) aus.
                          Das funktioniert soweit problemlos und passt auch für viele Monate im Jahr. Allerdings gibt es eine Zeit im Sommer, da ist der Sonnenaufgang so früh, da würde man gar kein Licht anschalten. Hat jemand einen Ansatz, wie man ggf. Bedingungen gestalten kann, die z.B. Die aktuelle Zeit und Astro-Zeiten berücksichtigen?
                          Möglicherweise denke ich ja auch viel zu kompliziert.

                          VG
                          ak1

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

                            @ak1
                            Ich würde ein Object namens Daylight erstellen, dass true bzw false in Abhängigkeit der Astro Zeit aufweist.
                            Wenn Uhrzeit zwischen sunrise und sunset = true
                            Ansonsten false.
                            Dieses Object dann als weitere Bedingung in Timer einbinden.

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

                              @GiuseppeS
                              Das klingt gut und logisch. Ein Skript würde dann den Wert dieses Objektes setzen. Was wäre ein geeigneter Trigger, um so ein Skript auszulösen? Oder müsste das Skript einfach zyklisch alle paar Minuten laufen lassen?

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

                                @ak1
                                Würde selbst alle 5 Minuten triggern. Dadurch hat man zwar eine größere Abweichung zwischen Object und Realität aber mir würde es genügen.

                                Edit:
                                Hatte hier alternativ eine weitere Lösung beschrieben. Aber war eher unnötig kompliziert. Falls schon gelesen, bitte ignorieren.

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

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

                                  ….Hat jemand einen Ansatz, wie man ggf. Bedingungen gestalten kann, die z.B. Die aktuelle Zeit und Astro-Zeiten berücksichtigen?
                                  ….

                                  Ganz einfach …. nimm dieses Skript/Datenpunkte , als Bedingung :
                                  .
                                  1.JPG

                                  .
                                  Skript:

                                  // Astro im VIS anzeigen und Datenpunkt true/false setzen
                                  
                                  schedule('* * * * *', getAstroValues );  // 
                                  var idSunset =  'javascript.0.Astrovis.sunset';
                                  var idSunrise =  'javascript.0.Astrovis.sunrise';
                                  var idSunriseEnd =  'javascript.0.Astrovis.sunriseEnd';
                                  var idDusk =  'javascript.0.Astrovis.dusk';
                                  var idgoldenHourEnd =  'javascript.0.Astrovis.goldenHourEnd';
                                  
                                  
                                  var idAstro_Sunset =  'javascript.0.Astrovis.Astro_Sunset';
                                  var idAstro_SunriseEnd =  'javascript.0.Astrovis.Astro_SunriseEnd';
                                  var idAstro_Sunrise =  'javascript.0.Astrovis.Astro_Sunrise';
                                  var idAstro_Dusk =  'javascript.0.Astrovis.Astro_Dusk';
                                  var idAstro_GoldenHourEnd =  'javascript.0.Astrovis.Astro_GoldenHourEnd';
                                  
                                  createState(idSunrise, {type: 'string',name: 'Sonnenaufgang', def: ''});
                                  createState(idSunriseEnd, {type: 'string',name: 'Sonnenaufgangende', def: ''});
                                  createState(idSunset , {type: 'string',name: 'Sonnenuntergang', def: ''});
                                  createState(idDusk , {type: 'string',name: 'Sonnenuntergangspät', def: ''});
                                  createState(idgoldenHourEnd , {type: 'string',name: 'goldenHourEnd', def: ''});
                                  
                                  
                                  createState(idAstro_Sunset , {type: 'mixed',name: 'Astro_Sunset', def: 'false'});
                                  createState(idAstro_SunriseEnd , {type: 'mixed',name: 'Astro_SunriseEnd', def: 'false'});
                                  createState(idAstro_Sunrise , {type: 'mixed',name: 'Astro_Sunrise', def: 'false'});
                                  createState(idAstro_Dusk , {type: 'mixed',name: 'Astro_Dusk', def: 'false'});
                                  createState(idAstro_GoldenHourEnd , {type: 'mixed',name: 'Astro_GoldenHourEnd', def: 'false'});
                                  
                                  
                                  function getAstroValues() {
                                   //setState(idSunrise, getAstroDate("sunrise").toLocaleTimeString() );
                                   setState(idSunriseEnd, getAstroDate("sunriseEnd").toLocaleTimeString('de-DE', { hour12: false }));
                                   setState(idSunset, getAstroDate("sunset").toLocaleTimeString('de-DE', { hour12: false }));
                                   setState(idDusk, getAstroDate("dusk").toLocaleTimeString('de-DE', { hour12: false }));
                                   setState(idgoldenHourEnd, getAstroDate("goldenHourEnd").toLocaleTimeString('de-DE', { hour12: false }));
                                   setState(idSunrise, getAstroDate("sunrise").toLocaleTimeString('de-DE', { hour12: false }));
                                  
                                  
                                  }
                                  
                                  // jede Nacht um 2:02 aktualisieren
                                  schedule('2 2 * * *', getAstroValues );
                                  
                                  
                                  // Test - Direktausführung
                                  getAstroValues();
                                  

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

                                    @GiuseppeS
                                    @Glasfaser

                                    Vielen Dank! Das war wieder sehr hilfreich.

                                    VG
                                    ak1

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

                                      Hallo zusammen,

                                      wie bekomme ich das repariert?

                                      2019-10-02 21:03:00.011 warn at Timer.processTimers (timers.js:223:10) javascript.1
                                      2019-10-02 21:03:00.011 warn at listOnTimeout (timers.js:263:5) javascript.1
                                      2019-10-02 21:03:00.011 warn at tryOnTimeout (timers.js:300:5) javascript.1
                                      2019-10-02 21:03:00.011 warn at ontimeout (timers.js:438:13) javascript.1
                                      2019-10-02 21:03:00.011 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1856:34) javascript.1
                                      2019-10-02 21:03:00.011 warn at Object.<anonymous> (script.js.common.Anwesenheitssimulation.AS_Bad:54:11) javascript.1
                                      2019-10-02 21:03:00.011 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20) javascript.1
                                      2019-10-02 21:03:00.009 warn State "control.0.presence_abscence.AS_Bad_2" not found
                                      

                                      Es gibt den State/das Objekt "AS_Bad_2" nicht mehr. Es gibt auch keinen Timer mehr dazu und auch kein Überbleibsel in der Aufzählung "Timers".
                                      Allerdings hatte ich den Fehler gemacht, entsprechende Timer zu löschen, dann das Objekt zu entfernen und anschließend das Zeitsteuerungsskript neu zu starten. Erst dann ist mir aufgefallen, dass ich noch eine "AS_Bad_2"-Leiche in der Aufzählung habe.

                                      Ich dachte ich hätte nun alles korrigiert, aber diese Warnung taucht immer wieder auf.

                                      Kann ich das irgendwo bereinigen?

                                      Danke und Gruß
                                      ak1

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

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

                                        javascript.1

                                        Hast du 2 JS?

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

                                          @sigi234
                                          Ja, habe ich. Auf dem Adapter .0 läuft normalerweise alles, was schon "produktiv" ist. Auf .1 laufen die Skripte, an denen ich noch am Basteln bin.

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

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

                                            @sigi234
                                            Ja, habe ich. Auf dem Adapter .0 läuft normalerweise alles, was schon "produktiv" ist. Auf .1 laufen die Skripte, an denen ich noch am Basteln bin.

                                            Leg den DP noch mal an.

                                            control.0.presence_abscence.AS_Bad_2

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            754
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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