lifxjs
A light-weight JavaScript library for using LIFX HTTP API.
Description
Read your lights, turn them on or off, change their colors and activate your favorite scene.
Important Note
To use lifxjs
, you need to obtain a valid OAuth 2 access token first.
Installation
Install with npm:
npm install --save lifxjs
Install with yarn:
yarn add lifxjs
Usage
Import
const Lifx = require('lifxjs');
Initialize
const lifx = new Lifx();
lifx.init({ appToken: 'APP_TOKEN' });
Get, Turn On or Off and change the Color of your Lights
(async function () {
const lights = await lifx.get.all();
const officeBulb = lights.find(function (light) {
return light.label === 'Office Bulb';
});
await lifx.power.light(officeBulb.id, 'on');
await lifx.color.light(officeBulb.id, {
hue: 273,
saturation: 1,
brightness: 1
});
await lifx.color.light(officeBulb.id, {
kelvin: 3500,
brightness: 1
});
await lifx.power.light(officeBulb.id, 'off');
await lifx.power.all('off');
})();
Get and Activate your favorite Scene
(async function () {
const scenes = await lifx.get.scenes();
const movieScene = scenes.find(function (scene) {
return scene.name === 'Sci-Fi Movie Scene';
});
await lifx.scene.activate(movieScene.uuid);
})();
API
lifx.init(options)
To initialize the library and then be able to use the features, you first have to invoke .init()
and pass options
object as a parameter with the following properties:
lifx.get
lifx.power
Method | Parameters | Response |
---|
all(status, duration?) | status: 'on' | 'off' duration: number (default: 1 ) | Set State |
light(id, status, duration?) | id: string status: 'on' | 'off' duration: number (default: 1 ) | Set State |
group(id, status, duration?) | id: string status: 'on' | 'off' duration: number (default: 1 ) | Set State |
location(id, status, duration?) | id: string status: 'on' | 'off' duration: number (default: 1 ) | Set State |
lifx.color
Method | Parameters | Response |
---|
all(color, wakeup?, duration?) | color: LifxColorConfig wakeup: boolean (default: true ) duration: number (default: 1 ) | Set State |
light(id, color, wakeup?, duration?) | id: string color: LifxColorConfig wakeup: boolean (default: true ) duration: number (default: 1 ) | Set State |
group(id, color, wakeup?, duration?) | id: string color: LifxColorConfig wakeup: boolean (default: true ) duration: number (default: 1 ) | Set State |
location(id, color, wakeup?, duration?) | id: string color: LifxColorConfig wakeup: boolean (default: true ) duration: number (default: 1 ) | Set State |
The LifxColorConfig
may have the following properties:
Property | Example |
---|
hex: string | hex: '#ff000' |
rgb: string | rgb: '255,255,0' |
hue: [0-360] | hue: 273 |
saturation: [0.0-1.0] | saturation: 1 |
kelvin: [1500-9000] | kelvin: 3500 |
brightness: [0.0-1.0] | brightness: 0.6 |
Please note when using LifxColorConfig
:
- Neither
hex
nor rgb
can be combined with hue
, saturation
, kelvin
and brightness
. - One or many of the
hue
, saturation
, kelvin
, and brightness
values can be combined to describe the desired color. Read more.
lifx.scene
Roadmap
Run Tests
Run tests once:
yarn test
Run tests with watch option
yarn test:watch
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
MIT