Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Javascript 6.1.0 - Neue Funktionen (Beta)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

Javascript 6.1.0 - Neue Funktionen (Beta)

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
52 Beiträge 11 Kommentatoren 6.4k Aufrufe 16 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • apollon77A apollon77

    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

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #7

    @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.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    HomoranH 1 Antwort Letzte Antwort
    0
    • paul53P 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.

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #8

      @paul53 hast du einen Link?

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      paul53P 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @paul53 hast du einen Link?

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #9

        @homoran sagte: Link?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        HomoranH apollon77A 2 Antworten Letzte Antwort
        1
        • apollon77A 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 ;)

          D Online
          D Online
          darkiop
          Most Active
          schrieb am zuletzt editiert von
          #10

          @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?

          Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @homoran sagte: Link?

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #11

            @paul53 Danke!

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            M 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @paul53 Danke!

              M Offline
              M Offline
              Marty56
              schrieb am zuletzt editiert von
              #12

              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.

              HW:NUC (16 GB Ram)
              OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

              HomoranH apollon77A 2 Antworten Letzte Antwort
              0
              • M Marty56

                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.

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #13

                @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.

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                1 Antwort Letzte Antwort
                0
                • M Marty56

                  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.

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #14

                  @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.

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @homoran sagte: Link?

                    apollon77A Offline
                    apollon77A Offline
                    apollon77
                    schrieb am zuletzt editiert von
                    #15

                    @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 :-))

                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                    HomoranH paul53P 2 Antworten Letzte Antwort
                    0
                    • apollon77A apollon77

                      @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 :-))

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von Homoran
                      #16

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

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      apollon77A 1 Antwort Letzte Antwort
                      1
                      • M Online
                        M Online
                        MCU
                        schrieb am zuletzt editiert von
                        #17

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

                        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                        D 1 Antwort Letzte Antwort
                        2
                        • HomoranH Homoran

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

                          apollon77A Offline
                          apollon77A Offline
                          apollon77
                          schrieb am zuletzt editiert von
                          #18

                          @homoran ok my fault dann. Fixe Doku nachher

                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                          1 Antwort Letzte Antwort
                          1
                          • apollon77A apollon77

                            @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 :-))

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #19

                            @apollon77 sagte: mach nen pr :-))

                            Erledigt.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            apollon77A 2 Antworten Letzte Antwort
                            1
                            • paul53P paul53

                              @apollon77 sagte: mach nen pr :-))

                              Erledigt.

                              apollon77A Offline
                              apollon77A Offline
                              apollon77
                              schrieb am zuletzt editiert von
                              #20

                              @paul53 Danke!!

                              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                              1 Antwort Letzte Antwort
                              0
                              • M MCU

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

                                D Online
                                D Online
                                darkiop
                                Most Active
                                schrieb am zuletzt editiert von
                                #21

                                @mcu Danke dir, kein fehler da etwas transparenz zu haben ;)

                                Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

                                1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @apollon77 sagte: mach nen pr :-))

                                  Erledigt.

                                  apollon77A Offline
                                  apollon77A Offline
                                  apollon77
                                  schrieb am zuletzt editiert von
                                  #22

                                  @paul53 Danke! merged und auch noch ein anderer Fehler gefixt.

                                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                  1 Antwort Letzte Antwort
                                  0
                                  • BananaJoeB Offline
                                    BananaJoeB Offline
                                    BananaJoe
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #23

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

                                    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.

                                    Mhh, sehe ich das nur im Log? Ich spiele darauf an mich z.B. per Telegram benachrichtigen zu lassen. Die States unter javascript.0.scriptEnabled zu überwachen ist denke ich nicht hilfreich.
                                    Mein Monitoring kann aber auch mit Log-Dateien umgehen - ich bräuchte dafür aber mal eine Beispiel wie so ein Logeintrag aussieht.

                                    Ansonsten: Klasse Idee!

                                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                    apollon77A 1 Antwort Letzte Antwort
                                    0
                                    • BananaJoeB BananaJoe

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

                                      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.

                                      Mhh, sehe ich das nur im Log? Ich spiele darauf an mich z.B. per Telegram benachrichtigen zu lassen. Die States unter javascript.0.scriptEnabled zu überwachen ist denke ich nicht hilfreich.
                                      Mein Monitoring kann aber auch mit Log-Dateien umgehen - ich bräuchte dafür aber mal eine Beispiel wie so ein Logeintrag aussieht.

                                      Ansonsten: Klasse Idee!

                                      apollon77A Offline
                                      apollon77A Offline
                                      apollon77
                                      schrieb am zuletzt editiert von
                                      #24

                                      @bananajoe ja aktuell nur log. Man könnte theoretisch noch den scriptProblem state Zähler erhöhen.

                                      Zum Beispiel: scroll mal hier im thread hoch. marty56 war reingerannt ;-)

                                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                      BananaJoeB 1 Antwort Letzte Antwort
                                      1
                                      • apollon77A apollon77

                                        @bananajoe ja aktuell nur log. Man könnte theoretisch noch den scriptProblem state Zähler erhöhen.

                                        Zum Beispiel: scroll mal hier im thread hoch. marty56 war reingerannt ;-)

                                        BananaJoeB Offline
                                        BananaJoeB Offline
                                        BananaJoe
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #25

                                        @apollon77 Gefunden. ist dann ein Error? (Du hats im Eingangspost geschrieben das ein Fehler geloggt wird)

                                        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                        apollon77A 1 Antwort Letzte Antwort
                                        0
                                        • BananaJoeB BananaJoe

                                          @apollon77 Gefunden. ist dann ein Error? (Du hats im Eingangspost geschrieben das ein Fehler geloggt wird)

                                          apollon77A Offline
                                          apollon77A Offline
                                          apollon77
                                          schrieb am zuletzt editiert von
                                          #26

                                          @bananajoe ja. As i remember

                                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                          HomoranH 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          311

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe