NEWS
js-controller 3.0/3.1 jetzt im Latest!
-
Habe ich. Das Bild bleibt das gleiche.
-
Hallo Leute,
bin noch auf nodejs v8.16.2 und jetzt funktioniert mein javascript adapter nicht mehr.
Kann auch die Version nicht anpassen weil die Hardware das nicht mehr hergibt.
Mein neuer Server ist unterwegs, kommt aber erst die Tage bei mir an.
Wie komme ich jetzt auf die schnelle wieder auf Version 4.4.3?@friemelkarl Deswegen mache ich vor jedem Adapterupdate der zuletzt verwendeten Version ein tgz backup des Adapterordners in /opt/iobroker/node_modules.
Ich habe die 4.4.3 noch als Backup und könnte dir die tgz per PN zukommen lassen.
Ich weiĂ aber nicht ob der kompilierte Adapter aus meinem node_modules Ordner auch auf fremden Systemen sauber funktioniert. Bei mir war zu der Zeit schon nodejs 10 am Start.Was hast du denn fĂŒr Hardware von der die nodejs Version abhĂ€ngig ist und nicht aktualisiert werden kann?
-
Habe ich. Das Bild bleibt das gleiche.
@friemelkarl Bist du im Expertenmodus? Oben 2.Button v rechts.
Bei mir "hÀngt" es manchmal. Dann muss ich den Modus aus- und wieder einschalten. -
Danke fĂŒr die Info! Das war mir noch nicht bekannt!
Leider bekomme ich dieses Kreuz nicht angezeigt.
Kann ich das eventuell ĂŒber SSH lösen?
@friemelkarl sagte in js-controller 3.0 jetzt im Latest!:
Danke fĂŒr die Info! Das war mir noch nicht bekannt!
Leider bekomme ich dieses Kreuz nicht angezeigt.
Kann ich das eventuell ĂŒber SSH lösen?
Auf dem Host ist aktuell keine JavaScript Instanz installiert.
Dann gibt es kein â+â
-
@apollon77 sagte in js-controller 3.0 jetzt im Latest!:
@oFbEQnpoLKKl6mbY5e13 Leg es bitte an bzw reopen wenn falsch geschlossen. Kriegen wir alles irgendwie hin
Der Fehler ist nicht mehr aufgetaucht, sodass ich jetzt erst mal abwarte.
Allerdings melden beim Start meines Containers verschiedene Adapter und nicht immer dieselben:
warn (329) no connection to objects DB@oFbEQnpoLKKl6mbY5e13 sagte in js-controller 3.0 jetzt im Latest!:
Allerdings melden beim Start meines Containers verschiedene Adapter und nicht immer dieselben:
warn (329) no connection to objects DBHabe meinen Container heute neu gestartet: keine Meldung mehr dbzgl.
Lag also am RAID-Scrubbing -
@friemelkarl Deswegen mache ich vor jedem Adapterupdate der zuletzt verwendeten Version ein tgz backup des Adapterordners in /opt/iobroker/node_modules.
Ich habe die 4.4.3 noch als Backup und könnte dir die tgz per PN zukommen lassen.
Ich weiĂ aber nicht ob der kompilierte Adapter aus meinem node_modules Ordner auch auf fremden Systemen sauber funktioniert. Bei mir war zu der Zeit schon nodejs 10 am Start.Was hast du denn fĂŒr Hardware von der die nodejs Version abhĂ€ngig ist und nicht aktualisiert werden kann?
@Diginix Da hast du natĂŒrlich Recht. Fehler liegt natĂŒrlich klar bei mir. Ich habe seit Jahren nen alten 32 Bit Micro Tower am laufen. Der hat dann jetzt aber ausgedient. Werde das System auf dem neuen Server neu aufsetzen. Dann sollte alles wieder laufen.
-
@friemelkarl sagte in js-controller 3.0 jetzt im Latest!:
Danke fĂŒr die Info! Das war mir noch nicht bekannt!
Leider bekomme ich dieses Kreuz nicht angezeigt.
Kann ich das eventuell ĂŒber SSH lösen?
Auf dem Host ist aktuell keine JavaScript Instanz installiert.
Dann gibt es kein â+â
@wendy2702 Richtig. Hatte ich zu Testzwecken kurz gelöscht und bekomme es jetzt ĂŒberhaupt nicht mehr installiert đ
Macht euch keinen Stress. Ich ĂŒberleben die nĂ€chsten Tage ohne Javascript Adapter. Der Rest lĂ€uft ja noch.
Trotzdem vielen Dank. Habe auf jeden Fall wieder was gelernt. đ -
@wendy2702 Richtig. Hatte ich zu Testzwecken kurz gelöscht und bekomme es jetzt ĂŒberhaupt nicht mehr installiert đ
Macht euch keinen Stress. Ich ĂŒberleben die nĂ€chsten Tage ohne Javascript Adapter. Der Rest lĂ€uft ja noch.
Trotzdem vielen Dank. Habe auf jeden Fall wieder was gelernt. đĂber Konsole:
cd /opt/iobroker iobroker stop adapterName npm install iobroker.adapterName iobroker upload adapterName iobroker start adapterName -
Hallo Leute,
bin noch auf nodejs v8.16.2 und jetzt funktioniert mein javascript adapter nicht mehr.
Kann auch die Version nicht anpassen weil die Hardware das nicht mehr hergibt.
Mein neuer Server ist unterwegs, kommt aber erst die Tage bei mir an.
Wie komme ich jetzt auf die schnelle wieder auf Version 4.4.3?@friemelkarl sagte in js-controller 3.0 jetzt im Latest!:
ejs v8.16.2 und jetzt
Hm ... auch wenn Du schon hilfe bekommst: Du bist aber irgendwie im falschen Thread gelandet, oder?! :-(
-
Ăber Konsole:
cd /opt/iobroker iobroker stop adapterName npm install iobroker.adapterName iobroker upload adapterName iobroker start adapterName@wendy2702 Werde ich Morgen testen.
Vielen Dank fĂŒr eure Hilfe! đ -
@friemelkarl sagte in js-controller 3.0 jetzt im Latest!:
ejs v8.16.2 und jetzt
Hm ... auch wenn Du schon hilfe bekommst: Du bist aber irgendwie im falschen Thread gelandet, oder?! :-(
@apollon77 Da hast du natĂŒrlich Recht. Bin dann fertig mit dem Thema. Entschuldigung und Danke fĂŒr die Hilfe
-
Danke fĂŒr die Info! Das war mir noch nicht bekannt!
Leider bekomme ich dieses Kreuz nicht angezeigt.
Kann ich das eventuell ĂŒber SSH lösen?
@friemelkarl Expertenmodus aktivieren
-
@friemelkarl Deswegen mache ich vor jedem Adapterupdate der zuletzt verwendeten Version ein tgz backup des Adapterordners in /opt/iobroker/node_modules.
Ich habe die 4.4.3 noch als Backup und könnte dir die tgz per PN zukommen lassen.
Ich weiĂ aber nicht ob der kompilierte Adapter aus meinem node_modules Ordner auch auf fremden Systemen sauber funktioniert. Bei mir war zu der Zeit schon nodejs 10 am Start.Was hast du denn fĂŒr Hardware von der die nodejs Version abhĂ€ngig ist und nicht aktualisiert werden kann?
@Diginix GefĂ€hrlicher tipp. Ich hoffe Du hast genau rausgefunden welche tar Optionen Du setzen musst das das alles sauber tut. Er darf hier keine Symbolischen Links auflösen sondern die mĂŒssen erhalten bleiben, weil Du dir sonst nach einem pot. zurĂŒckspielen mehr kaputt mchst und npm Fehler bei anderen Updates provozierst als Probleme löst.
-
@Diginix GefĂ€hrlicher tipp. Ich hoffe Du hast genau rausgefunden welche tar Optionen Du setzen musst das das alles sauber tut. Er darf hier keine Symbolischen Links auflösen sondern die mĂŒssen erhalten bleiben, weil Du dir sonst nach einem pot. zurĂŒckspielen mehr kaputt mchst und npm Fehler bei anderen Updates provozierst als Probleme löst.
@apollon77 Ok, nutze czf und hab die 2-3 mal in der Vergangenheit bei einem Rollback keine Probleme gehabt.
WÀre mir neu dass tar Symlinks auflöst ohne dass man es explizit erzwingt.
Hab das auch nur eingefĂŒhrt weil es ĂŒber den Admin eben nicht immer möglich ist auf eine Ă€ltere Version bei Problemen zu gehen. Ist im stable repo vllt nicht nötig, aber beim latest kann das evtl. wirklich mal nötig sein.
WĂ€re also auch eine Anregung als neues Feature fĂŒrs iob System ein Rollback nach Update nativ zu ermöglichen. -
@friemelkarl Expertenmodus aktivieren
@apollon77
Ich arbeite gerade daran meinen MyAdapter auf die neue Adapterstrukture und auf nodejs 10+ umzubauen (war noch v6+).Wollte mir ansehen wie so eine Adapterinstanz ausschaut und bin dabei draufgekommen dass sie zwei rekursive objekte enthÀlt!
Adapter.log.logger (dort ist es exceptions, rejections und _readableState) und bei Adapter.pluginHandler hab ich noch nicht nÀher hingesehen, aber das interessiert mich besonders da ich ein-Zwei Adapter mit plugins versehen will um z.B. neue GerÀte oder Funktionen zu supporten.
Wollte nur anmelden das das nicht besonders gut ist, speziell im compact-mode, da damit unter UmstÀnden Speicherreste nicht freigegeben werden können..
Sorry wenn die Info da nicht hergehört, sag mir dann wo ich sie posten soll.
-
@apollon77
Ich arbeite gerade daran meinen MyAdapter auf die neue Adapterstrukture und auf nodejs 10+ umzubauen (war noch v6+).Wollte mir ansehen wie so eine Adapterinstanz ausschaut und bin dabei draufgekommen dass sie zwei rekursive objekte enthÀlt!
Adapter.log.logger (dort ist es exceptions, rejections und _readableState) und bei Adapter.pluginHandler hab ich noch nicht nÀher hingesehen, aber das interessiert mich besonders da ich ein-Zwei Adapter mit plugins versehen will um z.B. neue GerÀte oder Funktionen zu supporten.
Wollte nur anmelden das das nicht besonders gut ist, speziell im compact-mode, da damit unter UmstÀnden Speicherreste nicht freigegeben werden können..
Sorry wenn die Info da nicht hergehört, sag mir dann wo ich sie posten soll.
@frankjoke lass am beste im Telegram dazu schreiben
-
Habe gerade den Radar2 Adapter upgedatet und ein paar beunruhigende Infos wÀhrend der Installationsphase erhalten. Muss ich da etwas beachten? Denn nach der Installation (die letztendlich funktioniert hat) lÀuft der Adapter ohne Probleme:
$ ./iobroker upgrade radar2 Update radar2 from @1.0.9 to @1.2.5 NPM version: 6.14.4 npm install iobroker.radar2@1.2.5 --loglevel error --prefix "/opt/iobroker" (System call) prebuild-install info begin Prebuild-install version 5.3.3 prebuild-install info looking for cached prebuild @ /home/iobroker/.npm/_prebuilds/e00ec3-usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install http request GET https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install http 404 https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install WARN install No prebuilt binaries found (target=10.20.1 runtime=node arch=arm libc= platform=linux) In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/node_usb.h:14, from ../src/node_usb.cc:1:../src/node_usb.cc: At global scope:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:573:43: warning: cast between incompatible function types from â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/10.20.1/include/node/node.h:607:3: note: in expansion of macro âNODE_MODULE_Xâ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/node_usb.cc:95:1: note: in expansion of macro âNODE_MODULEâ NODE_MODULE(usb_bindings, Initialize) ^~~~~~~~~~~ ../src/node_usb.cc: In function âvoid handleHotplug(std::pair<libusb_device*, libusb_hotplug_event>)â:../src/node_usb.cc:151:58: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h:1001:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../src/node_usb.cc:151:58: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h:1001:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/node_usb.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../src/device.cc: In member function âvoid Req::submit(Device*, v8::Local<v8::Function>, uv_work_cb, uv_work_cb)â:../src/device.cc:220:70: warning: cast between incompatible function types from âuv_work_cbâ {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, backend, (uv_after_work_cb) after); ^~~~~ ../src/device.cc: In static member function âstatic void Req::default_after(uv_work_t*)â:../src/device.cc:237:64: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~../src/device.cc:237:64: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/device.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../src/transfer.cc: In function âvoid handleCompletion(Transfer*)â:../src/transfer.cc:126:72: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../src/transfer.cc:126:72: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/transfer.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/BluetoothHciSocket.cpp:8:../../../nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../../../nan/nan.h:2298:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node_buffer.h:25, from ../src/BluetoothHciSocket.cpp:7:../src/BluetoothHciSocket.cpp: At global scope:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:573: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/10.20.1/include/node/node.h:607:3: note: in expansion of macro âNODE_MODULE_Xâ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/BluetoothHciSocket.cpp:578:1: note: in expansion of macro âNODE_MODULEâ NODE_MODULE(binding, BluetoothHciSocket::Init); ^~~~~~~~~~~ In file included from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:63, from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node_buffer.h:25, from ../src/BluetoothHciSocket.cpp:7:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../../../nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] upload [13] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/words.js words.js application/javascript Update "system.adapter.radar2.0" upload [12] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/radar2.png radar2.png image/png upload [11] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/index_m.html index_m.html text/html upload [10] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/index.html index.html text/html upload [9] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [8] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/ru/translations.json i18n/ru/translations.json application/json upload [7] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/pt/translations.json i18n/pt/translations.json application/json upload [6] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/pl/translations.json i18n/pl/translations.json application/json upload [5] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/nl/translations.json i18n/nl/translations.json application/json upload [4] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/it/translations.json i18n/it/translations.json application/json upload [3] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/fr/translations.json i18n/fr/translations.json application/json upload [2] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/es/translations.json i18n/es/translations.json application/json upload [1] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/en/translations.json i18n/en/translations.json application/json upload [0] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/de/translations.json i18n/de/translations.json application/json Adapter "radar2" updated process exited with code 0Danke fĂŒr RĂŒckmeldungen!
-
Habe gerade den Radar2 Adapter upgedatet und ein paar beunruhigende Infos wÀhrend der Installationsphase erhalten. Muss ich da etwas beachten? Denn nach der Installation (die letztendlich funktioniert hat) lÀuft der Adapter ohne Probleme:
$ ./iobroker upgrade radar2 Update radar2 from @1.0.9 to @1.2.5 NPM version: 6.14.4 npm install iobroker.radar2@1.2.5 --loglevel error --prefix "/opt/iobroker" (System call) prebuild-install info begin Prebuild-install version 5.3.3 prebuild-install info looking for cached prebuild @ /home/iobroker/.npm/_prebuilds/e00ec3-usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install http request GET https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install http 404 https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install WARN install No prebuilt binaries found (target=10.20.1 runtime=node arch=arm libc= platform=linux) In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/node_usb.h:14, from ../src/node_usb.cc:1:../src/node_usb.cc: At global scope:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:573:43: warning: cast between incompatible function types from â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/10.20.1/include/node/node.h:607:3: note: in expansion of macro âNODE_MODULE_Xâ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/node_usb.cc:95:1: note: in expansion of macro âNODE_MODULEâ NODE_MODULE(usb_bindings, Initialize) ^~~~~~~~~~~ ../src/node_usb.cc: In function âvoid handleHotplug(std::pair<libusb_device*, libusb_hotplug_event>)â:../src/node_usb.cc:151:58: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h:1001:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../src/node_usb.cc:151:58: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h:1001:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/node_usb.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../src/device.cc: In member function âvoid Req::submit(Device*, v8::Local<v8::Function>, uv_work_cb, uv_work_cb)â:../src/device.cc:220:70: warning: cast between incompatible function types from âuv_work_cbâ {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, backend, (uv_after_work_cb) after); ^~~~~ ../src/device.cc: In static member function âstatic void Req::default_after(uv_work_t*)â:../src/device.cc:237:64: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~../src/device.cc:237:64: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/device.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../src/transfer.cc: In function âvoid handleCompletion(Transfer*)â:../src/transfer.cc:126:72: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../src/transfer.cc:126:72: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/transfer.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/BluetoothHciSocket.cpp:8:../../../nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../../../nan/nan.h:2298:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node_buffer.h:25, from ../src/BluetoothHciSocket.cpp:7:../src/BluetoothHciSocket.cpp: At global scope:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:573: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/10.20.1/include/node/node.h:607:3: note: in expansion of macro âNODE_MODULE_Xâ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/BluetoothHciSocket.cpp:578:1: note: in expansion of macro âNODE_MODULEâ NODE_MODULE(binding, BluetoothHciSocket::Init); ^~~~~~~~~~~ In file included from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:63, from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node_buffer.h:25, from ../src/BluetoothHciSocket.cpp:7:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../../../nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] upload [13] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/words.js words.js application/javascript Update "system.adapter.radar2.0" upload [12] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/radar2.png radar2.png image/png upload [11] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/index_m.html index_m.html text/html upload [10] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/index.html index.html text/html upload [9] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [8] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/ru/translations.json i18n/ru/translations.json application/json upload [7] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/pt/translations.json i18n/pt/translations.json application/json upload [6] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/pl/translations.json i18n/pl/translations.json application/json upload [5] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/nl/translations.json i18n/nl/translations.json application/json upload [4] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/it/translations.json i18n/it/translations.json application/json upload [3] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/fr/translations.json i18n/fr/translations.json application/json upload [2] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/es/translations.json i18n/es/translations.json application/json upload [1] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/en/translations.json i18n/en/translations.json application/json upload [0] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/de/translations.json i18n/de/translations.json application/json Adapter "radar2" updated process exited with code 0Danke fĂŒr RĂŒckmeldungen!
-
Habe gerade den Radar2 Adapter upgedatet und ein paar beunruhigende Infos wÀhrend der Installationsphase erhalten. Muss ich da etwas beachten? Denn nach der Installation (die letztendlich funktioniert hat) lÀuft der Adapter ohne Probleme:
$ ./iobroker upgrade radar2 Update radar2 from @1.0.9 to @1.2.5 NPM version: 6.14.4 npm install iobroker.radar2@1.2.5 --loglevel error --prefix "/opt/iobroker" (System call) prebuild-install info begin Prebuild-install version 5.3.3 prebuild-install info looking for cached prebuild @ /home/iobroker/.npm/_prebuilds/e00ec3-usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install http request GET https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install http 404 https://github.com/tessel/node-usb/releases/download/v1.6.3/usb-v1.6.3-node-v64-linux-arm.tar.gz prebuild-install WARN install No prebuilt binaries found (target=10.20.1 runtime=node arch=arm libc= platform=linux) In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/node_usb.h:14, from ../src/node_usb.cc:1:../src/node_usb.cc: At global scope:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:573:43: warning: cast between incompatible function types from â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/10.20.1/include/node/node.h:607:3: note: in expansion of macro âNODE_MODULE_Xâ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/node_usb.cc:95:1: note: in expansion of macro âNODE_MODULEâ NODE_MODULE(usb_bindings, Initialize) ^~~~~~~~~~~ ../src/node_usb.cc: In function âvoid handleHotplug(std::pair<libusb_device*, libusb_hotplug_event>)â:../src/node_usb.cc:151:58: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h:1001:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../src/node_usb.cc:151:58: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, const char*, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/node_usb.cc:1:../node_modules/nan/nan.h:1001:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/node_usb.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../src/device.cc: In member function âvoid Req::submit(Device*, v8::Local<v8::Function>, uv_work_cb, uv_work_cb)â:../src/device.cc:220:70: warning: cast between incompatible function types from âuv_work_cbâ {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, backend, (uv_after_work_cb) after); ^~~~~ ../src/device.cc: In static member function âstatic void Req::default_after(uv_work_t*)â:../src/device.cc:237:64: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~../src/device.cc:237:64: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/device.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/device.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../node_modules/nan/nan.h:2232:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../src/transfer.cc: In function âvoid handleCompletion(Transfer*)â:../src/transfer.cc:126:72: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ ../src/transfer.cc:126:72: warning: âv8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)â is deprecated [-Wdeprecated-declarations] Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv); ^In file included from ../src/helpers.h:3, from ../src/node_usb.h:21, from ../src/transfer.cc:1:../node_modules/nan/nan.h:959:46: note: declared here NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback( ^~~~~~~~~~~~ In file included from ../src/node_usb.h:12, from ../src/transfer.cc:1:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] In file included from ../src/BluetoothHciSocket.cpp:8:../../../nan/nan.h: In function âvoid Nan::AsyncQueueWorker(Nan::AsyncWorker*)â:../../../nan/nan.h:2298:62: 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] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node_buffer.h:25, from ../src/BluetoothHciSocket.cpp:7:../src/BluetoothHciSocket.cpp: At global scope:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:573: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/10.20.1/include/node/node.h:607:3: note: in expansion of macro âNODE_MODULE_Xâ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/BluetoothHciSocket.cpp:578:1: note: in expansion of macro âNODE_MODULEâ NODE_MODULE(binding, BluetoothHciSocket::Init); ^~~~~~~~~~~ In file included from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node.h:63, from /home/iobroker/.cache/node-gyp/10.20.1/include/node/node_buffer.h:25, from ../src/BluetoothHciSocket.cpp:7:/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]â:/home/iobroker/.cache/node-gyp/10.20.1/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<node::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h: In instantiation of âvoid v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]â:../../../nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.20.1/include/node/v8.h:9502:16: warning: cast between incompatible function types from âv8::WeakCallbackInfo<Nan::ObjectWrap>::Callbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)â} to âCallbackâ {aka âvoid (*)(const v8::WeakCallbackInfo<void>&)â} [-Wcast-function-type] upload [13] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/words.js words.js application/javascript Update "system.adapter.radar2.0" upload [12] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/radar2.png radar2.png image/png upload [11] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/index_m.html index_m.html text/html upload [10] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/index.html index.html text/html upload [9] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [8] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/ru/translations.json i18n/ru/translations.json application/json upload [7] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/pt/translations.json i18n/pt/translations.json application/json upload [6] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/pl/translations.json i18n/pl/translations.json application/json upload [5] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/nl/translations.json i18n/nl/translations.json application/json upload [4] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/it/translations.json i18n/it/translations.json application/json upload [3] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/fr/translations.json i18n/fr/translations.json application/json upload [2] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/es/translations.json i18n/es/translations.json application/json upload [1] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/en/translations.json i18n/en/translations.json application/json upload [0] radar2.admin /opt/iobroker/node_modules/iobroker.radar2/admin/i18n/de/translations.json i18n/de/translations.json application/json Adapter "radar2" updated process exited with code 0Danke fĂŒr RĂŒckmeldungen!
@Mauflo WeiĂ gar nicht was du da beunruhigend findest. Sind ganz normale Meldungen, wenn ein Modul baut.
Da keine vorkompilierten binairies fĂŒr deine node-Version gefunden wurden muss halt selber kompiliert werden:No prebuilt binaries found (target=10.20.1 runtime=node arch=arm libc= platform=linux) -
@dtp
Ich bin kein Freund von "ich nehme was fertiges, weil ich kein Plan habe", denn so lernst einfach nix dazu.
Schau Dir mal meine letzten eigenen Threads an, da habe ich meine Fragen meist selber beantwortet weil ich mittlerweile einfach durch viel probieren und mal Google fragen doch schon ne Menge weiĂ,um mir selber helfen zu können ;-)@Jan1 sagte in js-controller 3.0 jetzt im Latest!:
Ich bin kein Freund von "ich nehme was fertiges, weil ich kein Plan habe", denn so lernst einfach nix dazu.
Kann man so oder so sehen. Oder programmierst du deine Betriebssysteme und Hardwaretreiber auch alle selbst?
Es gibt sehr gute Docker-Container-Abbilder fĂŒr die Synology DiskStations. Eins davon ist das ioBroker-Abbild von buanet. NatĂŒrlich könnte ich dort jetzt auf node.js v12.x upgraden, aber wozu, wenn im Moment alles rund mit meinen Adaptern lĂ€uft?
Ich habe schon genĂŒgend Baustellen am Wickel. Neben der HomeMatic kam nun noch ein 3D-Drucker hinzu. Und da muss ich mich aktuell erst mal in Fusion 360 einarbeiten. Ach ja, und einen Beruf habe ich neben der Familie auch noch. Dank Corona kann ich meinen Job zwar zur Zeit zu 90 % im Home Office ausĂŒben, aber die Kinder (9 und 11) wollen tagsĂŒber von meiner Frau, die ebenfalls berufstĂ€tig ist, und mir auch noch schulisch betreut werden.
Nee, nee, da lass ich node.js lieber so, wie es ist.

Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden