スマートLED電球(スマートライト, スマートランプ)「LIFX」のAPIの使い方と初期設定について解説、紹介します。
LIFXスマートライトは価格も安くお手頃で、スマホアプリのインターフェイスはもちろん、APIでもプログラミングも自由度の高い最高なオススメのスマートLED電球メーカーです。
lifxの初期設定
User Manual – English – LIFX.com
基本的にはandroidのアプリを落としてレジストレーションしてwifiの設定をしてランプの個別のwifi設定と設定をして完了。
僕の場合はランプの登録の途中でエラーになって、5回電源のオンオフを繰り返してくださいみたいに書いてあったのでそれをして再度試すとできました。
lifxというスマートランプを買ったのでAPIから説明していきます。
概要: Introduction · LIFX HTTP Remote Control API
はじめに: How to use the following examples · LIFX HTTP Remote Control API
API作成 LIFX Cloud
使用可能なランプを一覧する
curl "https://api.lifx.com/v1/lights/:selector" \
-H "Authorization: Bearer YOUR_APP_TOKEN"
:selector
リファレンス: Selectors · LIFX HTTP Remote Control API
:selector
はall
を基本置いておけばいいですが、個別の電球を操作したい場合はlabel
を指定したりします。以下参考。
蛇足ですが、androidで電球の名前を決めるときに、最後にスペースが入っていることがあります。普通前後のスペースはわかりにくさ故にstripされるんですけどされないので、labelとか指定してるのにエラーになったら一旦allして個別のlabelを再確認してみるといいかと思います。
curl "https://api.lifx.com/v1/lights/label:Lamp" \
-H "Authorization: Bearer c12…5717"
List Lights · LIFX HTTP Remote Control API
明かりをつけたり消したり、明るさを変えたり
Set State · LIFX HTTP Remote Control API
Colors · LIFX HTTP Remote Control API
ランプの状態を変えます。基本的にこれでほとんどできるようになりますね。
List Lightsのjsonのcolorの項目を参考にして、それを整形してやりました。
curl -X PUT "https://api.lifx.com/v1/lights/all/state" \
-H "Authorization: Bearer c12…5717" \
-d "power=on&color=hue:0 saturation:0 kelvin:4500 brightness:1.0"
使用例
取り急ぎ.bashrcに追加したコードを載せときます。
lifx-default(){
curl -X PUT "https://api.lifx.com/v1/lights/all/state" \
-H "Authorization: Bearer ${LIFX_API_KEY}" \
-d "power=on&color=hue:0 saturation:0 kelvin:4500 brightness:1.0"
}
alias lifx-on="lifx-default"
alias lifx="lifx-default"
lifx-presleep(){
curl -X PUT "https://api.lifx.com/v1/lights/all/state" \
-H "Authorization: Bearer ${LIFX_API_KEY}" \
-d "power=on&color=hue:0 saturation:0 kelvin:2500 brightness:0.5"
}
lifx-sleep(){
curl -X PUT "https://api.lifx.com/v1/lights/all/state" \
-H "Authorization: Bearer ${LIFX_API_KEY}" \
-d "power=on&color=hue:0 saturation:0 kelvin:2500 brightness:0.01"
}