LIFX HTTP API
This is an unofficial JSON RESTful API service for controlling LIFX devices. This API adds some reliability that the LIFX gem does not include.
Requirements
- Ruby 2.0+
- Tested on OS X Mavericks, but should work for other *nix platforms.
Usage
- Install the gem:
gem install lifx-http - Run in foreground (no daemonizing yet):
lifx-http - Test if working:
curl http://localhost:56780/lights.json - Toggle all lights:
curl -XPUT http://localhost:56780/lights/all/toggle - Set all lights to green:
- URL params:
curl -XPUT http://localhost:56780/lights/all/color?hue=120&saturation=1&brightness=1&duration=2 -d '' - JSON body:
curl -XPUT http://localhost:56780/lights/all/color -H "Content-Type: application/json" -d '{"hue": 120, "saturation": 1, "brightness": 1, "duration":2}' - Override method by setting
_method:curl http://localhost:56780/lights/all/color?hue=120&saturation=1&brightness=1&duration=2&_method=put
- URL params:
API
selectoris either:allfor all lightslabel:[label]for light with labellabeltag:[tag]for lights with tagtag[light_id]for light with idlight_id
GET /lights- Lists all lightsGET /lights/{selector}- Lists lights matchingselectorPUT /lights/{selector}/on- Turns lights matchingselectoronPUT /lights/{selector}/off- Turns lights matchingselectoroffPUT /lights/{selector}/toggle- Toggle lights matchingselector. If any lights inselectoris on, it will turn them offPUT /lights/{selector}/color- Sets the color for lights matchingselector. Color data can be passed as URL parameters or form parameters (JSON)PUT /lights/{light_id}/label- Changes the label of light with idlight_idPOST /lights/{light_id}/tag- Adds a tag to the lightDELETE /lights/{light_id}/tag- Removes a tag from the light
Documentation
This API is documented using Swagger.
To view documentation and play with the API, start the API server locally, then visit http://swagger.wordnik.com and put http://localhost:3000/swagger_doc.json in the first text box, then hit Explore.
You should see something like this:

License
MIT. See LICENSE
