NEWS
[How-to] Node.js ioBroker richtig updaten-2021/22 Edition
-
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. -
Hallo, beim Update auf Node.js 14
bekomme ich folgende Fehlermeldung:Holen:1 http://archive.raspberrypi.org/debian buster InRelease [32,6 kB] Holen:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15,0 kB] Holen:3 https://deb.nodesource.com/node_12.x buster InRelease [4.584 B] Holen:4 https://deb.nodesource.com/node_12.x buster/main armhf Packages [777 B] Paketlisten werden gelesen... Fertig E: Für das Depot »http://raspbian.raspberrypi.org/raspbian buster InRelease« wurde der »Suite«-Wert von »stable« in »oldstable« geändert. N: Sie müssen dies explizit bestätigen, bevor Aktualisierungen von diesem Depot angewendet werden können. Lesen Sie die apt-secure(8)-Handbuchseite, wenn Sie we itere Informationen benötigen. E: Für das Depot »http://archive.raspberrypi.org/debian buster InRelease« wurde der »Suite«-Wert von »testing« in »oldstable« geändert. N: Sie müssen dies explizit bestätigen, bevor Aktualisierungen von diesem Depot angewendet werden können. Lesen Sie die apt-secure(8)-Handbuchseite, wenn Sie we itere Informationen benötigen. Error executing command, exiting
Heißt das mein Buster ist zu alt?
No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 10 (buster) Release: 10 Codename: buster
Mein Slave hat ordnungsgemäß das Update durchgeführt, da ist aber "bullseye"
Wie könnte ich da weiter machen?
MfG
Patrick -
-
@marsmännchen
Du hast die Nodesource noch auf 12. Normal änderst die auf 14 und machst dann ganz normal ein System Update, dann meckert da auch nix -
@marsmännchen sagte in [How-to] Node.js für ioBroker richtig updaten - 2021 Edition:
Heißt das mein Buster ist zu alt?
nicht wirklich, aber es ist im Moment nicht (mehr) die aktuelle Version sondern oldstable
-
Danke Ihr drei!!
-
@jan1 sagte in [How-to] Node.js für ioBroker richtig updaten - 2021 Edition:
machst dann ganz normal ein System Update, dann meckert da auch nix
Das Meckern hat aber hier nichts mit nodejs zu tun. Da wäre auch mit node14 im Repo 'gemeckert' worden.
-
@marsmännchen
Und/Oder gehst mir dem Buster auch gleich mal auf Bullseye hoch.@Thomas-Braun
kommt bei mir ja nie vor, da immer aktuell -
@jan1 sagte in [How-to] Node.js für ioBroker richtig updaten - 2021 Edition:
kommt bei mir ja nie vor, da immer aktuell
Eher weil du apt statt apt-get verwendest, oder?
Denn mit apt kommt die Meldung nicht (jedenfalls nicht in der Form). -
@thomas-braun
sag ich doch, immer aktuell und apt-get ist alt -
@jan1 Und was für Befehle bräuchte ich um auf Bullseye zu komme?
-
@marsmännchen
Das ist bisschen mehr und hier im Thread OT.
Da gabs aber wenn ich nicht irre für den Pi schon ein eigenen Thread. -
-
@jan1 ok, werd mich durchsehen. Ich schau mal das ich das Node.js update zum laufen bekomme.
Danke