SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IoT Starter Studio

プログラマブルなスマートIoT照明「Hue」でおうちハックにチャレンジしてみよう

IoT Starter Studio 第4回


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と人感センサを使って玄関の照明の点灯の自動化をしています。アイディア次第で生活を便利にすることができますね。

 それでは、次回もお楽しみに!

Hueの購入はこちら

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
IoT Starter Studio連載記事一覧

もっと読む

この記事の著者

菅原のびすけ(dotstudio株式会社)(スガワラ ノビスケ)

 日本最大規模のIoTコミュニティ「IoTLT」主催。岩手県立大学大学院ソフトウェア情報学研究科を卒業後、株式会社LIGでWebエンジニアとして入社し、Web開発に携わる。2016年にdotstudio株式会社を立ち上げ、今はIoT領域を中心に活動している。JavaScript RoboticsコミュニティNodeBotsの主催や、IoTバックエンドサービスであるMilkcocoaのエバンジェリストとしても活動中。共著: 『JavaScriptでインタラクティブ3Dコンテンツを作ろう』 共著: 『現場のプロが教える WEBデザイン 新・スタンダードテクニック37』 共著: 『フロントエンドエンジニアのための現在とこれからの必須知識』twitter: @n0bisuke URL: dotstudioのプロフィールページ

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9683 2017/07/11 17:10

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー