tinkerhub-bridge-bluetooth v0.2.0
tinkerhub-bridge-bluetooth
This module provides access to Bluetooth devices and peripherals in a Tinkerhub network. These devices can then be extended by other plugins to provide device specific functionality.
- Latest version: 0.2.0
- Status: Unstable, currently advertisements seem to stop after a while and no devices can be found.
Installation and use
This module uses a Noble which has some prerequisites depending on your platform.
When running tinkerhubd install via:
$ tinkerhubd install bridge-bluetoothRunning on Linux
To make things run smoothly on Linux you should use setcap to allow Node
to start and stop scanning.
sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)setcap is needed, which is usually available in the package libcap2-bin.
Connecting to a device
The command bleConnect will mark a device for connection and allow other
plugins to interact with it:
$ tinkerhub
> bluetooth:ccb11ab6a729 bleConnectExtending devices
To extend a Bluetooth device it is recommended to look for both the type
and the capability ble-connected which indicates that a device is connected.
th.get('type:bluetooth-low-energy', 'cap:ble-connected')
.extendWith(thing => thing.bleInspect()
.then(data => {
const services = data.services;
if(! services[NEEDED_SERVICE]) return;
return new CustomDevice(thing).init();
})
);The following actions are available for use:
bleConnectConnect to a device and mark it for automatic connection. Used to initialize connections.
bleDisconnectDisconnect from a device and stop connecting to it automatically.
bleInspect: objectInspect the services and characteristics that the device supports.
bleRead(charateristic): mixedRead data from the given characteristic.
bleWrite(characteristic, mixed, options={})Write some data to the specified characteristic. The only option available is
withoutResponsethat when set to to true will do a write without waiting for the device to acknowledge it.bleSubscribe(characteristic)Subscribe to the characteristic to be notified when the device changes the value of the characteristic.
The following events are available:
ble:notifyEmitted when a subscribed characteristic changes. Is given an object with three keys:
service,characteristicanddata.