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