A node.js module, which provides a wrapper for the Nanoleaf Aurora API.
Install with the node package manager npm:
$ npm install nanoleaf-aurora-client
You can request via API query a token from your nanoleaf panel controller. To do so, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern.
The run the script "getToken.js" - token will be print in the console.
Note: edit the js file to use the correct IP and PORT to query your nanoleaf Aurora.
var api = new AuroraApi({
host: '192.168.1.160',
base: '/api/v1/',
port: '16021',
accessToken: 'TOKEN'
});
api.getInfo()
.then(function(info) {
console.log('Device information: ' + info);
})
.catch(function(err) {
console.error(err);
});
api.getPowerStatus()
.then(function(info) {
console.log('Power status: ' + info);
})
.catch(function(err) {
console.error(err);
});
api.turnOn()
.then(function() {
console.log('Success!');
})
.catch(function(err) {
console.error(err);
});
api.turnOff()
.then(function() {
console.log('Success!');
})
.catch(function(err) {
console.error(err);
});
api.getBrightness()
.then(function(brightness) {
console.log('Brightness: ' + brightness);
})
.catch(function(err) {
console.error(err);
});
api.setBrightness(50)
.then(function() {
console.log('Success!');
})
.catch(function(err) {
console.error(err);
});
api.getHue(50)
.then(function(hue) {
console.log('Hue: ' + hue);
})
.catch(function(err) {
console.error(err);
});
api.setHue(50)
.then(function() {
console.log('Success!');
})
.catch(function(err) {
console.error(err);
});
api.getColourTemperature()
.then(function(temperature) {
console.log('Colour temperature: ' + temperature);
})
.catch(function(err) {
console.error(err);
});
api.setColourTemperature(100)
.then(function() {
console.log('Success!');
})
.catch(function(err) {
console.error(err);
});
api.getColourMode()
.then(function(colourMode) {
console.log('Colour mode: ' + colourMode);
})
.catch(function(err) {
console.error(err);
});
api.getEffect()
.then(function(effect) {
console.log('Current effect: ' + effect);
})
.catch(function(err) {
console.error(err);
});
api.setEffect('Nemo')
.then(function() {
console.log('Success!');
})
.catch(function(err) {
console.error(err);
});
api.listEffects()
.then(function(effects) {
console.log('Effects: ' + effects);
})
.catch(function(err) {
console.error(err);
});
api.getOrientation()
.then(function(orientation) {
console.log('Orientation: ' + orientation);
})
.catch(function(err) {
console.error(err);
});
api.getLayoutOptions()
.then(function(layout) {
console.log('Layout: ' + layout);
})
.catch(function(err) {
console.error(err);
});
api.identify()
.then(function() {
console.log('Success!');
})
.catch(function(err) {
console.error(err);
});
- (daniel_2k) Added method for writing custom effects
- (daniel_2k) Added SSE subscription for getting push notifications (e.g. using gestures)
- (daniel_2k) Added setRythmMode
- (daniel_2k) Added duration parameter for setBrightness
- (daniel_2k) Changes to comply with nanoloeaf Aurora API
- (daniel_2k) Fixed handling timeout parameter
- (Xyala) Added script to get token.
- (darrent) Fixed unit tests. No additional features added.
- (oliverschulze) added setSat and getSat function
- (oliverschulze) adapted state changing api calls, to match Nanoleaf Aurora 2.2.0 firmware