Thin wrapper around sandeepmistry/noble, that helps Misfit Bolt bulbs discovery, and allows turning them on/off and changing their color and brightness, as well as reading their currently set values. Currently support setting color and brightness via RGBA and HSB.
To connect to the Misfit Bolt, you need BLE capabilities. See sandeepmistry/noble prerequisites for more details.
npm install misfit-bolt
Type static
Arguments
- callback (function, optional): function to be invoked once a Bolt is discovered. Takes a
Bolt
instance as first argument. - uuids (Array, optional): list of Bolt uuid to discover.
Returns
undefined
Example
Bolt.discover(function(bolt) {
// do something
}, ['29852E52-67A0-490A-BC55-7FAB809AD0C0']);
Type static
Arguments
- id (string): UUID of a Bolt.
Returns
<Bolt>
instance, if found.
Example
let bolt = Bolt.get('29852E52-67A0-490A-BC55-7FAB809AD0C0');
// do something with bolt
Type static
Arguments
- id (string): UUID of a Bolt.
Returns
Bool
successfully removed
Example
Bolt.remove('29852E52-67A0-490A-BC55-7FAB809AD0C0');
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.connect(function() {
// do something
});
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.disconnect(function(){
// do something
});
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.on(function(){
// do something
});
Type instance
Arguments
- callback (function)
Returns
instance
Example
bolt.off(function(){
// do something
});
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
String
type.
Returns
instance
Example
bolt.get(function(error, value) {
// do something with value
});
Type instance
Arguments
- value (String): value to set on bulb. Mostly in the form or RGBA. Also accepts
CLTMP 3200,0
orCLTMP 3200,1
(used to toggle on / off). Other undocumented formats might exist. - callback (function)
Returns
instance
Example
bolt.set("228,41,15,10", function(){
// do something
});
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Array
type.
Returns
instance
Example
bolt.getRGBA(function(error, rgbaValue) {
// do something with rgbaValue
});
Type instance
Arguments
- value (Array): value to set on bulb. Should be in the form of
[red, green, blue, alpha]
. - callback (function)
Returns
instance
Example
bolt.setRGBA([228,41,15,10], function(){
// do something
});
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Integer
type.
Returns
instance
Example
bolt.getHue(function(error, hueValue) {
// do something with hueValue
});
Type instance
Arguments
- value (Integer): value to set on bulb.
- callback (function)
Returns
instance
Example
bolt.setHue(12, function(){
// do something
});
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Integer
type.
Returns
instance
Example
bolt.getSaturation(function(error, saturationValue) {
// do something with saturationValue
});
Type instance
Arguments
- value (Integer): value to set on bulb.
- callback (function)
Returns
instance
Example
bolt.setSaturation(12, function(){
// do something
});
Type instance
Arguments
- callback (function): function invoked when value is available. Return value of
Integer
type.
Returns
instance
Example
bolt.getBrightness(function(error, brightnessValue) {
// do something with brightnessValue
});
Type instance
Arguments
- value (Integer): value to set on bulb.
- callback (function)
Returns
instance
Example
bolt.setBrightness(12, function(){
// do something
});
Type instance
Arguments
- callback (function): function invoked when state is available. Return value of
Bool
type.
Returns
instance
Example
bolt.getState(function(error, state) {
// do something with state
});
Type instance
Arguments
- callback (function): function invoked when state is set.
Returns
instance
Example
bolt.setState(true, function(error, state) {
// do something with state
});
Bolt = require('.');
// Discover every nearby Bolt
Bolt.discover(function(bolt) {
// Each time a bolt is discovered, connect to it
bolt.connect(function() {
var i = 0,
colors = [[228,41,15,10],
[216,62,36,10],
[205,55,56,10],
[211,27,76,10],
[166,18,97,10]];
// Change color every 500 ms
setInterval(function(){
var color = colors[i++ % colors.length];
bolt.setRGBA(color, function(){
// set complete
});
}, 500);
});
});
- CLI tool
- Inspired by fayep's Python implementation
- PRs welcomed!