はじめに
以前、会社の機器の使用電力を取るついでに作っていたままだったのですが、家でもAmazonセールを機に SwitchBot 防水温湿度計を導入してみました。思ったより便利だったので家の各所へ温湿度計を置いて比較するものをつくってみました。
使うのは下記のみです。
- SwitchBot 防水温湿度計
- SwitchBot ハブミニ
- Google Spreadsheet
- Google Apps Script (GAS)で値を取得します
SwitchBot を使えるようにしておく
- iPhone, Android どちらでも良いのでアプリでセットアップしておく
- 防水温湿度計はハブミニ経由でクラウドへデータが上がるようにしておく
- アプリ上でAPI用のトークンとclient secretを取得する
- 詳しくは 【API】新バージョンAPI v1.1を公開しました をご覧ください
GASでSwitchBot APIを呼び出す
SwitchBot API v1.1 へ対応したAPI呼び出しをGASで行うコードを公開しておきます
7032/gas_switchbot/class_SwitchBot.gs
スクリプトプロパティの設定
- スプレッドシート→拡張機能→Apps Script (またはスタンドアロンスクリプト)で GAS プロジェクトを作成する
- 以下のスクリプトプロパティを設定する
プロパティ名 | 設定する値 |
---|---|
clientID | トークン |
clientSecret | トークンと同時に払い出された client secret |
SwitchBotクラス使い方
インスタンス生成
const oSwitchBot = new SwitchBot();
SwitchBot クラスのメソッド
-
メソッド名
callApiWithPath
- 機能 API の呼び出し
callApiWithPath(method,url,payload,header)
- 引数
引数 | 値 |
---|---|
method | HTTP のメソッドを指定。次のいずれか。 GET PUT POST DELETE
|
url | 呼び出すAPIのURLを指定。例) "https://api.switch-bot.com/v1.1/devices/"
|
payload |
POST や PUT 利用時に付与するPayloadを指定。GET の場合は null としておく。 |
header | API 呼び出し時にヘッダへ付加情報を漬けたい場合に指定。殆どの場合は null でOK |
呼び出し例
const result = oSwitchBot.callApiWithPath("GET","https://api.switch-bot.com/v1.1/devices/",null,null);
あとはGASで好きな様にAPIを呼んで値を呼び出したり、時間で起動するトリガーを設定して定期的に値を取得するなどすれば温度・湿度の監視が出来ます。
GAS API のリファレンスは OpenWonderLabs/SwitchBotAPI をどうぞ