あきらぼ

テック系ブログ

スマート家電リモコンで自室の温度湿度モニター

今回は私が持っているラトックシステムのスマート家電を使って温度湿度モニターを作りました。

最近在宅勤務が増えて、何かと温湿度の変化を気にする場面が増えました。 ラトックシステムのスマート家電でも温湿度をアプリから確認することができますが、その時の温湿度しか分かりません。 そこで時系列の変化がどうなっているかをグラフでモニターできるようにしたいと思います。

追記

残念ながら、ラトックでのIFTTTのサービス提供が終了します。

aki-lab.hatenadiary.com

システム概要

今回は以下のような流れでグラフ化しています。

  1. 家電リモコンからIFTTTでGoogleスプレッドシートに出力

  2. サーバーで30分おきにスプレッドシートからJSONファイルにPythonで変換出力

  3. WEBページ上でChart.jsを使ってJSONファイルを可視化

Javascriptから直接csvダウンロードできると思うのですが、javascriptは今回初めて書いたので、簡単にできるように一度JSONに変換しています。

家電リモコンからIFTTTでGoogleスプレッドシートに出力

今回使用しているスマート家電リモコンは以下のラトックシステムの家電リモコンになります。

こちらの家電リモコンはIFTTTというサービスが利用できます。

IFTTTとは様々なWEBサービスやアプリ等々をコードを書くことなく簡単に連動させることができます。 このIFTTTが「IF This Then That」が示している通り、あるサービスのある条件をトリガーにして他のサービスを動かすことができます。 結構色々なWEBサービスと連携できるので様々なことができます。

ifttt.com

今回はラトックの家電リモコン専用のAppletをそのまま使用してセンサー情報をスプレッドシートへ出力します。 ExploreでRatocで検索すると簡単に出てきます。 その中から「センサー情報をスプレッドシートへ記録」を使用します。

あとは指示に従えば簡単にスプレッドシートへ出力することができます。 スプレッドシートのフォーマットは左から 日付、時間、温度、湿度、照度となっています。

大して個人情報でもないので公開設定にしてリンクを知っていればだれでもアクセスできるようにします。 こうすると後でアクセスるときにスプレッドシートAPI等使わずに済むので簡単なので。

サーバーで30分おきにスプレッドシートからJSONファイルにPythonで変換出力

つぎにスプレッドシートをCSVで取得してJSONファイルに変換します。 今回はサーバー上でpythonスクリプトをcrontabで30分おきに実行して変換します。

変換するPythonスクリプトは以下です。

まずCSVでダウンロードするために、スプレッドシートのURLの最後に「export?gid=0&format=csv」を追加します。 こうすることでCSVでダウンロードすることができます。

今回はPandasのライブラリを使って変換、及び、JSONで出力しています。

時間はこのコードではエポックミリ秒で出力されます。

次にこのPythonスクリプトをCrontabで30分おきに実行します。 以下のコマンドをターミナルで実行してcrontabの設定を編集します。

sudo crontab -e

以下の文を追加します。

*/30 * * * * python3 /(PATH)/RoomConditionMonitor/RoomConditionMonitor.py

これで30分おきに実行されます。

WEBページ上でChart.jsを使ってJSONファイルを可視化

最後にWEBページで表示できるようにします。

今回はパッとググって出てきたChart.jsというライブラリを使用します。

www.chartjs.org

サンプルプログラムを参考に、表示するためのJavascriptのコードを書きました。

今回はJSONの読み込みのためにJQueryのライブラリ、 グラフ表示のためのChart.jsのライブラリ、 今回は時系列のデータをx軸に使用しているため、正しく表示するためにMoment系のライブラリ等を読み込みこんでいます。

<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@^3"></script>
<script src="https://cdn.jsdelivr.net/npm/moment@^2"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-moment@^1"></script>

これですべて完了です。

実際に設置したページにアクセスしてみると、以下のようになっています。

時系列で温湿度が分かるので、寝ている間やエアコンのつけ始め、加湿器を起動したとき等の影響が手に取るように分かります。 このデータを参考にエアコンの設定を変えたり、加湿器をつけるタイミング等を快適に過ごせるように活用していこうと思います。

今度はCO2センサーも追加して換気や外出タイミングの参考にしたいですね。 あと、気圧計もあると低気圧頭痛等の判断に使えるので便利そうですよね。

以上、自室の温湿度モニターづくりでした。