プログラミング

スマートLED電球「LIFX」のAPIの使い方と初期設定

スマート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

:selectorallを基本置いておけばいいですが、個別の電球を操作したい場合は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"
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です