Amazonで購入できる手軽なスマートホームデバイスのSwitchBotシリーズはAPIが公開されています。
そのことにより、SwitchBotのアプリからだけでなく他のアプリケーションとの連動や、自分自身でアプリケーションをつくり、オリジナルのアプリではできないような便利な使い方をすることができます。
今回はこのSwitchBotのAPIを使う方法についてご紹介します。
@itouuuuuuuuuさんがQiitaに書かれた記事を参考にしました。
SwitchBotをHub経由でAPIから操作する – Qiita
APIを使うための設定
まずは認証用トークンをスマートフォンのSwitchBotアプリから取得します。
アプリを開き
プロフィール>設定>開発者向けオプション
から取得できます。
ただしそのままだと表示されないので、「アプリバージョン」を10回タップして「開発者向けオプション」を表示させます。
「開発者向けオプション」をタップすると
ここで「トークンを取得」
これで認証用トークンを取得できました。
*SwitchBotをHub経由でAPIから操作する – Qiitaでは、クラウドサービスをオンにすると記載されていたのですが、私の方はみつかりませんでした。過去に1度やったので、そこですでに「クラウドサービス」をオンにしていて表示されなかったのかもしれません。
SwitchBot APIについてのドキュメント
GitHub – OpenWonderLabs/SwitchBotAPI: SwitchBot API Documents
こちらにAPIのドキュメントがあります。
PostmanをつかってDeviceIDを取得する
APIのテストツールPostmanをつかってDeviceIDを取得します。
Postmanで次のように設定。
方式: GET
url : https://api.switch-bot.com/v1.0/devices
Headers
Authorization : 認証用トークン
Content-Type : application/json; charset=utf8
これでSend。
このようにレスポンスが返ってくるので、このdeviceIDをつかって操作をおこないます。
DeviceIDをつかってハブミニから事務所のエアコンを温度設定26℃の冷房でOnにする方法
エアコンのAPIについて確認します。
GitHub – OpenWonderLabs/SwitchBotAPI: SwitchBot API Documents
こちらがドキュメント。
以下のようにエアコンを操作するAPI設定を確認します。
ー温度:26℃
ー運転モード:冷房
ーファンスピード:自動
ー電源:On
Postmanの設定は下記のとおり
方式: POST
url : https://api.switch-bot.com/v1.0/devices/DeviceID/commands
Headers
Authorization : 認証用トークン
Content-Type : application/json; charset=utf8
Body
{
“command”: “setAll”,
“parameter”: “26,2,1,on”,
“commandType”: “command”
}
これでSendすると、事務所のエアコンが”ピッ!”となり、動き始めました。
Postmanでの”success”のレスポンスがあります。
DeviceIDをつかってハブミニから事務所のエアコンをOffにする方法
先程はエアコンをOnにできたので、今度はOffにします。
ー電源:Off
Postmanの設定は下記のとおり
方式: POST
url : https://api.switch-bot.com/v1.0/devices/DeviceID/commands
Headers
Authorization : 認証用トークン
Content-Type : application/json; charset=utf8
Body
{
“command”: “setAll”,
“parameter”: “26,2,1,off”,
“commandType”: “command”
}
Bodyにいれるparameterは ”温度,モード,ファンスピード,On/Off”が必要なので、単純にOffにするだけでも他のパラメーターが必要になります。
Postmanから送信。
“Success”のレスポンスが返ってきて、エアコンがオフになりました。
まとめ
以上、SwitchBotのAPIを使って事務所にあるエアコンをOn/Offしたり、冷房の温度設定をする方法をご紹介しました。
APIが公開されているので、Node-REDのようなアプリケーションを使えばスケジュールを組んだり、SwitchBot以外のデバイスと組み合わせて制御することができます。
今後はその方法なども紹介していきたいと思います。