#light #hue #bridge #ip #control #state #send

bin+lib huemanity

A simple wrapper and CLI for the Phillips Hue lights. Added registration, but you need to know the IP of the bridge.

7 releases

0.1.6 Feb 3, 2020
0.1.5 Jan 27, 2020
0.1.3 Dec 24, 2019

#1613 in Hardware support

Download history 1/week @ 2024-06-28 22/week @ 2024-07-05 29/week @ 2024-07-26

51 downloads per month

AGPL-3.0-or-later

61KB
340 lines

Huemanity

A bare-bones package to control Phillips Hue lights written in Rust.

This CLI and crate is designed to serialise and deserialise lights from the Philips Hue API and send state to the lights.

The CLI is a bit underdeveloped at the moment, however the general crate works well. The central object (the Bridge) gets instantiated and is then able to send state to each individual light.

NOTE: Currently the Bridge object needs you to know the ip that your Hue Bridge is assigned on your network. Once that is known you are able to register the application and send commands.

Usage

Install

Installing the latest version:

git clone git@github.com:finnkauski/huemanity.git
cd huemanity
cargo install huemanity

Installing from crates.io (might be outdated):

cargo install huemanity

Usage

The simplest use case is passing a state to all lights.

# turn lights on
huemanity all --state "{\"on\":true}"
# change color
huemanity all --state "{\"xy\":[1.0, 0.0]}"

For more info:

This follows closely (basically wraps) the interactions described in the hue API get-started post up to the point of sending state to the lights.

Contributing

If you would like to contribute here are a few things that need PRs:

  • The Bridge.state_all sequentially to each light, this needs a bit more concurrency so requests get sent in one go. The reqwest library might have an async client so that might need to be implemented.

  • The CLI needs a much better wrapping and functionality

  • I do not like that the end user needs to know the bridge ip address. Ideally that would be automatically detected.

Watch this development

I stream the development of this on twitch.tv And it is currently used to create this project which links an electric drumkit to my HUE lights.

Dependencies

~20MB
~434K SLoC