Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Error i2c adapter after upgrade of node.js version 22

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    Error i2c adapter after upgrade of node.js version 22

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active @hschief last edited by

      @hschief sagte in Error i2c adapter after upgrade of node.js version 22:

      Alle Aktivitäten führe ich als user: iobroker aus.

      Ist so nicht vorgesehen, leg dir einen User abseits davon an. Oder log dich als user mit der UID=1000 ein. Den gibt es ja laut Log.

      A default user should be created! This user will be enabled to temporarily switch to root via 'sudo'!
      A root login is not required in most Linux Distributions.
      Run 'iobroker fix' or use the system tools to create a user.

      Was ist denn da los?

      *** FAILED SERVICES ***
      UNIT LOAD ACTIVE SUB DESCRIPTION

      • snmpd.service loaded failed failed Simple Network Management Protocol (SNMP) Daemon.

      Und lösch da nix eigenhändig aus den Ausgaben raus. Auch keine IP-Adressen, mit privaten Adressen kann eh niemand was 'böses' anfangen. Man kann aber ggfls. Fehlkonfigurationen sehen.

      Dies ist im iob diag nicht zu finden, da der diag wohl nur die letzten 25 Zeilen aus dem Log holt.

      Dann liefer die Ausgabe aus dem vollen Log. Findet sich unter

      iob logs
      

      Ich würde den Adapter mal komplett deinstallieren und dann neu draufwerfen.

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

        @hschief sagte in Error i2c adapter after upgrade of node.js version 22:

        macht dies ein Admin?

        hab ich, du kannst das nicht.

        @hschief sagte in Error i2c adapter after upgrade of node.js version 22:

        Liegt dies daran, dass ich neu im Forum bin?

        nein, liegt an deinem Browser. Neu laden mit F5 und es geht sofort

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

          @thomas-braun .. dann mache ich das morgen nochmals um den vollen Log zu kopieren. Wenn ich den Adapter löschen und neu installieren, verliere ich aber die komplette I2C config richtig? Das sind rund 40 Devices, gibt es eine einfache Möglichkeit die Config zu retten?

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

            @hschief sagte in Error i2c adapter after upgrade of node.js version 22:

            gibt es eine einfache Möglichkeit die Config zu retten?

            üblicherweise gibt es in der Instanzenkonfiguration einen Button dafür.

            ich habe den Adapter nicht.

            EDIT:
            2 Buttons! Sorry!
            Screenshot_20250930-160413_Firefox.jpg

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

              @hschief said in Error i2c adapter after upgrade of node.js version 22:

              @thomas-braun .. dann mache ich das morgen nochmals um den vollen Log zu kopieren. Wenn ich den Adapter löschen und neu installieren, verliere ich aber die komplette I2C config richtig? Das sind rund 40 Devices, gibt es eine einfache Möglichkeit die Config zu retten?

              Wenn du den Adapter NICHT löschst sondern nur REINSTALLIERST dann bleibt die Config meines Wissens nach erhalten. Sicher die Konfiguration aber jedenfalls. Reinstallation sollte passieren wenn du auf der Commandline iob url iobroker.i2c@<version> mit der derzeit installierten Version eintipselst. Bei einer Reinstallation erden nur die Codeteile entfernt und neu installiert.

              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @mcm1957 last edited by

                @mcm1957

                Alternativ:

                iob upgrade iobroker.i2c@AKTUELLE_VERSION
                
                H 1 Reply Last reply Reply Quote 1
                • H
                  hschief @Thomas Braun last edited by

                  @thomas-braun Vielen Dank, ich probiere und melde mich, wird wahrscheinlich am Feiertag passieren. Danke euch allen.

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

                    @hschief So, habe gerade nochmal 2 Dinge probiert. Einfach drüber installieren mit iob url iobroker.i2c@1.2.1 zeigt leider das gleiche Ergebnis/gleicher Fehler

                    Dann habe ich noch node-gyp installiert, mich auf den folder /opt/iobroker/node_modules/i2c-bus/ gesetzt und node-gyp rebuild ausgeführt (war ja etwas weiter oben aufgelistet, keine Ahnung was das macht) Wenn ich das Kommando ausführe, kommen folgende Meldungen: Vielleicht kann einer damit was anfangen. Im nächsten Schritt werde ich den Adapter morgen mal komplett deinstallieren und neu installieren.

                    iobroker@node0:/opt/iobroker/node_modules/i2c-bus $ node-gyp rebuild
                    gyp info it worked if it ends with ok
                    gyp info using node-gyp@11.4.2
                    gyp info using node@22.20.0 | linux | arm64
                    gyp info find Python using Python version 3.11.2 found at "/usr/bin/python3"
                    
                    gyp info spawn /usr/bin/python3
                    gyp info spawn args [
                    gyp info spawn args '/usr/lib/node_modules/node-gyp/gyp/gyp_main.py',
                    gyp info spawn args 'binding.gyp',
                    gyp info spawn args '-f',
                    gyp info spawn args 'make',
                    gyp info spawn args '-I',
                    gyp info spawn args '/opt/iobroker/node_modules/i2c-bus/build/config.gypi',
                    gyp info spawn args '-I',
                    gyp info spawn args '/usr/lib/node_modules/node-gyp/addon.gypi',
                    gyp info spawn args '-I',
                    gyp info spawn args '/home/iobroker/.cache/node-gyp/22.20.0/include/node/common.gypi',
                    gyp info spawn args '-Dlibrary=shared_library',
                    gyp info spawn args '-Dvisibility=default',
                    gyp info spawn args '-Dnode_root_dir=/home/iobroker/.cache/node-gyp/22.20.0',
                    gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/node-gyp',
                    gyp info spawn args '-Dnode_lib_file=/home/iobroker/.cache/node-gyp/22.20.0/<(target_arch)/node.lib',
                    gyp info spawn args '-Dmodule_root_dir=/opt/iobroker/node_modules/i2c-bus',
                    gyp info spawn args '-Dnode_engine=v8',
                    gyp info spawn args '--depth=.',
                    gyp info spawn args '--no-parallel',
                    gyp info spawn args '--generator-output',
                    gyp info spawn args 'build',
                    gyp info spawn args '-Goutput_dir=.'
                    gyp info spawn args ]
                    gyp info spawn make
                    gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
                    make: Entering directory '/opt/iobroker/node_modules/i2c-bus/build'
                      CXX(target) Release/obj.target/i2c/src/i2c.o
                    In file included from ../src/i2c.cc:2:
                    ../../nan/nan.h: In function ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, GetterCallback, SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute, imp::Sig)’:
                    ../../nan/nan.h:2548:19: error: no matching function for call to ‘v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>&, void (*&)(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>&), void (*&)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&), v8::Local<v8::Object>&, v8::AccessControl&, v8::PropertyAttribute&)’
                     2548 |   tpl->SetAccessor(
                          |   ~~~~~~~~~~~~~~~~^
                     2549 |       name
                          |       ~~~~         
                     2550 |     , getter_
                          |     ~~~~~~~~~      
                     2551 |     , setter_
                          |     ~~~~~~~~~      
                     2552 |     , obj
                          |     ~~~~~          
                     2553 |     , settings
                          |     ~~~~~~~~~~     
                     2554 |     , attribute
                          |     ~~~~~~~~~~~    
                     2555 | #if (NODE_MODULE_VERSION < NODE_16_0_MODULE_VERSION)
                          | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     2556 |     , signature
                          |     ~~~~~~~~~~~    
                     2557 | #endif
                          | ~~~~~~             
                     2558 |   );
                          |   ~                
                    In file included from /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-function.h:15,
                                     from /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8.h:33,
                                     from /home/iobroker/.cache/node-gyp/22.20.0/include/node/node.h:74,
                                     from ../src/i2c.cc:1:
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1049:8: note: candidate: ‘void v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
                     1049 |   void SetAccessor(
                          |        ^~~~~~~~~~~
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1052:61: note:   no known conversion for argument 5 from ‘v8::AccessControl’ to ‘v8::PropertyAttribute’
                     1052 |       Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
                          |                                           ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1055:8: note: candidate: ‘void v8::ObjectTemplate::SetAccessor(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
                     1055 |   void SetAccessor(
                          |        ^~~~~~~~~~~
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1058:61: note:   no known conversion for argument 5 from ‘v8::AccessControl’ to ‘v8::PropertyAttribute’
                     1058 |       Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
                          |                                           ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
                    ../../nan/nan.h: In function ‘void Nan::SetAccessor(v8::Local<v8::ObjectTemplate>, v8::Local<v8::String>, GetterCallback, SetterCallback, v8::Local<v8::Value>, v8::AccessControl, v8::PropertyAttribute)’:
                    ../../nan/nan.h:2594:19: error: no matching function for call to ‘v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>&, void (*&)(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>&), void (*&)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&), v8::Local<v8::Object>&, v8::AccessControl&, v8::PropertyAttribute&)’
                     2594 |   tpl->SetAccessor(
                          |   ~~~~~~~~~~~~~~~~^
                     2595 |       name
                          |       ~~~~         
                     2596 |     , getter_
                          |     ~~~~~~~~~      
                     2597 |     , setter_
                          |     ~~~~~~~~~      
                     2598 |     , obj
                          |     ~~~~~          
                     2599 |     , settings
                          |     ~~~~~~~~~~     
                     2600 |     , attribute
                          |     ~~~~~~~~~~~    
                     2601 |   );
                          |   ~                
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1049:8: note: candidate: ‘void v8::ObjectTemplate::SetAccessor(v8::Local<v8::String>, v8::AccessorGetterCallback, v8::AccessorSetterCallback, v8::Local<v8::Value>, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
                     1049 |   void SetAccessor(
                          |        ^~~~~~~~~~~
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1052:61: note:   no known conversion for argument 5 from ‘v8::AccessControl’ to ‘v8::PropertyAttribute’
                     1052 |       Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
                          |                                           ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1055:8: note: candidate: ‘void v8::ObjectTemplate::SetAccessor(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
                     1055 |   void SetAccessor(
                          |        ^~~~~~~~~~~
                    /home/iobroker/.cache/node-gyp/22.20.0/include/node/v8-template.h:1058:61: note:   no known conversion for argument 5 from ‘v8::AccessControl’ to ‘v8::PropertyAttribute’
                     1058 |       Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
                          |                                           ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
                    make: *** [i2c.target.mk:112: Release/obj.target/i2c/src/i2c.o] Error 1
                    make: Leaving directory '/opt/iobroker/node_modules/i2c-bus/build'
                    gyp ERR! build error 
                    gyp ERR! stack Error: `make` failed with exit code: 2
                    gyp ERR! stack at ChildProcess.<anonymous> (/usr/lib/node_modules/node-gyp/lib/build.js:219:23)
                    gyp ERR! System Linux 6.12.47+rpt-rpi-v8
                    gyp ERR! command "/usr/bin/node" "/usr/bin/node-gyp" "rebuild"
                    gyp ERR! cwd /opt/iobroker/node_modules/i2c-bus
                    gyp ERR! node -v v22.20.0
                    gyp ERR! node-gyp -v v11.4.2
                    gyp ERR! not ok 
                    iobroker@node0:/opt/iobroker/node_modules/i2c-bus $ 
                    
                    
                    Thomas Braun 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @hschief last edited by

                      @hschief

                      Warum nicht mit dem Befehl von mir?

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

                        @thomas-braun Hi, der node-gyp rebuild war doch von Dir. Ich habe nur das "add i2c" nicht gemacht, da der Adapter ja schon da ist. Somit hatte ich die Hoffnung das dies reicht.

                        Ich habe gerade eben den Fehler auch mal einfach ChatGPT vorgeworfen und da kam eine recht interessante Antwort zurück:

                        Die SetAccessor-Funktion in v8 hat sich mit Node.js 22 stark geändert.
                        nan versucht, einen alten Funktionsaufruf zu verwenden, der in Node 22 nicht mehr kompatibel ist.
                        Konkret: v8::ObjectTemplate::SetAccessor akzeptiert jetzt kein v8::AccessControl mehr; nur noch PropertyAttribute und SideEffectType.

                        Ich bin daher verblüft, dass dies bei Dir unter Node22 läuft. Ich suche morgen mal weiter .... Danke für deine Hilfe, hab ein tollen Abend

                        Thomas Braun 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @hschief last edited by Thomas Braun

                          @hschief

                          node-gyp rebuild war doch von Dir.

                          Das wüsste ich aber...

                          iob upgrade iobroker.i2c@AKTUELLE_VERSION
                          

                          war von mir

                          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

                          723
                          Online

                          32.2k
                          Users

                          80.8k
                          Topics

                          1.3m
                          Posts

                          4
                          21
                          243
                          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