Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. maximum of 1000 setState during boot

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    912

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

maximum of 1000 setState during boot

Scheduled Pinned Locked Moved JavaScript
53 Posts 13 Posters 5.7k Views 10 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    hschief
    wrote on last edited by
    #1

    Liebe Community,
    ich brauche mal euer Unterstützung bei einem recht eigentümlichen Problem.

    Beim boot erscheint im Log die folgende Fehlermeldung:
    "Script script.js.Technik.Heizung.BerechnungVerbrauchCurrent has reached the maximum of 1000 setState calls per minute in 1 consecutive minutes"

    Dies passiert bei mehreren Scripten mit einer Schedule clause. Das System selbst ist in diesem Moment auch langsam.
    Wenn ich von der shell den iobroker mit iobroker stop anhalte und danach mit iobroker start starte, passiert dies nicht, die Meldung erscheint also nur bei einem boot.

    Das Script enthält eigentlich auch nur ein schedule die alle 10s einen Wert berechnet.

    schedule({second: [0, 10, 20, 30, 40, 50]}, Heizleistung);
    
    function Heizleistung() {
        var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val.toFixed(1);
        var currentConsumption = 0.694*Modulation;
        
        setState('0_userdata.0.Technik.Heizung.24hVerbrauch', parseFloat(currentConsumption));
    
    };
    

    Hat vielleicht jemand eine Idee oder einen weiterführenden Hinweis was ich hier falsch mache oder wo ich suchen könnte?

    Vielen Dank
    Helmut

    paul53P 1 Reply Last reply
    0
    • H hschief

      Liebe Community,
      ich brauche mal euer Unterstützung bei einem recht eigentümlichen Problem.

      Beim boot erscheint im Log die folgende Fehlermeldung:
      "Script script.js.Technik.Heizung.BerechnungVerbrauchCurrent has reached the maximum of 1000 setState calls per minute in 1 consecutive minutes"

      Dies passiert bei mehreren Scripten mit einer Schedule clause. Das System selbst ist in diesem Moment auch langsam.
      Wenn ich von der shell den iobroker mit iobroker stop anhalte und danach mit iobroker start starte, passiert dies nicht, die Meldung erscheint also nur bei einem boot.

      Das Script enthält eigentlich auch nur ein schedule die alle 10s einen Wert berechnet.

      schedule({second: [0, 10, 20, 30, 40, 50]}, Heizleistung);
      
      function Heizleistung() {
          var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val.toFixed(1);
          var currentConsumption = 0.694*Modulation;
          
          setState('0_userdata.0.Technik.Heizung.24hVerbrauch', parseFloat(currentConsumption));
      
      };
      

      Hat vielleicht jemand eine Idee oder einen weiterführenden Hinweis was ich hier falsch mache oder wo ich suchen könnte?

      Vielen Dank
      Helmut

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @hschief sagte: schedule die alle 10s einen Wert berechnet.

      Passiert das auch bei CRON-Notation?

      function Heizleistung() {
          var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val;
          var currentConsumption = Math.round(6.94 * Modulation) / 10; // 1 Nachkommastelle
          setState('0_userdata.0.Technik.Heizung.24hVerbrauch', currentConsumption, true);
      };
      
      schedule('*/10 * * * * *', Heizleistung);
      

      Man rundet erst das Ergebnis einer Berechnung.

      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

      H 1 Reply Last reply
      0
      • paul53P paul53

        @hschief sagte: schedule die alle 10s einen Wert berechnet.

        Passiert das auch bei CRON-Notation?

        function Heizleistung() {
            var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val;
            var currentConsumption = Math.round(6.94 * Modulation) / 10; // 1 Nachkommastelle
            setState('0_userdata.0.Technik.Heizung.24hVerbrauch', currentConsumption, true);
        };
        
        schedule('*/10 * * * * *', Heizleistung);
        

        Man rundet erst das Ergebnis einer Berechnung.

        H Offline
        H Offline
        hschief
        wrote on last edited by
        #3

        @paul53 vielen Dank für die Idee und den Hinweis. Ich habe dies direkt mal getestet, der Fehler bleibt aber unverändert bestehen.

        O 1 Reply Last reply
        0
        • H hschief

          @paul53 vielen Dank für die Idee und den Hinweis. Ich habe dies direkt mal getestet, der Fehler bleibt aber unverändert bestehen.

          O Away
          O Away
          oFbEQnpoLKKl6mbY5e13
          wrote on last edited by oFbEQnpoLKKl6mbY5e13
          #4

          @hschief

          Hat das was hiermit zu tun?:

          7.9.1 (2024-03-15)

          (klein0r) Configurable trigger warning limit (default: 100 per script)
          (klein0r) Allow to use objects in create state blocks for common
          (klein0r) Added warning if latitude or longitude is not configured correctly
          

          https://github.com/ioBroker/ioBroker.javascript/blob/master/CHANGELOG_OLD.md#791-2024-03-15

          H 1 Reply Last reply
          0
          • O oFbEQnpoLKKl6mbY5e13

            @hschief

            Hat das was hiermit zu tun?:

            7.9.1 (2024-03-15)

            (klein0r) Configurable trigger warning limit (default: 100 per script)
            (klein0r) Allow to use objects in create state blocks for common
            (klein0r) Added warning if latitude or longitude is not configured correctly
            

            https://github.com/ioBroker/ioBroker.javascript/blob/master/CHANGELOG_OLD.md#791-2024-03-15

            H Offline
            H Offline
            hschief
            wrote on last edited by hschief
            #5

            @ofbeqnpolkkl6mby5e13
            Ich muss ehrlicher Weise gestehen, dass ich die Antwort nicht verstehe. Ich habe halt mehrere scripts mit einer Cron Anweisung die beim Systemstart ... und nur bei dem Systemstart diese Meldung auslösen.

            Ich habe ebenfalls schonmal den Iobroker 2 Minuten zeitversetzt gestartet, auch in diesem Fall kommt die Meldung.

            Nochmal weiter getestet. Wenn ich den IOBroker beim dem Systemstart nicht automatisch starten, sondern von Hand aus der Bash kommt die Meldung ebenfalls. Also immer beim dem ersten Start auf einem neu gebooteten System.

            Am Rande:
            Javascript Version 7.8.0
            node 18.17.1
            jscontroller 5.0.19

            H Thomas BraunT arteckA 3 Replies Last reply
            0
            • H hschief

              @ofbeqnpolkkl6mby5e13
              Ich muss ehrlicher Weise gestehen, dass ich die Antwort nicht verstehe. Ich habe halt mehrere scripts mit einer Cron Anweisung die beim Systemstart ... und nur bei dem Systemstart diese Meldung auslösen.

              Ich habe ebenfalls schonmal den Iobroker 2 Minuten zeitversetzt gestartet, auch in diesem Fall kommt die Meldung.

              Nochmal weiter getestet. Wenn ich den IOBroker beim dem Systemstart nicht automatisch starten, sondern von Hand aus der Bash kommt die Meldung ebenfalls. Also immer beim dem ersten Start auf einem neu gebooteten System.

              Am Rande:
              Javascript Version 7.8.0
              node 18.17.1
              jscontroller 5.0.19

              H Offline
              H Offline
              hschief
              wrote on last edited by
              #6

              @hschief
              Ich habe nun mal folgendes Testscript angelegt

              function Test1() {
                  log('In Function','error');
                  //var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val;
                  //var currentConsumption = Math.round(6.94 * Modulation) / 10; // 1 Nachkommastelle
                  setState('0_userdata.0.Allgemein.TestBoot', 'test', false);
              };
               
              log('Script Test1 aufgerufen','error');
              schedule("*/10 * * * * *", Test1 );
              

              Im normalen Betrieb erhalte ich alle 10s nun die Meldung "In Function", wie es zu erwarten war.

              Beim Boot passtiert im Log aber Folgendes:
              Ich erhalte mehr als 1000 Einträge mir folgender Meldung
              2024-04-16 14:25:31.532 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.553 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.559 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.573 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.580 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.591 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.598 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.610 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.622 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.634 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
              2024-04-16 14:25:31.642 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function

              Könnte evtl. mal jemand versuchen dies bei sich nachzustellen? Wenn das Verhalten bei einer anderen Installation beim boot reproduzierbar ist, dann würde ich einen Fehlerbericht erstellen

              AsgothianA 1 Reply Last reply
              0
              • H hschief

                @ofbeqnpolkkl6mby5e13
                Ich muss ehrlicher Weise gestehen, dass ich die Antwort nicht verstehe. Ich habe halt mehrere scripts mit einer Cron Anweisung die beim Systemstart ... und nur bei dem Systemstart diese Meldung auslösen.

                Ich habe ebenfalls schonmal den Iobroker 2 Minuten zeitversetzt gestartet, auch in diesem Fall kommt die Meldung.

                Nochmal weiter getestet. Wenn ich den IOBroker beim dem Systemstart nicht automatisch starten, sondern von Hand aus der Bash kommt die Meldung ebenfalls. Also immer beim dem ersten Start auf einem neu gebooteten System.

                Am Rande:
                Javascript Version 7.8.0
                node 18.17.1
                jscontroller 5.0.19

                Thomas BraunT Online
                Thomas BraunT Online
                Thomas Braun
                Most Active
                wrote on last edited by
                #7

                @hschief sagte in maximum of 1000 setState during boot:

                node 18.17.1

                Zu alt, updaten.

                iob nodejs-update
                

                Wenn das nicht funktioniert

                iob stop
                iob fix
                

                und dann nochmal nodejs-update.

                Linux-Werkzeugkasten:
                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                NodeJS Fixer Skript:
                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                H 1 Reply Last reply
                0
                • H hschief

                  @ofbeqnpolkkl6mby5e13
                  Ich muss ehrlicher Weise gestehen, dass ich die Antwort nicht verstehe. Ich habe halt mehrere scripts mit einer Cron Anweisung die beim Systemstart ... und nur bei dem Systemstart diese Meldung auslösen.

                  Ich habe ebenfalls schonmal den Iobroker 2 Minuten zeitversetzt gestartet, auch in diesem Fall kommt die Meldung.

                  Nochmal weiter getestet. Wenn ich den IOBroker beim dem Systemstart nicht automatisch starten, sondern von Hand aus der Bash kommt die Meldung ebenfalls. Also immer beim dem ersten Start auf einem neu gebooteten System.

                  Am Rande:
                  Javascript Version 7.8.0
                  node 18.17.1
                  jscontroller 5.0.19

                  arteckA Offline
                  arteckA Offline
                  arteck
                  Developer Most Active
                  wrote on last edited by arteck
                  #8

                  @hschief die 2 höher setzten
                  302732fe-a79c-4a0b-ae50-a52768c9b92b-grafik.png

                  das ist eine Sicherheitseinstellung damit der iobroker nbicht stehenbeleibt wenn javascript adapter einen von dir erzeugten Fehler hat (dauerschleife)

                  aber wozu fragt man alle 10 sek den dp ab.. ?? das ist doch der Verbrauch oder ?

                  trigger mal auf dessen Änderung von diesem .. lass allgemein die finger von cronjobs..

                  on({id: 'ems-esp.0.heatSources.hs1.curburnpow', change: "any"}, function (obj) { 
                      let currentConsumption = Math.round(6.94 * obj.state.val) / 10; // 1 Nachkommastelle
                      setState('0_userdata.0.Technik.Heizung.24hVerbrauch', currentConsumption, true);
                  });
                  

                  zigbee hab ich, zwave auch, nuc's genauso und HA auch

                  David G.D H 2 Replies Last reply
                  0
                  • arteckA arteck

                    @hschief die 2 höher setzten
                    302732fe-a79c-4a0b-ae50-a52768c9b92b-grafik.png

                    das ist eine Sicherheitseinstellung damit der iobroker nbicht stehenbeleibt wenn javascript adapter einen von dir erzeugten Fehler hat (dauerschleife)

                    aber wozu fragt man alle 10 sek den dp ab.. ?? das ist doch der Verbrauch oder ?

                    trigger mal auf dessen Änderung von diesem .. lass allgemein die finger von cronjobs..

                    on({id: 'ems-esp.0.heatSources.hs1.curburnpow', change: "any"}, function (obj) { 
                        let currentConsumption = Math.round(6.94 * obj.state.val) / 10; // 1 Nachkommastelle
                        setState('0_userdata.0.Technik.Heizung.24hVerbrauch', currentConsumption, true);
                    });
                    
                    David G.D Online
                    David G.D Online
                    David G.
                    wrote on last edited by
                    #9

                    @arteck sagte in maximum of 1000 setState during boot:

                    lass allgemein die finger von cronjobs..

                    Warum denn das?
                    Gibt dich kaum einen Weg auf cron zu verzichten.
                    Im genannten Fall hier ja, aber noch nicht allgemein.

                    Zeigt eure Lovelace-Visualisierung klick
                    (Auch ideal um sich Anregungen zu holen)

                    Meine Tabellen für eure Visualisierung klick

                    W arteckA 2 Replies Last reply
                    0
                    • David G.D David G.

                      @arteck sagte in maximum of 1000 setState during boot:

                      lass allgemein die finger von cronjobs..

                      Warum denn das?
                      Gibt dich kaum einen Weg auf cron zu verzichten.
                      Im genannten Fall hier ja, aber noch nicht allgemein.

                      W Online
                      W Online
                      Wildbill
                      wrote on last edited by
                      #10

                      @david-g Vermutlich, weil CRON-Jobs gerne von unbedarfteren Usern, die (noch) nicht genau wissen, wie Javascript/Blockly funktioniert, um dann eben alle x Sekunden auf irgendwas zu prüfen, anstatt einfach einen passenden Trigger zu verwenden.

                      Ja, CRON hat seine Berechtigung, auch innerhalb von Scripten, wo es Sinn macht. Aber das System mit zig CRON-Jobs zuzuballern, nur um Datenpunkte zu überprüfen ist eben genau der falsche Weg.

                      Ich denke @arteck hat das genau in diese Richtung gedacht.

                      Gruss, Jürgen

                      1 Reply Last reply
                      1
                      • David G.D David G.

                        @arteck sagte in maximum of 1000 setState during boot:

                        lass allgemein die finger von cronjobs..

                        Warum denn das?
                        Gibt dich kaum einen Weg auf cron zu verzichten.
                        Im genannten Fall hier ja, aber noch nicht allgemein.

                        arteckA Offline
                        arteckA Offline
                        arteck
                        Developer Most Active
                        wrote on last edited by arteck
                        #11

                        @david-g sagte in maximum of 1000 setState during boot:

                        Gibt dich kaum einen Weg auf cron zu verzichten.

                        gib mir ein Beispiel wo es nicht geht .. im Sekundenbereich
                        wir reden nicht von letzte Werte speichern. am Tagesende.. oder starte um X Uhr
                        sondern von einem ständig wiederkehrenden schedule im sekunden/minuten Bereich

                        Im genannten Fall hier ja, aber noch nicht allgemein.

                        es gibt Fälle ja.. aber meistens regeirt man auf einen Trigger(eine Wertänderung) und nicht auf ein loop(alle x sekunden noch dazu)..

                        @hschief und wozu der doppelpost
                        https://forum.iobroker.net/topic/74144/problem-during-boot-with-schedule-command-in-the-script

                        zigbee hab ich, zwave auch, nuc's genauso und HA auch

                        H 1 Reply Last reply
                        0
                        • H hschief

                          @hschief
                          Ich habe nun mal folgendes Testscript angelegt

                          function Test1() {
                              log('In Function','error');
                              //var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val;
                              //var currentConsumption = Math.round(6.94 * Modulation) / 10; // 1 Nachkommastelle
                              setState('0_userdata.0.Allgemein.TestBoot', 'test', false);
                          };
                           
                          log('Script Test1 aufgerufen','error');
                          schedule("*/10 * * * * *", Test1 );
                          

                          Im normalen Betrieb erhalte ich alle 10s nun die Meldung "In Function", wie es zu erwarten war.

                          Beim Boot passtiert im Log aber Folgendes:
                          Ich erhalte mehr als 1000 Einträge mir folgender Meldung
                          2024-04-16 14:25:31.532 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.553 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.559 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.573 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.580 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.591 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.598 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.610 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.622 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.634 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.642 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function

                          Könnte evtl. mal jemand versuchen dies bei sich nachzustellen? Wenn das Verhalten bei einer anderen Installation beim boot reproduzierbar ist, dann würde ich einen Fehlerbericht erstellen

                          AsgothianA Offline
                          AsgothianA Offline
                          Asgothian
                          Developer
                          wrote on last edited by Asgothian
                          #12

                          @hschief sagte in maximum of 1000 setState during boot:

                          @hschief
                          Ich habe nun mal folgendes Testscript angelegt

                          function Test1() {
                              log('In Function','error');
                              //var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val;
                              //var currentConsumption = Math.round(6.94 * Modulation) / 10; // 1 Nachkommastelle
                              setState('0_userdata.0.Allgemein.TestBoot', 'test', false);
                          };
                           
                          log('Script Test1 aufgerufen','error');
                          schedule("*/10 * * * * *", Test1 );
                          

                          Im normalen Betrieb erhalte ich alle 10s nun die Meldung "In Function", wie es zu erwarten war.

                          Beim Boot passtiert im Log aber Folgendes:
                          Ich erhalte mehr als 1000 Einträge mir folgender Meldung
                          2024-04-16 14:25:31.532 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.553 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.559 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.573 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.580 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.591 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.598 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.610 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.622 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.634 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                          2024-04-16 14:25:31.642 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function

                          Könnte evtl. mal jemand versuchen dies bei sich nachzustellen? Wenn das Verhalten bei einer anderen Installation beim boot reproduzierbar ist, dann würde ich einen Fehlerbericht erstellen

                          Poste doch bitte auch 1 mal die vollständige Fehlermeldung. Der interessante Teil ist bei deinem Post abgeschnitten.

                          A.

                          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                          H 1 Reply Last reply
                          0
                          • arteckA arteck

                            @hschief die 2 höher setzten
                            302732fe-a79c-4a0b-ae50-a52768c9b92b-grafik.png

                            das ist eine Sicherheitseinstellung damit der iobroker nbicht stehenbeleibt wenn javascript adapter einen von dir erzeugten Fehler hat (dauerschleife)

                            aber wozu fragt man alle 10 sek den dp ab.. ?? das ist doch der Verbrauch oder ?

                            trigger mal auf dessen Änderung von diesem .. lass allgemein die finger von cronjobs..

                            on({id: 'ems-esp.0.heatSources.hs1.curburnpow', change: "any"}, function (obj) { 
                                let currentConsumption = Math.round(6.94 * obj.state.val) / 10; // 1 Nachkommastelle
                                setState('0_userdata.0.Technik.Heizung.24hVerbrauch', currentConsumption, true);
                            });
                            
                            H Offline
                            H Offline
                            hschief
                            wrote on last edited by
                            #13

                            @arteck
                            Hi, erstmal vielen Dank für die Tipps, nach meiner Meinung macht eine Erhöhung hier keinen Sinn. Die setstates werden ja nur duch ein Fehlverhalten des schedules ausgelöst und dürften eigentlich gar nicht entstehen.
                            Da ich noch andere Dinge zyklisch prüfe (ja, ich kenne auch die Triggerfunkion), würde ich lieber die Ursache in dem Schedulerproblem finden.

                            Zu dem Verbrauchswert: Ja ich würde auch lieber den 24h Wert abprüfen, leider wird dieser aber von der Heizung nicht sauber geliefert... Frag mich nicht warum ... wäre dann ein andere Thread hier.

                            1 Reply Last reply
                            0
                            • arteckA arteck

                              @david-g sagte in maximum of 1000 setState during boot:

                              Gibt dich kaum einen Weg auf cron zu verzichten.

                              gib mir ein Beispiel wo es nicht geht .. im Sekundenbereich
                              wir reden nicht von letzte Werte speichern. am Tagesende.. oder starte um X Uhr
                              sondern von einem ständig wiederkehrenden schedule im sekunden/minuten Bereich

                              Im genannten Fall hier ja, aber noch nicht allgemein.

                              es gibt Fälle ja.. aber meistens regeirt man auf einen Trigger(eine Wertänderung) und nicht auf ein loop(alle x sekunden noch dazu)..

                              @hschief und wozu der doppelpost
                              https://forum.iobroker.net/topic/74144/problem-during-boot-with-schedule-command-in-the-script

                              H Offline
                              H Offline
                              hschief
                              wrote on last edited by
                              #14

                              @arteck
                              .. ja, gerne ein Beispiel... ich habe einen Datenpunkt der liefert im Sekundenbereich Telegramme von den Kollektoren, da möchte ich überhaupt nicht im Sekundenbereich Aktoren steuern sondern eher gleitend regeln. Zb. im Minutenbereich.. Bei PID Reglern wäre dies dann die einstellbare Delta-T Regelung.

                              Ich sehe mir im nächsten Schritt gerne das mit dem Node-JS upgrade an.. generell finde ich es aber interessant wie Diskussionen von der eigentlichen Fragestellung abdrifften ... denn dies war ja ... warum verhalten sich die Schedule Jobs beim Boot falsch.

                              mcm1957M 1 Reply Last reply
                              1
                              • H hschief

                                @arteck
                                .. ja, gerne ein Beispiel... ich habe einen Datenpunkt der liefert im Sekundenbereich Telegramme von den Kollektoren, da möchte ich überhaupt nicht im Sekundenbereich Aktoren steuern sondern eher gleitend regeln. Zb. im Minutenbereich.. Bei PID Reglern wäre dies dann die einstellbare Delta-T Regelung.

                                Ich sehe mir im nächsten Schritt gerne das mit dem Node-JS upgrade an.. generell finde ich es aber interessant wie Diskussionen von der eigentlichen Fragestellung abdrifften ... denn dies war ja ... warum verhalten sich die Schedule Jobs beim Boot falsch.

                                mcm1957M Online
                                mcm1957M Online
                                mcm1957
                                wrote on last edited by mcm1957
                                #15

                                @arteck

                                Ich möcht nur kurz den Fokus drauf richten, dass das eigentliche Problem ist, dass scheinbar nur beim booten das Limit von 1000 setStates / Minute überschritten wird obwohl die Croneinstellung deutlich weniger setStates auslösen sollte. Alle 10s eine Abfrage sind nur 6 setStates / Minute.

                                Ob Cron nun sinnvoll ist oder nicht ist durchaus eine berechtigte Diskussion - aber das Problem erklärt das mal nicht. Entweder funktioniert Cron nicht richtig beim Startup oder die Limitberechnung funktioniert nicht oder irgendwas (aber was?) führt wirklich mehr als 1000/min setStates aus. Und diese Frage sollte m.E. geklärt werden.

                                (Alle 10s eine Abfrage sind nur 6 setStates / Minute)

                                Leider hab ich zum eigentlichen Problem keine Idee was da abgeht. @haus-automatisierung fällt dir da was dazu ein?

                                Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                Support Repositoryverwaltung.

                                Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                LESEN - gute Forenbeitrage

                                haus-automatisierungH 1 Reply Last reply
                                0
                                • AsgothianA Asgothian

                                  @hschief sagte in maximum of 1000 setState during boot:

                                  @hschief
                                  Ich habe nun mal folgendes Testscript angelegt

                                  function Test1() {
                                      log('In Function','error');
                                      //var Modulation = getState('ems-esp.0.heatSources.hs1.curburnpow').val;
                                      //var currentConsumption = Math.round(6.94 * Modulation) / 10; // 1 Nachkommastelle
                                      setState('0_userdata.0.Allgemein.TestBoot', 'test', false);
                                  };
                                   
                                  log('Script Test1 aufgerufen','error');
                                  schedule("*/10 * * * * *", Test1 );
                                  

                                  Im normalen Betrieb erhalte ich alle 10s nun die Meldung "In Function", wie es zu erwarten war.

                                  Beim Boot passtiert im Log aber Folgendes:
                                  Ich erhalte mehr als 1000 Einträge mir folgender Meldung
                                  2024-04-16 14:25:31.532 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.553 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.559 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.573 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.580 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.591 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.598 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.610 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.622 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.634 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function
                                  2024-04-16 14:25:31.642 - error: javascript.0 (726) script.js.Technik.Heizung.BootTestScript: In Function

                                  Könnte evtl. mal jemand versuchen dies bei sich nachzustellen? Wenn das Verhalten bei einer anderen Installation beim boot reproduzierbar ist, dann würde ich einen Fehlerbericht erstellen

                                  Poste doch bitte auch 1 mal die vollständige Fehlermeldung. Der interessante Teil ist bei deinem Post abgeschnitten.

                                  A.

                                  H Offline
                                  H Offline
                                  hschief
                                  wrote on last edited by
                                  #16

                                  @asgothian
                                  Hi, nun zu der Fehlermeldung ... sorry, ja dies ist im Text missvertständlich ausgedrückt. Ich hatte ein kleines Testscript gebaut, bei dem einfach nur alle 10s über die LogDirective die Meldung: in Function ausgegeben wird.

                                  Es gibt leider keine Fehlermeldung ausser maximum 1000 setstate reached. Die Meldungen die zu sehen sind, sind die Ausgaben des Scripts, die eigentlich ja nur 6x Minute erscheinen dürfen.

                                  1 Reply Last reply
                                  0
                                  • Thomas BraunT Thomas Braun

                                    @hschief sagte in maximum of 1000 setState during boot:

                                    node 18.17.1

                                    Zu alt, updaten.

                                    iob nodejs-update
                                    

                                    Wenn das nicht funktioniert

                                    iob stop
                                    iob fix
                                    

                                    und dann nochmal nodejs-update.

                                    H Offline
                                    H Offline
                                    hschief
                                    wrote on last edited by
                                    #17

                                    @thomas-braun said in maximum of 1000 setState during boot:

                                    iob nodejs-update

                                    Update durchgeführt, aktuelle Version ist jetzt: v.18.20.2, Fehler ist aber auch nach dem Update da.

                                    Noch eine zusätzliche Info, wenn ich nach dem start des IOBrokers ein
                                    iobroker restart javascript.0 läuft alles sauber.

                                    Evtl. braucht der JavaScript Adapter andere Dienste die zu diesem Zeitpunkt noch nicht verfügbar sind ... nur eine Idee.

                                    paul53P mcm1957M HomoranH 3 Replies Last reply
                                    0
                                    • H hschief

                                      @thomas-braun said in maximum of 1000 setState during boot:

                                      iob nodejs-update

                                      Update durchgeführt, aktuelle Version ist jetzt: v.18.20.2, Fehler ist aber auch nach dem Update da.

                                      Noch eine zusätzliche Info, wenn ich nach dem start des IOBrokers ein
                                      iobroker restart javascript.0 läuft alles sauber.

                                      Evtl. braucht der JavaScript Adapter andere Dienste die zu diesem Zeitpunkt noch nicht verfügbar sind ... nur eine Idee.

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      wrote on last edited by
                                      #18

                                      @hschief sagte: Evtl. braucht der JavaScript Adapter andere Dienste die zu diesem Zeitpunkt noch nicht verfügbar sind ... nur eine Idee.

                                      Dann starte mal den schedule() mit einigen Sekunden Verzögerung.

                                      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

                                      1 Reply Last reply
                                      0
                                      • H hschief

                                        @thomas-braun said in maximum of 1000 setState during boot:

                                        iob nodejs-update

                                        Update durchgeführt, aktuelle Version ist jetzt: v.18.20.2, Fehler ist aber auch nach dem Update da.

                                        Noch eine zusätzliche Info, wenn ich nach dem start des IOBrokers ein
                                        iobroker restart javascript.0 läuft alles sauber.

                                        Evtl. braucht der JavaScript Adapter andere Dienste die zu diesem Zeitpunkt noch nicht verfügbar sind ... nur eine Idee.

                                        mcm1957M Online
                                        mcm1957M Online
                                        mcm1957
                                        wrote on last edited by
                                        #19

                                        @hschief
                                        Falls hier keine Lösung kommt oder wenn klar ist was passiert und das nicht als eh klar zu klassifizieren ist , erstell bitte jedenfalls ein Issue beim Javascript Adapter. Weil so ganz erklärbar ist das Verhaltend derzeit nicht. Und auch wenn ein Startverzögerung der Problem beheben sollte, rege ich an zu prüfen ob die nicht dann gleich zentral im Adapter erfolgen sollte. Das mjuss sich aber jemand ansehen der den Adapter in und auswendig kennt...

                                        Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                        Support Repositoryverwaltung.

                                        Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                        LESEN - gute Forenbeitrage

                                        P H 2 Replies Last reply
                                        0
                                        • mcm1957M mcm1957

                                          @hschief
                                          Falls hier keine Lösung kommt oder wenn klar ist was passiert und das nicht als eh klar zu klassifizieren ist , erstell bitte jedenfalls ein Issue beim Javascript Adapter. Weil so ganz erklärbar ist das Verhaltend derzeit nicht. Und auch wenn ein Startverzögerung der Problem beheben sollte, rege ich an zu prüfen ob die nicht dann gleich zentral im Adapter erfolgen sollte. Das mjuss sich aber jemand ansehen der den Adapter in und auswendig kennt...

                                          P Offline
                                          P Offline
                                          peterfido
                                          wrote on last edited by
                                          #20

                                          Vielleicht sollte beim Testskript der Zeitstempel geschrieben werden. So könnte man sehen, ob Cron evtl. "denkt", dass es da noch einige Auslösungen in Verzug hat, falls Cron überhaupt "verpasste" Einsätze nachholt.

                                          Gruß

                                          Peterfido


                                          Proxmox auf Intel NUC12WSHi5
                                          ioBroker: Debian (VM)
                                          CCU: Debmatic (VM)
                                          Influx: Debian (VM)
                                          Grafana: Debian (VM)
                                          eBus: Debian (VM)
                                          Zigbee: Debian (VM) mit zigbee2mqtt

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          686

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe