どうもはじめまして、@hatepoと申します。
はじめてQiitaなるものに投稿してみようかと思います。
とはいえ最近仕事ではあんまりコードも書いてないので、趣味のスマートホームデバイスの話でも。
スマートホームデバイスは賢い
スマートスピーカーが出始めて、それに対応するスマートホームデバイスもいっぱいでてきてますよね!
スマートホームデバイスはIoT機器として単にインターネットにつながってスマートスピーカーから操作できるだけではなく、それぞれのデバイスを連動させて操作できたりするあたりがスマート(賢い)なんでしょうね。
SwitchBotは楽しい
なかでもSwitchBotは、リモコンやセンサー、カメラなんかだけじゃなく、カーテン開閉器や加湿器なんかまで出しちゃうあたりバカっぽくてよいです。(絶賛)
そしてSwitchBotのとってもいいところは、デバイスを操作するAPI仕様が一般に公開されていて、自由に使えちゃうところです。
ほらもう楽しい。
コマンドラインで電気をつけよう
というわけでタイトルの「コマンドラインで電気をつけよう」を実際にやってみて、楽しさを共有できればと思います。
用意するもの
- SwitchBotハブミニ
- SwitchBotアプリ(iPhoneまたはAndroid)
- 赤外線リモコンで操作できるライト
事前準備
- SwitchBotアプリインストール
- SwitchBotハブミニにライトをデバイス登録
1. SwitchBot OpenAPIのトークンを取得
設定画面にあるアプリバージョン
という項目を10回タップ(裏技っぽい!)
すると開発者向けオプション
という項目が出現(裏技っぽい!2回目)
この開発者向けオプション
をタップ
このトークンを取得
ボタンを押すとトークンが表示されますのでコピーしておいてください。
このトークンであなたのSwitchBotデバイスが操作できちゃいますので公開厳禁です!
2. デバイスIDを取得
これであなたのSwitchBot OpenAPIがたたけるようになりました。
SwitchBotに登録されているデバイスはすべてデバイスIDが設定されていて、そのデバイスIDをキーに操作することになりますので、まずはデバイス一覧を出してデバイスIDを取得しましょう。
curl -X GET -H "Authorization:トークン" https://api.switch-bot.com/v1.0/devices
とたたくと
{"statusCode":100,"body":{"deviceList":[{"deviceId":"Hub MiniのdeviceId","deviceName":"Hub Mini","deviceType":"Hub Mini","hubDeviceId":"000000000000"}],"infraredRemoteList":[{"deviceId":"lightのdeviceId","deviceName":"light","remoteType":"Light","hubDeviceId":"************"}]},"message":"success"}
ってなjsonが返ってきます。
今回はライト(deviceNam:light)を操作したいので、デバイスIDはlightのdeviceId
ってことになります。注:デバイスIDは加工してます。
3. 電気をつけよう
ようやく本題です。
さきほど取得したデバイスIDに対して、コマンドをPOSTでなげます。
curl -X POST https://api.switch-bot.com/v1.0/devices/lightのdeviceId/commands -H "Authorization:トークン" -H "Content-Type:application/json" -d "{""command"":""turnOff"",""parameter"":""default"",""commandType"":""command""}"
とたたくと
{"statusCode":100,"body":{},"message":"success"}
って返ってきて部屋が真っ暗に・・こわい!
間違えました。電気をつけたいので先ほどcommand:turnOff
としたところをcommand:turnOn
にすれば電気がつきます
curl -X POST https://api.switch-bot.com/v1.0/devices/lightのdeviceId/commands -H "Authorization:トークン" -H "Content-Type:application/json" -d "{""command"":""turnOn"",""parameter"":""default"",""commandType"":""command""}"
電気がつきました、よかったです。
おわり
いかがでしたでしょうか。
APIでデバイスをいじれるようになると夢が広がりますね!
紹介したハブミニ以外にも色々な機器がAPIでいじれますので、SwitchBotを購入してスマートデバイスを楽しんでみてください!
今ならクリスマスセール中で全品20%OFFで買えますのでこの機会に是非。25日まで!
参考
SwitchBot OpenAPIの仕様はこちら