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

                        783
                        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