Masteries

技術的なことや仕事に関することを書いていきます.

Mackerelを基準にした在宅勤務環境の監視

新型コロナウイルスのアレコレが発生するまでは「昼はオフィス/夜は自宅」という生活でしたが, ここ1年は昼も夜もずっと自宅で過ごす状態が続いています. こういった状況はまだまだ続きそうなので, 少しずつ自宅環境を良くするためにアレコレ試みています.

その一環として, 自宅(自室)の気温/湿度/CO2濃度について, 適切な値になっているかをMackerelで監視/可視化する仕組みを作ったので紹介します.

気温&湿度の計測

まず, 気温と湿度の計測には, nature remoを使っています. これを, EdgeRouter X上で動くmackerel-plugin-nature-remoでMackerelに投稿する形で監視を実現しています.

papix.hatenablog.com

papix.hatenablog.com

監視ルールはこんな感じ. 温度は割と体感で暑い/寒いがわかるので, 若干わかりにくい湿度について, 低湿度(30%以下でCritical)と高湿度(55%以上でWarning, 60%以上でCritical)の監視を入れています.

f:id:papix:20210128234323p:plain

CO2濃度の計測

続いてCO2濃度. 本当はnetatmoとか, 計測できる器具を買おうと思ったんですが... まあ高いですよね. とりあえずさっくり計測してみたかったので, 部屋に転がっている古いRaspberry PiとCCS811というセンサーを使って, CO2濃度を監視する仕組みを組んでみました.

こんな感じ. 実はブレッドボードとか使ったことなかったのだけれど, 英語で書かれたサイトとか参考にしながらなんとか動くようになりました.

f:id:papix:20210128235046j:plain

blog.eldermael.io

Raspberry Piは, 以下のブログで公開されていたPythonのスクリプトに少し手を入れて, Mackerelのpython用APIクライアントを使ってMackerelに投稿するようにしています.

tech.unifa-e.com

ただCO2濃度の計測については問題点も多く... まずは値が安定しにくい点(特に起動すると, 暫く検測下限値の400ppmを指し続ける. これはそういうもの, という説明があるものの, それっぽい値を指すようになるまでだいぶ時間がかかる... ような気がする), あとは1日に1回くらいのペースでRaspberry Pi上で動くPythonのスクリプトが暴走? して計測が不可能になるという出来事が発生しています. 特に後者は致命的なので, もう少し手を入れてなんとかしたいなーと思っています.

監視ルールはこんな感じで, 1000ppmを越えたらWarning, 1500ppmを越えたらCriticalとしています.

f:id:papix:20210128234510p:plain

最近運動不足解消のためにFit Boxing2で遊んでいるのですが, 運動すると値が上昇したり, あるいは部屋を締め切ると徐々に値が上がっていったりするので, まあ値の正確さはともかく増減を検知する用途には使える... のかな? と思っています. いろいろ手を入れてみて, 余りにも不安定なら諦めてnetatmoとか導入するのを検討してもよさそうです. あるいは, Nature RemoにCO2濃度計測機能が追加されたりしたら最高ですね!

ダッシュボード

最後に自宅の環境がひと目でわかるダッシュボードをご紹介. Mackerelは, とにかく綺麗なダッシュボードが作りやすくて便利最高ですね.

f:id:papix:20210128235848p:plain

...というわけで, Mackerelを中心にして在宅勤務の監視/可視化環境を構築したお話でした. まだまだ在宅勤務する事になりそうですし, 皆様も是非自宅の監視を始めてみてはいかがでしょうか.