SwitchBot 関連デバイスのリストを API を使って取得する
どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
「SwitchBot API を使う前準備」の続きです。
まずは、SwitchBot 加湿器など SwitchBot 関連デバイスのリストを取得して、操作するデバイスを特定する必要があります。
SwitchBot 関連デバイスのリスト取得
おさらいで SwitchBot API のURLを改めて紹介します。
https://github.com/OpenWonderLabs/SwitchBotAPI/blob/main/README.md
コレを使う際も Nature Remo の API を使う時と同様にアクセストークンが必要になります。
以降の curl コマンドの例で XXXXXX となっているところがアクセストークンだと思ってください。
curl -X GET "https://api.switch-bot.com/v1.0/devices" -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json; charset=utf8" | jq .
かげさんの家の場合、アクセストークンなどをマスクした状態で結果を表示すると、こんな感じになる。
curl -X GET "https://api.switch-bot.com/v1.0/devices" -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json; charset=utf8" | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1137 100 1137 0 0 1137 0 0:00:01 0:00:01 --:--:-- 1054
{
"statusCode": 100,
"body": {
"deviceList": [
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "加湿器",
"deviceType": "Humidifier",
"enableCloudService": true,
"hubDeviceId": "000000000000"
},
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "デスクトップ横温度",
"deviceType": "Meter",
"enableCloudService": true,
"hubDeviceId": "XXXXXXXXXXXX"
},
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "カーテン",
"deviceType": "Curtain",
"enableCloudService": true,
"hubDeviceId": "XXXXXXXXXXXX",
"curtainDevicesIds": [
"XXXXXXXXXXXX"
],
"calibrate": true,
"group": false,
"master": true,
"openDirection": "left"
},
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "玄関温湿度",
"deviceType": "Meter",
"enableCloudService": false,
"hubDeviceId": "000000000000"
},
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "窓側温湿度",
"deviceType": "Meter",
"enableCloudService": true,
"hubDeviceId": "XXXXXXXXXXXX"
},
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "Bot 4C",
"deviceType": "Bot",
"enableCloudService": false,
"hubDeviceId": "000000000000"
},
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "Hub Mini F1",
"deviceType": "Hub Mini",
"enableCloudService": false,
"hubDeviceId": "000000000000"
}
],
"infraredRemoteList": []
},
"message": "success"
}
今回は、SwitchBot 加湿器の操作をしたいので SwitchBot 加湿器の部分に注目します。
{
"deviceId": "XXXXXXXXXXXX",
"deviceName": "加湿器",
"deviceType": "Humidifier",
"enableCloudService": true,
"hubDeviceId": "000000000000"
},
deviceNameが「加湿器」と日本語になっているのは、かげさんがそういう名前にしたからです。
初期値のままだと「Humidifier xx」となっているかもしれません。
xxの部分は、英数字2桁になっています。
なぜこうなっているかというと、同じ製品が複数あったときにxxで個体を判断するためです。
xxはランダムに付与されているわけではなく、実はMACアドレスの最後の2桁と同じです。
重複することもあるかもしれませんが、16進数で2桁のため、256種類の区別ができるのでそう重複することはないでしょう。
余談までで時間切れになってしまった…(´・ω・`)
curl や jq を使った加湿器の操作は、別の記事に書きますね。
ここまではOKだ
コメント
このブログの新着コメントをRSSリーダに登録する為のxml