Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Javascript 6.1.0 - Neue Funktionen (Beta)

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Javascript 6.1.0 - Neue Funktionen (Beta)

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

      Hallo alle zusammen,

      im Laufe des Tages sollte JavaScript 6.1.0 im Beta Repository auftauchen und bringt neben Fehlerbehebungen ein paar Neuigkeiten mit über die ich gern Informieren möchte:

      Schutz vor Amoklaufenden Skripten

      In letzter Zeit hatten wir häufiger Supportfälle wogesamte ioBroker Systeme sehr unresponsive/langsam wurden. Ursache waren mehrfach "Amok laufende Skripte", die durch Fehler einfach massive viele State Werte gesetzt haben.

      Der JavaScript Adapter überwacht ab sofort die Anzahl der setState pro Skript und wenn dies pro Minute mehr als 1000 sind (der Wert ist global im Adapter konfigurierbar) - 1000/Min sind 16 pro Sekunde - wird das Skript beendet! Ein Fehler wird geloggt.

      Technisch wird auch nicht direkt bei der "ersten Minute" das Skript beendet sondern erst wenn es 2 aufeinanderfolgende Minuten mehr als 1000 waren, um zB größere Skripte die viele Dinge beim Start tun nicht direkt wieder abzuschiessen.

      Wem 1000 zu wenig ist kann dies ändern in der Adapter-Konfiguration.

      Ich denke mit solch einem Schutz sollten wir in der Zukunft solche Probleme vermeiden

      createState Methode

      Auf vielfachen Wunsch gibt es jetzt eine createAlias Methode analog zu createState.
      Doku: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#createalias

      Im einfachsten Fall bekommt diese Methode nur die ID des Ursprungsobjekts und übernimmt auch die Common Werte von diesem. Weiterhin können aber auch alle anderen Varianten (read/write IDs mit Funktions angegeben werden oder common (partiell) mit einem angegebenen Objekt überschrieben werden.

      setStateDelayed im Selector

      setStateDelayed ist nun auch als Methode im Selector verfügbar

      exec hat "options" Objekt

      Mit dem Options Objekt, welches direkt an nodejs durchgegeben wird können für exec's weitere Einstellungen vorgenommen werden.
      Was geht steht hier: https://nodejs.org/api/child_process.html#child_processexeccommand-options-callback

      Viel Spass mit der neuen Version und Feedback dazu bitte gern hier im Thread.

      Ingo

      M paul53 Fabio 3 Replies Last reply Reply Quote 14
      • M
        Marty56 @apollon77 last edited by Marty56

        @apollon77
        Schön, dass es wieder ein Update gibt und dass es createAlias gibt. deleteAlias fände ich auch noch wünschenswert.

        Der Bug, dass bei on schedule ()... und Neustart des entsprechenden Scripts die Timer nicht gelöscht werden, ist noch drin oder?

        apollon77 1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 @Marty56 last edited by apollon77

          @marty56 sagte in Javascript 6.1.0 - Neue Funktionen (Beta):

          Schön, dass es wieder ein Update gibt und dass es createAlias gibt. deleteAlias fände ich auch noch wünschenswert.

          delObject ist exakt das gleiche, also unnötig.

          Der Bug, dass bei on schedule ()... und Neustart des entsprechenden Scripts die Timer nicht gelöscht werden, ist noch drin oder?

          Dann poste ich mal das ganze Changelog, dann beantwortet sich deine Frage von allein:

          • (Apollon77) Add a configurable check for number of setStates per Minute to prevent scripts from taking down ioBroker. Default are 1000 setState per minute. Only stops if the number is reached 2 minutes in a row!
          • (Apollon77) Add createAlias method to create aliases for states
          • (Apollon77) Add setStateDelayed to selector
          • (Apollon77) Add options to exec command
          • (Apollon77) Fix issues with cancelling schedules when stopping scripts
          • (bluefox) Corrected debug mode

          Gefixter Debugger und das mit den Schedules fällt unter die "Fehlerbehebungen" die oben genannt, aber nicht weiter ausgeführt, sind 😉

          M D 2 Replies Last reply Reply Quote 0
          • M
            Marty56 @apollon77 last edited by

            @apollon77 Sorry, dass ich nicht das Changelog gelesen hatte. Aber Danke!

            apollon77 1 Reply Last reply Reply Quote 1
            • apollon77
              apollon77 @Marty56 last edited by

              @marty56 Also bitte gern prüfen. Bei mir lokal war es damit gefixt ... war eine interessante Challenge bis ich das problem mal verstanden hab ... der Fix waren dann 2 Mins 🙂

              Steff 1 Reply Last reply Reply Quote 0
              • Steff
                Steff @apollon77 last edited by

                @apollon77,

                Update auf 6.1.0 hat problemlos funktioniert, Der Schedule Bug ist weg.

                Super Arbeit!

                Gruß Steffen

                1 Reply Last reply Reply Quote 1
                • paul53
                  paul53 @apollon77 last edited by paul53

                  @apollon77
                  Anmerkung zur Doku: Es ist kein Wunder, dass Nutzer immer wieder den Begriff "Variable" für einen "Datenpunkt" verwenden, wenn es in der Doku so vorgelebt wird.

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

                    @paul53 hast du einen Link?

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

                      @homoran sagte: Link?

                      Homoran apollon77 2 Replies Last reply Reply Quote 1
                      • D
                        darkiop Most Active @apollon77 last edited by

                        @apollon77 sagte in Javascript 6.1.0 - Neue Funktionen (Beta):

                        Der Bug, dass bei on schedule ()... und Neustart des entsprechenden Scripts die Timer nicht gelöscht werden, ist noch drin oder?

                        Dann poste ich mal das ganze Changelog, dann beantwortet sich deine Frage von allein:

                        Dabei fällt mir gerade folgende Frage ein: Kann man die laufenden Timer irgendwo sehen?

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

                          @paul53 Danke!

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

                            Ich habe tatsächlich diesen neuen Fehler "setState Checker" bekommen, bei einem Script.

                            Script script.js.common.Energie is calling setState more than 1000 times per minute! Stopping Script now! Please check your script
                            

                            Es wäre schön, wenn man etwas mehr Infos zu dem State oder der Zeile bekommen könnte, wo dieser Fehler auftritt.

                            Homoran apollon77 2 Replies Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @Marty56 last edited by

                              @marty56 ich hab keine Ahnung von javascript.
                              Aber was für Infos fehlen dir denn?

                              such mal alle setState()
                              da scheinen in einer Schleife im Millisekundentakt States geprüft zu werden.

                              1 Reply Last reply Reply Quote 0
                              • apollon77
                                apollon77 @Marty56 last edited by

                                @marty56 er zählt alle set state pro Skript. Des Weiteren einmal pro Minute schaut er nach der Zahl. Wie soll man das denn auf ein einzelnes setState runterbrechen? Das geht nicht.

                                Starte dein Skript im verbose Mode und jede Aktion wird geloggt. Dann siehst du vllt mehr.

                                Und ja es kann ja sein das das für das Skript ok ist. Aber solltest du prüfen bevor du das Limit hoch setzt.

                                1 Reply Last reply Reply Quote 0
                                • apollon77
                                  apollon77 @paul53 last edited by

                                  @paul53 hm … ok ich stehende einen Fehler das in Beispielen createState kommt. Aber wo ist variable? Ok muss ich nachher mal am pc suchen. Oder mach nen pr :-))

                                  Homoran paul53 2 Replies Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @apollon77 last edited by Homoran

                                    @apollon77 createState('myAlias', {id: {read: 'myReadValiable', write: 'myWriteVariable'}})
                                    vielleicht besser datapoint

                                    apollon77 1 Reply Last reply Reply Quote 1
                                    • M
                                      MCU last edited by

                                      @darkiop
                                      https://forum.iobroker.net/topic/39912/liste-aller-aktiven-scheduler/2

                                      D 1 Reply Last reply Reply Quote 2
                                      • apollon77
                                        apollon77 @Homoran last edited by

                                        @homoran ok my fault dann. Fixe Doku nachher

                                        1 Reply Last reply Reply Quote 1
                                        • paul53
                                          paul53 @apollon77 last edited by

                                          @apollon77 sagte: mach nen pr :-))

                                          Erledigt.

                                          apollon77 2 Replies Last reply Reply Quote 1
                                          • apollon77
                                            apollon77 @paul53 last edited by

                                            @paul53 Danke!!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            885
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            52
                                            3596
                                            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