I have installed NR on a tinker board with armbian. The OS can utilise bluetooth but NR cannot, is there something else I need to install for NR to detect bluetooth?
What node are you using in Node-RED to interact with Bluetooth?
node-red-contrib-generic-ble
in the node properties, "scan result" and "select from scan result" are greyed out.
Any ideas @knolleary ?
Have you checked the Node-RED log for any error messages?
What user are you running NR as?
Here is the log:
Welcome to Node-RED
===================
2 Jan 12:54:28 - [info] Node-RED version: v1.0.3
2 Jan 12:54:28 - [info] Node.js version: v12.14.0
2 Jan 12:54:28 - [info] Linux 4.4.199-rockchip arm LE
2 Jan 12:54:32 - [info] Loading palette nodes
3 Jan 09:27:24 - [info] Settings file : /home/mike/.node-red/settings.js
3 Jan 09:27:24 - [info] Context store : 'default' [module=memory]
3 Jan 09:27:24 - [info] User directory : /home/mike/.node-red
3 Jan 09:27:24 - [warn] Projects disabled : editorTheme.projects.enabled=false
3 Jan 09:27:24 - [info] Flows file : /home/mike/.node-red/flows_HASERVER.json
3 Jan 09:27:24 - [warn]
---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.
If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.
You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------
3 Jan 09:27:24 - [info] [GenericBLE] Start BLE scanning
3 Jan 09:27:24 - [info] Starting flows
3 Jan 09:27:24 - [info] Server now running at http://127.0.0.1:1880/
3 Jan 09:29:49 - [info] Stopping flows
3 Jan 09:29:49 - [info] Stopped flows
3 Jan 09:29:49 - [info] Starting flows
3 Jan 09:29:49 - [info] [GenericBLE] Start BLE scanning
3 Jan 09:29:49 - [info] Started flows
I installed NR with the script and set to autostart on boot so I assume it's running under my user.
My mouse pointer does this when hovering over the greyed out options mentioned above:
Is the pi
user in the bluetooth group? You can check in terminal using
groups
if it is not try
sudo adduser pi bluetooth
reboot (not sure if you have too) and try again.
I don't have a pi
user as i'm using a tinker-board
Have you searched on the armbian forums to see if there are any bluetooth issues?
No as I can use bluetooth normally in the OS itself, it's just node-red that doesn't seem to detect the adaptor
I don’t have experience with the tinkerboard, but do you know which user is running node-red, and if this is the same user you can execute Bluetooth related commands as? That might be a starting point. I had an ubuntu install with similar problems and I’m trying to remember what I did there to solve it. Have you read the wiki page on github of the ble node? I do remember it had a lot of useful information in tools to test connection and make sure I had the right characteristics after the connection did succeed.
mike@HASERVER:~$ ps -u mike
PID TTY TIME CMD
707 ? 00:00:10 node-red
1489 ? 00:00:00 systemd
1492 ? 00:00:00 (sd-pam)
1510 ? 00:00:00 sh
1659 ? 00:00:00 dbus-launch
1666 ? 00:00:00 dbus-daemon
1747 ? 00:00:00 ssh-agent
1778 ? 00:00:00 xfce4-session
1819 ? 00:00:00 xfconfd
1834 ? 00:00:00 gpg-agent
1840 ? 00:00:01 xfwm4
1844 ? 00:00:03 xfce4-panel
1849 ? 00:00:00 Thunar
1867 ? 00:00:01 pasystray
1897 ? 00:00:48 nm-applet
1922 ? 00:00:00 xfsettingsd
1935 ? 00:00:01 blueman-applet
1947 ? 00:00:00 polkit-gnome-au
1961 ? 00:00:00 at-spi-bus-laun
1965 ? 00:00:00 pulseaudio
1976 ? 00:00:00 gvfsd
2006 ? 00:00:00 gvfsd-fuse
2019 ? 00:00:00 dbus-daemon
2041 ? 00:00:00 gconf-helper
2043 ? 00:00:00 gconfd-2
2046 ? 00:00:00 gvfs-udisks2-vo
2048 ? 00:00:00 at-spi2-registr
2062 ? 00:00:00 gvfs-gphoto2-vo
2069 ? 00:00:00 gvfs-mtp-volume
2122 ? 00:00:00 gvfs-afc-volume
2154 ? 00:00:00 gvfs-goa-volume
2208 ? 00:00:00 panel-6-systray
2209 ? 00:00:00 panel-2-actions
2228 ? 00:00:00 obexd
3422 ? 00:00:00 gvfsd-metadata
3771 ? 00:00:00 xfce4-notifyd
3923 ? 00:01:22 chromium-browse
3944 ? 00:00:00 chromium-browse
3969 ? 00:00:24 chromium-browse
3972 ? 00:00:38 chromium-browse
3999 ? 00:00:00 gnome-keyring-d
4093 ? 00:01:49 chromium-browse
5947 ? 00:00:00 xfdesktop
5973 ? 00:00:00 xfce4-terminal
5977 pts/0 00:00:00 bash
5993 pts/0 00:00:00 ps
The only thing i've found from their wiki is if the options are greyed out, it means there's no devices nearby, but there's plenty and the OS can detect them fine.
I've tried this on a pi4 and having the same issue.
I noticed many errors when installing the node:
2020-01-07T08:16:20.387Z Install : node-red-contrib-generic-ble 3.1.0
2020-01-07T08:16:20.492Z npm install --no-audit --no-update-notifier --save --save-prefix="~" --production node-red-contrib-generic-ble@3.1.0
2020-01-07T08:16:29.527Z [out]
2020-01-07T08:16:29.527Z [out] > bluetooth-hci-socket@0.5.1 install /home/pi/.node-red/node_modules/bluetooth-hci-socket
2020-01-07T08:16:29.527Z [out] > node-gyp rebuild
2020-01-07T08:16:29.527Z [out]
2020-01-07T08:16:30.788Z [out] make: Entering directory '/home/pi/.node-red/node_modules/bluetooth-hci-socket/build'
2020-01-07T08:16:30.790Z [out] CXX(target) Release/obj.target/binding/src/BluetoothHciSocket.o
2020-01-07T08:16:32.142Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:32.142Z [err] ../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
2020-01-07T08:16:32.142Z [err] ../../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]
2020-01-07T08:16:32.142Z [err] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
2020-01-07T08:16:32.142Z [err] ^
2020-01-07T08:16:32.304Z [err] ../src/BluetoothHciSocket.cpp: In member function 'void BluetoothHciSocket::poll()':
2020-01-07T08:16:32.304Z [err] ../src/BluetoothHciSocket.cpp:251:95: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:32.304Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:32.304Z [err] ^
2020-01-07T08:16:32.304Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:32.304Z [err] ../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:32.304Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:32.304Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:32.304Z [err] ../src/BluetoothHciSocket.cpp:251:95: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:32.304Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:32.304Z [err] ^
2020-01-07T08:16:32.304Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:32.304Z [err] ../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:32.304Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:32.304Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:32.306Z [err] ../src/BluetoothHciSocket.cpp: In member function 'void BluetoothHciSocket::emitErrnoError()':
2020-01-07T08:16:32.306Z [err] ../src/BluetoothHciSocket.cpp:275:72: error: no matching function for call to 'v8::Function::NewInstance(int, v8::Local<v8::Value> [1])'
2020-01-07T08:16:32.306Z [err] Local<Value> error = errorConstructor->NewInstance(1, constructorArgs);
2020-01-07T08:16:32.306Z [err] ^
2020-01-07T08:16:32.306Z [err] In file included from /home/pi/.cache/node-gyp/10.18.0/include/node/node.h:63,
2020-01-07T08:16:32.306Z [err] from /home/pi/.cache/node-gyp/10.18.0/include/node/node_buffer.h:25,
2020-01-07T08:16:32.306Z [err] from ../src/BluetoothHciSocket.cpp:7:
2020-01-07T08:16:32.306Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:3993:44: note: candidate: 'v8::MaybeLocal<v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>, int, v8::Local<v8::Value>*) const'
2020-01-07T08:16:32.306Z [err] V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
2020-01-07T08:16:32.306Z [err] ^~~~~~~~~~~
2020-01-07T08:16:32.306Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:3993:44: note: candidate expects 3 arguments, 2 provided
2020-01-07T08:16:32.306Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:3996:44: note: candidate: 'v8::MaybeLocal<v8::Object> v8::Function::NewInstance(v8::Local<v8::Context>) const'
2020-01-07T08:16:32.306Z [err] V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
2020-01-07T08:16:32.306Z [err] ^~~~~~~~~~~
2020-01-07T08:16:32.306Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:3996:44: note: candidate expects 1 argument, 2 provided
2020-01-07T08:16:32.307Z [err] ../src/BluetoothHciSocket.cpp:282:93: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:32.307Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:32.307Z [err] ^
2020-01-07T08:16:32.307Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:32.307Z [err] ../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:32.307Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:32.307Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:32.307Z [err] ../src/BluetoothHciSocket.cpp:282:93: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:32.307Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:32.307Z [err] ^
2020-01-07T08:16:32.307Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:32.307Z [err] ../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:32.307Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:32.307Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:32.314Z [err] ../src/BluetoothHciSocket.cpp: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE BluetoothHciSocket::BindRaw(Nan::NAN_METHOD_ARGS_TYPE)':
2020-01-07T08:16:32.314Z [err] ../src/BluetoothHciSocket.cpp:395:34: warning: 'int64_t v8::Value::IntegerValue() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
2020-01-07T08:16:32.314Z [err] devId = arg0->IntegerValue();
2020-01-07T08:16:32.314Z [err] ^
2020-01-07T08:16:32.315Z [err] In file included from /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:26,
2020-01-07T08:16:32.315Z [err] from /home/pi/.cache/node-gyp/10.18.0/include/node/node.h:63,
2020-01-07T08:16:32.315Z [err] from /home/pi/.cache/node-gyp/10.18.0/include/node/node_buffer.h:25,
2020-01-07T08:16:32.315Z [err] from ../src/BluetoothHciSocket.cpp:7:
2020-01-07T08:16:32.315Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:2476:46: note: declared here
2020-01-07T08:16:32.315Z [err] V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
2020-01-07T08:16:32.315Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:32.315Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
2020-01-07T08:16:32.315Z [err] declarator __attribute__((deprecated(message)))
2020-01-07T08:16:32.315Z [err] ^~~~~~~~~~
2020-01-07T08:16:32.316Z [err] ../src/BluetoothHciSocket.cpp: In static member function 'static Nan::NAN_METHOD_RETURN_TYPE BluetoothHciSocket::BindUser(Nan::NAN_METHOD_ARGS_TYPE)':
2020-01-07T08:16:32.316Z [err] ../src/BluetoothHciSocket.cpp:417:34: warning: 'int64_t v8::Value::IntegerValue() const' is deprecated: Use maybe version [-Wdeprecated-declarations]
2020-01-07T08:16:32.316Z [err] devId = arg0->IntegerValue();
2020-01-07T08:16:32.316Z [err] ^
2020-01-07T08:16:32.316Z [err] In file included from /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:26,
2020-01-07T08:16:32.316Z [err] from /home/pi/.cache/node-gyp/10.18.0/include/node/node.h:63,
2020-01-07T08:16:32.316Z [err] from /home/pi/.cache/node-gyp/10.18.0/include/node/node_buffer.h:25,
2020-01-07T08:16:32.316Z [err] from ../src/BluetoothHciSocket.cpp:7:
2020-01-07T08:16:32.316Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8.h:2476:46: note: declared here
2020-01-07T08:16:32.316Z [err] V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
2020-01-07T08:16:32.316Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:32.316Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
2020-01-07T08:16:32.316Z [err] declarator __attribute__((deprecated(message)))
2020-01-07T08:16:32.316Z [err] ^~~~~~~~~~
2020-01-07T08:16:32.319Z [err] In file included from /home/pi/.cache/node-gyp/10.18.0/include/node/node_buffer.h:25,
2020-01-07T08:16:32.319Z [err] from ../src/BluetoothHciSocket.cpp:7:
2020-01-07T08:16:32.319Z [err] ../src/BluetoothHciSocket.cpp: At global scope:
2020-01-07T08:16:32.319Z [err] /home/pi/.cache/node-gyp/10.18.0/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]
2020-01-07T08:16:32.319Z [err] (node::addon_register_func) (regfunc), \
2020-01-07T08:16:32.319Z [err] ^
2020-01-07T08:16:32.319Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X'
2020-01-07T08:16:32.319Z [err] NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
2020-01-07T08:16:32.319Z [err] ^~~~~~~~~~~~~
2020-01-07T08:16:32.319Z [err] ../src/BluetoothHciSocket.cpp:499:1: note: in expansion of macro 'NODE_MODULE'
2020-01-07T08:16:32.319Z [err] NODE_MODULE(binding, BluetoothHciSocket::Init);
2020-01-07T08:16:32.319Z [err] ^~~~~~~~~~~
2020-01-07T08:16:32.395Z [err] In file included from /home/pi/.cache/node-gyp/10.18.0/include/node/node.h:63,
2020-01-07T08:16:32.395Z [err] from /home/pi/.cache/node-gyp/10.18.0/include/node/node_buffer.h:25,
2020-01-07T08:16:32.395Z [err] from ../src/BluetoothHciSocket.cpp:7:
2020-01-07T08:16:32.395Z [err] /home/pi/.cache/node-gyp/10.18.0/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>&)]':
2020-01-07T08:16:32.395Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/node_object_wrap.h:84:78: required from here
2020-01-07T08:16:32.395Z [err] /home/pi/.cache/node-gyp/10.18.0/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]
2020-01-07T08:16:32.395Z [err] reinterpret_cast<Callback>(callback), type);
2020-01-07T08:16:32.395Z [err] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-07T08:16:32.432Z [err] /home/pi/.cache/node-gyp/10.18.0/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>&)]':
2020-01-07T08:16:32.432Z [err] ../../nan/nan_object_wrap.h:65:61: required from here
2020-01-07T08:16:32.432Z [err] /home/pi/.cache/node-gyp/10.18.0/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]
2020-01-07T08:16:32.738Z [err] make: *** [binding.target.mk:101: Release/obj.target/binding/src/BluetoothHciSocket.o] Error 1
2020-01-07T08:16:32.738Z [out] make: Leaving directory '/home/pi/.node-red/node_modules/bluetooth-hci-socket/build'
2020-01-07T08:16:32.741Z [err] gyp
2020-01-07T08:16:32.741Z [err]
2020-01-07T08:16:32.741Z [err] ERR! build error
2020-01-07T08:16:32.741Z [err]
2020-01-07T08:16:32.742Z [err] gyp
2020-01-07T08:16:32.742Z [err] ERR! stack
2020-01-07T08:16:32.743Z [err] Error: `make` failed with exit code: 2
2020-01-07T08:16:32.743Z [err] gyp
2020-01-07T08:16:32.743Z [err] ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:191:23)
2020-01-07T08:16:32.743Z [err] gyp ERR!
2020-01-07T08:16:32.743Z [err] stack at ChildProcess.emit (events.js:198:13)
2020-01-07T08:16:32.743Z [err] gyp ERR!
2020-01-07T08:16:32.743Z [err] stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
2020-01-07T08:16:32.744Z [err] gyp
2020-01-07T08:16:32.744Z [err] ERR! System
2020-01-07T08:16:32.744Z [err] Linux 4.19.75-v7l+
2020-01-07T08:16:32.744Z [err] gyp
2020-01-07T08:16:32.744Z [err] ERR! command
2020-01-07T08:16:32.744Z [err] "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
2020-01-07T08:16:32.744Z [err] gyp ERR!
2020-01-07T08:16:32.745Z [err] cwd /home/pi/.node-red/node_modules/bluetooth-hci-socket
2020-01-07T08:16:32.745Z [err] gyp ERR!
2020-01-07T08:16:32.745Z [err] node -v v10.18.0
2020-01-07T08:16:32.745Z [err] gyp
2020-01-07T08:16:32.745Z [err] ERR!
2020-01-07T08:16:32.745Z [err] node-gyp -v v5.0.5
2020-01-07T08:16:32.745Z [err] gyp ERR!
2020-01-07T08:16:32.745Z [err] not ok
2020-01-07T08:16:32.774Z [out]
2020-01-07T08:16:32.774Z [out] > @abandonware/bluetooth-hci-socket@0.5.3-3 install /home/pi/.node-red/node_modules/@abandonware/bluetooth-hci-socket
2020-01-07T08:16:32.774Z [out] > node-pre-gyp install --fallback-to-build
2020-01-07T08:16:32.774Z [out]
2020-01-07T08:16:33.238Z [err] node-pre-gyp
2020-01-07T08:16:33.240Z [err]
2020-01-07T08:16:33.240Z [err] WARN
2020-01-07T08:16:33.241Z [err] Using needle for node-pre-gyp https download
2020-01-07T08:16:33.951Z [err] node-pre-gyp
2020-01-07T08:16:33.951Z [err] WARN Tried to download(404): https://github.com/sandeepmistry/node-bluetooth-hci-socket/releases/download/0.5.3-3/binding-0.5.3-3-node-v64-linux-arm.tar.gz
2020-01-07T08:16:33.951Z [err] node-pre-gyp WARN
2020-01-07T08:16:33.951Z [err] Pre-built binaries not found for @abandonware/bluetooth-hci-socket@0.5.3-3 and node@10.18.0 (node-v64 ABI, glibc) (falling back to source compile with node-gyp)
2020-01-07T08:16:35.940Z [out] make: Entering directory '/home/pi/.node-red/node_modules/@abandonware/bluetooth-hci-socket/build'
2020-01-07T08:16:35.941Z [out] CXX(target) Release/obj.target/binding/src/BluetoothHciSocket.o
2020-01-07T08:16:37.362Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:37.362Z [err] ../../../nan/nan.h: In function 'void Nan::AsyncQueueWorker(Nan::AsyncWorker*)':
2020-01-07T08:16:37.362Z [err] ../../../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]
2020-01-07T08:16:37.362Z [err] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
2020-01-07T08:16:37.362Z [err] ^
2020-01-07T08:16:37.520Z [err] ../src/BluetoothHciSocket.cpp: In member function 'void BluetoothHciSocket::poll()':
2020-01-07T08:16:37.520Z [err] ../src/BluetoothHciSocket.cpp:252:95: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:37.520Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:37.520Z [err] ^
2020-01-07T08:16:37.520Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:37.520Z [err] ../../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:37.520Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:37.520Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:37.520Z [err] ../src/BluetoothHciSocket.cpp:252:95: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:37.520Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:37.520Z [err] ^
2020-01-07T08:16:37.520Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:37.520Z [err] ../../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:37.520Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:37.520Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:37.522Z [err] ../src/BluetoothHciSocket.cpp: In member function 'void BluetoothHciSocket::emitErrnoError()':
2020-01-07T08:16:37.522Z [err] ../src/BluetoothHciSocket.cpp:274:93: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:37.522Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:37.522Z [err] ^
2020-01-07T08:16:37.522Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:37.522Z [err] ../../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:37.522Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:37.522Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:37.522Z [err] ../src/BluetoothHciSocket.cpp:274:93: warning: 'v8::Local<v8::Value> Nan::MakeCallback(v8::Local<v8::Object>, v8::Local<v8::String>, int, v8::Local<v8::Value>*)' is deprecated [-Wdeprecated-declarations]
2020-01-07T08:16:37.522Z [err] Nan::MakeCallback(Nan::New<Object>(this->This), Nan::New("emit").ToLocalChecked(), 2, argv);
2020-01-07T08:16:37.522Z [err] ^
2020-01-07T08:16:37.522Z [err] In file included from ../src/BluetoothHciSocket.cpp:8:
2020-01-07T08:16:37.522Z [err] ../../../nan/nan.h:1045:46: note: declared here
2020-01-07T08:16:37.522Z [err] NAN_DEPRECATED inline v8::Local<v8::Value> MakeCallback(
2020-01-07T08:16:37.522Z [err] ^~~~~~~~~~~~
2020-01-07T08:16:37.541Z [err] In file included from /home/pi/.cache/node-gyp/10.18.0/include/node/node_buffer.h:25,
2020-01-07T08:16:37.541Z [err] from ../src/BluetoothHciSocket.cpp:7:
2020-01-07T08:16:37.541Z [err] ../src/BluetoothHciSocket.cpp: At global scope:
2020-01-07T08:16:37.541Z [err] /home/pi/.cache/node-gyp/10.18.0/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]
2020-01-07T08:16:37.541Z [err] (node::addon_register_func) (regfunc), \
2020-01-07T08:16:37.541Z [err] ^
2020-01-07T08:16:37.541Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/node.h:607:3: note: in expansion of macro 'NODE_MODULE_X'
2020-01-07T08:16:37.541Z [err] NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
2020-01-07T08:16:37.541Z [err] ^~~~~~~~~~~~~
2020-01-07T08:16:37.541Z [err] ../src/BluetoothHciSocket.cpp:529:1: note: in expansion of macro 'NODE_MODULE'
2020-01-07T08:16:37.541Z [err] NODE_MODULE(binding, BluetoothHciSocket::Init);
2020-01-07T08:16:37.541Z [err] ^~~~~~~~~~~
2020-01-07T08:16:37.612Z [err] In file included from /home/pi/.cache/node-gyp/10.18.0/include/node/node.h:63,
2020-01-07T08:16:37.612Z [err] from /home/pi/.cache/node-gyp/10.18.0/include/node/node_buffer.h:25,
2020-01-07T08:16:37.612Z [err] from ../src/BluetoothHciSocket.cpp:7:
2020-01-07T08:16:37.612Z [err] /home/pi/.cache/node-gyp/10.18.0/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>&)]':
2020-01-07T08:16:37.612Z [err] /home/pi/.cache/node-gyp/10.18.0/include/node/node_object_wrap.h:84:78: required from here
2020-01-07T08:16:37.612Z [err] /home/pi/.cache/node-gyp/10.18.0/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]
2020-01-07T08:16:37.612Z [err] reinterpret_cast<Callback>(callback), type);
2020-01-07T08:16:37.612Z [err] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-01-07T08:16:37.660Z [err] /home/pi/.cache/node-gyp/10.18.0/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>&)]':
2020-01-07T08:16:37.660Z [err] ../../../nan/nan_object_wrap.h:65:61: required from here
2020-01-07T08:16:37.660Z [err] /home/pi/.cache/node-gyp/10.18.0/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]
2020-01-07T08:16:39.647Z [out] SOLINK_MODULE(target) Release/obj.target/binding.node
2020-01-07T08:16:39.906Z [out] COPY Release/binding.node
2020-01-07T08:16:39.924Z [out] COPY /home/pi/.node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/binding.node
2020-01-07T08:16:39.943Z [out] TOUCH Release/obj.target/action_after_build.stamp
2020-01-07T08:16:39.952Z [out] make: Leaving directory '/home/pi/.node-red/node_modules/@abandonware/bluetooth-hci-socket/build'
2020-01-07T08:16:39.982Z [out]
2020-01-07T08:16:39.982Z [out] > @abandonware/noble@1.9.2-5 install /home/pi/.node-red/node_modules/@abandonware/noble
2020-01-07T08:16:39.982Z [out] > node-gyp rebuild
2020-01-07T08:16:39.982Z [out]
2020-01-07T08:16:41.065Z [out] make: Entering directory '/home/pi/.node-red/node_modules/@abandonware/noble/build'
2020-01-07T08:16:41.067Z [out] SOLINK_MODULE(target) Release/obj.target/noble.node
2020-01-07T08:16:41.310Z [out] COPY Release/noble.node
2020-01-07T08:16:41.326Z [out] make: Leaving directory '/home/pi/.node-red/node_modules/@abandonware/noble/build'
2020-01-07T08:16:42.269Z [err] npm WARN optional SKIPPING OPTIONAL DEPENDENCY: xpc-connection@0.1.4 (node_modules/xpc-connection):
2020-01-07T08:16:42.269Z [err] npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for xpc-connection@0.1.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
2020-01-07T08:16:42.269Z [err] npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bluetooth-hci-socket@0.5.1 (node_modules/bluetooth-hci-socket):
2020-01-07T08:16:42.269Z [err] npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bluetooth-hci-socket@0.5.1 install: `node-gyp rebuild`
2020-01-07T08:16:42.269Z [err] npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
2020-01-07T08:16:42.269Z [err]
2020-01-07T08:16:42.271Z [out] + node-red-contrib-generic-ble@3.1.0
2020-01-07T08:16:42.271Z [out] added 38 packages from 119 contributors in 19.478s
2020-01-07T08:16:42.521Z [out]
2020-01-07T08:16:42.521Z [out] 1 package is looking for funding
2020-01-07T08:16:42.521Z [out] run `npm fund` for details
2020-01-07T08:16:42.521Z [out]
2020-01-07T08:16:42.547Z rc=0
Hope someone can solve this as it's driving me insane.
Thanks for reading.