/huephp

PHP library to control the Phillips Hue lighting system

Primary LanguagePHPMIT LicenseMIT

huephp

PHP library to control the Phillips Hue lighting system. Started out as a fork of the unmaintained phpHue class (https://github.com/danray0424/phpHue) and ended up as a complete rewrite.

Getting Started

The src/ directory contains the huephp classes and all necessary functions for interacting with the Hue hub.

Additionally, you can easily require huephp as a dependency using composer

php composer.phar require muesli/huephp ~1.0

Check out the "samples" directory. You'll find a few demos, showing you how to interact with huephp. It uses the PEST library to access Hue's RESTful API, but as a user of huephp, you don't need to worry about the details.

hue command-line tool

bin/hue is a command line lighting system controller.

./bin/hue
    -i [Hue bridge's ip]

  If you don't already have a valid registered key for this Hue bridge:
    -g [register a new key with the Hue bridge]

  Once have a registered key, you need to specify it with -k:
    -k [valid key that is registered with your Hue hub]

  Use it in combination with one of the following parameters:

    To get information from the bridge:
      -f [fetch full state from Hue hub]
      -c [check light states: returns 0 when a light is off, 1 when on]

    To control the bridge:
      If you don't specify a light number, bin/hue will target all bulbs:
        -l [light number]

      Turning a light on or off:
        -o [0 for turning the light off, 1 for turning it on]

      To set a new color, pick one of the following options:
        -n [color name (see below)]

        or
        -h [hue in degrees on the color circle 0-360]
        -s [saturation 0-254]
        -b [brightness 0-254]

        or
        -t [white color temp 150-500]

      Additionally options are:
        -r [transition time, in seconds. Decimals are legal (".1", for instance)]
        -e [command to execute before changing light setting]

You need to specify an ip (-i), a key (-k) and at least one of the following options: -h, -s, -b, -t, -o or -n. If you don't specify a light, it'll set the values you specify on all of them.

If you don't have a key yet, you can register one by calling bin/hue with -g.

You can turn lights on or off with the -o switch. Any other parameter implies '-o 1'. In other words, if you specify any other parameter when the lamp is off, we'll turn it on for you.

Presets

The '-n' switch takes a one-word name for a color, and sets the selected lights to that color. It has a small list of predefined color names, and simply doesn't do anything if you give it a string it doesn't know. It currently knows red, blue, purple, green, coolwhite, and warmwhite. A '-n' parameter may be overridden in part by other parameters. For instance, "-n red -s 50" will give you a pastel red, and "-n blue -r 10" will produce a 10-second fade to blue. Note that "-n red -h 200" will override the redness of the red command with a hue of 200, which is purpleish, but it will inherit the full saturation and brightness of the "red" preset.