Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
108 lines (76 sloc) 4.19 KB


This is a Hubot script package that will control your Philips Hue lights.

Build Status


Uses the node-hue-api NPM package to communicate with the hue bridge.


Run the following command to make sure the module is installed to your local Hubot instance.

$ npm install hubot-philipshue --save

To enable the script, add the hubot-philipshue entry to the external-scripts.json file (you may need to create this file).



Environment variables

Variable Description
PHILIPS_HUE_HASH The generated secret hash described below.
PHILIPS_HUE_IP The IP address of your Hue Hub.
export PHILIPS_HUE_HASH="YourSecretHash"
export PHILIPS_HUE_IP=""

Getting your Hue Hash

There is a two-step process to generating the credentials above.

First, press the button on your Hue Hub. This puts the device in a mode to accept new connections.

Second, make an HTTP POST request of the JSON payload below to http://YourHueHub/api. You can use the Clip API Debugger on your base station as well.

$ curl -v -H "Content-Type: application/json" -X POST 'http://YourHueHub/api' -d '{"devicetype": "YourAppName"}'

The Hub will respond with:


The username property will contain the hash key to use in the PHIPLIPS_HUE_HASH environment variable.


If you have not pressed the button on the Hue Hub you will receive an error like this:

{"error":{"type":101,"address":"/","description":"link button not pressed"}}

Press the link button on the hub and try again.


  • hubot hue lights - list all lights
  • hubot hue light {light number} - shows light status
  • hubot hue hsb light {light number} {hue} {saturation} {brightness}
    • hue range: 0-6553
    • saturation range: 0-254
    • brightness range: 0-254
  • hubot hue xy light {light number} {x} {y}
  • hubot hue ct light {light number} {color temp}
    • color temperature values use Mired color temperature
    • color temperature range: 153-500 (153 appears 6500K, 500 appears 2000K)
  • hubot hue turn light {light number} {on|off} - flips the switch
  • hubot hue groups - lists the groups of lights
  • hubot hue config - reads bridge config
  • hubot hue {alert|alerts} light {light number} - blink once or blink for 10 seconds specific light
  • hubot hue {colors|colorloop|loop} {on|off} light {light number} - enable or disable the colorloop effect
  • hubot hue group {group name}=[{comma separated list of light indexes}]
  • hubot hue rm group {group name} - remove grouping of lights named
  • hubot hue @ <on|off> - turn all lights in on or off
  • hubot hue @{group name} hsb=({hue},{sat},{bri}) - set hsb value for all lights in group
  • hubot hue @{group name} xy=({x},{y}) - set x, y value for all lights in group
  • hubot hue @{group name} ct={color temp} - set color temp for all lights in group







You can’t perform that action at this time.