グラフマニアかつ自動化マニアでNature remoユーザな人のためのユーティリティ
以下の機能を提供します。
- 各種センサーデータ(温度、湿度、照度)のロギング
- ロギングしたセンサーデータのグラフ化
- 複雑なルールが設定できるエアコン自動コントローラ
Nature remoに搭載されている各種センサーデータを定期的にロギングしてグラフ化したい。
Nature Remoの標準アプリでは複雑なルール設定ができない。 「平日で室温が28度以上なら、17:45にエアコンをつける。ただし、祝日は除く。」 みたいな、きめ細やかなスケジュール設定を行いたい。
花粉の飛散量が多い日に自動で空気清浄機を起動したい
ロギングツールはシェルスクリプトで書かれているので(bashさえ動けば)どこででも動く。 例えば、NAS上でも動作可能。(QNAPのNASで動作検証済み)
ロギングしたデータをもとにセンサーデータをコマンド一発で可視化できる Python+Pandas+matplotlibで書かれているので改変も簡単
テキストファイルにルールを記載するだけで、Remo標準アプリより柔軟なエアコン制御が可能
別途APIキーを取得しておいてください。
- サーバ上にインストール用のディレクトリ(例えば/path/to/remo-tools/)を作成する。
- ダウンロードしたファイルの中のlogging, lib, utilsディレクトリをコピー
- logging/.sh, lib/.shに実行権限付与
- logging/ディレクトリの直下にlogs/ディレクトリを作成
- logging/getRemoSensorData.shをcronに登録 (例:*/15 * * * * /path/to/remo-tool/logging/getRemoSensorData.sh)
/path/to/remo-tool/logging/logs以下にNatureRemoのセンサーから取得したデータが記録される。
ツールは全部visualizeディレクトリに入っている。まず、 /path/to/remo-tool/logging/logs/ディレクトリにある
- temp.txt
- hu.txt
- il.txt
- aircon_state.txt
をvisualizeディレクトリにコピーする。
Remoのセンサーで取得されたデータを可視化するには、
python remo_graph.py
もしくは
python remo_graph_simple.py
を実行する。
エアコンの使用時間をグラフ化するには、
python aircon_usage_graph.py
を実行する。具体的にどんなグラフが作成されるかは、下の「Gallery」を参照。
(準備中)
環境省の花粉飛散量予測システムの情報を定期的に自動取得し、花粉の飛散量が多い日は自動的に空気清浄機を起動する。 以下のブログエントリに仕組みと使用方法を書いた。
Nature Remoで花粉が多い日に空気清浄機が自動起動するようにする
可視化結果例 記録された温度、湿度、照度計のすべてのデータをグラフ化した結果。
実線は平均値で、最低値と最大値の間を半透明の帯で表示している。
直近一週間分だけ拡大してグラフ化した結果。
エアコン使用時間の変化(一週間の積算使用時間)。下のグラフが気温。
全期間分表示しているグラフは、一週間分のデータを平均しスムージングしているので、センサーデータが最低数カ月分無いとよくわからないグラフになるかもしれない。
- Nature remo
- Nature remo API documents
- Nature Remoのセンサーデータをひたすら1年間記録した結果をグラフ化してみる
- Nature Remoで花粉が多い日に空気清浄機が自動起動するようにする
These codes are licensed under CC0.
以下のライブラリを使用しました
- parsrj.sh :: JSONをパースするためのシェルスクリプト
- holidays-jp :: 日本の国民の祝日をJSON形式で返すAPI