Nihilist Postmodern Mistake

    lifxjs
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.0 • Public • Published

    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 () {
      // get all lights for the given access token
      const lights = await lifx.get.all();
    
      // find the light you are searching for
      const officeBulb = lights.find(function (light) {
        return light.label === 'Office Bulb';
      });
    
      // turn the light on
      await lifx.power.light(officeBulb.id, 'on');
    
      // set its color to a hue value...
      await lifx.color.light(officeBulb.id, {
        hue: 273,
        saturation: 1,
        brightness: 1
      });
    
      // ...or to a kelvin value
      await lifx.color.light(officeBulb.id, {
        kelvin: 3500,
        brightness: 1
      });
    
      // turn it off when the job is done...
      await lifx.power.light(officeBulb.id, 'off');
    
      // ...or turn all the lights off instead
      await lifx.power.all('off');
    })();

    Get and Activate your favorite Scene

    (async function () {
      // get all scenes for the given access token
      const scenes = await lifx.get.scenes();
    
      // find the scene you are searching for
      const movieScene = scenes.find(function (scene) {
        return scene.name === 'Sci-Fi Movie Scene';
      });
    
      // activate the 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:

    Property Details
    appToken: string How to obtain a LIFX Oauth2 Token

    lifx.get

    Method Parameters Response
    all() None List Lights
    light(id) id: string List Lights
    group(id) id: string List Lights
    location(id) id: string List Lights
    scenes() None List Scenes

    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:

    1. Neither hex nor rgb can be combined with hue, saturation, kelvin and brightness.
    2. One or many of the hue, saturation, kelvin, and brightness values can be combined to describe the desired color. Read more.

    lifx.scene

    Method Parameters Response
    activate(uuid) uuid: string Activate Scene

    Roadmap

    • Add support for effects.

    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

    Install

    npm i lifxjs

    DownloadsWeekly Downloads

    0

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    259 kB

    Total Files

    27

    Last publish

    Collaborators

    • avatar