12

ユーザーが Hue ブリッジを私のサービスに登録できるようにする必要がある Philips Hue サービスを作成しようとしています。このサービスは、イベントに基づいて電球の色を変更します。IFTTT を使用できることは承知していますが、このシナリオでは IFTTT を使用せず、自分の Web サイトを philips hue のアプリに登録したいと考えています。

どうすればこれを行うことができますか?よろしくお願いいたします。ありがとう!

編集:なぜ私が反対票を投じられたのかわかりませんが、私は間違いなく調査を行いました. philips hue の開発者向け Web サイトを調べたところ、API に関する明示的な記述は見つかりませんでした。iOS SDK も調べましたが、リモート デバイスのペアリング ルーチンをトリガーするメソッドは見当たりませんでした。これまでのところ、これが機能している唯一の例は (Philips の製品以外では、「マイ アプリ」セクションにエントリを追加できる IFTTT サービスです)。

4

3 に答える 3

22

TLDR: API を書きました: https://github.com/jarvisinc/PhilipsHueRemoteAPI

この質問には、テクニカル ブログ ( http://blog.paulshi.me/technical/2013/11/27/Philips-Hue-Remote-API-Explained.html ) で回答しました。

質問は実際には 2 つの部分で構成されています。

  • 認証
  • リモコン

認証

認証を自動的に行う信頼できる方法がわかりません。以下の手順を自動化する必要があります: アイデアは、有効にするとリモートで制御できる公式の iOS APP として偽装することです。リモート コントロールの認証手順を取得BRIDGEIDして渡す必要があります。ACCESSTOKEN

  1. https://www.meethue.com/api/nupnpBRIDGEIDから見つけてください。(または、meethue Web サイトのMy bridgeページで、[Show me more] をクリックして)

  2. 得るACCESSTOKEN

    www.meethue.com/en-US/api/gettoken?devicename=iPhone+5&appid=hueapp&deviceid=**BRIDGEID**
    
  3. 「アプリに戻る」を右ACCESSTOKENクリックし、リダイレクト先のリンク内に書き留めます

    phhueapp://sdk/login/**ACCESSTOKEN**
    

基本的に、アクセストークンを取得するのはハックです。アプリを公式の iOS Hue アプリとして偽装し、その方法でアクセス トークンを要求します。もっと簡単な方法があるかどうかはわかりません。知っている場合は、以下にコメントしてください。

シミュレートされたログイン セッションを実行することで潜在的に自動化しACCESSTOKEN、ページ コンテンツをスクレイピングして取得できます。しかし、公式ページを変更すると壊れる可能性が高いため、非常に信頼性が低いと思います.

今日の時点で取得の自動化を可能にするこのスクリプトACCESSTOKENを作成しましたが、上記で説明した理由により、明日動作することを保証しません:P

現在、この OAUTH プロセスは公式アプリでのみ機能します。他のサードパーティのアプリで開く可能性がわずかにあります。

リモコン

認証が完了すると、この部分は自動的に実行できます。制御コマンドを送信し、hue ブリッジに関連するすべてのステータスを取得するための既知のプライベート エンドポイントが 2 つあります。

  • コマンド エンドポイントの送信:

    POST https://www.meethue.com/api/sendmessage
    
  • ステータス エンドポイントの取得:

    GET https://www.meethue.com/api/getbridge
    

コマンドエンドポイントの送信

  • URL:https://www.meethue.com/api/sendmessage

  • 方法:POST

  • URL パラメータ:

    token=**ACCESSTOKEN** (which you obtained earlier)
    
  • リクエストヘッダー

    content-type=application/x-www-form-urlencoded
    
  • clipmessage={ bridgeId: "**BRIDGEID**", clipCommand: { url: "/api/0/**APIENDPOINT**", method: "**METHOD**", body: **JSONCOMMAND** } }
    
    • BRIDGEID以前に取得したものと同じです
    • APIENDPOINT一部/api/<username>/***削除して公式APIと同じ/api/<usename>/
    • METHOD公式APIと同じPUT/GET/POST/DELETEの4メソッド。Sending Command Endpoint からのすべての応答が次の部分で説明されている 200 であるため、GET は実際には機能しませんが、DELETE はテストされていません。
    • JSONCOMMANDたとえば、実際のコマンド本体{"on":true}

ステータス エンドポイントの取得

  • URL:https://www.meethue.com/api/getbridge

  • 方法:GET

  • URL パラメータ:

    token=**ACCESSTOKEN**
    bridgeid=**BRIDGEID**
    
  • リクエストヘッダー

    content-type=application/x-www-form-urlencoded
    

制限事項

現在の制限は、制御コマンドが公式 API のように成功したかどうかを応答からすぐに知ることができないことです。Sending Command Endpoint を呼び出して得られるすべての応答は、<200>正しく実行していればほぼ常に同じです。ただし、Getting Status エンドポイントから Hue ブリッジに関連するすべてのステータスをいつでも取得できます。

リモート コントロール API

Philips HUE Remote APIを作成して、特にリモート コントロールの問題を解決しました。

楽しみ :)

完全なドキュメントについては、この優れた論文を参照してください。

電球のハッキング: Nitesh DhanjaniによるPhilips Hue パーソナル ワイヤレス照明システムのセキュリティ評価

于 2013-11-27T04:07:48.170 に答える
0

Philips は、リモート API をサード パーティが利用できるようにする予定です (IFTTT と meethue.com では既に使用されています)。

現在、開発者の Web サイトに早期アクセスをリクエストするためのフォームがあります (ログインが必要です): http://www.developers.meethue.com/content/remote-api

于 2014-10-28T15:49:17.323 に答える