Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [Vorlage] Variable Zeitsteuerung mit VIS Editor

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Vorlage] Variable Zeitsteuerung mit VIS Editor

Scheduled Pinned Locked Moved Visualisierung
vistemplate
919 Posts 47 Posters 296.2k Views 75 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    GiuseppeS
    wrote on last edited by
    #115

    Mir fällt keine angenehme Möglichkeit ein, ohne Suchen/Ersetzen, das Skript inkl. VIS zu duplizieren. Die VIS ist hierbei eher das Problem.
    Aber im Skript habe ich zumindest eine neue Variable erstellt, bei der einfach der Pfad-Teil angegeben und somit variiert werden kann. Denke, dass es bzgl Aufwand/Nutzen die beste mir bekannte Lösung ist.
    Da ich mich bzgl. der Trigger-Möglichkeiten eingelesen habe, wird im nächsten Skript die Abfrage der Bedingungen nicht mehr minütlich durchgeführt, sondern nur wenn sich etwas ändert (dann aber sofort).
    Sobald die Anzeige des nächsten fälligen Timers fertig ist, lade ich das Skript hoch. Wäre dann für euch leichter zu übernehmen.

    Habe heute endlich meine Timer Tabelle für die Anwesenheitssimulation erstellt. Kam zuletzt kaum dazu mich überhaupt mal an den PC zu setzen.

    @Glasfaser
    Das Ignorieren von Bedingungen kam bei dir anscheinend nicht mehr vor, oder?

    GlasfaserG 1 Reply Last reply
    0
    • G GiuseppeS

      Mir fällt keine angenehme Möglichkeit ein, ohne Suchen/Ersetzen, das Skript inkl. VIS zu duplizieren. Die VIS ist hierbei eher das Problem.
      Aber im Skript habe ich zumindest eine neue Variable erstellt, bei der einfach der Pfad-Teil angegeben und somit variiert werden kann. Denke, dass es bzgl Aufwand/Nutzen die beste mir bekannte Lösung ist.
      Da ich mich bzgl. der Trigger-Möglichkeiten eingelesen habe, wird im nächsten Skript die Abfrage der Bedingungen nicht mehr minütlich durchgeführt, sondern nur wenn sich etwas ändert (dann aber sofort).
      Sobald die Anzeige des nächsten fälligen Timers fertig ist, lade ich das Skript hoch. Wäre dann für euch leichter zu übernehmen.

      Habe heute endlich meine Timer Tabelle für die Anwesenheitssimulation erstellt. Kam zuletzt kaum dazu mich überhaupt mal an den PC zu setzen.

      @Glasfaser
      Das Ignorieren von Bedingungen kam bei dir anscheinend nicht mehr vor, oder?

      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      wrote on last edited by
      #116

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

      @Glasfaser
      Das Ignorieren von Bedingungen kam bei dir anscheinend nicht mehr vor, oder?

      Alles so wie es sein soll :+1: ,
      sonst hätte ich mich nach meiner Rückmeldung vom 28. Juli nochmal diesbezüglich gemeldet.

      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

      1 Reply Last reply
      0
      • P Offline
        P Offline
        Pi78
        wrote on last edited by
        #117

        Guten Morgen.
        Ich lese hier schon einige Zeit mit und muss erstmal ein dickes Dankeschön für die Arbeit aussprechen. Das ist ein Timer den ich schon länger gesucht habe. Leider bereitet er mir noch Probleme.

        Ich habe die Anleitung gefühlte 100x gelesen und auch alles laut Anleitung importiert, geändert und auch erstellt.

        Wenn ich nun das Skript starte, ist es erstmal grün und wird dann gelb. Im Log unter dem Skript steht dann :

        08:57:11.755 error javascript.0 at buildJson (script.js.common.Timer:912:37)
        08:57:11.755 error javascript.0 at Object.tableMain (script.js.common.Timer:1000:69)

        und im IoBroker Log:

        javascript.0 2019-08-23 08:57:11.753 error at Timer.listOnTimeout (timers.js:290:5)
        javascript.0 2019-08-23 08:57:11.753 error at tryOnTimeout (timers.js:323:5)
        javascript.0 2019-08-23 08:57:11.753 error at ontimeout (timers.js:511:34)
        javascript.0 2019-08-23 08:57:11.753 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1869:34)
        javascript.0 2019-08-23 08:57:11.753 error at Object.tableMain (script.js.common.Timer:1000:69)
        javascript.0 2019-08-23 08:57:11.753 error at buildJson (script.js.common.Timer:912:37)
        javascript.0 2019-08-23 08:57:11.753 error at Function.keys (<anonymous>:null:null)
        javascript.0 2019-08-23 08:57:11.752 error Error in callback: TypeError: Cannot convert undefined or null to object

        Ich hoffe mir kann jemand helfen.

        Vielen Dank schon mal und Grüße aus Essen

        Sebastian

        GlasfaserG 2 Replies Last reply
        0
        • P Pi78

          Guten Morgen.
          Ich lese hier schon einige Zeit mit und muss erstmal ein dickes Dankeschön für die Arbeit aussprechen. Das ist ein Timer den ich schon länger gesucht habe. Leider bereitet er mir noch Probleme.

          Ich habe die Anleitung gefühlte 100x gelesen und auch alles laut Anleitung importiert, geändert und auch erstellt.

          Wenn ich nun das Skript starte, ist es erstmal grün und wird dann gelb. Im Log unter dem Skript steht dann :

          08:57:11.755 error javascript.0 at buildJson (script.js.common.Timer:912:37)
          08:57:11.755 error javascript.0 at Object.tableMain (script.js.common.Timer:1000:69)

          und im IoBroker Log:

          javascript.0 2019-08-23 08:57:11.753 error at Timer.listOnTimeout (timers.js:290:5)
          javascript.0 2019-08-23 08:57:11.753 error at tryOnTimeout (timers.js:323:5)
          javascript.0 2019-08-23 08:57:11.753 error at ontimeout (timers.js:511:34)
          javascript.0 2019-08-23 08:57:11.753 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1869:34)
          javascript.0 2019-08-23 08:57:11.753 error at Object.tableMain (script.js.common.Timer:1000:69)
          javascript.0 2019-08-23 08:57:11.753 error at buildJson (script.js.common.Timer:912:37)
          javascript.0 2019-08-23 08:57:11.753 error at Function.keys (<anonymous>:null:null)
          javascript.0 2019-08-23 08:57:11.752 error Error in callback: TypeError: Cannot convert undefined or null to object

          Ich hoffe mir kann jemand helfen.

          Vielen Dank schon mal und Grüße aus Essen

          Sebastian

          GlasfaserG Offline
          GlasfaserG Offline
          Glasfaser
          wrote on last edited by
          #118

          @Pi78

          Zeig mal bitte dein Script !

          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

          1 Reply Last reply
          0
          • P Offline
            P Offline
            Pi78
            wrote on last edited by
            #119

            Das ist das Skript aus dem Post 1. Hatte es gestern nochmal runter geladen.
            Ich kann es hier nicht posten, da größer 5000 Zeichen. Welche Info aus dem Skript brauchst du?

            GlasfaserG NegaleinN 2 Replies Last reply
            0
            • P Pi78

              Das ist das Skript aus dem Post 1. Hatte es gestern nochmal runter geladen.
              Ich kann es hier nicht posten, da größer 5000 Zeichen. Welche Info aus dem Skript brauchst du?

              GlasfaserG Offline
              GlasfaserG Offline
              Glasfaser
              wrote on last edited by
              #120

              @Pi78
              Dann gebe vielleicht an was du angepasst hast.

              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

              1 Reply Last reply
              0
              • P Pi78

                Das ist das Skript aus dem Post 1. Hatte es gestern nochmal runter geladen.
                Ich kann es hier nicht posten, da größer 5000 Zeichen. Welche Info aus dem Skript brauchst du?

                NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                wrote on last edited by
                #121

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

                Ich kann es hier nicht posten, da größer 5000 Zeichen.

                Script als .txt speichern und dann hier uploaden.

                ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                ° Node.js Fixer ---> iob nodejs-update
                ° Fixer ---> iob fix

                1 Reply Last reply
                0
                • P Offline
                  P Offline
                  Pi78
                  wrote on last edited by
                  #122

                  Achso. Ja das ist einfach. Ich habe die widget Nummer am anfang des Skript angepasst. Die muss ja die Nummer von "Timer Bearbeiten" aus der Hauptansicht haben. Sonst habe ich alles so gelassen. Wie gesagt, ich habe nur das gemacht, was in der Anlwitung steht. Keine eigenen Änderungen.

                  Schon mal vielen Dank für die schnellen Antworten.

                  1 Reply Last reply
                  0
                  • P Offline
                    P Offline
                    Pi78
                    wrote on last edited by
                    #123

                    Ich bin gerade unterwegs. Ich speichere gleich das Skript und lade es hoch.

                    1 Reply Last reply
                    0
                    • P Offline
                      P Offline
                      Pi78
                      wrote on last edited by
                      #124

                      Timer.txt

                      So bin wieder zuhause. Wie ich gerade schon geschrieben habe, habe ich im Skript nur die Widget Nummer angepasst. Die Aufzählungen enum.functions.blinds und enum.functions.timerconditions habe ich genau so bei mir angelegt und mit Geräten befüllt. Auch die PopUp Karte habe ich wie in der Anleitung benannt.

                      Gruß Sebastian

                      GlasfaserG 1 Reply Last reply
                      0
                      • P Pi78

                        Timer.txt

                        So bin wieder zuhause. Wie ich gerade schon geschrieben habe, habe ich im Skript nur die Widget Nummer angepasst. Die Aufzählungen enum.functions.blinds und enum.functions.timerconditions habe ich genau so bei mir angelegt und mit Geräten befüllt. Auch die PopUp Karte habe ich wie in der Anleitung benannt.

                        Gruß Sebastian

                        GlasfaserG Offline
                        GlasfaserG Offline
                        Glasfaser
                        wrote on last edited by Glasfaser
                        #125

                        @Pi78

                        Teste erstmal deine Anpassungen im View , mit der Einstellung " false "
                        Also alle Datenpunkte löschen und das Script nach der dem ändern wieder neu starten .

                        111.JPG

                        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                        1 Reply Last reply
                        0
                        • P Pi78

                          Guten Morgen.
                          Ich lese hier schon einige Zeit mit und muss erstmal ein dickes Dankeschön für die Arbeit aussprechen. Das ist ein Timer den ich schon länger gesucht habe. Leider bereitet er mir noch Probleme.

                          Ich habe die Anleitung gefühlte 100x gelesen und auch alles laut Anleitung importiert, geändert und auch erstellt.

                          Wenn ich nun das Skript starte, ist es erstmal grün und wird dann gelb. Im Log unter dem Skript steht dann :

                          08:57:11.755 error javascript.0 at buildJson (script.js.common.Timer:912:37)
                          08:57:11.755 error javascript.0 at Object.tableMain (script.js.common.Timer:1000:69)

                          und im IoBroker Log:

                          javascript.0 2019-08-23 08:57:11.753 error at Timer.listOnTimeout (timers.js:290:5)
                          javascript.0 2019-08-23 08:57:11.753 error at tryOnTimeout (timers.js:323:5)
                          javascript.0 2019-08-23 08:57:11.753 error at ontimeout (timers.js:511:34)
                          javascript.0 2019-08-23 08:57:11.753 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1869:34)
                          javascript.0 2019-08-23 08:57:11.753 error at Object.tableMain (script.js.common.Timer:1000:69)
                          javascript.0 2019-08-23 08:57:11.753 error at buildJson (script.js.common.Timer:912:37)
                          javascript.0 2019-08-23 08:57:11.753 error at Function.keys (<anonymous>:null:null)
                          javascript.0 2019-08-23 08:57:11.752 error Error in callback: TypeError: Cannot convert undefined or null to object

                          Ich hoffe mir kann jemand helfen.

                          Vielen Dank schon mal und Grüße aus Essen

                          Sebastian

                          GlasfaserG Offline
                          GlasfaserG Offline
                          Glasfaser
                          wrote on last edited by Glasfaser
                          #126

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

                          javascript.0 2019-08-23 08:57:11.753 error at Object.tableMain (script.js.common.Timer:1000:69)
                          javascript.0 2019-08-23 08:57:11.753 error at buildJson (script.js.common.Timer:912:37)
                          javascript.0 2019-08-23 08:57:11.753 error at Function.keys (<anonymous>:null:null)
                          javascript.0 2019-08-23 08:57:11.752 error Error in callback: TypeError: Cannot convert undefined or null to object
                          ......

                          Hintergrund:, es wurde versucht den Timer zu stellen ( in deinem View ), ohne Auswahl zu welchen Timer....

                          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                          1 Reply Last reply
                          0
                          • P Offline
                            P Offline
                            Pi78
                            wrote on last edited by
                            #127

                            @Glasfaser

                            Ich war mir zwar ziemlich sicher, das ich das auch schon mal Probiert hatte, aber ist jetzt auch Sch..... Egal.

                            ES FUNKTIONIERT!!!!!!! Vielen Dank!!!!!!!

                            Stimmt das mit dem Split hatte ich auch mal probiert, da ich deine Rolladen Visu nachbauen wollte. Und wenn ich das hier richtig verstanden habe, muss ich das Skript jetzt nicht x-mal kopieren, sonder kann die Split Funktion nutzen. Muss ich da jetzt noch was beachten?

                            GlasfaserG 1 Reply Last reply
                            0
                            • P Pi78

                              @Glasfaser

                              Ich war mir zwar ziemlich sicher, das ich das auch schon mal Probiert hatte, aber ist jetzt auch Sch..... Egal.

                              ES FUNKTIONIERT!!!!!!! Vielen Dank!!!!!!!

                              Stimmt das mit dem Split hatte ich auch mal probiert, da ich deine Rolladen Visu nachbauen wollte. Und wenn ich das hier richtig verstanden habe, muss ich das Skript jetzt nicht x-mal kopieren, sonder kann die Split Funktion nutzen. Muss ich da jetzt noch was beachten?

                              GlasfaserG Offline
                              GlasfaserG Offline
                              Glasfaser
                              wrote on last edited by Glasfaser
                              #128

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

                              da ich deine Rolladen Visu nachbauen wollte.

                              Ich habe 8 einzelne Script laufen und dann meine Views danach erstellt .( 2 View / 8 Popup )
                              Vielleicht für den ein oder anderen übertrieben , aber so habe ich mehr möglichkeiten .

                              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                              1 Reply Last reply
                              0
                              • P Offline
                                P Offline
                                Pi78
                                wrote on last edited by
                                #129

                                OK. Damit hatte ich jetzt nicht mehr gerechnet. Aber gut warum auch nicht. Ich bin jetzt erstmal Dankbar, das das Skript an sich (bei mir auch) funktioniert. Alles weitere werde ich wieder ausprobieren. Ich möchte nicht nur Rolläden, sonder auch Steckdosen und Leuchten bei Bedarf Zeitsteuern. Mal sehen, ob ich das so hin bekomme, wie ich mir das vorstelle.

                                Erstmal bin ich dir sehr Dankbar für deine schnelle Hilfe.

                                Mal sehen wann ich auch mal jemanden helfen kann.

                                Gruß Sebastian

                                G 1 Reply Last reply
                                0
                                • P Pi78

                                  OK. Damit hatte ich jetzt nicht mehr gerechnet. Aber gut warum auch nicht. Ich bin jetzt erstmal Dankbar, das das Skript an sich (bei mir auch) funktioniert. Alles weitere werde ich wieder ausprobieren. Ich möchte nicht nur Rolläden, sonder auch Steckdosen und Leuchten bei Bedarf Zeitsteuern. Mal sehen, ob ich das so hin bekomme, wie ich mir das vorstelle.

                                  Erstmal bin ich dir sehr Dankbar für deine schnelle Hilfe.

                                  Mal sehen wann ich auch mal jemanden helfen kann.

                                  Gruß Sebastian

                                  G Offline
                                  G Offline
                                  GiuseppeS
                                  wrote on last edited by
                                  #130

                                  @Pi78
                                  Verstehe ich das richtig, dass dein Fehler aus der Einstellung "splitHTML=true" herrührte?
                                  Dann müsste ich mir das nochmal anschauen...

                                  Bin dieses Wochenende, genauer seit heute, unterwegs. Werde daher dieses Wochenende wohl nicht mehr dazu kommen. Aber wenn Interesse am Split besteht und ich den Fehler nicht reproduzieren kann, würde ich nochmal auf dich zukommen.

                                  GlasfaserG 1 Reply Last reply
                                  0
                                  • P Offline
                                    P Offline
                                    Pi78
                                    wrote on last edited by
                                    #131

                                    @GiuseppeS
                                    Das kann ich dir nicht genau sagen. Ich habe Split wieder aktiv (Ich konnte es nicht lassen) und siehe da, es kam kein Fehler. Ich denke das es eher an einem früheren Skripte import gelegen hat und beim rauslöschen dann eine Leiche übrig geblieben ist , die dann Probleme gemacht hat.
                                    Ich war mir ziemlich sicher, das ich alles gelöscht hatte und dann nochmal von vorne Angefangen habe. Vielleicht sind da Reste übrig geblieben, die bei mir den Fehler verursacht hatten.

                                    Ich hatte nur alle Timer Einträge inkl. Ordner Timer gelöscht, das Skript auf Split false gesetzt und das Skript gestartet. Und schon hat es funktioniert. Danach nochmal das Skript gestoppt, Split auf true gesetzt und gestartet. Die HTML wurden angelegt und es gab keine Fehler mehr.

                                    Sollten Trotzdem noch Fragen sein, kannst du gerne auf mich zukommen.

                                    1 Reply Last reply
                                    1
                                    • G GiuseppeS

                                      @Pi78
                                      Verstehe ich das richtig, dass dein Fehler aus der Einstellung "splitHTML=true" herrührte?
                                      Dann müsste ich mir das nochmal anschauen...

                                      Bin dieses Wochenende, genauer seit heute, unterwegs. Werde daher dieses Wochenende wohl nicht mehr dazu kommen. Aber wenn Interesse am Split besteht und ich den Fehler nicht reproduzieren kann, würde ich nochmal auf dich zukommen.

                                      GlasfaserG Offline
                                      GlasfaserG Offline
                                      Glasfaser
                                      wrote on last edited by Glasfaser
                                      #132

                                      @GiuseppeS

                                      Er wollte meinen nachbauen , nur ich habe das Script wie du weißt ein wenig geändert .
                                      Er hat nur im Auswahlfenster Hauptview keinen Timer angegeben ( leer ) und dann den Popup View geöffnet ,deshalb kam die Fehlermeldung beim Speichern vom Popuptimer.

                                      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                      1 Reply Last reply
                                      1
                                      • G Offline
                                        G Offline
                                        GiuseppeS
                                        wrote on last edited by GiuseppeS
                                        #133

                                        Habe eine neue Version hochgeladen.

                                        EDIT 31.08.2019:

                                        • Änderung von Bedingungen werden direkt bei Änderung getriggert (ohne minütliches Cron)
                                        • Hauptpfad des Timers variabel umstellbar ohne Suchen/Ersetzen
                                        • Bevorstehende Timer werden in States "javascript.0.Timer. + path + .NextDevice(s)" ausgegeben
                                        • HauptView angepasst zur Darstellung der bevorstehenden Timer

                                        Mein Vorhaben, die Timer auf Sekunden hin zu setzen, habe ich verworfen (Aufwand/Nutzen mangelhaft).

                                        Was ich aber noch updaten will:
                                        Erstellung eines neuen Timers wird auf Basis des zuletzt gewählten Timers erstellt. Aktuell wird ein neuer Timer immer mit höchster Nummer erstellt auf Basis des bis dato höchsten Timers.
                                        D.h. neuer Timer 4 als Kopie von 3 oder neuer Timer 3 auf Basis von 2 usw.
                                        Zukünftig: Wenn Timer 1 gewählt ist und dann auf "+" geklickt wird, wird der neue Timer als Nummer 2 erstellt als Kopie von 1. Auch wenn dieses Gerät bereits 2 oder mehr Timer besitzt. Die weiteren Timer werden dann um eine Nummer erhöht.

                                        Trigger:
                                        Hatte mich zuletzt mit "Trigger in Abhängigkeit mehrerer States" beschäftigt. Dabei bin ich auf die Möglichkeit gestoßen bei den Trigger direkt ein Array mit mehreren States anzugeben. Hier ein komprimierter Auszug aus dem aktuellen Skript:

                                        // Eine Aufzählung für States der Bedingungen:
                                        var deviceCond = "enum.functions.timerconditions";
                                        // .........
                                        var condition_members = getObject(deviceCond).common.members;
                                        // .........
                                        on({id: condition_members, change: "any"}, function (obj) {
                                            compareCond();
                                        });
                                        

                                        Hauptpfad:
                                        Es ist nun möglich über die Befüllung der Variable "path" , den Hauptpfad des Timers zu ändern. Somit ist es möglich, zumindest das Skript einfach mehrmals unter verschiedenen Pfaden einzubinden (Views müssen natürlich dennoch mit Copy/Paste überarbeitet werden, wenn ein Pfad ungleich "Devices" genutzt wird.
                                        Das Astro-State ist hierbei eine Ebene tiefer gerutscht, damit sich u.U. mehrer Skripte nicht ein State teilen, was evtl. zu einem Lesen/Schreiben Fehler führen könnte.
                                        Bedeutet: Astro-State ehemals unter "javascript.0.Timer.AstroJSON" kann gelöscht werden weil es unter "javascript.0.Timer.Devices.AstroJSON" autom. neu erstellt wird (oder statt "Devices" eben das was angegeben wurde.

                                        Next Timer:
                                        Die zukünftigen Timer werden in einem zusätzlichen DropDown-Feld ausgegeben. Mir ist nichts praktischeres eingefallen, was zunächst wenig Platz einnimmt aber bei Bedarf alles anzeigen kann. Höchstens ein weiteres PopUp View hätte geholfen, aber das macht es dann unnötig komplizierter.
                                        Das Skript für die Anzeige der nächsten Timer wird minütlich getriggert, allerdings zwischen vollen Minuten, sodass die Anzeige dem nächsten Timer immer voraus ist.
                                        Falls jemand eine alternative Idee hat, nur her damit ;-)
                                        Habe mein Hauptview entsprechend angepasst, um Platz für das neue Feld zu schaffen.

                                        Hier nur das einzelne Widget für die Darstellung der nächsten Timer (ist einfach nur ein DropDown mit entsprechenden links):

                                        [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Timer.Devices.NextDevice","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,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"{javascript.0.Timer.Devices.NextDevices}","texts":"{javascript.0.Timer.Devices.NextDevices}","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},"style":{"left":"13px","top":"calc(100% - 50px)","height":"39px","width":"calc(100% - 113px)","z-index":"10"},"widgetSet":"jqui"}]
                                        
                                        GlasfaserG 1 Reply Last reply
                                        1
                                        • G GiuseppeS

                                          Habe eine neue Version hochgeladen.

                                          EDIT 31.08.2019:

                                          • Änderung von Bedingungen werden direkt bei Änderung getriggert (ohne minütliches Cron)
                                          • Hauptpfad des Timers variabel umstellbar ohne Suchen/Ersetzen
                                          • Bevorstehende Timer werden in States "javascript.0.Timer. + path + .NextDevice(s)" ausgegeben
                                          • HauptView angepasst zur Darstellung der bevorstehenden Timer

                                          Mein Vorhaben, die Timer auf Sekunden hin zu setzen, habe ich verworfen (Aufwand/Nutzen mangelhaft).

                                          Was ich aber noch updaten will:
                                          Erstellung eines neuen Timers wird auf Basis des zuletzt gewählten Timers erstellt. Aktuell wird ein neuer Timer immer mit höchster Nummer erstellt auf Basis des bis dato höchsten Timers.
                                          D.h. neuer Timer 4 als Kopie von 3 oder neuer Timer 3 auf Basis von 2 usw.
                                          Zukünftig: Wenn Timer 1 gewählt ist und dann auf "+" geklickt wird, wird der neue Timer als Nummer 2 erstellt als Kopie von 1. Auch wenn dieses Gerät bereits 2 oder mehr Timer besitzt. Die weiteren Timer werden dann um eine Nummer erhöht.

                                          Trigger:
                                          Hatte mich zuletzt mit "Trigger in Abhängigkeit mehrerer States" beschäftigt. Dabei bin ich auf die Möglichkeit gestoßen bei den Trigger direkt ein Array mit mehreren States anzugeben. Hier ein komprimierter Auszug aus dem aktuellen Skript:

                                          // Eine Aufzählung für States der Bedingungen:
                                          var deviceCond = "enum.functions.timerconditions";
                                          // .........
                                          var condition_members = getObject(deviceCond).common.members;
                                          // .........
                                          on({id: condition_members, change: "any"}, function (obj) {
                                              compareCond();
                                          });
                                          

                                          Hauptpfad:
                                          Es ist nun möglich über die Befüllung der Variable "path" , den Hauptpfad des Timers zu ändern. Somit ist es möglich, zumindest das Skript einfach mehrmals unter verschiedenen Pfaden einzubinden (Views müssen natürlich dennoch mit Copy/Paste überarbeitet werden, wenn ein Pfad ungleich "Devices" genutzt wird.
                                          Das Astro-State ist hierbei eine Ebene tiefer gerutscht, damit sich u.U. mehrer Skripte nicht ein State teilen, was evtl. zu einem Lesen/Schreiben Fehler führen könnte.
                                          Bedeutet: Astro-State ehemals unter "javascript.0.Timer.AstroJSON" kann gelöscht werden weil es unter "javascript.0.Timer.Devices.AstroJSON" autom. neu erstellt wird (oder statt "Devices" eben das was angegeben wurde.

                                          Next Timer:
                                          Die zukünftigen Timer werden in einem zusätzlichen DropDown-Feld ausgegeben. Mir ist nichts praktischeres eingefallen, was zunächst wenig Platz einnimmt aber bei Bedarf alles anzeigen kann. Höchstens ein weiteres PopUp View hätte geholfen, aber das macht es dann unnötig komplizierter.
                                          Das Skript für die Anzeige der nächsten Timer wird minütlich getriggert, allerdings zwischen vollen Minuten, sodass die Anzeige dem nächsten Timer immer voraus ist.
                                          Falls jemand eine alternative Idee hat, nur her damit ;-)
                                          Habe mein Hauptview entsprechend angepasst, um Platz für das neue Feld zu schaffen.

                                          Hier nur das einzelne Widget für die Darstellung der nächsten Timer (ist einfach nur ein DropDown mit entsprechenden links):

                                          [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Timer.Devices.NextDevice","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,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"{javascript.0.Timer.Devices.NextDevices}","texts":"{javascript.0.Timer.Devices.NextDevices}","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},"style":{"left":"13px","top":"calc(100% - 50px)","height":"39px","width":"calc(100% - 113px)","z-index":"10"},"widgetSet":"jqui"}]
                                          
                                          GlasfaserG Offline
                                          GlasfaserG Offline
                                          Glasfaser
                                          wrote on last edited by Glasfaser
                                          #134

                                          @GiuseppeS

                                          So … gerade mal ein Test durchgeführt :grinning:

                                          Was mit auffällt bei Next Timer, können dort nicht die Werte mit rein , was dann gemacht wird " rauf ,runter 0 .. 100 "

                                          Wäre dann auch plausibel was und wie demnächst geschaltet wird bzw. was passieren soll !?

                                          111111111.jpg

                                          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                          G 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          674

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe