VBAでNetatmo API叩いて環境測定データを取得するツール

現在の会社では、社員メンバーの増加に伴って増床をしていますが、社内のキャパを超えて人が居たりするので、室内環境の悪化が懸念事項になっています。しかし、具体的な数値や目に見える形で示さないと「なんとなく暑い、なんとなく眠くなる」といった話では、管理会社も周りの人間も動きません。

そこで、以前Google Apps Scriptで環境測定IoTである「Netatmo」を購入しデータを取得できるようにしましたが、うちの会社はG Suiteが利用禁止になっているので、Excel VBAからAPI叩いて取得できるようにしてみました。また、今回の開発に伴い、親機を2台増設し子機も6台増やしてい、トータル親機3台、子機10台の構成でデータの取得をしています。

今回作成したツールは、OAuth2.0認証を利用しているので、本来はVBAで行うには、セキュアではない為、資格情報マネージャを使いたい所ですが、VBAからは直接利用ができないので、仕方なくレジストリを利用して、認証系データの登録を行っています。デフォルトでは指定した日の1デバイス当たり1時間単位(24件のデータ)を取得するようにしています。

さらに改造を加えればそのままサイネージにグラフ表示してみたり、リアルタイムデータならば10分毎に回すようにTimerを使って通知なども可能です。