NEWS
[How-to] Node.js ioBroker richtig updaten-2021/22 Edition
-
@cino sagte in [How-to] Node.js für ioBroker richtig updaten - 2021 Edition:
Heute morgen aufgewacht und der Zigbee Adapter lief. Keine Ahnung warum.
Vermutlich, weil der rebuild zwischenzeitlich durchgelaufen ist.
-
@apollon77 habe wieder auf 12.X Downgraded.
egal was man macht... nach einem Befehl ist der Adapter auf rot... Staubsauger reagiert in der App, aber im Adapter eben nicht... auch nach neustart des Adapters manchmal nicht... Reconnect Zeit zwischen 2 Minuten und X Stunden
-
@diginix saugen tut er... aber eben nur ein mal... dann geht der Adapter sofort auf Rot
-
Dann mach beim Adapter ein Issue auf, damit der Maintainer sich das ggf. anschauen kann. Wobei sich das sehr nach einem Individual-Problem anhört.
-
@thomas-braun said in [How-to] Node.js für ioBroker richtig updaten - 2021 Edition:
@cino sagte in [How-to] Node.js für ioBroker richtig updaten - 2021 Edition:
Heute morgen aufgewacht und der Zigbee Adapter lief. Keine Ahnung warum.
Vermutlich, weil der rebuild zwischenzeitlich durchgelaufen ist.
Ja aber in den Logs stand doch von wegen 3 mal versucht und der Adapter wird deaktiviert.
-
Nach dem Update von nodejs auf v14.18.1 kommt beim maxcul-Adapter folgender Fehler:
maxcul.0 2021-11-19 19:32:59.319 error Exception-Code: ERR_DLOPEN_FAILED: Module did not self-register: '/opt/iobroker/node_modules/@serialport/bindings/build/Release/bindings.node'. maxcul.0 2021-11-19 19:32:59.319 error Error: Module did not self-register: '/opt/iobroker/node_modules/@serialport/bindings/build/Release/bindings.node'. at Object.Module._extensions..node (internal/modules/cjs/loader.js:1144:18) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:12) at Module.require (internal/modules/cjs/loader.js:974:19) at require (internal/modules/cjs/helpers.js:93:18) at bindings (/opt/iobroker/node_modules/bindings/bindings.js:112:48) at Object.<anonymous> (/opt/iobroker/node_modules/@serialport/bindings/lib/linux.js:2:36) at Module._compile (internal/modules/cjs/loader.js:1085:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:12) at Module.require (internal/modules/cjs/loader.js:974:19) at require (internal/modules/cjs/helpers.js:93:18) at Object.<anonymous> (/opt/iobroker/node_modules/@serialport/bindings/lib/index.js:14:22) at Module._compile (internal/modules/cjs/loader.js:1085:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) maxcul.0 2021-11-19 19:32:59.317 error uncaught exception: Module did not self-register: '/opt/iobroker/node_modules/@serialport/bindings/build/Release/bindings.node'.
Werde aus den ganzen "Lösungen" nicht ganz schlau....
npm rebuild hat nichts gebracht
NPM v6.14.15
js-controller 3.3.19Beim Slave hat alles geklappt
Bin jetzt auf dem Host auf 12 zurück, ohne Heizung geht es grade nicht -
maxcul deinstallieren und nochmal neu installieren.
-
@guergen sagte in [How-to] Node.js für ioBroker richtig updaten - 2021 Edition:
/opt/iobroker/node_modules/@serialport/bindings
Mal in das Verzeichnis wechseln und dort ein "npm install --production" machen
-
@apollon77 Ich habe node v12.22.7. Ist das richtig, dass ich noch ca. 2 Jahre mit dem Update warten kann?
-
@marty56
Theoretisch ja nur praktisch nicht sinnvoll. Ich bin schon lange auf 14 und null Probleme -
@jan1 Warum meinst Du, dass es nur theoretisch sinnvoll ist?
Wenn ich mir den Thread ansehe, dann brauche ich die ganzen Probleme erstmal nicht.
-
@marty56
Ich habe nicht alles gelesen und das meiste was ich gelesen habe, sind wohl (mal wieder) mitgeschleppte Probleme, die versteckt die ganze Zeit schon da waren und nun eben erst deutlich zu sehen sind. Was wiederum nicht wirklich was mit Node 14 zu tun hat, sondern ehr mit zerfledderten Systemen, die jetzt eben mal ein Update oder gleich mehrere erhalten haben.
Ergo, bleib aktuell und habe keine ProblemEs gibt so gut wie kein Grund auf 12 zu bleiben.
Probier es einfach aus und schau obs läuft, zurück geht genau so schnell wie hoch.
Hatte ne Zeitlang produktiv 16 nmit NPM 7 laufen und keine Probleme, dann mit NPM 6 und weil ich eben gerne bastle, wieder zurück auf 14 und alles ohne Ärger. -
RELEASE STATUS INITIAL RELEASE ACTIVE LTS START MAINTENANCE LTS START END-OF-LIFE v12 2019-04-23 2019-10-21 2020-11-30 2022-04-30
https://nodejs.org/en/about/releases/
Für nodeJS12 also ist im April 22 Schicht. Also kannst du auch jetzt wechseln. Die Erfahrung zeigt: Je länger gewartet wird, umso mehr Probleme gibt es
-
Nach dem Update auf nodejs 14 startet der Jeelink-Adapter nicht mehr:
host.raspi4 2021-11-20 10:50:26.370 error instance system.adapter.jeelink.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.raspi4 2021-11-20 10:50:26.369 error Caught by controller[0]: } host.raspi4 2021-11-20 10:50:26.369 error Caught by controller[0]: ] host.raspi4 2021-11-20 10:50:26.368 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/lib/binding/node-v83-linux-arm/bindings.node' host.raspi4 2021-11-20 10:50:26.368 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/addon-build/default/install-root/bindings.node', host.raspi4 2021-11-20 10:50:26.368 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/addon-build/debug/install-root/bindings.node', host.raspi4 2021-11-20 10:50:26.367 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/addon-build/release/install-root/bindings.node', host.raspi4 2021-11-20 10:50:26.366 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/compiled/14.18.1/linux/arm/bindings.node', host.raspi4 2021-11-20 10:50:26.366 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/build/default/bindings.node', host.raspi4 2021-11-20 10:50:26.365 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/Release/bindings.node', host.raspi4 2021-11-20 10:50:26.364 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/out/Release/bindings.node', host.raspi4 2021-11-20 10:50:26.364 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/Debug/bindings.node', host.raspi4 2021-11-20 10:50:26.364 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/out/Debug/bindings.node', host.raspi4 2021-11-20 10:50:26.363 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/build/Release/bindings.node', host.raspi4 2021-11-20 10:50:26.363 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/build/Debug/bindings.node', host.raspi4 2021-11-20 10:50:26.362 error Caught by controller[0]: '/opt/iobroker/node_modules/@serialport/bindings/build/bindings.node', host.raspi4 2021-11-20 10:50:26.362 error Caught by controller[0]: tries: [ host.raspi4 2021-11-20 10:50:26.361 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1085:14) { host.raspi4 2021-11-20 10:50:26.361 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/@serialport/bindings/lib/index.js:14:22) host.raspi4 2021-11-20 10:50:26.360 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:93:18) host.raspi4 2021-11-20 10:50:26.359 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:974:19) host.raspi4 2021-11-20 10:50:26.359 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:790:12) host.raspi4 2021-11-20 10:50:26.358 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:950:32) host.raspi4 2021-11-20 10:50:26.358 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) host.raspi4 2021-11-20 10:50:26.357 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1085:14) host.raspi4 2021-11-20 10:50:26.356 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/@serialport/bindings/lib/linux.js:1:36) host.raspi4 2021-11-20 10:50:26.356 error Caught by controller[0]: at bindings (/opt/iobroker/node_modules/@serialport/bindings/node_modules/bindings/bindings.js:126:9) host.raspi4 2021-11-20 10:50:26.356 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/lib/binding/node-v83-linux-arm/bindings.node host.raspi4 2021-11-20 10:50:26.355 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/addon-build/default/install-root/bindings.node host.raspi4 2021-11-20 10:50:26.354 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/addon-build/debug/install-root/bindings.node host.raspi4 2021-11-20 10:50:26.354 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/addon-build/release/install-root/bindings.node host.raspi4 2021-11-20 10:50:26.353 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/compiled/14.18.1/linux/arm/bindings.node host.raspi4 2021-11-20 10:50:26.352 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/build/default/bindings.node host.raspi4 2021-11-20 10:50:26.351 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/Release/bindings.node host.raspi4 2021-11-20 10:50:26.351 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/out/Release/bindings.node host.raspi4 2021-11-20 10:50:26.350 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/Debug/bindings.node host.raspi4 2021-11-20 10:50:26.349 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/out/Debug/bindings.node host.raspi4 2021-11-20 10:50:26.349 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/build/Release/bindings.node host.raspi4 2021-11-20 10:50:26.348 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/build/Debug/bindings.node host.raspi4 2021-11-20 10:50:26.347 error Caught by controller[0]: → /opt/iobroker/node_modules/@serialport/bindings/build/bindings.node host.raspi4 2021-11-20 10:50:26.347 error Caught by controller[0]: Error: Could not locate the bindings file. Tried: host.raspi4 2021-11-20 10:50:26.342 error Caught by controller[0]: ^ host.raspi4 2021-11-20 10:50:26.341 error Caught by controller[0]: throw err; host.raspi4 2021-11-20 10:50:26.332 error Caught by controller[0]: /opt/iobroker/node_modules/@serialport/bindings/node_modules/bindings/bindings.js:135
Ich habe schon versucht, den Adapter neu zu bauen, steigt mit einem Fehler aus:
pi@raspi4:/opt/iobroker/node_modules/@serialport/bindings $ iobroker rebuild jeelink --install npm install --loglevel error --production (System call1) in "/opt/iobroker/node_modules/iobroker.jeelink" ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); ^~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); ^~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘void EIO_AfterGet(uv_work_t*)’: ../src/serialport.cpp:329:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ results->Set(Nan::New<v8::String>("cts").ToLocalChecked(), Nan::New<v8::Boolean>(data->cts)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../../../nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp:330:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ results->Set(Nan::New<v8::String>("dsr").ToLocalChecked(), Nan::New<v8::Boolean>(data->dsr)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../../../nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp:331:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ results->Set(Nan::New<v8::String>("dcd").ToLocalChecked(), Nan::New<v8::Boolean>(data->dcd)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../../../nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:363:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); ^~~~~~~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘void EIO_AfterGetBaudRate(uv_work_t*)’: ../src/serialport.cpp:378:106: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::IntegerFactory<v8::Integer>::return_t)’ results->Set(Nan::New<v8::String>("baudRate").ToLocalChecked(), Nan::New<v8::Integer>(data->baudRate)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../../../nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:409:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); ^~~~~~~~~~~~~~ ../src/serialport.cpp: At global scope: ../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { ^ In file included from ../../../nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:787:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:821:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(serialport, init); ^~~~~~~~~~~ make: *** [bindings.target.mk:112: Release/obj.target/bindings/src/serialport.o] Fehler 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:400:28) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:282:12) gyp ERR! System Linux 5.10.63-v7l+ gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /opt/iobroker/node_modules/iobroker.jeelink/node_modules/@serialport/bindings gyp ERR! node -v v14.18.1 gyp ERR! node-gyp -v v5.1.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @serialport/bindings@2.0.8 install: `prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @serialport/bindings@2.0.8 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-11-20T09_52_25_659Z-debug.log Rebuild jeelink done
Anhand des Outputs ist zu sehen, das serialport wohl Probleme macht, habe versucht, das nach der Anleitung oben direkt neu zu bauen, klappt leider auch nicht:
pi@raspi4:/opt/iobroker/node_modules/@serialport/bindings $ npm install --production > @serialport/bindings@2.0.8 install /opt/iobroker/node_modules/@serialport/bindings > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild prebuild-install WARN install No prebuilt binaries found (target=14.18.1 runtime=node arch=arm libc= platform=linux) make: Verzeichnis „/opt/iobroker/node_modules/@serialport/bindings/build“ wird betreten CXX(target) Release/obj.target/bindings/src/serialport.o ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); ^~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); ^~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘void EIO_AfterGet(uv_work_t*)’: ../src/serialport.cpp:329:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ results->Set(Nan::New<v8::String>("cts").ToLocalChecked(), Nan::New<v8::Boolean>(data->cts)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../node_modules/nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp:330:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ results->Set(Nan::New<v8::String>("dsr").ToLocalChecked(), Nan::New<v8::Boolean>(data->dsr)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../node_modules/nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp:331:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ results->Set(Nan::New<v8::String>("dcd").ToLocalChecked(), Nan::New<v8::Boolean>(data->dcd)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../node_modules/nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:363:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); ^~~~~~~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘void EIO_AfterGetBaudRate(uv_work_t*)’: ../src/serialport.cpp:378:106: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::IntegerFactory<v8::Integer>::return_t)’ results->Set(Nan::New<v8::String>("baudRate").ToLocalChecked(), Nan::New<v8::Integer>(data->baudRate)); ^ In file included from /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:67, from ../node_modules/nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^~~ /home/iobroker/.cache/node-gyp/14.18.1/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:409:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); ^~~~~~~~~~~~~~ ../src/serialport.cpp: At global scope: ../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { ^ In file included from ../node_modules/nan/nan.h:58, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:787:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /home/iobroker/.cache/node-gyp/14.18.1/include/node/node.h:821:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(serialport, init); ^~~~~~~~~~~ make: *** [bindings.target.mk:112: Release/obj.target/bindings/src/serialport.o] Fehler 1 make: Verzeichnis „/opt/iobroker/node_modules/@serialport/bindings/build“ wird verlassen gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:400:28) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:282:12) gyp ERR! System Linux 5.10.63-v7l+ gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /opt/iobroker/node_modules/@serialport/bindings gyp ERR! node -v v14.18.1 gyp ERR! node-gyp -v v5.1.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @serialport/bindings@2.0.8 install: `prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @serialport/bindings@2.0.8 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2021-11-20T09_54_34_853Z-debug.log
Bin jetzt mit meinem Latein am Ende und bräuchte eure Hilfe.
js-controller ist 3.3.18, admin ist 5.x, weitere Daten zum System:
Plattform
linux
Betriebssystem
linux
Architektur
arm
CPUs
4
Geschwindigkeit
1500 MHz
Modell
ARMv7 Processor rev 3 (v7l)
RAM
7.71 GB
System-Betriebszeit
01:09:25
Node.js
v14.18.1 (Empfohlene Version v12.22.7)
NPM
6.14.15
Datenträgergröße
457.2 GB
freier Festplattenspeicher
425.39 GB
Anzahl der Adapter
363
Betriebszeit
00:47:26
Aktive Instanzen
18
location
/opt/iobroker/
Hostname
raspi4 -
@tepman
Ein separater Thread ist schon sinnvoll.
Hier geht es weiter:
https://forum.iobroker.net/topic/49521/jeelink-adapter-startet-nicht-mehr -
@marty56 Das kann ich Dir nicht sagen ... EIn Jahr mindestens ... Zwei vllt
-
Nee, max 6 Monate noch für v12:
EOL ist am 30.04.2022 -
Ich finde die Update Diskussion immer wieder etwas lustig, da man früher oder später eh muss und ja, muss. Also somit hat sich die Frage wie lange man noch auf ner alten Version bleiben kann in sofern beantwortet. Man sucht sich ein Tag an dem man Lust und Zeit hat und macht es einfach, fertig.
Sollten danach tatsächlich Fehler auftauchen, dann meldet man diese, denn nur so werden die auch beseitigt.
-
@apollon77
Mittlerweile wird ja nodejs 14 empfohlen.
Frage: Läuft Iobroker auch bereits unter nodejs16 ? -
@segway
Das dürfte stark von den jeweiligen Adaptern abhängen. Bei mir läuft es auch mit node16/17 und npm@8 im Testsystem.
Die Empfehlung ist aber ganz klar node 12/14 zu verwenden.