Netatmoで快適なオフィス環境を手に入れる！

[Progate Advent Calendar 2017](https://qiita.com/advent-calendar/2017/progate) 3日目です！個人としてはQiita初投稿になります！:tada: 

今回は、
**「Progateでは、Netatmoを使って二酸化炭素濃度や湿度の管理をしているよ！」**
という話をします。(コードは一切登場しません)

# Netatmo
<blockquote class="twitter-tweet">
<a href="https://twitter.com/prog_8/status/820946838001831938"/>
</blockquote>
(だいぶ昔のツイートですが)

この銀色のおしゃれな円柱がNetatmoです。厳密には、**Netatmo Weather Station**という製品になります。


これを使うと、

- 気温
- 湿度
- 気圧
- 二酸化炭素濃度
- 騒音

を計測することができます。

また、計測結果はWebページやスマートフォンのアプリから確認できます。
意図的に換気をしない日の二酸化炭素濃度の推移を見てみるとこんな感じです。1500ppm超えは非常に良くないらしいです:cry: 
![co2.png](https://qiita-image-store.s3.amazonaws.com/0/172126/0d4c0a8d-9285-1650-5c75-b04fc8e3b7d9.png)


# 計測結果を通知させたい
導入して1ヶ月くらいは、
**「たまにブラウザで確認して二酸化炭素濃度が1200ppm超えてたら窓を開けて換気する」**
というやり方で運用していました。

このおかげで「この空気感だと二酸化炭素濃度はXXXppmくらいだな」と分かるようになったりならなかったりしたわけですが、さすがに効率が悪いので、結果をslackに通知させようと考えました。


方法として、
slackに通知 -> slack botでしょ -> hubot使うかー
のように最初は考えたのですが、もっと楽な方法を探した結果、**IFTTT**にたどり着きました。

## IFTTTを使う
IFTTTは、
「**if** **t**his **t**hen **t**hat」を簡単に実現するサービスです。
もう少し説明しますと「あるイベントが発生したらこのようにする」というものを登録しておけるサービスです。
エンジニアっぽく言うと、イベントリスナーを登録できる、って感じですかね？？


対応サービスはたくさんあり、slackはもちろん、netatmoも対応していました。

では実際に通知の設定方法を見ていきましょう。とても簡単です！

### 1. **this**のサービスを選択する
<img width="860" alt="ifttt_this.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/a075d211-6c21-5128-ad46-4548ff1c02bd.png">

netatmoで検索して、netatmo weather stationを選択します。
<img width="739" alt="ifttt_step1.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/96e06847-c8dd-c0e6-0c94-07cc566c571d.png">

はじめての場合は、netatmoとiftttの連携が必要になります。
<img width="790" alt="ifttt_step1_connect.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/7eef08c8-3929-bbb8-1293-b2082944b774.png">

netatmoのサービス登録が済んでいれば、出てくるウィンドウ内で「はい」を選択して連携完了です！
<img width="905" alt="ifttt_step1_netatmo_auth.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/e83dfbae-0e34-e200-2cf6-80d08ca93432.png">

### 2. トリガーを設定する
連携ができたら、トリガーとなるイベントを選択します。
IFTTTでは、1分ごとや1時間ごと、のようなトリガーの設定はできません。
今回は、二酸化炭素濃度の上昇を選択します。
<img width="1000" alt="ifttt_step2.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/1bfe2c3c-7daa-441d-8412-d0ddd20d6154.png">

そして端末と値を指定します。
<img width="546" alt="ifttt_step2-2.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/128cc37d-af98-75da-c98e-e354c16db343.png">
これで**this**の設定は完了です！

### 3. **that**のサービスを選択する
<img width="736" alt="ifttt_step3.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/ebc3fa0d-51c0-f52c-3a95-84fecbef28b2.png">

こちらはslackを選択します。
<img width="779" alt="ifttt_step3-1.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/a5c1dcf5-c185-cc60-2c45-8ad2da5b7a43.png">

はじめての場合は、先ほどと同様にiftttの連携が必要です。
<img width="619" alt="ifttt_slack_connect.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/71f3d918-1baa-8473-512b-9a70a655718f.png">

### 4. アクションの設定する
slackの場合は選べるアクションが1つしかありませんでした。
<img width="983" alt="ifttt_step4.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/e944fd0f-9ece-ead0-092f-0cdb1ad6725c.png">

チャンネルやメッセージはもちろんですが、細かいところまで設定できます。
また、計測結果の値や計測時刻などは、簡単にメッセージに含めることができるようになっています。
<img width="604" alt="ifttt_slack_setting.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/83835170-b431-1f4b-3165-9ebc03ced429.png">

### 5. 完成！！

こうしてできたものをAppletと呼びますが、こんな感じになります！
![applet.png](https://qiita-image-store.s3.amazonaws.com/0/172126/69e49c8d-42c9-e072-011b-87971452207a.png)

これで、二酸化炭素濃度が1200ppmを超えたらslackに通知が来るようになりました！

Progateではこれに加えて、

- 二酸化炭素濃度が900ppmを下回ったら通知
- 湿度が45%を下回ったら通知
- 湿度が70%を超えたら通知

のAppletも動かしています。湿度の通知は最近追加しました。

実際の通知はこんな感じ。
<img width="661" alt="slack_netatmo.png" src="https://qiita-image-store.s3.amazonaws.com/0/172126/5b1d028c-c64b-e508-3683-0143763cfcb7.png">
「かまたん」という架空のキャラクターが教えてくれる風にしています笑
APPのところまでは変えられなかったので中途半端な感じになっていますが。。
ちなみに、千葉県のゆるキャラの「かまたん」とは全く関係ありません。というより今回ググって初めて知りました。

注意としましては、1つ目の通知のように、実際に計測されてから通知されるまでに時間がかかることがあります。

# 改善したい点
さて、こうして通知が来るようになってしばらく経ちましたが、改善したい点がまだ残っています。それは、、
### 通知が来ても我々がアクションを起こさないと意味がない
<br/>
ということです。当然ですが笑
二酸化炭素濃度となると、影響を感じづらいし、この時期だと寒いので、窓を開けるのがサボりがちになってしまいます。
こうなったら、窓の開閉も自動でされるようにするしかないですね:angel: 

ということを書いていたら、毎日12時と17時に換気するようになりました。このやり方のほうが習慣として定着しそうですね。

# まとめ
今回は、NetatmoとIFTTTで二酸化炭素濃度や湿度を通知させる方法を紹介しました。
二酸化炭素濃度や湿度は、気温や騒音などと比べて認識しづらいので、管理するとなればしっかり計測する必要がありますね。
皆さんも一緒に、テクノロジーの力を使って快適さを向上させていきましょう！

[Progate Advent Calendar 2017](https://qiita.com/advent-calendar/2017/progate) 明日の担当はCTO村井さんです！:sunglasses: