REST APIでHueを制御する
ここまでで、以下の情報を揃えることができました。
- ブリッジのIPアドレス
- ユーザー名
- 照明のID
この情報を使ってHueのREST APIに対してHTTPリクエストをしてみましょう。
APIエンドポイント
「http://<ブリッジのIPアドレス>/api/<ユーザー名>/lights/」が自身のHueのAPIエンドポイントになります。
「192.168.179.15/api/Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr/lights/」このアドレスが僕のHueのAPIの基本エンドポイントになります。
照明のオン/オフを試す
HueのAPIは基本的に「PUTリクエスト」になります。またIDを指定して「/エンドポイント/HueのID/state」というアドレスにリクエストしてみます。ターミナルからcurlコマンドで以下を実行してみましょう。
curl http://192.168.179.15/api/Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr/lights/1/state -X PUT -d '{"on":true}'

成功するとHueが点灯し、以下がレスポンスとして取得できます。
[{"success":{"/lights/1/state/on":true}}]
また、以下で消灯させることができます。
curl http://192.168.179.15/api/Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr/lights/1/state -X PUT -d '{"on":false}'
基本的なオン/オフは「{"on":true}」を送るか「{"on":false}」を送るかで使い分けることができます。
他のAPIを試してみる
先ほどはオン/オフを試しましたが、他にもいろいろな機能があります。詳細はHueのディベロッパーページを確認しましょう。
アラート
照明が一瞬点いてすぐ消えます。先ほどと同じアドレスに対して、「{"alert":"select"}」をセットしましょう。
curl http://192.168.179.15/api/Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr/lights/3/state -X PUT -d '{"alert":"select"}'
ここではIDが3のライトをアラートさせました。警報などに良さそうです。
エフェクト

時間とともにランダムに色が変化していきます。「{"effect":"colorloop"}」をセットします。
curl http://192.168.179.15/api/Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr/lights/3/state -X PUT -d '{"effect":"colorloop"}'
時間とともに色が変わって妖艶な雰囲気が漂います。飲み会などの演出に良さそうです。
まとめ
Philips HueをHTTP Request経由で制御することができました。
スマートフォンからの制御でも面白い使い方はできますが、API経由でハックすると可能性がさらに広がります。基本的にHueのAPIにはHTTP Requestでアクセスできるので、どんなプログラミング言語とも組み合わせることができるのも強みです。
dotstudio株式会社のオフィスでは、RaspberryPiと人感センサを使って玄関の照明の点灯の自動化をしています。アイディア次第で生活を便利にすることができますね。
それでは、次回もお楽しみに!
