<commit_before># JS library for LIFX bulbs

Some experimentation with trying to interpret the network protocol for [LIFX
bulbs](http://lifx.co).  This is very much observational, so is most likely
incorrect or inaccurate, although it seems to work for me.  You have been
warned.

This is based on my setup of 2 bulbs in a single group.  That may or may not
affect the network protocol.  Also, I've not looked at how the bulbs are
initially setup to hop onto your wireless network; I configured mine with the
iPhone app, and this library is (currently) for manipulating the bulbs once
they are already attached to your network.

Ideally, I'll end up with a nice little NodeJS library which can be used to
build apps with.

_Bonus: I've made a (very) crude web interface in the "web" branch_

## Files

There are 2 files:

  * lifx.js which is the actual library
  * cli.js which is an example CLI app using the library
  * cli2.js which lets you cycle through individual parameters to get a feel
    for what they mean

My observations of the network protocol are documented in [this
doc](Protocol.md).  Hopefully LIFXLabs will release an official spec for the
network protocol which will make this a lot easier.

## Usage
<commit_msg>Added a teaser about the MQTT bridge<commit_after># JS library for LIFX bulbs

Some experimentation with trying to interpret the network protocol for [LIFX
bulbs](http://lifx.co).  This is very much observational, so is most likely
incorrect or inaccurate, although it seems to work for me.  You have been
warned.

This is based on my setup of 2 bulbs in a single group.  That may or may not
affect the network protocol.  Also, I've not looked at how the bulbs are
initially setup to hop onto your wireless network; I configured mine with the
iPhone app, and this library is (currently) for manipulating the bulbs once
they are already attached to your network.

Ideally, I'll end up with a nice little NodeJS library which can be used to
build apps with.

_Bonus: I've made a (very) crude web interface in the "web" branch and a
        bridge to MQTT in the "mqtt" branch, which will get cleaned-up and
        merged at some point_

## Files

There are 2 files:

  * lifx.js which is the actual library
  * cli.js which is an example CLI app using the library
  * cli2.js which lets you cycle through individual parameters to get a feel
    for what they mean

My observations of the network protocol are documented in [this
doc](Protocol.md).  Hopefully LIFXLabs will release an official spec for the
network protocol which will make this a lot easier.

## Usage

{'fraction_non_alphanumeric': 0.04229142637447136, 'fraction_numerical': 0.002306805074971165, 'mean_word_length': 3.8726591760299627, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '843253', 'n_tokens_mistral': 728, 'n_tokens_neox': 683, 'n_words': 426}