見出し画像

SwitchBotをAPIで操作しよう

どうも。たぱすたぱすたです。

実家帰省中でiPadから投稿してみてるテストです。とはいえVPNで自宅にRDPできるのでそっちでやればいつも通りではありますが……

さて、前回以下の記事を書きました。

ですが、投稿直後にSwitchBotのオープンAPIがあることを知ったので、そちらを紹介します。

前回に比べてIFTTTの連携が必要なくなるのでこちらの手順の方がオススメです!

APIキーを取得する

APIを使用するためにはSwitchBotのアプリからAPIキーを生成する必要があります。
手順は以下の通りです。

  1. SwitchBotアプリを開き、ログインする

  2. 設定を押下する

  3. アプリバージョン欄を10回タップする

  4. 開発者向けオプションが表示されるので押下する

トークンが表示されるので控えておいてください。次の手順で使用します。

APIを叩いてみよう

API仕様がGitHubに公開してあるので、そちらを見てみましょう。

ホスト名は以下を使用します。

https://api.switch-bot.com

認証

APIの使用には先ほど取得したトークンが必要になります。
HTTPリクエストヘッダのAuthorizationにトークンをセットしてください。

REST APIを叩いてみる

APIが正しく動くことを試してみましょう。

開発者向けのPostmanというREST APIテストツールがありますので、そちらを使ってみます。

登録・ログインを求められますが、スキップしちゃって大丈夫です。
インストールしたら早速APIを試してみましょう!

まずはデバイスリストを取得してみます。

GET /v1.0/devices

ステータスコードが100で、登録しているデバイスのリストが返ってきたら成功です。

httpレスポンスは200だけどステータスは100

同じ要領でシーンを取得してみます。

このsceneIDを控えておいてください。

APIで家電を操作しよう

以下のAPI家電を操作できます。
前節で控えたsceneIDを置き換えて使用します。

POST /v1.0/scenes/{sceneId}/execute
messageでsuccessが返ってくれば成功です

成功すれば家電が動作してくれるはずです。
ラグがあると思いますが、インターネット経由でSwitchBotを動かしているのでそこは仕様みたいです。LANで操作できるようにしてくれ

前回の記事でaxiosで実装したAPIURL部分をこちらに書き換えれば、IFTTT連携と同様の操作が可能です。

おわりに

今回はSwitchBot登録機器をIFTTT連携なしで操作する方法を紹介しました。

知ってる人からすれば今更感があると思いますが、誰かの役に立てれば幸いです。

スキやフォローお待ちしてます。サポートいただけると泣いて喜びます。

それではまた次回の記事で。

いいなと思ったら応援しよう!