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 goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

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

      @Glasfaser
      Es ist in den Logs genau sichtbar, dass das Löschen der Timer anscheinend nicht immer funktioniert.
      Beim letzten Test ist das Löschen immer vorhanden, bevor eine Validierung stattfindet. Daher IO.
      Bei den fehlerhaften Fällen werden die Timer nicht gelöscht, obwohl die Bedingungen den Trigger ausgeführt hatten.

      Es wird bei Änderungen der Bedingungen immer der korrekte Timer getriggert.
      Eine erneute Erstellung wird auch immer vermieden wenn die Bedingungen insgesamt false sind.
      Das aber vorliegende Löschen der Timer wird nicht durchgeführt. Wie oben erwähnt, werde ich die Abfrage, ob Timer xy vorhanden ist, anders gestalten. Aber zunächst muss ich schauen, dass ich den Fehler reproduzieren kann.

      Dein letzter Stand ist, dass ein Reproduzieren des Fehlers nicht immer klappt, oder?

      Am Sonntag werde ich hoffentlich dazu kommen ein paar Tests durchzuführen.

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

        @Glasfaser
        Sehe glaub eine Systematik.

        Es gibt unterschiedliche Fälle, wie ein Timer (sowohl löschen als auch erstellen) getriggert wird:

        • Durch Button in Vis Popup
        • Tägliches Triggern über Cron in Funktion recalc
        • Triggern über geänderte Bedingungen

        Beim hier genannten letzten Fall läuft wohl was schief.

        Als du den letzten Test gemacht hast, wurden zwischen Timer-Erstellung und gewünschter Timer-Ausführung die Bedingungen nicht geändert (waren dauerhaft false). Es funktionierte alles wie gewünscht.

        Bei den NIO Fällen waren die Bedingungen der Trigger für die Schedules. Timer waren gesetzt und eine Änderung der Bedingungen sollte den Timer löschen, was aber nicht funktionierte.

        Vielleicht kann ich was im Skript auf die schnelle finden.

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

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

          @Glasfaser

          Dein letzter Stand ist, dass ein Reproduzieren des Fehlers nicht immer klappt, oder?

          Wie ich oben beschrieben haben ist der Fehler immer Reproduzierbar.
          Was komisch ist bei meinen Nachtragsanhang , das wenn die Tür auf ist also die Bedingungen vorhanden sind und ich den Timer ändere/bzw, einen neuen erstelle es wie oben beschrieben zu der eingestellten Uhrzeit auch der Rollladen nicht runterfährt.

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

            @Glasfaser
            Ok, dann ist es wie in meinem letzten Post beschrieben und auf diese Art reproduzierbar.
            Geänderte Bedingungen löschen nicht zuvor gesetzte Timer.
            Werde schauen was ich finden kann...

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

              @GiuseppeS

              Mache in Ruhe …dich auf die suche ... 🤔 wo der Fehler ist ,
              ich habe mein Datenpunkt / Skript für den Terrassenrollladen erstmal wieder aktiviert wie vor deinen Änderungen im Skript , da ich ab morgen im Urlaub bin .🏖

              War auch eine harte Nuss die ich dir zur Erweiterung des Skripts gegeben habe 😳

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

                @Glasfaser
                Dieses ToDo hatte ich allerdings schon länger auf der Liste, aber mit mangelhafter Motivation 🙄
                Aber keine Sorge, debuggen mach ich gern, auch wenn es bedeutet, dass zuvor etwas nicht perfekt lief 🤦‍♂️

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

                  @Glasfaser
                  Ich versuche gerade den Fehler zu reproduzieren, bisher erfolglos.

                  Meine Vorgehensweise:

                  • Bedingung wäre erfüllt aber Timer ist noch inaktiv
                  • Timer wird aktiviert; schedule wird laut log erstellt da Bedingung erfüllt
                  • States werden verändert damit Bedingungen = false werden
                  • Im nächsten Cron-Durchlauf wird Änderung des States der Bedingung erkannt und Darstellung der Bedingung wird rot
                    -> schedule wird laut log gelöscht und nicht neu erstellt

                  Das entspricht doch deinen Tests wo es wiederholt nicht geklappt hat, oder?
                  Ich kann zwar gerade nichts am Skript testen aber zumindest das Reproduzieren wäre möglich...

                  Edit:
                  Habe jetzt unterschiedliche Wege probiert.

                  • Timer aktiviert / deaktiviert während Bedingung immer true war.
                  • Bedingung true / false während Timer dauerhaft Aktiviert war
                  • Test wie Original-Post aber Bedingung zunächst false, dann true und danach wieder false.

                  Kann den Fehler einfach nicht reproduzieren. Kannst du dein Original Skript hochladen?
                  In der Zwischenzeit grübel ich mal weiter. Morgen geht wieder der Flug gen Heimat, da gibt's genug Wartezeit 😖

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

                    @GiuseppeS

                    Hier das Skript , nur der Name Device wurde auf RollladenTerrassentuer geändert und

                    setState("javascript.0.Timer.RollladenTerrassentuer.Editor.Device", "Timer.RollladenTerrassentuer.Editor.Verschluss", true); in den Gänsefüßchen RollladenTerrassentuer

                    xxxxxxxxxxxxxxxxxxxxxxxx.JPG

                    "
                    Glasfaser Skript Rollladen.txt

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

                      @Glasfaser
                      Ich konnte nichts auffälliges in deinem Skript finden. Kann mir weiterhin nicht erklären wieso es bei dir dieses Verhalten gibt. Ich schau mal ob ich dein Skript ohne großen Aufwand bei mir zum Laufen bringen kann.

                      Habe eben übrigens ein kleines Update des Skripts hochgeladen. Diesmal gezippt Datei, damit die Umlaute weiterhin passen.
                      Habe ein paar Kleinigkeiten angepasst (siehe Edit im Post 1).

                      Kann bitte eine Person, die auch das Skript nutzt, testen ob die Bedingungen alle zum gewünschten Ergebnis führen: werden die Timer korrekt gesetzt bzw. gelöscht? Ich kann leider weiterhin nicht die Fehlerfälle von @Glasfaser reproduzieren.

                      Danke

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

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

                        Kann bitte eine Person, die auch das Skript nutzt, testen ob die Bedingungen alle zum gewünschten Ergebnis führen: werden die Timer korrekt gesetzt bzw. gelöscht?

                        Skript aktualisiert,
                        Skript Fehler:

                        Screenshot (3661).png

                        javascript.0	2019-07-14 20:15:00.017	error	at listOnTimeout (timers.js:263:5)
                        javascript.0	2019-07-14 20:15:00.017	error	at tryOnTimeout (timers.js:300:5)
                        javascript.0	2019-07-14 20:15:00.017	error	at ontimeout (timers.js:436:11)
                        javascript.0	2019-07-14 20:15:00.017	error	at Timeout._onTimeout (C:\ioBroker\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                        javascript.0	2019-07-14 20:15:00.017	error	at C:\ioBroker\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                        javascript.0	2019-07-14 20:15:00.017	error	at Job.invoke (C:\ioBroker\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                        javascript.0	2019-07-14 20:15:00.017	error	at Job.nodeSchedule.scheduleJob [as job] (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1191:34)
                        javascript.0	2019-07-14 20:15:00.017	error	at Object.compareCond (script.js.Sigi.Timer_Licht:71:30)
                        javascript.0	2019-07-14 20:15:00.017	error	at JSON.parse (<anonymous>:null:null)
                        javascript.0	2019-07-14 20:15:00.017	error	Error in callback: SyntaxError: Unexpected end of JSON input
                        javascript.0	2019-07-14 20:15:00.014	info	script.js.Test.Countdown_Datum: NaN Resttage (NaN Wochen) bis zum (Sigi)
                        javascript.0	2019-07-14 20:14:00.007	info	script.js.Test.Countdown_Datum: NaN Resttage (NaN Wochen) bis zum (Sigi)
                        javascript.0	2019-07-14 20:14:00.005	error	at Timer.processTimers (timers.js:223:10)
                        javascript.0	2019-07-14 20:14:00.005	error	at listOnTimeout (timers.js:263:5)
                        javascript.0	2019-07-14 20:14:00.005	error	at tryOnTimeout (timers.js:300:5)
                        javascript.0	2019-07-14 20:14:00.005	error	at ontimeout (timers.js:436:11)
                        javascript.0	2019-07-14 20:14:00.005	error	at Timeout._onTimeout (C:\ioBroker\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:501:7)
                        javascript.0	2019-07-14 20:14:00.005	error	at C:\ioBroker\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:543:11
                        javascript.0	2019-07-14 20:14:00.005	error	at Job.invoke (C:\ioBroker\node_modules\iobroker.javascript\node_modules\node-schedule\lib\schedule.js:173:10)
                        javascript.0	2019-07-14 20:14:00.005	error	at Job.nodeSchedule.scheduleJob [as job] (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1191:34)
                        javascript.0	2019-07-14 20:14:00.005	error	at Object.compareCond (script.js.Sigi.Timer_Licht:71:30)
                        javascript.0	2019-07-14 20:14:00.005	error	at JSON.parse (<anonymous>:null:null)
                        javascript.0	2019-07-14 20:14:00.005	error	Error in callback: SyntaxError: Unexpected end of JSON input
                        javascript.0	2019-07-14 20:13:22.994	error	at Timer.processTimers (timers.js:223:10)
                        javascript.0	2019-07-14 20:13:22.994	error	at listOnTimeout (timers.js:263:5)
                        javascript.0	2019-07-14 20:13:22.994	error	at tryOnTimeout (timers.js:300:5)
                        javascript.0	2019-07-14 20:13:22.994	error	at ontimeout (timers.js:438:13)
                        javascript.0	2019-07-14 20:13:22.994	error	at Timeout._onTimeout (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1886:34)
                        javascript.0	2019-07-14 20:13:22.994	error	at Object.main (script.js.Sigi.Timer_Licht:820:5)
                        javascript.0	2019-07-14 20:13:22.994	error	at createConditionsJSON (script.js.Sigi.Timer_Licht:48:50)
                        javascript.0	2019-07-14 20:13:22.994	error	Error in callback: TypeError: Cannot read property 'common' of null
                        javascript.0	2019-07-14 20:13:22.993	warn	Object "enum.functions.timerconditions" does not exist
                        
                        G 1 Reply Last reply Reply Quote 0
                        • G
                          GiuseppeS @sigi234 last edited by

                          @sigi234
                          Die Aufzählung "timerconditions" existiert bei dir nicht. Daher diese Fehler.
                          Auf welcher Version warst du? Noch die ohne variable Bedingungen?
                          Dann wäre es auch wichtig das Popup-View einzulesen. Außerdem wäre es wichtig die States alle zu löschen.

                          • Skript stoppen
                          • PopUp View importieren
                          • Alle Objekte unter javascript.0.timer löschen
                          • Aufzählung "timerconditions" erstellen und states für die Bedingungen reinziehen, z.B. sowas wie AtHome was jeder in ähnlicher Form nutzt
                          • Skript neu starten (2 Mal)

                          Falls du die Bedingungen nicht nutzen willst, kannst du auch einfach wieder das alte Script weiternutzen.

                          sigi234 2 Replies Last reply Reply Quote 0
                          • sigi234
                            sigi234 Forum Testing Most Active @GiuseppeS last edited by

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

                            Falls du die Bedingungen nicht nutzen willst, kannst du auch einfach wieder das alte Script weiternutzen.

                            Hab ich jetzt nicht mehr.............

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

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

                              Aufzählung "timerconditions" erstellen und states für die Bedingungen reinziehen, z.B. sowas wie AtHome was jeder in ähnlicher Form nutzt

                              Wie genau?

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

                                @sigi234
                                Du hast doch eine Aufzählung, worin alle Rollläden drin stehen.
                                Jetzt muss eine neue Aufzählung erstellt werden. Kannst du nennen wie du magst. Hier sollten Objekte/States rein kommen, die als Bedingung für die spätere Ausführung der Timer genutzt werden sollen.
                                Hast du Türkontakte? Die wären z.B. sinnvoll.
                                Den Namen der neuen Aufzählung gibst du oben im Script an. So wie du es mit den Rollläden auch gemacht hattest.

                                Wenn noch etwas unklar ist, bitte genau beschreiben was unklar ist.

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

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

                                  Du hast doch eine Aufzählung, worin alle Rollläden drin stehen.

                                  Nimm ja die Funktion Licht (Hue).......egal, ich mache alles mal neu.

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

                                    @sigi234
                                    Die Aufzählung "Licht" ist bei dir für das, was du steuern möchtest.

                                    Du musst im Skript ein paar Zeilen darunter noch eine weitere Aufzählung angeben. Bei mir heißt die "timerconditions". Diese Aufzählung ist für die Bedingungen, die man Hinterlegen kann.

                                    Im ersten Post steht auch nochmal alles beschrieben.

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

                                      @GiuseppeS ,

                                      vielen Dank für das Bereitstellen deines Timers. Da steckt eine Menge Arbeit dahinter, wenn man die Menge an Codezeilen und die VIS Views genauer betrachtet.
                                      Das ist nicht selbstverständlich, dass jemand sowas einfach so bereit stellt. Tolle Arbeit und sehr professionell gelöst.!

                                      Ich habe die aktuellste Version getestet und bin genauso vorgegangen, wie du es im ersten Poste beschrieben hast. Es funktioniert alles einwandfrei.
                                      Eine Bedingung habe ich für meine Terrassentüre ( Xiaomi Türsensor ) auch erfolgreich getestet. Ich kann die Probleme, die Glasfaser hatte nicht nachvollziehen.

                                      Wenn ich mir noch was wünschen würde, dann zusätzlich einen Offset in Sekunden definieren zu können.
                                      Ich möchte z.B. meine Rollläden im 5 s Takt nacheinander schalten können.

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

                                        @K_o_bold
                                        Danke für deine Tests. Falls dir noch was auffallen sollte, einfach melden.

                                        Werde schauen, dass ich folgende Punkte zeitnah integrieren kann:

                                        • Offset mit 5s, 10s, 15s usw.
                                        • Reihenfolge der Geräte in Tabelle über Reihenfolge in "javascript.0.Timer.Devices.Editor.DropDownDevice" editierbar.
                                          Wenn Reihenfolge für Dropdown geändert wird, dann ändert sich auch die Reihenfolge in der Tabelle. Werde dafür das Dropdown-State eine Ebene höher ziehen (nicht unter "Editor").
                                        Glasfaser 1 Reply Last reply Reply Quote 0
                                        • Glasfaser
                                          Glasfaser @GiuseppeS last edited by

                                          @GiuseppeS
                                          (So... Urlaub leider zu Ende .)

                                          Habe dein neues Skript auf meine Bedürfnisse geändert.

                                          Sieht sehr gut aus !!
                                          Alle Bedingungen / Simulationen habe ich wie schon oben Beschrieben genauso auf dein neues überarbeitetes Skript angewandt und es läuft wie es sein soll.
                                          Deine neu eingesetzt Debug Option habe ich mal für mich aktiviert.
                                          Im Log werden auch alle Bedingungen / Schedule protokolliert..

                                          Ich werde es dann mal einige Tage einen Dauertest unterziehen .😉

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

                                            @Glasfaser
                                            Willkommen zurück aus dem Urlaub. Viel Spaß beim Testen. Wenn dir was auffällt, einfach Bescheid geben. Lass den Debug-Switch an, bis du sicher bist dass alles läuft. Betrifft zwar aktuell nur eine Ausgabe (werde bei der nächsten Version weitere als debug drin haben) aber die wäre wichtig für deine letzten Fehlerfällen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            963
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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