Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. maximum of 1000 setState during boot

    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

    maximum of 1000 setState during boot

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

      @wildbill
      Ich glaub es wird schwierig da eine für alle System passende Lösung zu finden. Wenn es aber Adapter gibt die beim Start den Wert mal so auf 0 setzen, dann kann man da ruhig auch ein Issue erstellen damit der Maintainer schaut ob es dafür einen technischen Grund gibt oder ob nur irgendwo eine an sich unnötige Initialisierung erfolgt.

      @peterfido
      Ev. check mal ob ev. beim Start von ioBroker im Zuge eine Bootvorgangs die Systemzeit (noch) nicht stimmt (RTC ev defekt / verstellt?) und diese dann erst zeitnahe aktualisisert wird z.B. durch NTP Daemon. Ist aber nur so mal ein Idee ohne dass ich sowas schon mal erlebt hätte.

      1 Reply Last reply Reply Quote 2
      • haus-automatisierung
        haus-automatisierung Developer Most Active @hschief last edited by

        @hschief sagte in maximum of 1000 setState during boot:

        auch die Information, dass der Fehler bei euch nicht reproduziert werden kann, Ich werde das Issue in GitHub erstmal schliessen und weiter forschen um das Problem einzugrenzen. Ich berichte was sich weiter ergibt.

        Habs noch nicht probiert zu reproduzieren. Lass gerne offen und teile weitere Erkenntnisse im Issue

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

          @mcm57 ich habe da keine Probleme mit der Uhrzeit. Alle VMs nutzen die RTC vom Proxmox-Host.

          Mir kam nur die Idee, ob es evtl. beim TO da Probleme geben könnte.

          H 1 Reply Last reply Reply Quote 0
          • H
            hschief @peterfido last edited by

            @peterfido

            Solved: In der Tat war der NTP beim boot zu langsam und die Zeit nicht richtig gesetzt. Als Lösung habe ich das Startscript vom IOBroker im systemd deaktiviert. Anschließend dann im /etc/local.rc sichergestellt das die Uhrzeit mittels ntpdate gesetzt wird und danach wird der IObroker gestart.

            Vielen Dank für eure Unterstützung!!!!!!!

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @hschief last edited by

              @hschief Und dann wird die Zeit korrigiert und alle „verpassten“ Schedule-Events in der Zeitdifferenz ausgelöst? Das wäre ja auch nicht so schön bzw. ein Bug aus meiner Sicht.

              mcm1957 H 2 Replies Last reply Reply Quote 0
              • mcm1957
                mcm1957 @haus-automatisierung last edited by

                @haus-automatisierung said in maximum of 1000 setState during boot:

                @hschief Und dann wird die Zeit korrigiert und alle „verpassten“ Schedule-Events in der Zeitdifferenz ausgelöst? Das wäre ja auch nicht so schön bzw. ein Bug aus meiner Sicht.

                Müsste man genauer ansehen.
                Kann gut seind ass der ntp daemon keinen Sprung macht sondern die Zeit "schneller" in kleineren Schritten vorsetzt. Dann hätte der scheduler keine Chance.

                Aber im Prinzip könnten "man" das ja testen indem man manuell die Zeit umsetzt. Wär aber dann ja was was im O/S oder node zu fixen wäre.

                Thomas Braun Homoran 2 Replies Last reply Reply Quote 1
                • Thomas Braun
                  Thomas Braun Most Active @mcm1957 last edited by

                  @mcm57 sagte in maximum of 1000 setState during boot:

                  Kann gut seind ass der ntp daemon keinen Sprung macht sondern die Zeit "schneller" in kleineren Schritten vorsetzt.

                  Ja, genau das macht der ntp im Normalfall. Die Zeit wird gestaucht oder gedehnt, bis irgendwann das Delta zwischen der Zeit vom ntp-Server und der lokal geführten Uhrzeit minimal ist. Das kann u. U. auch mehrere Tage dauern. Der Prozess läuft dauernd im Hintergrund und 'groovt' sich auf die gemessenen Abweichungen ein. Je ungenauer die Lokale Eieruhr tickt desto länger dauert das auch.
                  Harte Zeitsprünge sind zu vermeiden.

                  1 Reply Last reply Reply Quote 2
                  • H
                    hschief @haus-automatisierung last edited by hschief

                    @haus-automatisierung Hi, ich setzt direkt nach dem booten die Zeit,

                    # set the clock before iobroker is start
                    # wait 20s for network
                    /usr/bin/sleep 20
                    /usr/sbin/service ntp stop
                    /usr/sbin/ntpdate -s x.x.x.x
                    /usr/sbin/service ntp start
                    

                    somit gibt es zu diesem Zeitpunkt noch keine Events die recorded werden. Nachdem die Zeit aktualisiert ist, starte ich den iobroker:

                    /usr/sbin/service iobroker start
                    

                    Ab diesem Zeitpunkt laufen die events dann in die states und werden durch die scripte sauber verarbeitet.

                    Ich war bisher der Meinung, dass der ntp service beim booten die Zeit auch direkt richtig setzt, ich habe in diesem Fall gelernt, dass dies mal bis zu 5 Minuten dauern kann.

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @mcm1957 last edited by

                      @mcm57 sagte in maximum of 1000 setState during boot:

                      Müsste man genauer ansehen.
                      Kann gut seind ass der ntp daemon keinen Sprung macht sondern die Zeit "schneller" in kleineren Schritten vorsetzt. Dann hätte der scheduler keine Chance.

                      das sieht man doch immer wieder in logs nach/während des Neustarts.
                      Da springt dann wirlich die Zeit

                      mcm1957 1 Reply Last reply Reply Quote 0
                      • mcm1957
                        mcm1957 @Homoran last edited by

                        @homoran
                        OK, dann hat der Scheduler damit ein Problem ...

                        Keine Ahnugn ob das ein node Modul ist, ein npm Modul eines anderen Entwicklers oder ioB Eigenbau. Dementsprechend ev. an der passenden Stelle ein Issue anlegen.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        935
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        13
                        53
                        2458
                        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