Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Flexibles Timerskript + Vis

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [Vorlage] Flexibles Timerskript + Vis

    This topic has been deleted. Only users with topic management privileges can see it.
    • gelberlemmy
      gelberlemmy last edited by

      @Pittini

      Danke für die schnelle Rückmeldung.
      Wie folgt:

      1. nach dem Start des Skriptes läuft die Seite mit dem Timer problemlos.
      2. manuelle aktualisierung des Webbrowsers.
      3. Ansicht nur noch die obere Zeile wo die Daten bearbeitet werden. Angelegte Timer nicht sichtbar.
      4. Anklicken eines Feldes erscheinen die angelegten Timer wieder.
      5. Auswahlen in der oberen Zeilen nur noch "undefined" Bearbeiten bestehenden Timer nicht möglich.
      6. Fehlermeldungen im LOG. Skript Pausenzeichen gelb.
      7. Stop dann Start des Skriptes, alles wieder in Funktion.

      Siehe auch die Bilder aus meinem ersten Post. Dort kann man gut sehen, dass dort nur die oberen Zeilemn angezeigt werden.

      Anbei die Bilder der Objektwerte:

      Timer6.jpg Timer5.jpg Timer4.jpg Timer3.jpg Timer2.jpg Timer1.jpg

      Gruß André

      P 1 Reply Last reply Reply Quote 0
      • P
        Pittini Developer @gelberlemmy last edited by

        @gelberlemmy

        Nochmal zur Sicherheit. Du installierst das Skript, Du stellst via Vis nen Timer (oder auch mehrere) ein. Setzen und ändern/löschen/hinzufügen funktioniert einwandfrei, die Timer schalten auch.
        Dann machst Du ne manuelle Aktualisierung des Browsers und zack isses kacke? Is das korrekt nachvollzogen so?

        gelberlemmy P 2 Replies Last reply Reply Quote 0
        • gelberlemmy
          gelberlemmy @Pittini last edited by

          @Pittini ja so ist es. Dann Neustart Skript und alles wieder schön

          P 1 Reply Last reply Reply Quote 1
          • P
            Pittini Developer @gelberlemmy last edited by

            @gelberlemmy sagte in [Vorlage] Flexibles Timerskript + Vis:

            ja so ist es. Dann Neustart Skript und alles wieder schön

            Schon mal Browsercache leeren probiert? Schon mal mit nem anderen Browser probiert? Wenn nein, bitte beides mal machen.

            gelberlemmy 1 Reply Last reply Reply Quote 0
            • gelberlemmy
              gelberlemmy @Pittini last edited by

              @Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:

              @gelberlemmy sagte in [Vorlage] Flexibles Timerskript + Vis:

              ja so ist es. Dann Neustart Skript und alles wieder schön

              Schon mal Browsercache leeren probiert? Schon mal mit nem anderen Browser probiert? Wenn nein, bitte beides mal machen.

              Ja den Cache habe ich bereits mehrfach gelöscht.
              Auch mit anderen Browsern das Problem. Chrome und FireFox auf PC, Fully Kiosk auf Tablet und Chrome auf einem Android Smartphone.

              P 1 Reply Last reply Reply Quote 0
              • D
                deta Most Active last edited by

                Nur zur Info, ich hab gestern aktuelle vom Git installiert und bei mir ist alles sofort nach neustart des Skrippt sichtbar gewesen. Keine Probleme.

                1 Reply Last reply Reply Quote 0
                • P
                  Pittini Developer @gelberlemmy last edited by

                  @gelberlemmy Nur mal als Test ins blaue. Mach mal aus der 500 in Zeile 1155 ne 1000, dann speichern und testen bitte.

                  gelberlemmy 1 Reply Last reply Reply Quote 0
                  • gelberlemmy
                    gelberlemmy @Pittini last edited by

                    @Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:

                    @gelberlemmy Nur mal als Test ins blaue. Mach mal aus der 500 in Zeile 1155 ne 1000, dann speichern und testen bitte.

                    Leider keine Änderung

                    1 Reply Last reply Reply Quote 0
                    • P
                      Pittini Developer @Pittini last edited by

                      @Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:

                      Nochmal zur Sicherheit. Du installierst das Skript, Du stellst via Vis nen Timer (oder auch mehrere) ein. Setzen und ändern/löschen/hinzufügen funktioniert einwandfrei, die Timer schalten auch.
                      Dann machst Du ne manuelle Aktualisierung des Browsers und zack isses kacke? Is das korrekt nachvollzogen so?

                      @Pittini ja so ist es. Dann Neustart Skript und alles wieder schön

                      Ok, dann fällt mir grad offiziell nix mehr ein, vermutlich is der Effekt nach irgendeinem update weg, aber das kanns natürlich ned sein. Evtl. fällt ja @Dutchman oder @apollon77 oder @AlCalzone was dazu ein.

                      AlCalzone 1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @Pittini last edited by

                        @Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:

                        Evtl. fällt ja @AlCalzone was dazu ein.

                        dazu bräuchte ich mal ein tl;dr, damit ich nicht den ganzen Thread nach Infos durchstöbern muss.

                        P 1 Reply Last reply Reply Quote 0
                        • P
                          Pittini Developer @AlCalzone last edited by

                          @AlCalzone sagte in [Vorlage] Flexibles Timerskript + Vis:

                          dazu bräuchte ich mal ein tl;dr, damit ich nicht den ganzen Thread nach Infos durchstöbern muss.

                          Ok, gern, hier Zusammenfassung:
                          @gelberlemmy hat mein Timerskript installiert. Es funktioniert alles wie es soll (haben auch inzwischen etliche Leuts ohne Probleme laufen), allerdings funktionierts nur solange bis er nen manuellen Browserrefresh macht. Danach steigt das Skript aus. Die Logs sagen mir, es steigt aus weil "undefined" Werte in Dps geschrieben werden die da nix zu suchen haben. Das Problem ist, ich hab null Ahnung warum. Die Logs dazu siehste hier: https://forum.iobroker.net/topic/33228/vorlage-flexibles-timerskript-vis/229 und hier is der Ursprungspost zum Thema https://forum.iobroker.net/topic/33228/vorlage-flexibles-timerskript-vis/219
                          Das Startlog ist völlig normal, alles bestens, Timer wird gesetzt, Timer wird ausgeführt. Im Log drunter siehste dann schon dass da undefined Werte reinkommen, dass das Skript da dann aussteigt is soweit klar und logisch. Nur woher kommen die Werte beim Browseraktualisieren?
                          Als Massnahme wurde bereits durchgeführt: Browsercache leeren, anderen Browser verwenden, Skriptverzeichnis löschen und Dps neu erstellen lassen, JS Instanz neustarten.

                          AlCalzone 1 Reply Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer @Pittini last edited by

                            @Pittini Browser-Refresh dürfte keinen Einfluss auf Variablen in Skripten haben, da diese im Backend (ioBroker) laufen.

                            Die fragliche Zeile (631) verwendet eine Astro-Zeit, ohne zu prüfen, ob diese existiert. Es gibt ein paar Astro-Events, die an bestimmten Breitengraden zu bestimmten Jahreszeiten nicht existieren.
                            Ich vermute, das ist die Ursache.

                            P 1 Reply Last reply Reply Quote 0
                            • P
                              Pittini Developer @AlCalzone last edited by

                              @AlCalzone sagte in [Vorlage] Flexibles Timerskript + Vis:

                              @Pittini Browser-Refresh dürfte keinen Einfluss auf Variablen in Skripten haben, da diese im Backend (ioBroker) laufen.

                              Die fragliche Zeile (631) verwendet eine Astro-Zeit, ohne zu prüfen, ob diese existiert. Es gibt ein paar Astro-Events, die an bestimmten Breitengraden zu bestimmten Jahreszeiten nicht existieren.
                              Ich vermute, das ist die Ursache.

                              Hm, glaub ich eigentlich nicht, läßt sich aber ja leicht verifizieren indem wir @gelberlemmy mal fragen ob er überhaupt nen Astrotimer verwendet hatte. Ich seh das Problem hier:

                              javascript.0	2020-07-27 20:53:02.954	info	(4109) script.js.common.Timer_Target: Reaching WriteToTemplate(whichone), whichone=undefined
                              

                              Die Variable whichone legt fest welcher Timer in die TemplateDps geschrieben wird, wenn da ein undefined kommt kann nur murks rauskommen, nur woher kommt das undefined?
                              Das Skript is so aufgebaut das je nachdem, welcher Timer in ner Valuelist gewählt wird, die Werte dieses Timers in ein Template geschrieben wird, worauf sich das Vis bezieht. Beim klick auf des speichernbutton werden die Werte ausm (jetzt ja geänderten) Template in die eigentlichen TimerDps zurückgeschrieben. Iwo da vermute ich passiert was, aber wie gesagt ich komm da ned weiter.
                              Das ganze funktioniert bisher einwandfrei und ich glaub auch ned mal dasses am Skript liegt, kanns aber halt auch ned ausschliessen bevor die wahre Ursache gefunden wurde.

                              AlCalzone 1 Reply Last reply Reply Quote 0
                              • AlCalzone
                                AlCalzone Developer @Pittini last edited by

                                @Pittini sagte in [Vorlage] Flexibles Timerskript + Vis:

                                Hm, glaub ich eigentlich nicht

                                Wieso nicht? Steht doch in mehreren Logs oben:

                                javascript.0	2020-07-26 18:12:22.858	error	(2508) at CheckTodayAstroIsOver (script.js.Meine_Scripte.Timersteuerung:631:15)
                                javascript.0	2020-07-26 18:12:22.857	error	(2508) Error in callback: TypeError: Cannot read property 'setMinutes' of undefined
                                javascript.0	2020-07-26 18:12:22.848	error	(2508) Cannot get astro date for "time"
                                

                                Ich würde jetzt nicht pauschal ausschließen wollen, dass das nicht doch dafür sorgt, dass ungewollte Werte in DPs landen.

                                P 1 Reply Last reply Reply Quote 0
                                • gelberlemmy
                                  gelberlemmy last edited by

                                  Moin, also ich habe noch nie einen Astro Tier verwendet. Immer nur eine Schaltung zur bestimmten Uhrzeit.

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    Pittini Developer @AlCalzone last edited by

                                    @AlCalzone sagte in [Vorlage] Flexibles Timerskript + Vis:

                                    Ich würde jetzt nicht pauschal ausschließen wollen, dass das nicht doch dafür sorgt, dass ungewollte Werte in DPs landen.

                                    Jaein, das isn Folgefehler. Ich hab da ne Abfrage drin die auf !time prüft und da fällt natürlich das undefined drunter, gedacht war wenns nicht time ist, musses Astro sein, deswegen springt er in den falshen Zweig dann. Es bleibt aber immer noch die Frage, woher kommt das undefined das das auslöst. Ich fang das jetzt mal ab, dann soll @gelberlemmy mal posten wie oder was sich am Fehler geändert hat.

                                    @gelberlemmy bitte mal Zeile 1110 ändern von:

                                                if (x == 5 && dp.state.val != "time") { //TimerChoice geändert und Astro gewählt
                                    
                                    

                                    auf:

                                                if (x == 5 && dp.state.val != "time" && typeof dp.state.val != "undefined") { //TimerChoice geändert und Astro gewählt
                                    
                                    

                                    Dann bitte mal testen und ggfs. das entstandene Log wieder hier posten.

                                    gelberlemmy 1 Reply Last reply Reply Quote 0
                                    • gelberlemmy
                                      gelberlemmy @Pittini last edited by

                                      @Pittini danke für die Arbeit. Werde es nachher einmal probieren

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

                                        @gelberlemmy

                                        so keine Änderung. Die Fehlermeldungen gehen auch erst los, sobald ich in den Spalten "undefined" auswähle.

                                        javascript.0	2020-07-31 21:13:37.206	error	(21270) at processImmediate (internal/timers.js:456:21)
                                        javascript.0	2020-07-31 21:13:37.206	error	(21270) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                                        javascript.0	2020-07-31 21:13:37.205	error	(21270) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25)
                                        javascript.0	2020-07-31 21:13:37.205	error	(21270) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38)
                                        javascript.0	2020-07-31 21:13:37.204	error	(21270) at Object.<anonymous> (script.js.common.TimerTarget:1112:98)
                                        javascript.0	2020-07-31 21:13:37.204	error	(21270) at DetermineNextActiveAstroDay (script.js.common.TimerTarget:520:32)
                                        javascript.0	2020-07-31 21:13:37.203	error	(21270) at CheckTodayAstroIsOver (script.js.common.TimerTarget:631:15)
                                        javascript.0	2020-07-31 21:13:37.203	error	(21270) Error in callback: TypeError: Cannot read property 'setMinutes' of undefined
                                        javascript.0	2020-07-31 21:13:37.199	error	(21270) Cannot get astro date for "undefined"
                                        javascript.0	2020-07-31 21:13:37.198	info	(21270) script.js.common.TimerTarget: Reaching CheckTodayAstroIsOver(AstroChoice=undefined Shift=0)
                                        javascript.0	2020-07-31 21:13:37.198	info	(21270) script.js.common.TimerTarget: Reaching DetermineNextActiveAstroDay(whichone=-1 GoToTommorrow=false)
                                        javascript.0	2020-07-31 21:13:37.197	info	(21270) script.js.common.TimerTarget: Astro choosen
                                        javascript.0	2020-07-31 21:13:37.196	info	(21270) script.js.common.TimerTarget: Reaching MakeTable
                                        javascript.0	2020-07-31 21:13:37.195	info	(21270) script.js.common.TimerTarget: Reaching SwitchEditMode(whichone, onoff), whichonex=undefined TimerCount=1 onoff=true
                                        javascript.0	2020-07-31 21:13:33.022	info	(21270) script.js.common.TimerTarget: Reaching MakeTable
                                        javascript.0	2020-07-31 21:13:33.021	info	(21270) script.js.common.TimerTarget: Reaching SwitchEditMode(whichone, onoff), whichonex=undefined TimerCount=1 onoff=true
                                        javascript.0	2020-07-31 21:13:22.307	info	(21270) script.js.common.TimerTarget: Template TimerTarget changed, typeof=string Wert=
                                        javascript.0	2020-07-31 21:13:22.267	info	(21270) script.js.common.TimerTarget: Timertemplate changed to undefined
                                        javascript.0	2020-07-31 21:13:22.266	info	(21270) script.js.common.TimerTarget: Reaching MakeTable
                                        javascript.0	2020-07-31 21:13:22.266	info	(21270) script.js.common.TimerTarget: Reaching SwitchEditMode(whichone, onoff), whichonex=0 TimerCount=1 onoff=false
                                        javascript.0	2020-07-31 21:13:22.263	info	(21270) script.js.common.TimerTarget: Typeof MyTimer[undefined]=undefined
                                        javascript.0	2020-07-31 21:13:22.262	info	(21270) script.js.common.TimerTarget: Reaching WriteToTemplate(whichone), whichone=undefined
                                        
                                        gelberlemmy 1 Reply Last reply Reply Quote 0
                                        • gelberlemmy
                                          gelberlemmy @gelberlemmy last edited by

                                          Habe mir jetzt einen Button für den Regelneustart gebaut 😁

                                          IMG_20200801_082858.jpg

                                          P 1 Reply Last reply Reply Quote 0
                                          • P
                                            Pittini Developer @gelberlemmy last edited by

                                            @gelberlemmy sagte in [Vorlage] Flexibles Timerskript + Vis:

                                            Habe mir jetzt einen Button für den Regelneustart gebaut

                                            Als workaround sinnvoll, aber ich bin hartnäckig und will trotzdem wissen was da los ist. Vorallem weil nur Du das Problem hast. An obigem Screen sieht man ja schön das da alles leer ist im Änderungsbereich, schon das darf nicht sein.
                                            Kannst Du mal bitte zur Sicherheit in Vis ein komplett leeres neues Projekt anlegen und da eine einzige Seite machen mit den Widgets aus dem zur Verfügung gestellten View.
                                            Solltest Du Anydesk haben, würd ich mir das gerne mal live anschauen, wär vermutlich am sinnvollsten. ID kannste mir ja ggfs. im Chat durchgeben.

                                            gelberlemmy 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            560
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            40
                                            500
                                            76023
                                            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