32
Help us understand the problem. What are the problem?

posted at

updated at

SwitchBotをHub経由でAPIから操作する

SwitchBotをAPIから操作する方法をまとめておきます。
SwitchBotは、SwitchBot Hubを通してインターネットに接続されているを前提としています。

認証用トークンの取得

まずは、API認証用のトークンを取得します。
SwitchBotアプリの 設定 > 開発者向けオプション から確認可能です。
開発者向けオプション は、設定画面の アプリバージョン を10回ほどタップすると表示されるようになります。

SwitchBotの設定

APIから操作するために、SwitchBotの「クラウドサービス」をオンにしてください。

APIから操作する

こちらのAPIドキュメントを確認しながら進めていきます。

deviceIdの取得

まずは、SwitchBotの deviceId を取得します。
Authorization には、最初に取得した認証用トークンを指定してください。

curl --request GET 'https://api.switch-bot.com/v1.0/devices' \
  --header 'Authorization: 認証用トークン' \
  --header 'Content-Type: application/json; charset=utf8'

下記のようなレスポンスが返ってくるので、SwitchBotの deviceId を確認してください。

{
    "statusCode": 100,
    "body": {
        "deviceList": [
            {
                "deviceId": "HubのdeviceId",
                "deviceName": "Hub Plus 2F",
                "deviceType": "Hub Plus",
                "enableCloudService": false,
                "hubDeviceId": "000000000000"
            },
            {
                "deviceId": "SwitchBotのdeviceId",
                "deviceName": "Bot EC",
                "deviceType": "Bot",
                "enableCloudService": true,
                "hubDeviceId": "hogehoge"
            }
        ],
        "infraredRemoteList": []
    },
    "message": "success"
}

SwitchBotの操作

deviceId を確認したら、下記のリクエストを送信します。
URLには、SwitchBotの deviceId を指定してください。

curl --request POST 'https://api.switch-bot.com/v1.0/devices/SwitchBotのdeviceId/commands' \
  --header 'Authorization: 認証用トークン' \
  --header 'Content-Type: application/json; charset=utf8' \
  --data-raw '{
    "command": "press",
    "parameter": "default",
    "commandType": "command"
  }'

簡単ですね!
その他の操作もドキュメントに記載されているので、色々できそうです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
32
Help us understand the problem. What are the problem?