Skip to content

Enabling interactions with Philips Hue API's through CLI using Node.js

Notifications You must be signed in to change notification settings

armand1m/philips-hue-experiments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Philips Hue Experiments

Well, I recently bought a Google Home Mini + 3 Philips Hue bulbs in a kit, and so I started tweaking and exploring around.

This is a simple project in nodejs which explores the node-hue-api module and implements some features as commands you can run from CLI.

Usage

Getting started

  • Clone this repo locally.

  • Make sure you have the latest Node.js LTS installed. This project relies in async / await features.

  • Run npm ci

  • Register your computer as a user in Philips Bridge

Registering user

In order to make calls to Philips Bridge, you need to authenticate your device.

I implemented a simple script for this, you can run it using npm run register-user, and it will print a key after it is complete.

Keep in mind you need to press the button in Philips Bridge before running this command in order for it to work (you'll have an error message telling you to do so, if you forget to do this).

  • Without pressing Bridge button: register failing

  • After pressing Bridge button: register success

After this, get the key for the registered user, and store it in your .bashrc, .zshrc, or simply export it as PHILIPS_HUE_USERNAME=<user-token>.

At this point, you're ready to run any commands you might want to! :)

Commands

Currently, we have these commands available:

  • npm run info

    • Prints information about the commands implemented.
    • info
  • npm run register-user

    • Register an user in your Philips Bridge and prints it so you can use it to run other commands.
  • npm run turn-on

    • Turns on all lamps
  • npm run turn-off

    • Turns off all lamps
  • npm run start-colors-loop

    • Start a colors loop with all lamps
  • npm run stop-effects

    • Stop all effects in all lamps
  • npm run set-color -- "#ff0000"

    • Set color for all lamps, accepts a first argument as the color wished. Accepts CSS names, HEX, RGB, RGBA and HSL.
  • npm run set-brightness -- 40

    • Set brightness for all lamps, accepts a first argument as a brightness percentage (min: 0, max: 100)
  • npm run set-saturation -- 30

    • Set saturation for all lamps, accepts a first argument as a saturation percentage (min: 0, max: 100)
  • npm run set-color-temperature -- 170

    • Set color temperature for all lamps, accepts a first argument as a color temperature value (min: 153, max: 500)

Contributors

Releases

No releases published

Packages