SHOEISHA iD

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

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

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

IoT Starter Studio

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

IoT Starter Studio 第4回


初期設定はとても簡単

 ハックを始める前に、まずはブリッジの初期設定をします。

  • ブリッジをWi-Fiに接続し、スマートフォンアプリ(iOS版Android版)と繋げる
  • スマートフォンアプリ経由でブリッジと各照明を紐づける

 初期設定は、こちらの記事を参考に進めてください。

いよいよハック

 HueはREST形式でAPIが開いているので、ほぼ全てのプログラミング言語から制御できます。今回はcurlコマンドで、HTTP Requestの部分を設定します。

筆者の環境

  • PC:MacBookPro(Retina, 13-inch, Early 2015)
  • OS:macOS Sierra v10.12
  • ブラウザ:Google Chrome 53

ハックに必要な情報を用意する

 ハックには以下の情報が必要です。

  1. ブリッジのIPアドレス
  2. ユーザー名
  3. 照明のID

 順番に取得してみましょう。

1. HueブリッジのIPアドレスの取得

 まずはPCからHueブリッジにアクセスするために、IPアドレスを調べます。

 Hueブリッジと同じネットワークにPCを接続します。その状態で、https://www.meethue.com/api/nupnpにアクセスしましょう。

 ここでは、json形式で「id」と「internalipaddress」の値が表示されます。HueブリッジのIPアドレスが「192.168.179.15」だということが分かりました。

2. ユーザー名の取得

 次はユーザー名を取得します。ここではブラウザ上で表示できるデバッガーを利用します。

 「http://debug/clip.html」にブラウザからアクセスしましょう。ちなみに、筆者の場合は先ほどのIPアドレス「http://192.168.179.15/debug/clip.html」になります。

 無事に表示されたら、デバッガーのURLを「/api」に、Message Bodyを「{"devicetype": "デバイスの名前"}」として「POST」ボタンをクリックしましょう。

 僕は「dotstduio」という名前でデバイスを登録しました。

 過去の記事で「{"devicetype": "デバイスの名前", "username": "ユーザ名"}という形式でPOSTしましょう」と書いているものがありますが、現行のファームウェアでは「{"devicetype": "ユーザ名"}」となっているようです。

 Command Responseの箇所に以下のエラーが表示されました。

[
  {
    "error": {
      "type": 101,
      "address": "",
      "description": "link button not pressed"
    }
  }
]

 「link button not pressed」とあります。認証のために一度ブリッジの物理ボタンを押しましょう。もう一度ブラウザから「POST」ボタンを押すとリクエストが成功して、以下のようにusernameが生成されます。

[
  {
    "success": {
      "username": "Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr"
    }
  }
]

 ここでは「Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr」というユーザー名(username)が生成されました。この値を使ってAPIにアクセスしていきます。

3. 各照明のID名の取得

 ブリッジに接続している照明には、数字でIDが割り振られます。どの照明がどの数字なのかを調べましょう。これはスマートフォンアプリからでもブラウザからでも調べられます。

スマートフォンアプリから確認する方法

 スマートフォンアプリの「マイランプ」の項目で各照明に名前をつけることができます。その際に割り振られたIDをそのまま利用しましょう。

 名前の変更などもアプリからできます。このとき、照明の電源が入っていないと「!マーク」表示になります。

ブラウザから確認する方法

 「http://api/<ユーザー名>/lights/」にブラウザからアクセスしてみましょう。ここまでの手順を進めてきた筆者の環境の場合は「http://192.168.179.15/api/Xi1wEib8m5jaIkqcraRflvQgPY6GKNmxyQ09kdZr/lights/」になります。

 アクセスすると、上記ように表示されます。このとき、照明の電源が入っていないと「reachable: false」という値が返されます。

次のページ
REST APIで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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー