Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Sonnenstände

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Sonnenstände

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      Werner Schäffer last edited by

      Dieses Script

      schedule({astro: 'sunset', shift: 30}, function () {
          log("30 minutes after sunset!");
          setStateEnum('enum.functions.Sonnenuntergang', true);
      }); |.
      

      hatte einst wunderbar funktioniert. Aber seit geraumer Zeit reagiert es nicht mehr auf den Sonnenuntergang.
      Ich habe alle möglichen Threads gelesen gier aber keiner lieferte mir eine Lösung. Was ist da passiert? Warum funkt das nicht mehr?

      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Werner Schäffer last edited by

        @werner-schäffer sagte in Sonnenstände:

        Was ist da passiert?

        hast du irgendetwas verändert?

        @werner-schäffer sagte in Sonnenstände:

        Warum funkt das nicht mehr?

        warum funktioniert es nicht mehr?

        • triggert es nicht mehr?
        • kommt gar keine log Ausgabe?
        • stellt es die enum nicht auf true?
        W 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Werner Schäffer last edited by

          @werner-schäffer sagte: hatte einst wunderbar funktioniert.

          Woher kommt die Funktion setStateEnum()? Unter "enum.functions" gibt es keine Datenpunkte.

          1 Reply Last reply Reply Quote 0
          • W
            Werner Schäffer @Homoran last edited by Werner Schäffer

            @homoran

            es triggered nicht mehr, es gibt auch keinen Log-Eintrag.

            An der Konfiguration habe ich nichts geändert, aber vermutlich neue Versionen von iobroker installiert.

            @paul53
            die Funktion setStateEnum() habe ich selbst erstellt:

            function setStateEnum(name, value) {
                let items = getObject(name);
                for (var i in items.common.members) {                                                                                                                      
                    const item = items.common.members[i];
                    setState(item + '.STATE', value);
                }
            }
            
            F 1 Reply Last reply Reply Quote 0
            • F
              fastfoot @Werner Schäffer last edited by

              @werner-schäffer was zeigtlog(getAstroDate('sunset'))?

              W 1 Reply Last reply Reply Quote 0
              • W
                Werner Schäffer @fastfoot last edited by

                @fastfoot said in Sonnenstände:

                log(getAstroDate('sunset'))

                18:22:54.435 info javascript.0 (9613) script.js.common.Zeitsteuerung.test: Wed Oct 13 2021 18:40:40 GMT+0200 (Central European Summer Time)

                F 1 Reply Last reply Reply Quote 0
                • F
                  fastfoot @Werner Schäffer last edited by

                  @werner-schäffer Ist der Debug-Mode auch ausgeschaltet? Was zeigt denn das Log beim Skriptstart wenn Du Verbose einschaltest?

                  W 1 Reply Last reply Reply Quote 0
                  • W
                    Werner Schäffer @fastfoot last edited by

                    @fastfoot

                    Um wieder sinnvolle Ergebnisse zu bekommen müssen wir jetzt mal einen Tag abwarten. ES gibt da nämlich noch eine Besonderheit: nach einem Neustart des Scripts funktioniert der schedule('sunset') genau einmal und dann nicht mehr. Ich habe andere Scripte mit schedule('Uhrzeit') die funktionieren ohne Problem immer wieder.

                    Mal abwarten, aber wie gesagt es hatte einst mal funktioniert und dann irgendwann nicht mehr. Hier im Forum haben auch schon Andere von diesem Problem berichtet. Ich habe mich noch nicht so richtig reingefuchst in iobroker aber es scheint mir da ein internes Problem zu geben.

                    Trotzdem danke für die Hilfe bisher. Falls es keine Lösung gibt, werde ich auf CCU3 oder crontab ausweichen, was ich eigentlich vermeiden wollte, da ich lieber jegliche Steuerung in iob haben wollte.

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      fastfoot @Werner Schäffer last edited by

                      @werner-schäffer sagte in Sonnenstände:

                      aber es scheint mir da ein internes Problem zu geben.

                      das kann ich nicht nachvollziehen. Hier werden die Schedules nachts um 00:00Uhr(UTC) jeweils neu berechnet und triggern dann zum gewünschten Zeitpunkt. Getestet mit Stable und Beta Versionen des JS Adapters. Mit der Verbose Einstellung kann man das sehr schön sehen

                      W 2 Replies Last reply Reply Quote 0
                      • W
                        Werner Schäffer @fastfoot last edited by

                        @fastfoot
                        ein schedule zu einer bestimmten Uhrzeit funktioniert auch immer, nur eben der sunset nicht

                        1 Reply Last reply Reply Quote 0
                        • W
                          Werner Schäffer @fastfoot last edited by

                          @fastfoot

                          nur mal so eine Idee:

                          könnte es sein dass bei der 0:00 Uhr Aktion der sunset dem Vortag zugeordnet wird und deshalb nie getriggert wird?

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fastfoot @Werner Schäffer last edited by

                            @werner-schäffer sagte in Sonnenstände:

                            @fastfoot

                            nur mal so eine Idee:

                            könnte es sein dass bei der 0:00 Uhr Aktion der sunset dem Vortag zugeordnet wird und deshalb nie getriggert wird?

                            das würde man sehen wenn wir deine Verbose Einträge hätten 🙂

                            W 2 Replies Last reply Reply Quote 0
                            • W
                              Werner Schäffer @fastfoot last edited by

                              @fastfoot
                              das fragliche Script ist auf Verbose, aber es ist nichts zu sehen in den Logs

                              1 Reply Last reply Reply Quote 0
                              • W
                                Werner Schäffer @fastfoot last edited by Werner Schäffer

                                @fastfoot

                                Ich bin bereit das Problem zu anaqlysieren, und wie gesagt auch Andere haben dieses Problem schon angesprochen.

                                .Ich mache um 1:20 per Conjob eine Offline-Sicherung:

                                iobroker stop
                                iobroker  backup
                                iobroker start
                                

                                ich habe dies mal für diese Nacht deaktiviert um das mal auszuschließe -ich werde da mal rumprobieren.

                                F 1 Reply Last reply Reply Quote 0
                                • F
                                  fastfoot @Werner Schäffer last edited by

                                  @werner-schäffer sagte in Sonnenstände:

                                  @fastfoot

                                  Ich bin bereit das Problem zu anaqlysieren, und wie gesagt auch Andere haben dieses Problem schon angesprochen.

                                  .Ich mache um 1:20 per Conjob eine Offline-Sicherung:

                                  iobroker stop
                                  iobroker  backup
                                  iobroker start
                                  

                                  ich habe dies mal für diese Nacht deaktiviert um das mal auszuschließe -ich werde da mal rumprobieren.

                                  ahhh, da kommt die Wahrheit so langsam ans Licht 🙂 Du hast doch Recht, das Problem liegt beim iobroker. Die Datumsberechnung erfolgt nicht korrekt wenn das UTC Datum ungleich dem lokalen Datum ist, während der Sommerzeit also zwischen 00:00 und 02:00Uhr. Durch den Neustart des iobroker in dieser Zeit wird der Schedule zur Neuberechnung um 02:00Uhr verworfen, die beim Start des Skriptes erfolgende Neuberechnung ergibt dann jedoch nicht 02:00Uhr dieses Tages, sondern 1 Tag später. Als Ergebnis werden dann sämtliche Astrozeiten nicht getriggert.

                                  Workaround bis zum Fix: Verlagere dein Backup auf eine Uhrzeit später als 02:00Uhr

                                  W 1 Reply Last reply Reply Quote 0
                                  • W
                                    Werner Schäffer @fastfoot last edited by Werner Schäffer

                                    @fastfoot

                                    ich hatte den Backup letzte Nacht deaktiviert, trotzdem wurde nicht getriggert heute zum Sonnenuntergang, sorry.

                                    "as times go by" - Datum und Uhrzeit sind in der Programmierung immer eine große Herausforderung, habe selbst leidvolle Erfahrungen gemacht: "heute hier morgen dort"

                                    Ich helfe gerne das Problem zu lokalisieren, also sag Bescheid falls ich was machen kann.

                                    F 1 Reply Last reply Reply Quote 0
                                    • F
                                      fastfoot @Werner Schäffer last edited by

                                      @werner-schäffer sagte in Sonnenstände:

                                      @fastfoot

                                      ich hatte den Backup letzte Nacht deaktiviert, trotzdem wurde nicht getriggert heute zum Sonnenuntergang, sorry.

                                      "as times go by" - Datum und Uhrzeit sind in der Programmierung immer eine große Herausforderung, habe selbst leidvolle Erfahrungen gemacht!

                                      es bleibt das Log, mit Herunterladen bekommst Du alles von Heute

                                      W 1 Reply Last reply Reply Quote 0
                                      • W
                                        Werner Schäffer @fastfoot last edited by

                                        @fastfoot

                                        also stop, backup und restart waren ausgeschaltet und das steht im Logfile :

                                        2021-10-16 02:00:00.000 - ESC[32minfoESC[39m: javascript.0 (6626) script.js.common.Zeitsteuerung.Sonnenuntergang: setTimeout(ms=59631722)
                                        2021-10-16 02:00:00.001 - ESC[32minfoESC[39m: javascript.0 (6626) script.js.common.Zeitsteuerung.Sonnenuntergang: schedule(astro=sunset, offset=0)

                                        beachte mal die Uhrzeit, vielleicht hilft das ja

                                        F 1 Reply Last reply Reply Quote 0
                                        • F
                                          fastfoot @Werner Schäffer last edited by

                                          @werner-schäffer sagte in Sonnenstände:

                                          @fastfoot

                                          also stop, backup und restart waren ausgeschaltet und das steht im Logfile :

                                          2021-10-16 02:00:00.000 - ESC[32minfoESC[39m: javascript.0 (6626) script.js.common.Zeitsteuerung.Sonnenuntergang: setTimeout(ms=59631722)
                                          2021-10-16 02:00:00.001 - ESC[32minfoESC[39m: javascript.0 (6626) script.js.common.Zeitsteuerung.Sonnenuntergang: schedule(astro=sunset, offset=0)

                                          beachte mal die Uhrzeit, vielleicht hilft das ja

                                          das wollte ich sehen und es bedeuted dass der Schedule für ca. 18:33 erstellt wurde, so wie zu erwarten war. Warum der Timeout dann doch nicht ausgelöst hat findest Du evtl. im LOG. Mit Backup wären die Zeiten für heute Nacht 02:00 gesetzt worden. Ein weiterer Stop scheidet jedoch als Fehler aus da dann der Schedule beim Restart wieder neu (und auch richtig) berechnet worden wäre.

                                          Es lohnt also auf jeden Fall das Backup zu verschieben, da damit eine Fehlerquelle ausscheidet

                                          C W 3 Replies Last reply Reply Quote 0
                                          • C
                                            CandyMan 0 @fastfoot last edited by

                                            Hab auch das Problem. Nach langer Suche hab ich es über den weg gelöst: Link

                                            Ist zwar nur zwischen Lösung aber funktioniert.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            571
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            24
                                            1269
                                            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