|Description||lightsd is a daemon that allows you to control your LIFX smart bulbs via a nice and local API.|
|Has website||https://github.com/lopter/lightsd, https://downloads.lightsd.io/, https://docs.lightsd.io/latest/|
|Persons working on||Kalessin|
|Tags||Anarchist Village, IOT|
lightsd, a daemon to control smart bulbs
lightsd acts a central point of control for your [ http://lifx.co/ | LIFX ] WiFi bulbs. lightsd should be a small, simple and fast daemon exposing an easy to use protocol inspired by how [ http://www.musicpd.org/ | musicpd ] works. Having to run a daemon to control your LIFX bulbs may seem a little bit backward but has some advantages:
- no discovery delay ever, you get all the bulbs and their state right away;
- lightsd is always in sync with the bulbs and always knows their state;
- lightsd act as an abstraction layer and can expose new discovery mechanisms and an unified API across different kind of smart bulbs;
- lightsd let you place your bulbs in a totally separate and closed network.
lightsd discovers your LIFX bulbs, stays in sync with them and support the following commands through a [ http://www.jsonrpc.org/specification | JSON-RPC ] interface:
- power_off (with auto-retry);
- power_on (with auto-retry);
- power_toggle (power on if off and vice-versa, with auto-retry);
- set_waveform (change the light according to a function like SAW or SINE);
- tag/untag (group/ungroup bulbs together).
The JSON-RPC interface works on top of TCP/IPv4/v6, Unix sockets, or over a command pipe (named pipe, see mkfifo(1)).
lightsd can target single or multiple bulbs at once:
- by device address;
- by device label;
- by tag;
- composite (list of targets);
lightsd works and is developed against a variety of LIFX firmwares from the oldest ones to the newest ones.
lightsd is packaged for Mac OS X, Arch Linux, Debian based systems and OpenWRT. Check out http://lightsd.readthedocs.org/en/latest/ for installation instructions and a walk-through some interactive examples.
lightsd aims to be highly portable on any slightly POSIX system and on any kind of hardware including embedded devices. Hence why lightsd is written in C with reasonable dependencies:
- libevent ≥ 2.0.19 (released in May 2012);
- CMake ≥ 2.8.9 (released in August 2012): only if you want to build lightsd from its sources.
lightsd is actively developed and tested from Arch Linux, Debian, Mac OS X, OpenWRT and OpenBSD; both for 32/64 bits and little/big endian architectures.
Feel free to reach out via email or irc [ #lightsd | irc://chat.freenode.net/#lightsd ] on Freenode, insist if I don't reply). As the project name implies, I'm fairly interested in other smart bulbs.