Huex

Elixir client for Philips Hue connected light bulbs.

Query functions return the response from the API.

Command functions return a Bridge struct in order to be pipeline friendly.

Read more on the GitHub page.

Source

Summary

authorize(bridge, username)

Requests authorization for the given username on the given bridge. Returns an “authorized” connection

connect(host, username \\ nil)

Creates a connection with the bridge available on the given host or IP address. Requires the connection to be authorized

info(bridge)

Fetches all informations available in the bridge

light_info(bridge, light)

Fetches all informations available about the given light connected to the bridge. Requires the connection to be authorized

lights(bridge)

Lists the lights connected to the given bridge. Requires the connection to be authorized

set_brightness(bridge, light, brightness)

Sets the brigthness of the given light (a value between 0 and 1). Requires the connection to be authorized

set_color(bridge, light, arg3)

Sets the color of the given light using Philips’ proprietary bi-dimensional color space. Requires the connection to be authorized

set_state(bridge, light, new_state)

Sets the state of the given light. For a list of accepted keys, look at the state object in the response of light_info Requires the connection to be authorized

turn_off(bridge, light)

Turns the given light off. Requires the connection to be authorized

turn_on(bridge, light)

Turns the given light on. Requires the connection to be authorized

Types

bridge :: Bridge.t

light :: non_neg_integer | binary

Light identifier can be either a numberic or a binary (e.g. “1”)

hsv_color :: {non_neg_integer, non_neg_integer, non_neg_integer}

Tuple containing respectively the hue, staturation and value/brillance components

xy_color :: {float, float}

Tuple containing the x and y component of the color

status :: nil | :ok | :error

Possible status of a Bridge

Functions

authorize(bridge, username)

Specs:

Requests authorization for the given username on the given bridge. Returns an “authorized” connection.

The authorization process is as follow:

1. Call authorize once, it will return an error 2. Press the link button on top of your bridge device 3. Call authorize again with the same parameters, it should succeed

Source
connect(host, username \\ nil)

Specs:

  • connect(binary, binary) :: bridge

Creates a connection with the bridge available on the given host or IP address. Requires the connection to be authorized.

Source
info(bridge)

Specs:

Fetches all informations available in the bridge.

Source
light_info(bridge, light)

Specs:

Fetches all informations available about the given light connected to the bridge. Requires the connection to be authorized.

Source
lights(bridge)

Specs:

Lists the lights connected to the given bridge. Requires the connection to be authorized.

Source
set_brightness(bridge, light, brightness)

Specs:

Sets the brigthness of the given light (a value between 0 and 1). Requires the connection to be authorized.

Source
set_color(bridge, light, arg3)

Specs:

Sets the color of the given light using Philips’ proprietary bi-dimensional color space. Requires the connection to be authorized.

Source
set_state(bridge, light, new_state)

Specs:

Sets the state of the given light. For a list of accepted keys, look at the state object in the response of light_info Requires the connection to be authorized.

Source
turn_off(bridge, light)

Specs:

Turns the given light off. Requires the connection to be authorized.

Source
turn_on(bridge, light)

Specs:

Turns the given light on. Requires the connection to be authorized.

Source