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
https://www.meethue.com/api/nupnpBRIDGEID
から見つけてください。(または、meethue Web サイトのMy bridgeページで、[Show me more] をクリックして)
得るACCESSTOKEN
www.meethue.com/en-US/api/gettoken?devicename=iPhone+5&appid=hueapp&deviceid=**BRIDGEID**
「アプリに戻る」を右ACCESSTOKEN
クリックし、リダイレクト先のリンク内に書き留めます
phhueapp://sdk/login/**ACCESSTOKEN**
基本的に、アクセストークンを取得するのはハックです。アプリを公式の iOS Hue アプリとして偽装し、その方法でアクセス トークンを要求します。もっと簡単な方法があるかどうかはわかりません。知っている場合は、以下にコメントしてください。
シミュレートされたログイン セッションを実行することで潜在的に自動化しACCESSTOKEN
、ページ コンテンツをスクレイピングして取得できます。しかし、公式ページを変更すると壊れる可能性が高いため、非常に信頼性が低いと思います.
今日の時点で取得の自動化を可能にするこのスクリプトACCESSTOKEN
を作成しましたが、上記で説明した理由により、明日動作することを保証しません:P
現在、この OAUTH プロセスは公式アプリでのみ機能します。他のサードパーティのアプリで開く可能性がわずかにあります。
リモコン
認証が完了すると、この部分は自動的に実行できます。制御コマンドを送信し、hue ブリッジに関連するすべてのステータスを取得するための既知のプライベート エンドポイントが 2 つあります。
コマンドエンドポイントの送信
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 パーソナル ワイヤレス照明システムのセキュリティ評価