1. トークンの取得
SwitchBot のアプリを開いて「プロフィール」→「設定」をクリック、「アプリバージョン」の項目を10回ほどタップすると 「開発者向けオプション」という項目が出てくる。
「開発者向けオプション」をタップしたら、「トークンの取得」と「クライアントシークレット」という項目が出てきます。
今回は「トークンの取得」にかかれている文字列を利用します。
2. デバイスIDの取得
1 で取得したトークンを元に下記の様にcurl を実行し、対象のデバイスIDを取得します。
今回はプラグミニのデバイスIDを利用します。
$ token="「トークンの取得」にかかれている文字列" $ curl -s -H "Authorization:${token}" https://api.switch-bot.com/v1.0/devices | jq "." { "statusCode": 100, "body": { "deviceList": [ { "deviceId": "6055F938A492", <- ココ "deviceName": "プラグミニ(JP) 92", "deviceType": "Plug Mini (JP)", "enableCloudService": true, "hubDeviceId": "" }, (...snip...) }, "message": "success" }
プラグミニの情報を取得する。
2 で取得したデバイスIDを元に、下記のようにcurlするとプラグミニの情報が帰ってくる。
# 機器の電源が入ってない時 $ deviceid=6055F938A492 $ curl -s -H "Authorization:${token}" "https://api.switch-bot.com/v1.0/devices/${deviceid}/status" | jq "." { "statusCode": 100, "body": { "deviceId": "6055F938A492", "deviceType": "Plug Mini (JP)", "hubDeviceId": "6055F938A492", "power": "on", "voltage": 100.5, "weight": 0, "electricityOfDay": 633, "electricCurrent": 0 }, "message": "success" }
# 機器の電源が入ってる時 $ curl -s -H "Authorization:${token}" "https://api.switch-bot.com/v1.0/devices/${deviceid}/status" | jq "." { "statusCode": 100, "body": { "deviceId": "6055F938A492", "deviceType": "Plug Mini (JP)", "hubDeviceId": "6055F938A492", "power": "on", "voltage": 100.5, "weight": 41.5, "electricityOfDay": 632, "electricCurrent": 0.012 }, "message": "success" }
あとはよしなにjqで整形して監視ツールとかに投げればよい。
jsonのキーの説明は公式が参考になる。 https://github.com/OpenWonderLabs/SwitchBotAPI#plug-mini-jp-1