BLE with Node Red

Running the latest version of Hassio and Node Red. Have a BLE temp sensor I want to integrate into Home Assistant.

Trying to install node-red-contrib-generic-ble but it donest install. Whats the best way to make a BLE device appear and add to a flow?

I have reversed engineered the file descriptor and can use bluetoothctl to notify as the value changes just need a way to now add to LoveLace was hoping to do via Node Red

Install log below

2019-10-25T07:56:21.108Z Install : node-red-contrib-generic-ble 3.1.0

2019-10-25T07:56:22.410Z npm install --no-audit --no-update-notifier --save --save-prefix="~" --production [email protected]
2019-10-25T07:57:04.290Z [out] 
2019-10-25T07:57:04.290Z [out] > [email protected] install /config/node-red/node_modules/usb
2019-10-25T07:57:04.290Z [out] > prebuild-install --verbose || node-gyp rebuild
2019-10-25T07:57:04.290Z [out] 
2019-10-25T07:57:05.609Z [err] prebuild-install
2019-10-25T07:57:05.615Z [err]  
2019-10-25T07:57:05.616Z [err] info
2019-10-25T07:57:05.616Z [err]  begin Prebuild-install version 5.3.2
2019-10-25T07:57:05.654Z [err] prebuild-install info looking for cached prebuild @ /root/.npm/_prebuilds/3adbb3-usb-v1.6.0-node-v64-linuxmusl-arm.tar.gz
2019-10-25T07:57:05.656Z [err] prebuild-install
2019-10-25T07:57:05.656Z [err]  http request GET https://github.com/tessel/node-usb/releases/download/v1.6.0/usb-v1.6.0-node-v64-linuxmusl-arm.tar.gz
2019-10-25T07:57:06.391Z [err] prebuild-install
2019-10-25T07:57:06.392Z [err]  http 404 https://github.com/tessel/node-usb/releases/download/v1.6.0/usb-v1.6.0-node-v64-linuxmusl-arm.tar.gz
2019-10-25T07:57:06.415Z [err] prebuild-install
2019-10-25T07:57:06.415Z [err]  WARN install No prebuilt binaries found (target=10.16.3 runtime=node arch=arm libc=musl platform=linux)
2019-10-25T07:57:09.766Z [err] gyp
2019-10-25T07:57:09.768Z [err]  
2019-10-25T07:57:09.768Z [err] ERR! build error
2019-10-25T07:57:09.768Z [err]  
2019-10-25T07:57:09.770Z [err] gyp
2019-10-25T07:57:09.771Z [err]  ERR! stack Error: not found: make
2019-10-25T07:57:09.771Z [err] gyp
2019-10-25T07:57:09.771Z [err]  ERR! 
2019-10-25T07:57:09.772Z [err] stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)
2019-10-25T07:57:09.772Z [err] gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
2019-10-25T07:57:09.772Z [err] gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
2019-10-25T07:57:09.772Z [err] gyp ERR! 
2019-10-25T07:57:09.772Z [err] stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
2019-10-25T07:57:09.772Z [err] gyp ERR!
2019-10-25T07:57:09.772Z [err]  stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
2019-10-25T07:57:09.773Z [err] gyp 
2019-10-25T07:57:09.773Z [err] ERR! 
2019-10-25T07:57:09.773Z [err] stack
2019-10-25T07:57:09.780Z [err]      at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
2019-10-25T07:57:09.780Z [err] gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:153:21)
2019-10-25T07:57:09.782Z [err] gyp
2019-10-25T07:57:09.782Z [err]  ERR! System Linux 4.14.98-v7
2019-10-25T07:57:09.783Z [err] gyp
2019-10-25T07:57:09.783Z [err]  ERR! command
2019-10-25T07:57:09.784Z [err]  "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
2019-10-25T07:57:09.784Z [err] gyp
2019-10-25T07:57:09.784Z [err]  ERR! cwd
2019-10-25T07:57:09.784Z [err]  /config/node-red/node_modules/usb
2019-10-25T07:57:09.784Z [err] gyp ERR!
2019-10-25T07:57:09.784Z [err]  node -v v10.16.3
2019-10-25T07:57:09.784Z [err] gyp
2019-10-25T07:57:09.785Z [err]  ERR!
2019-10-25T07:57:09.785Z [err]  node-gyp -v
2019-10-25T07:57:09.785Z [err]  v3.8.0
2019-10-25T07:57:09.785Z [err] gyp
2019-10-25T07:57:09.785Z [err]  ERR!
2019-10-25T07:57:09.785Z [err]  not ok
2019-10-25T07:57:09.785Z [err]  
2019-10-25T07:57:09.845Z [out] 
2019-10-25T07:57:09.845Z [out] > @abandonware/[email protected] install /config/node-red/node_modules/@abandonware/bluetooth-hci-socket
2019-10-25T07:57:09.845Z [out] > node-pre-gyp install --fallback-to-build
2019-10-25T07:57:09.845Z [out] 
2019-10-25T07:57:12.391Z [err] node-pre-gyp
2019-10-25T07:57:12.394Z [err]  
2019-10-25T07:57:12.395Z [err] WARN
2019-10-25T07:57:12.396Z [err]  Using request for node-pre-gyp https download 
2019-10-25T07:57:13.856Z [err] node-pre-gyp
2019-10-25T07:57:13.856Z [err]  
2019-10-25T07:57:13.857Z [err] WARN
2019-10-25T07:57:13.857Z [err]  
2019-10-25T07:57:13.858Z [err] 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
2019-10-25T07:57:13.858Z [err]  
2019-10-25T07:57:13.859Z [err] node-pre-gyp
2019-10-25T07:57:13.860Z [err]  
2019-10-25T07:57:13.860Z [err] WARN
2019-10-25T07:57:13.861Z [err]  
2019-10-25T07:57:13.861Z [err] Pre-built binaries not found for @abandonware/[email protected] and [email protected] (node-v64 ABI, musl) (falling back to source compile with node-gyp)
2019-10-25T07:57:13.862Z [err]  
2019-10-25T07:57:19.085Z [err] gyp
2019-10-25T07:57:19.090Z [err]  ERR!
2019-10-25T07:57:19.090Z [err]  build error 
2019-10-25T07:57:19.093Z [err] gyp
2019-10-25T07:57:19.093Z [err]  ERR! stack Error: not found: make
2019-10-25T07:57:19.093Z [err] gyp ERR!
2019-10-25T07:57:19.093Z [err]  stack
2019-10-25T07:57:19.094Z [err]      at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)
2019-10-25T07:57:19.094Z [err] gyp
2019-10-25T07:57:19.094Z [err]  ERR!
2019-10-25T07:57:19.094Z [err]  stack
2019-10-25T07:57:19.094Z [err]      at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
2019-10-25T07:57:19.094Z [err] gyp
2019-10-25T07:57:19.094Z [err]  ERR!
2019-10-25T07:57:19.094Z [err]  stack
2019-10-25T07:57:19.094Z [err]      at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
2019-10-25T07:57:19.094Z [err] gyp
2019-10-25T07:57:19.094Z [err]  ERR!
2019-10-25T07:57:19.094Z [err]  stack
2019-10-25T07:57:19.095Z [err]      at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
2019-10-25T07:57:19.095Z [err] gyp
2019-10-25T07:57:19.095Z [err]  ERR!
2019-10-25T07:57:19.095Z [err]  stack
2019-10-25T07:57:19.095Z [err]      at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
2019-10-25T07:57:19.095Z [err] gyp 
2019-10-25T07:57:19.095Z [err] ERR! 
2019-10-25T07:57:19.095Z [err] stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
2019-10-25T07:57:19.095Z [err] gyp 
2019-10-25T07:57:19.095Z [err] ERR! 
2019-10-25T07:57:19.096Z [err] stack
2019-10-25T07:57:19.096Z [err]      at FSReqWrap.oncomplete (fs.js:153:21)
2019-10-25T07:57:19.100Z [err] gyp ERR! System Linux 4.14.98-v7
2019-10-25T07:57:19.100Z [err] gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/config/node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/binding.node" "--module_name=binding" "--module_path=/config/node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding" "--napi_version=4" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v64"
2019-10-25T07:57:19.100Z [err] gyp ERR! cwd /config/node-red/node_modules/@abandonware/bluetooth-hci-socket
2019-10-25T07:57:19.100Z [err] gyp ERR! node -v v10.16.3
2019-10-25T07:57:19.100Z [err] gyp ERR! node-gyp -v v3.8.0
2019-10-25T07:57:19.100Z [err] gyp 
2019-10-25T07:57:19.100Z [err] ERR! not ok 
2019-10-25T07:57:19.120Z [err] node-pre-gyp
2019-10-25T07:57:19.120Z [err]  ERR! build error 
2019-10-25T07:57:19.122Z [err] node-pre-gyp
2019-10-25T07:57:19.123Z [err]  ERR!
2019-10-25T07:57:19.124Z [err]  
2019-10-25T07:57:19.124Z [err] stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/config/node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/binding.node --module_name=binding --module_path=/config/node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
2019-10-25T07:57:19.124Z [err] node-pre-gyp ERR!
2019-10-25T07:57:19.125Z [err]  stack     at ChildProcess.<anonymous> (/config/node-red/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
2019-10-25T07:57:19.125Z [err] node-pre-gyp
2019-10-25T07:57:19.125Z [err]  ERR! 
2019-10-25T07:57:19.125Z [err] stack     at ChildProcess.emit (events.js:198:13)
2019-10-25T07:57:19.125Z [err] node-pre-gyp ERR!
2019-10-25T07:57:19.125Z [err]  stack
2019-10-25T07:57:19.125Z [err]      at maybeClose (internal/child_process.js:982:16)
2019-10-25T07:57:19.125Z [err] node-pre-gyp
2019-10-25T07:57:19.126Z [err]  ERR!
2019-10-25T07:57:19.126Z [err]  stack
2019-10-25T07:57:19.126Z [err]      at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
2019-10-25T07:57:19.128Z [err] node-pre-gyp
2019-10-25T07:57:19.129Z [err]  ERR! System Linux 4.14.98-v7
2019-10-25T07:57:19.129Z [err] node-pre-gyp
2019-10-25T07:57:19.129Z [err]  ERR! 
2019-10-25T07:57:19.129Z [err] command "/usr/bin/node" "/config/node-red/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
2019-10-25T07:57:19.130Z [err] node-pre-gyp
2019-10-25T07:57:19.130Z [err]  ERR! 
2019-10-25T07:57:19.130Z [err] cwd /config/node-red/node_modules/@abandonware/bluetooth-hci-socket
2019-10-25T07:57:19.130Z [err] node-pre-gyp
2019-10-25T07:57:19.130Z [err]  ERR!
2019-10-25T07:57:19.130Z [err]  node -v
2019-10-25T07:57:19.130Z [err]  v10.16.3
2019-10-25T07:57:19.131Z [err] node-pre-gyp
2019-10-25T07:57:19.131Z [err]  ERR! 
2019-10-25T07:57:19.131Z [err] node-pre-gyp -v v0.13.0
2019-10-25T07:57:19.131Z [err] node-pre-gyp
2019-10-25T07:57:19.131Z [err]  ERR!
2019-10-25T07:57:19.131Z [err]  not ok
2019-10-25T07:57:19.132Z [err]  
2019-10-25T07:57:19.140Z [out] Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/config/node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding/binding.node --module_name=binding --module_path=/config/node-red/node_modules/@abandonware/bluetooth-hci-socket/lib/binding --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v64' (1)
2019-10-25T07:57:19.178Z [out] 
2019-10-25T07:57:19.178Z [out] > @abandonware/[email protected] install /config/node-red/node_modules/@abandonware/noble
2019-10-25T07:57:19.178Z [out] > node-gyp rebuild
2019-10-25T07:57:19.178Z [out] 
2019-10-25T07:57:21.880Z [err] gyp
2019-10-25T07:57:21.883Z [err]  
2019-10-25T07:57:21.883Z [err] ERR!
2019-10-25T07:57:21.884Z [err]  
2019-10-25T07:57:21.884Z [err] build error
2019-10-25T07:57:21.885Z [err]  
2019-10-25T07:57:21.888Z [err] gyp
2019-10-25T07:57:21.889Z [err]  
2019-10-25T07:57:21.889Z [err] ERR!
2019-10-25T07:57:21.891Z [err]  
2019-10-25T07:57:21.891Z [err] stack
2019-10-25T07:57:21.892Z [err]  Error: not found: make
2019-10-25T07:57:21.893Z [err] gyp
2019-10-25T07:57:21.900Z [err]  ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)
2019-10-25T07:57:21.900Z [err] gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
2019-10-25T07:57:21.900Z [err] gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
2019-10-25T07:57:21.900Z [err] gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
2019-10-25T07:57:21.900Z [err] gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
2019-10-25T07:57:21.900Z [err] gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
2019-10-25T07:57:21.900Z [err] gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:153:21)
2019-10-25T07:57:21.900Z [err] gyp ERR! System Linux 4.14.98-v7
2019-10-25T07:57:21.900Z [err] gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
2019-10-25T07:57:21.900Z [err] gyp ERR! cwd /config/node-red/node_modules/@abandonware/noble
2019-10-25T07:57:21.900Z [err] gyp ERR! node -v v10.16.3
2019-10-25T07:57:21.901Z [err] gyp ERR! 
2019-10-25T07:57:21.901Z [err] node-gyp -v v3.8.0
2019-10-25T07:57:21.901Z [err] gyp
2019-10-25T07:57:21.901Z [err]  ERR!
2019-10-25T07:57:21.901Z [err]  not ok 
2019-10-25T07:57:25.392Z [err] npm
2019-10-25T07:57:25.393Z [err]  WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/usb):
2019-10-25T07:57:25.393Z [err] npm 
2019-10-25T07:57:25.393Z [err] WARN optional
2019-10-25T07:57:25.393Z [err]  SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `prebuild-install --verbose || node-gyp rebuild`
2019-10-25T07:57:25.393Z [err] npm
2019-10-25T07:57:25.394Z [err]  WARN optional
2019-10-25T07:57:25.394Z [err]  SKIPPING OPTIONAL DEPENDENCY: Exit status 1
2019-10-25T07:57:25.395Z [err] npm
2019-10-25T07:57:25.395Z [err]  WARN optional SKIPPING OPTIONAL DEPENDENCY: @abandonware/[email protected] (node_modules/@abandonware/bluetooth-hci-socket):
2019-10-25T07:57:25.395Z [err] npm
2019-10-25T07:57:25.395Z [err]  WARN optional
2019-10-25T07:57:25.395Z [err]  SKIPPING OPTIONAL DEPENDENCY: @abandonware/[email protected] install: `node-pre-gyp install --fallback-to-build`
2019-10-25T07:57:25.395Z [err] npm WARN 
2019-10-25T07:57:25.396Z [err] optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
2019-10-25T07:57:25.397Z [err] 
2019-10-25T07:57:25.405Z [err] npm
2019-10-25T07:57:25.405Z [err]  ERR! code ELIFECYCLE
2019-10-25T07:57:25.406Z [err] npm
2019-10-25T07:57:25.406Z [err]  ERR! errno 1
2019-10-25T07:57:25.407Z [err] npm
2019-10-25T07:57:25.408Z [err]  ERR! @abandonware/[email protected] install: `node-gyp rebuild`
2019-10-25T07:57:25.408Z [err] npm ERR!
2019-10-25T07:57:25.408Z [err]  Exit status 1
2019-10-25T07:57:25.408Z [err] npm
2019-10-25T07:57:25.409Z [err]  ERR! 
2019-10-25T07:57:25.409Z [err] npm
2019-10-25T07:57:25.409Z [err]  ERR! Failed at the @abandonware/[email protected] install script.
2019-10-25T07:57:25.409Z [err] npm
2019-10-25T07:57:25.409Z [err]  ERR! This is probably not a problem with npm. There is likely additional logging output above.
2019-10-25T07:57:25.546Z [err] 
2019-10-25T07:57:25.547Z [err] npm
2019-10-25T07:57:25.548Z [err]  
2019-10-25T07:57:25.548Z [err] ERR!
2019-10-25T07:57:25.549Z [err]  A complete log of this run can be found in:
2019-10-25T07:57:25.549Z [err] npm
2019-10-25T07:57:25.550Z [err]  
2019-10-25T07:57:25.550Z [err] ERR!
2019-10-25T07:57:25.550Z [err]      /root/.npm/_logs/2019-10-25T07_57_25_460Z-debug.log
2019-10-25T07:57:25.590Z rc=1

Why?

Let home assistant handle the connection to the device and node red to do the automations.

flamingm0e thanks I would but I cant seem to make it appear as a entity. Added manually to knowndevice.yaml and at that point I have a device identity to work with buts its a device tracker entity. Ultimately I want to have Node Red flows red and control a solar cooker motor. This is why I was trying to add the node-red-contrib-generic-ble palette to then work with the temp sensor. I have it all working with bluetoothctl and can monitor the temp ok. Again without it being a entity I cant work out my next step. Hopefully that makes sense?

In case you are still struggling with the install, add these packages to your node-red configuration:

  - musl
  - make
  - g++