LoginSignup
9
4

More than 1 year has passed since last update.

コマンドラインで電気をつけよう

Posted at

どうもはじめまして、@hatepoと申します。
はじめてQiitaなるものに投稿してみようかと思います。
とはいえ最近仕事ではあんまりコードも書いてないので、趣味のスマートホームデバイスの話でも。

スマートホームデバイスは賢い

スマートスピーカーが出始めて、それに対応するスマートホームデバイスもいっぱいでてきてますよね!
スマートホームデバイスはIoT機器として単にインターネットにつながってスマートスピーカーから操作できるだけではなく、それぞれのデバイスを連動させて操作できたりするあたりがスマート(賢い)なんでしょうね。

SwitchBotは楽しい

なかでもSwitchBotは、リモコンやセンサー、カメラなんかだけじゃなく、カーテン開閉器や加湿器なんかまで出しちゃうあたりバカっぽくてよいです。(絶賛)
そしてSwitchBotのとってもいいところは、デバイスを操作するAPI仕様が一般に公開されていて、自由に使えちゃうところです。
ほらもう楽しい。

コマンドラインで電気をつけよう

というわけでタイトルの「コマンドラインで電気をつけよう」を実際にやってみて、楽しさを共有できればと思います。

用意するもの

  • SwitchBotハブミニ
  • SwitchBotアプリ(iPhoneまたはAndroid)
  • 赤外線リモコンで操作できるライト

事前準備

  • SwitchBotアプリインストール
  • SwitchBotハブミニにライトをデバイス登録

1. SwitchBot OpenAPIのトークンを取得

アプリでやっていきます
プロフィール画面.PNG
プロフィール画面から設定画面に移動

設定画面.PNG
設定画面にあるアプリバージョンという項目を10回タップ(裏技っぽい!)

開発者向けオプション出現.PNG
すると開発者向けオプションという項目が出現(裏技っぽい!2回目)
この開発者向けオプションをタップ

開発者向けオプション.png
このトークンを取得ボタンを押すとトークンが表示されますのでコピーしておいてください。

このトークンであなたの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の仕様はこちら

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4