SwitchBot 加湿器の情報(ステータス)を取得するコマンド
どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
「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": "dddddddddddd",
"deviceName": "加湿器",
"deviceType": "Humidifier",
"enableCloudService": true,
"hubDeviceId": "000000000000"
},
{
"deviceId": "dddddddddddd",
"deviceName": "デスクトップ横温度",
"deviceType": "Meter",
"enableCloudService": true,
"hubDeviceId": "XXXXXXXXXXXX"
},
{
"deviceId": "dddddddddddd",
"deviceName": "カーテン",
"deviceType": "Curtain",
"enableCloudService": true,
"hubDeviceId": "XXXXXXXXXXXX",
"curtainDevicesIds": [
"XXXXXXXXXXXX"
],
"calibrate": true,
"group": false,
"master": true,
"openDirection": "left"
},
{
"deviceId": "dddddddddddd",
"deviceName": "玄関温湿度",
"deviceType": "Meter",
"enableCloudService": false,
"hubDeviceId": "000000000000"
},
{
"deviceId": "dddddddddddd",
"deviceName": "窓側温湿度",
"deviceType": "Meter",
"enableCloudService": true,
"hubDeviceId": "XXXXXXXXXXXX"
},
{
"deviceId": "dddddddddddd",
"deviceName": "Bot 4C",
"deviceType": "Bot",
"enableCloudService": false,
"hubDeviceId": "000000000000"
},
{
"deviceId": "dddddddddddd",
"deviceName": "Hub Mini F1",
"deviceType": "Hub Mini",
"enableCloudService": false,
"hubDeviceId": "000000000000"
}
],
"infraredRemoteList": []
},
"message": "success"
}
今回は、SwitchBot 加湿器の操作をしたいので SwitchBot 加湿器の部分( deviceType = Humidifier )に注目します。
{
"deviceId": "dddddddddddd",
"deviceName": "加湿器",
"deviceType": "Humidifier",
"enableCloudService": true,
"hubDeviceId": "000000000000"
},
deviceId が SwitchBot 製品の「デバイスID」です。
SwitchBot API を使った製品の操作には、この「デバイスID」が必要になります。この例だとddddddddddddの部分ですね。
SwitchBot 加湿器の情報(ステータス)を取得するコマンドだとこんな感じになります。
curl -X GET "https://api.switch-bot.com/v1.0/devices/dddddddddddd/status" -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json" | jq .
情報(ステータス)を取得するコマンドは、コマンド名 = status です。
上のコマンド例のように「 https://api.switch-bot.com/v1.0/devices/デバイスID/コマンド名」 というURLを指定する必要があります。
さて、ここまでの curl コマンドは GET を使っていました。
ここからは、SwitchBot デバイスを操作するコマンドのパラメータを指定します。
そして GET の部分が POST になります。
こんな感じです。
curl -X POST "https://api.switch-bot.com/v1.0/devices/dddddddddddd/commands" -H "Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: application/json" -d "{\"command\": \"turnOff\",\"parameter\": \"default\",\"commandType\": \"command\"}"
Windows の curl ならではの注意点があるのですが、続きは「Windows 版 curl コマンドで JSON を POST する時の注意点」に書きますね。
ここまではOKだ
コメント
このブログの新着コメントをRSSリーダに登録する為のxml