Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Objective-C library for interacting with Philips Hue lighting systems
Objective-C Ruby C
branch: master

Merge pull request #5 from jhurliman/master

Added OSX compatibility line to podspec
latest commit 60ddb0dd03
@danparsons authored
Failed to load latest commit information.
DPHue fix for getting the right on / reachable states
.gitignore Updates
DPHue.podspec Added OSX compatibility line to podspec
LICENSE Updates
README.md Update README.md

README.md

DPHue

DPHue is an Objective-C library for controlling the Philips Hue lighting system. It allows you to read and write the entire state of a Philips Hue controller and all of the lights it manages, including changing individual lamp color, power state and other settings.

DPHue works equally well on OS X and iOS.

Features

  • Complete and granular management of the entire Philips Hue lighting system
  • Robust autodiscovery of Hue controller (via meethue.com API and also SSDP)
  • Completely asynchronous - the Hue API requires separate requests for each lamp which some control software implement in a blocking, serial fashion. DPHue executes multiple requests simultaneously and asynchronously, effecting rapid and reliable state changes.

Caveats

  • The Hue controller can only handle about 30 requests in rapid succession before it starts rate limiting, which it does by responding to all requests with HTTP 503. Additionally, each lamp requires a separate request. This means that if you make many API requests lamps may take a while to change, and the Hue controller may start ignoring you. So if you try to make a change and it doesn't work, wait a little bit and try again.

Examples

Turn on all lights:

DPHue *someHue = [[DPHue alloc] initWithHueHost:@"192.168.0.53" username:@"088CA87723B99CBC38C44DDD0E7875A2";
[someHue readWithCompletion:^(DPHue *hue, NSError *err) {
     [hue allLightsOn];
}];

Set light 2 to half brightness:

DPHue *someHue = [[DPHue alloc] initWithHueHost:@"192.168.0.53" username:@"088CA87723B99CBC38C44DDD0E7875A2";
[someHue readWithCompletion:^(DPHue *hue, NSError *err) {
     DPHueLight *light = hue.lights[1];
     light.brightness = @128;
     [light write];
}];
Something went wrong with that request. Please try again.