nac

nanoleaf-aurora-client

npm i nanoleaf-aurora-client

Readme

Nanoleaf Aurora API client

A node.js module, which provides a wrapper for the Nanoleaf Aurora API.

CircleCI

Installation

Install with the node package manager npm:

$ npm install nanoleaf-aurora-client

Get your token

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.

Examples

Create the client

var api = new AuroraApi({
    host: '192.168.1.160',
    base: '/api/v1/',
    port: '16021',
    accessToken: 'TOKEN'
  });

Get device information

api.getInfo()
  .then(function(info) {
    console.log('Device information: ' + info);
  })
  .catch(function(err) {
    console.error(err);
  });

Get power status

api.getPowerStatus()
  .then(function(info) {
    console.log('Power status: ' + info);
  })
  .catch(function(err) {
    console.error(err);
  });

Turn the device on

api.turnOn()
  .then(function() {
    console.log('Success!');
  })
  .catch(function(err) {
    console.error(err);
  });

Turn the device off

api.turnOff()
  .then(function() {
    console.log('Success!');
  })
  .catch(function(err) {
    console.error(err);
  });

Get the current brightness value

api.getBrightness()
  .then(function(brightness) {
    console.log('Brightness: ' + brightness);
  })
  .catch(function(err) {
    console.error(err);
  });

Set the brightness value

api.setBrightness(50)
  .then(function() {
    console.log('Success!');
  })
  .catch(function(err) {
    console.error(err);
  });

Get the current hue value

api.getHue(50)
  .then(function(hue) {
    console.log('Hue: ' + hue);
  })
  .catch(function(err) {
    console.error(err);
  });

Set the hue value

api.setHue(50)
  .then(function() {
    console.log('Success!');
  })
  .catch(function(err) {
    console.error(err);
  });

Get the current colour temperature

api.getColourTemperature()
  .then(function(temperature) {
    console.log('Colour temperature: ' + temperature);
  })
  .catch(function(err) {
    console.error(err);
  });

Set the colour temperature

api.setColourTemperature(100)
  .then(function() {
    console.log('Success!');
  })
  .catch(function(err) {
    console.error(err);
  });

Get the current colour mode

api.getColourMode()
  .then(function(colourMode) {
    console.log('Colour mode: ' + colourMode);
  })
  .catch(function(err) {
    console.error(err);
  });

Get the current effect

api.getEffect()
  .then(function(effect) {
    console.log('Current effect: ' + effect);
  })
  .catch(function(err) {
    console.error(err);
  });

Set the current effect

api.setEffect('Nemo')
  .then(function() {
    console.log('Success!');
  })
  .catch(function(err) {
    console.error(err);
  });

List all effects

api.listEffects()
  .then(function(effects) {
    console.log('Effects: ' + effects);
  })
  .catch(function(err) {
    console.error(err);
  });

Get the device orientation

api.getOrientation()
  .then(function(orientation) {
    console.log('Orientation: ' + orientation);
  })
  .catch(function(err) {
    console.error(err);
  });

Get the layout options

api.getLayoutOptions()
  .then(function(layout) {
    console.log('Layout: ' + layout);
  })
  .catch(function(err) {
    console.error(err);
  });

Identify (flash the panels)

api.identify()
  .then(function() {
    console.log('Success!');
  })
  .catch(function(err) {
    console.error(err);
  });

Changelog

1.2.2 (2018.01.18)

  • (Xyala) Added script to get token.

1.1.8 (2018.01.18)

  • (darrent) Fixed unit tests. No additional features added.

1.1.5 (2017.11.13)

  • (oliverschulze) added setSat and getSat function
  • (oliverschulze) adapted state changing api calls, to match Nanoleaf Aurora 2.2.0 firmware

Jump To