SwitchBot の DeviceID は Bluetooth アドレスと一緒
そのものズバリな記事がなかったので書いておくとタイトル通りです。
とかを使おうとすると
You must set your Bot's Device ID in the Press Mode or Switch Mode Bot Settings (Advanced Settings > Bot Settings)
と書いてあって、Device ID が必須だぜ!! Advanced Settings > Bot Settings から設定できるから設定しような!と書いてあるんだけど Device ID の求め方は書いてない。
で、まぁ、自分で API 叩いて取得してみた
- iOS アプリのプロフィール > 設定 > アプリバージョンを 10 回タップすると開発者向けオプションが出てくるのでそこから token を手に入れる(これは上記 README にも書いてある)
- それを使って curl でデバイス一覧持ってくる
$ curl "https://api.switch-bot.com/v1.0/devices" -H "Authorization: ${token}" | jq . % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 318 100 318 0 0 309 0 0:00:01 0:00:01 --:--:-- 309 { "statusCode": 100, "body": { "deviceList": [ { "deviceId": "xxxxxxxx", "deviceName": "電気", "deviceType": "Bot", "enableCloudService": true, "hubDeviceId": "xxxxxxx" }, { "deviceId": "xxxxx", "deviceName": "Hub Mini", "deviceType": "Hub Mini", "hubDeviceId": "000000000000" } ], "infraredRemoteList": [] }, "message": "success" }
で、取得できるんだけど取得して値を見たらそのデバイスの Bluetooth Device Address と一緒だったってオチ。 アプリからデバイス情報開くと「BLE MAC」 っ書いてある項目がそれです。わざわざ API 叩かなくてもすぐに出てきますよというお話。
ググってもあんまり情報出てこなかったからメモがわりに残しておく