開発環境
言語
- Processing 3.1.1
eclipseを使用し、core.jarをインポートした環境でコーディングしているため、ProcessingのIDEでは実行できません。
参考URL
http://hiroyukitsuda.com/archives/1721
- java 1.8.0_91
Processingで使用しているバージョン
照明
- Philips Hue スターターセット v2
OS
- macOS sierra 10.12.2
hueのデバッグ画面にアクセスする。
hueのIPアドレスを調べる
[{"id":"xxxxxxxxxxxxxxxx","internalipaddress":"192.168.0.13"}]
hueのデバッグ画面を表示する
ユーザを作成
失敗例
サイトで紹介してくれている記事を参考に次の内容でユーザ作成すると
「Command Responseでparameter, username, not available」のエラーで失敗します。
以下、内容でPOST送信する。
URL:
/api
Message Body:
{"devicetype": "Procesing", "username": "test_user"}
Method:
post
Command Response:
[ { "error": { "type": 6, "address": "/username", "description": "parameter, username, not available" } } ]
エラーの原因を調べてみると、usernameのパラメータが使用できないようになったようです。
どのバージョンからは不明ですが、以下サイトを参照にしてください。
そのため、ランダムで設定されたユーザを使用します。
https://developers.meethue.com/documentation/important-whitelist-changes
api仕様
成功例
apiの仕様通り、devicetypeに<application_name>#<devicename>を指定しユーザを作成すると
link button not pressedのエラーが出力されるので
hueブリッジのリンクボタンを押してから、もう一度送信すると
ランダムなユーザネームを取得する事ができます。
URL:
/api
Message Body:
{"devicetype": "Processing_test_app#mac tetsu"}
Method:
post
結果:リンクボタンエラー Command Response:
[ { "error": { "type": 101, "address": "", "description": "link button not pressed" } } ]
結果:成功
[ { "success": { "username": "bqpn9A3MgqjglZ-oKpfHyOgA2sRsIJs4qOu7RvKH" } } ]
照明を制御
api仕様
ライトを点灯
次のURLで
/api/{ユーザ名}/lights/{電球のID}/state
Message Bodyに「"on": true」
を指定。
URL:
/api/bqpn9A3MgqjglZ-oKpfHyOgA2sRsIJs4qOu7RvKH/lights/2/state
Message Body:
{"on": true}
Method:
put
Command Response:
[ { "success": { "/lights/2/state/on": true } } ]
ライトの色を変更
Message Bodyに指定した「"on": true」に加えて
「"hue": 0, "bri": 255, "sat": 255」
を指定する事により、赤色で点灯します。
Hueでは、HSBカラーモデルのhue(色相:0~65535)、sat(彩度:0~254)、bri(明度:0~254)の3つの属性値でライトの色を指定します。
URL:
/api/bqpn9A3MgqjglZ-oKpfHyOgA2sRsIJs4qOu7RvKH/lights/2/state
Message Body:
{"on": true,"hue": 0, "bri": 254, "sat": 254}
Method:
put
Command Response:
[ { "success": { "/lights/2/state/on": true } }, { "success": { "/lights/2/state/hue": 0 } }, { "success": { "/lights/2/state/sat": 254 } }, { "success": { "/lights/2/state/bri": 254 } } ]