SwitchBotをAPIで操作しよう
どうも。たぱすたぱすたです。
実家帰省中でiPadから投稿してみてるテストです。とはいえVPNで自宅にRDPできるのでそっちでやればいつも通りではありますが……
さて、前回以下の記事を書きました。
ですが、投稿直後にSwitchBotのオープンAPIがあることを知ったので、そちらを紹介します。
前回に比べてIFTTTの連携が必要なくなるのでこちらの手順の方がオススメです!
APIキーを取得する
APIを使用するためにはSwitchBotのアプリからAPIキーを生成する必要があります。
手順は以下の通りです。
SwitchBotアプリを開き、ログインする
設定を押下する
アプリバージョン欄を10回タップする
開発者向けオプションが表示されるので押下する
トークンが表示されるので控えておいてください。次の手順で使用します。
APIを叩いてみよう
API仕様がGitHubに公開してあるので、そちらを見てみましょう。
ホスト名は以下を使用します。
https://api.switch-bot.com
認証
APIの使用には先ほど取得したトークンが必要になります。
HTTPリクエストヘッダのAuthorizationにトークンをセットしてください。
REST APIを叩いてみる
APIが正しく動くことを試してみましょう。
開発者向けのPostmanというREST APIテストツールがありますので、そちらを使ってみます。
登録・ログインを求められますが、スキップしちゃって大丈夫です。
インストールしたら早速APIを試してみましょう!
まずはデバイスリストを取得してみます。
GET /v1.0/devices
ステータスコードが100で、登録しているデバイスのリストが返ってきたら成功です。
同じ要領でシーンを取得してみます。
このsceneIDを控えておいてください。
APIで家電を操作しよう
以下のAPI家電を操作できます。
前節で控えたsceneIDを置き換えて使用します。
POST /v1.0/scenes/{sceneId}/execute
成功すれば家電が動作してくれるはずです。
ラグがあると思いますが、インターネット経由でSwitchBotを動かしているのでそこは仕様みたいです。LANで操作できるようにしてくれ
前回の記事でaxiosで実装したAPIURL部分をこちらに書き換えれば、IFTTT連携と同様の操作が可能です。
おわりに
今回はSwitchBot登録機器をIFTTT連携なしで操作する方法を紹介しました。
知ってる人からすれば今更感があると思いますが、誰かの役に立てれば幸いです。
スキやフォローお待ちしてます。サポートいただけると泣いて喜びます。
それではまた次回の記事で。