lopter / lightsd

A daemon with a JSON-RPC API to control your light bulbs
GNU General Public License v3.0
129 stars 15 forks source link
c daemon lifx lightsd

lightsd, a daemon to control smart bulbs

lightsd acts a central point of control for your LIFX WiFi bulbs. lightsd should be a small, simple and fast daemon exposing an easy to use protocol inspired by how musicpd works.

Having to run a daemon to control your LIFX bulbs may seem a little bit backward but has some advantages:

.. _LIFX: http://lifx.co/ .. _musicpd: http://www.musicpd.org/

Current features

lightsd discovers your LIFX bulbs, stays in sync with them and support the following commands through a JSON-RPC_ interface:

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:

lightsd works and is developed against a variety of LIFX firmwares from the oldest ones to the newest ones.

.. _JSON-RPC: http://www.jsonrpc.org/specification .. _mkfifo(1): http://www.openbsd.org/cgi-bin/man.cgi?query=mkfifo

Documentation

lightsd is packaged for Mac OS X, Arch Linux, Debian based systems and OpenWRT. Check out https://docs.lightsd.io/latest/ for installation instructions and a walk-through some interactive examples.

lightsd and monolight, an user interface for a programmable button array, were presented at Fosdem 2017. Check out the slides for a presentation of lightsd's capabilities, architecture and an example of project built with lightsd: https://downloads.lightsd.io/slides/fosdem/fosdem_2017.pdf.

Requirements

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:

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.

Native Windows support has been kept in mind, but isn't really the focus.

Contact

Feel free to reach out via email or irc (#lightsd_ on Freenode, insist if I don't reply). As the project name implies, I'm fairly interested in other smart bulbs.

Check out the contribution guide_ for the vision behind the project and how to contribute.

Join the conversation on the LIFX forum_.

.. _#lightsd: irc://chat.freenode.net/#lightsd .. _contribution guide: https://github.com/lopter/lightsd/blob/master/CONTRIBUTING.rst .. _LIFX forum: https://community.lifx.com/t/lightsd-a-daemon-with-a-json-rpc-api-to-control-your-bulbs/446

.. vim: set tw=80 spelllang=en spell: