Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Nach Nodejs 22 Update - Adapter nicht updatefähig

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Nach Nodejs 22 Update - Adapter nicht updatefähig

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

      @ticaki sagte in Nach Nodejs 22 Update - Adapter nicht updatefähig:

      Frag mich nicht wieso das was mit backitup zutun hat.

      Nichts direkt. Allerdings macht der Paketmanager npm nichts mehr, wenn da eine nicht auflösbare Konstellation auftaucht.
      Also Trouble bei yahaka verhindert ein Update von backitup (oder anderen Adaptern).

      T 1 Reply Last reply Reply Quote 0
      • ?
        A Former User @ticaki last edited by

        @ticaki

        Downgrade Yahka auf die 1.0.3 und es läuft unter node 22

        M 1 Reply Last reply Reply Quote 0
        • M
          MCU @Guest last edited by MCU

          Fazit?

          Wenn ein Adapter nicht für die aktuelle Nodejs Version (hier:22) aktuell gehalten wird, kann man ioBroker-Adapter nicht mehr updaten?
          Der nicht korrekte Adapter muss dann deinstalliert werden!
          

          Habe es mal bei chatGPT eingegeben:

          ⚙️ Warum schlägt ein einzelnes Adapter-Upgrade unter Node.js 22 fehl?
          📦 Hintergrund: Node.js + native Module
          Viele ioBroker-Adapter (z. B. modbus, zigbee, mqtt, shelly) nutzen sogenannte native Node-Module (geschriebene C++-Addons). Diese Module sind kompiliert gegen eine bestimmte Node-ABI-Version, z. B. für Node.js 18 oder 20.

          Wenn du ein Adapter-Update machst, dann passiert:

          ioBroker nutzt npm → installiert Adapter inkl. package.json

          npm prüft automatisch:

          alle Abhängigkeiten

          ob native Addons kompiliert werden müssen

          Ist ein Abhängigkeitsmodul nicht kompatibel mit Node.js 22 → npm install schlägt fehl → Adapter-Update komplett abgebrochen

          Und dabei prüft npm nicht nur das Zielmodul, sondern auch die Abhängigkeiten des gesamten Adapter-Trees, inklusive aller peer dependencies oder optionals.

          💥 Typisches Beispiel:
          Du willst hm-rega updaten, aber:

          ein indirektes Abhängigkeitsmodul wie node-serialport ist noch nicht kompatibel mit Node.js 22

          npm kann es nicht bauen → npm install schlägt komplett fehl → Adapter wird nicht aktualisiert

          🔐 Warum kann ioBroker das nicht umgehen?
          ioBroker selbst verwendet keine eigene Abhängigkeitsverwaltung – er nutzt npm install nativ. Das ist gewollt, da ioBroker-Adapter auf package.json-Basis gepflegt werden.

          Der Update-Prozess ist also immer so etwas wie:

          cd /opt/iobroker/node_modules/iobroker.adaptername
          npm install iobroker.adaptername@latest
          

          Wenn das fehlschlägt (egal bei welchem Modul), stoppt der gesamte Update-Prozess.

          🧩 Lösungsideen (theoretisch):
          📦 Adapter in isolierte Container packen (→ wäre Overhead)

          💡 Adapter einzeln in eigene node_modules-Kontexte installieren (aber npm unterstützt das nicht gut)

          🛠 iobroker könnte ein eigenes Paketmanagement nutzen (aber aktuell zu aufwendig)

          EDIT
          Da wäre dann die Frage, kann man das vorher durch einen Befehl prüfen lassen , bevor man das nodejs-update macht?

          Bzw. Info an die Entwickler immer nur >={letzte geprüfte Nodejs-Version} in der packgae.json zu verwenden und nicht spezielle Angaben =20 || = 22.

          1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @MCU last edited by

            @mcu

            npm error notsup Required: {"node":"^18 || ^20"}

            Das bedeutet halt es ist nur 18 oder 20 zulässig.
            Sonst nix

            M 1 Reply Last reply Reply Quote 0
            • M
              MCU @OliverIO last edited by MCU

              @oliverio Wäre ja auch für einen Adapter (hier: ring) dann ok. Aber das dadurch auch das Update für andere Adapter scheitert, ist mir neu.

              EDIT
              Bedeutet dann, wenn die Abhängigkeiten aller genutzten Adapter nicht gepflegt wird, mit deren genutzten Abhängigkeiten, APIs usw., kann man ioBroker, in der ,für jeden unterschiedlichen, Ausprägung, nicht mehr komplett nutzen.

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @MCU last edited by

                @mcu
                Wir hatten da letztens schon einen komischen Fall. Ich glaube das was @ticaki erwähnte. Das müsste sich mal jemand anschauen der viel Ahnung von npm hat.

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

                  @oliverio sagte in Nach Nodejs 22 Update - Adapter nicht updatefähig:

                  @mcu
                  Wir hatten da letztens schon einen komischen Fall. Ich glaube das was @ticaki erwähnte. Das müsste sich mal jemand anschauen der viel Ahnung von npm hat.

                  muss mal suchen, wenn es interessiert.
                  @thomas-braun hatte sich da durch die npm Abhängigkeiten durchgekämpft

                  1 Reply Last reply Reply Quote 0
                  • T
                    ticaki Developer @OliverIO last edited by

                    @oliverio sagte in Nach Nodejs 22 Update - Adapter nicht updatefähig:

                    @mcu
                    Wir hatten da letztens schon einen komischen Fall. Ich glaube das was @ticaki erwähnte. Das müsste sich mal jemand anschauen der viel Ahnung von npm hat.

                    Ja das war ich, der das ansprochen hatte. Ist halt blöd das man nicht sofort beim nodejs-update eine Fehlermeldung bekommt, sondern irgendwann später mal.

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

                      @ticaki sagte in Nach Nodejs 22 Update - Adapter nicht updatefähig:

                      Ist halt blöd das man nicht sofort beim nodejs-update eine Fehlermeldung bekommt, sondern irgendwann später mal.

                      Im aktuellen Code (aber noch nicht released) ist zumindest ein rudimentärer Check drin.
                      Da wird nach dem nodejs-Ugrade ein

                      cd /opt/iobroker
                      npm i --dry-run
                      

                      ausgeführt und Fehler/Inkompaibilitäten werden dann ausgespuckt. Sieht dann im günstigsten Fall so aus:

                      echad@chet:/opt/iobroker $ npm i --dry-run
                      
                      up to date in 6s
                      
                      248 packages are looking for funding
                        run `npm fund` for details
                      echad@chet:/opt/iobroker $ 
                      

                      Im ungünstigen Fall kannst du eine ellenlange Liste mit Meldungen bekommen.

                      1 Reply Last reply Reply Quote 2
                      • T
                        ticaki Developer @Thomas Braun last edited by

                        @thomas-braun sagte in Nach Nodejs 22 Update - Adapter nicht updatefähig:

                        @ticaki sagte in Nach Nodejs 22 Update - Adapter nicht updatefähig:

                        Frag mich nicht wieso das was mit backitup zutun hat.

                        Nichts direkt. Allerdings macht der Paketmanager npm nichts mehr, wenn da eine nicht auflösbare Konstellation auftaucht.
                        Also Trouble bei yahaka verhindert ein Update von backitup (oder anderen Adaptern).

                        Nur zur Klarstellung - ich konnte damals noch pakete aktualisieren erst bei Backitup ist es dann nicht mehr gegangen - Apollon hat das mit Magie, Wetter, Sternenkonstellation erklärt ^^

                        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

                        855
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        6
                        21
                        477
                        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