NEWS
Nach Nodejs 22 Update - Adapter nicht updatefähig
-
-
-
Läuft doch...
-
@thomas-braun siehe oben
npm error code EBADENGINE
-
@thomas-braun Updateversuch auf der console
-
Bitte immer vollständige Ein- wie Ausgaben zeigen.
Und bitte auf die Spoiler verzichten, die Klickerei nervt. -
@thomas-braun Hab bei
iob upgrade
die anderen Adapter mit N nicht upgegradet`, nur bei backitup mit Y.Habe nochmal
iob stop iob fix
laufen lassen, dann
prox@iobrokerProd:~$ iob version backitup 3.3.0 prox@iobrokerProd:~$ iob upgrade backitup@3.3.3 This upgrade of "backitup" will introduce the following changes: ========================================================================== -> 3.3.3: Translation updated Fix Grafana Backup & Restore Docu updated dependencies updated -> 3.3.2: Base Topic for z2m Remote Backup added -> 3.3.1: Fix z2m Remote Backup ========================================================================== Would you like to upgrade backitup from @3.3.0 to @3.3.3 now? [(y)es, (n)o]: y Update backitup from @3.3.0 to @3.3.3 host.iobrokerProd Adapter "system.adapter.backitup.0" is stopped. NPM version: 10.9.2 Installing iobroker.backitup@3.3.3... (System call) Updating objects from io-package.json for adapter "backitup" with version "3.3.0" upload [96] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/asset-manifest.json asset-manifest.json application/json upload [90] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/assets/zigbee2mqtt-tDEKhm15.png assets/zigbee2mqtt-tDEKhm15.png image/png upload [80] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/custom/assets/ConfigCustomBackItUpSet__mf_v__runtimeInit__mf_v__-Cy0TQlfU.js custom/assets/ConfigCustomBackItUpSet__mf_v__runtimeInit__mf_v__-Cy0TQlfU.js application/javascript upload [70] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/custom/assets/emotion-serialize.esm-BUa21YfQ.js custom/assets/emotion-serialize.esm-BUa21YfQ.js application/javascript upload [60] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/custom/assets/index-DHRZ46WI.js custom/assets/index-DHRZ46WI.js application/javascript upload [50] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/custom/assets/virtualExposes-Bgb1mEhK.js custom/assets/virtualExposes-Bgb1mEhK.js application/javascript upload [40] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/custom/i18n/pt.json custom/i18n/pt.json application/json upload [30] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/history.jsonConfig.json5 history.jsonConfig.json5 application/json5 upload [20] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/i18n/uk/translations.json i18n/uk/translations.json application/json upload [19] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [18] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/influxdb.jsonConfig.json5 influxdb.jsonConfig.json5 application/json5 upload [17] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/iob.jsonConfig.json5 iob.jsonConfig.json5 application/json5 upload [16] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfig.json5 jsonConfig.json5 application/json5 upload [15] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/main.jsonConfig.json5 main.jsonConfig.json5 application/json5 upload [14] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/manifest.json manifest.json application/json upload [13] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/mysql.jsonConfig.json5 mysql.jsonConfig.json5 application/json5 upload [12] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/notifications.jsonConfig.json5 notifications.jsonConfig.json5 application/json5 upload [11] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/onedrive.jsonConfig.json5 onedrive.jsonConfig.json5 application/json5 upload [10] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/pgsql.jsonConfig.json5 pgsql.jsonConfig.json5 application/json5 upload [9] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/redis.jsonConfig.json5 redis.jsonConfig.json5 application/json5 upload [8] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/restore.jsonConfig.json5 restore.jsonConfig.json5 application/json5 upload [7] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/sqlite.jsonConfig.json5 sqlite.jsonConfig.json5 application/json5 upload [6] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/style.css style.css text/css upload [5] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/tab_m.css tab_m.css text/css upload [4] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/tab_m.html tab_m.html text/html upload [3] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/tab_m.js tab_m.js application/javascript upload [2] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/webdav.jsonConfig.json5 webdav.jsonConfig.json5 application/json5 upload [1] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/words.js words.js application/javascript upload [0] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/zigbee2mqtt.jsonConfig.json5 zigbee2mqtt.jsonConfig.json5 application/json5 host.iobrokerProd Adapter "system.adapter.backitup.0" is started prox@iobrokerProd:~$ iob version backitup 3.3.0
-
cd /opt/iobroker npm ls npm i --dry-run
-
@thomas-braun sagte in Nach Nodejs 22 Update - Adapter nicht updatefähig:
npm ls
prox@iobrokerProd:~$ cd /opt/iobroker prox@iobrokerProd:/opt/iobroker$ npm ls [sudo] password for prox: iobroker.inst@3.0.0 /opt/iobroker +-- @emnapi/runtime@1.3.1 extraneous +-- @iobroker-javascript.0/axios@npm:axios@1.10.0 +-- @iobroker-javascript.0/cheerio@npm:cheerio@1.1.0 +-- @iobroker-javascript.0/decompress-targz@npm:decompress-targz@4.1.1 +-- @iobroker-javascript.0/decompress@npm:decompress@4.2.1 +-- @iobroker-javascript.0/form-data@npm:form-data@4.0.3 +-- @iobroker-javascript.0/html-pdf@npm:html-pdf@3.0.1 +-- @iobroker-javascript.0/html2json@npm:html2json@1.0.2 +-- @iobroker-javascript.0/hue-push-client@npm:hue-push-client@1.0.5 +-- @iobroker-javascript.0/jsdom@npm:jsdom@26.1.0 +-- @iobroker-javascript.0/node-ipc@npm:node-ipc@12.0.0 +-- @iobroker-javascript.0/puppeteer@npm:puppeteer@24.10.2 +-- @iobroker-javascript.0/uuid@npm:uuid@11.1.0 +-- @iobroker-javascript.0/xml2js@npm:xml2js@0.6.2 +-- @iobroker-javascript.0/xmldom@npm:xmldom@0.6.0 +-- iobroker.admin@7.7.1 +-- iobroker.alexa2@3.26.7 +-- iobroker.awattar@1.0.6 +-- iobroker.awtrix-light@2.0.0 +-- iobroker.backitup@3.3.0 +-- iobroker.birthdays@4.0.0 +-- iobroker.bring@1.9.1 +-- iobroker.broadlink2@2.3.0 +-- iobroker.cameras@2.1.2 +-- iobroker.chromecast@4.0.0 +-- iobroker.cloud@5.0.1 +-- iobroker.daswetter@3.2.3 +-- iobroker.devices@1.2.7 +-- iobroker.discovery@5.0.0 +-- iobroker.dwd@2.8.5 +-- iobroker.echarts@2.0.6 +-- iobroker.email@2.0.4 +-- iobroker.fahrplan@1.4.1 +-- iobroker.flexcharts@0.4.1 +-- iobroker.flot@1.12.0 +-- iobroker.fritzdect@2.6.2 +-- iobroker.fullybrowser@3.1.1 +-- iobroker.history@3.0.1 +-- iobroker.hue-extended@2.0.1 (git+ssh://git@github.com/iobroker-community-adapters/ioBroker.hue-extended.git#1de8967c7f7150dfdc1c281899adc5d01777b050) +-- iobroker.hue@3.16.2 +-- iobroker.ical@1.16.2 +-- iobroker.iot@3.5.0 +-- iobroker.jarvis@3.2.0-rc.17 (git+ssh://git@github.com/Zefau/ioBroker.jarvis.git#65370bd2ad4617722447bcff04ba4dc6429bed9b) +-- iobroker.javascript@9.0.6 +-- iobroker.js-controller@7.0.7 +-- iobroker.lovelace@5.0.0 +-- iobroker.meross@1.17.0 (git+ssh://git@github.com/Apollon77/ioBroker.meross.git#89166c86e032b777b634e9fbe1e42544de9c9fb0) +-- iobroker.mqtt-client@3.0.0 +-- iobroker.mqtt@6.1.4 +-- iobroker.notificationforandroidtv@3.0.4 +-- iobroker.odl@5.0.0 +-- iobroker.onvif@1.1.4 +-- iobroker.openweathermap@1.3.0 +-- iobroker.parser@2.3.1 +-- iobroker.pegelalarm@1.3.8 +-- iobroker.ping@1.7.9 +-- iobroker.proxmox@2.4.0 +-- iobroker.proxy@1.3.2 +-- iobroker.pushover@4.1.0 +-- iobroker.pvforecast@5.0.0 +-- iobroker.rest-api@3.0.1 +-- iobroker.ring@6.3.0 +-- iobroker.roadtraffic@1.2.0 +-- iobroker.rssfeed@3.5.2 +-- iobroker.shelly@10.0.0 +-- iobroker.simple-api@3.0.7 +-- iobroker.slideshow@0.2.1 +-- iobroker.smartcontrol@2.0.1 +-- iobroker.snmp@3.2.0 +-- iobroker.socketio@7.0.8 +-- iobroker.sonoff@3.2.1 +-- iobroker.spotify-premium@1.5.3 +-- iobroker.tankerkoenig@3.4.0 +-- iobroker.telegram@4.1.0 +-- iobroker.terminal@1.0.0 +-- iobroker.tr-064@4.3.0 +-- iobroker.trashschedule@3.3.0 +-- iobroker.tuya@3.17.0 +-- iobroker.tvprogram@4.0.0 +-- iobroker.tvspielfilm@2.1.0 +-- iobroker.twinkly@1.0.14 +-- iobroker.virtualpowermeter@1.5.0 +-- iobroker.vis-2-widgets-material@1.4.10 +-- iobroker.vis-2@2.12.10 +-- iobroker.vis-metro@1.2.0 +-- iobroker.vis@1.5.6 +-- iobroker.web@7.0.6 +-- iobroker.wifilight@2.0.3 +-- iobroker.wled@0.7.3 +-- iobroker.ws@3.0.19 `-- iobroker.zigbee@2.0.4
prox@iobrokerProd:/opt/iobroker$ npm i --dry-run npm error code EBADENGINE npm error engine Unsupported engine npm error engine Not compatible with your version of node/npm: ring-client-api@13.1.0 npm error notsup Not compatible with your version of node/npm: ring-client-api@13.1.0 npm error notsup Required: {"node":"^18 || ^20"} npm error notsup Actual: {"npm":"10.9.2","node":"v22.17.0"} npm error A complete log of this run can be found in: /home/iobroker/.npm/_logs/2025-06-26T22_35_49_020Z-debug-0.log
Problem wurde auch gemeldet
https://github.com/iobroker-community-adapters/ioBroker.ring/issues/820 -
@mcu
Hab’s nicht ganz gelesen, bei meinem Update auf 22 hab ich yahka entfernen müssen da backitup sich nicht updaten lies wenn es installiert ist - da ist ein veraltetes packet in den deps von yahka. Frag mich nicht wieso das was mit backitup zutun hat. -
@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). -
Downgrade Yahka auf die 1.0.3 und es läuft unter node 22
-
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
. -
npm error notsup Required: {"node":"^18 || ^20"}
Das bedeutet halt es ist nur 18 oder 20 zulässig.
Sonst nix -
@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 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 -
@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.
-
@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 eincd /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.
-
@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 ^^