Roomba（ルンバ） とマイホームとIoT

この記事は、[IoTLT Advent Calendar 2016 - Qiita](http://qiita.com/advent-calendar/2016/iotlt) 25日目の記事です。

2016年、念願のマイホームを購入、ペットのRoomba（ルンバ）が家族に加わり、新生活が始まりました。
そんな我が家の2016年 IoT事情をご紹介します。

1. お掃除ペット Roomba(ルンバ)
2. 物理で殴れ! MicroBot Push（マイクロボットプッシュ）
3. 電気配線の失敗を Philips Hue と IRKitでカバーする
4. 家の近所に変態が。。。 Slackで防犯情報等を通知する
5. 家族とIoT
6. まとめ


# 1. お掃除ペット Roomba(ルンバ)
家が広くなったのでお掃除が大変に。そこで**Roomba(ルンバ)**です。

|最新モデルのRoomba(ルンバ)900シリーズ|
|:--:|
|![roomba0.png](https://qiita-image-store.s3.amazonaws.com/0/34349/e32cd537-4896-5880-a081-510d35bcbf4c.png)|


最新モデルの**Roomba（ルンバ)900シリーズ**では**Wifiを搭載**し、
スマホアプリから掃除を開始させたり、スケジュール登録等が可能です。

我が家では、そこからもう一歩踏み込んで、
**AppleWatch**や**iPhone**にむかって、**「掃除をして」**とお願いすると、
**Roomba(ルンバ)**が走り出すように調整を加えました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">「Hey Siri 掃除をして」でRoomba(ルンバ）起動。 <a href="https://t.co/Ts4wuTEFcz">pic.twitter.com/Ts4wuTEFcz</a></p>&mdash; umesan (@umesan246) <a href="https://twitter.com/umesan246/status/811578185192271872">2016年12月21日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

**Roomba(ルンバ)**には、掃除開始や・掃除停止等のコマンドを受け付ける、
**Public HTTP API**が用意されていて、**iRobot Cloud Service**のユーザ名とパスワードを知っていれば、
スマホアプリ以外からでもコントロールが可能です。

**iPhoneやApple Watch**に搭載されている**Siri**を経由し、
**Homebridge**でこのAPIを叩くことで実現しています。
詳しくは下記をご覧ください。

| [「Hey Siri 掃除をして」で、Roomba（ルンバ）に掃除をしてもらう](https://datahotel.io/archives/2999)<BR>マルチクラウドインテグレーター　データホテルのテックブログ|![](http://capture.heartrails.com/150x150/border?https://datahotel.io/archives/2999)|
|:--|:-:|



**Roomba(ルンバ)**のスマホアプリでは、掃除中・掃除完了のような掃除状況を、
家の外からでも確認することができます。
ただし、push通知機能はないようで、確認する際はアプリを再度立ち上げないといけません。

そこで我が家では、お掃除状況や、何か掃除中にトラブルが発生した場合は、
**Slabk bot**から**Roomba(ルンバ)のAPI**にお問い合わせ＆返ってくるレスポンスを整形して、
**Slack**に状況を報告してくれるようにしました。

|slackbotの＠hubonyanがRoombaの掃除状況を教えてくれる|
|:--:|
|![8089e50294910c6cb163e5cb54ad137b.png](https://qiita-image-store.s3.amazonaws.com/0/34349/2d023c04-3e08-219b-e87f-f38f862f5dfe.png)|

我が家では、だいたい40〜50分くらいで掃除が完了するので、
出勤時間にあわせてRoomba（ルンバ）を起動しておくと、
仕事を開始するタイミングでPCに掃除完了の通知が飛んできます。

掃除の開始、終了をpush通知してくれるだけでなく、
エラーで止まった場合は原因も通知してくれます。
詳しくは下記をご覧ください。

| [Roomba（ルンバ） のお掃除状況を飼い猫に鳴いてもらう](https://datahotel.io/archives/2927)<BR>マルチクラウドインテグレーター　データホテルのテックブログ| ![](http://capture.heartrails.com/120x120/cool?https://datahotel.io/archives/2927)|
|:--|:-:|



最近では、[Roomba（ルンバ）の搭載しているAPIを丸裸にした人](https://github.com/koalazak/dorita980)がいたりと、
**Roomba（ルンバ）**業界が盛り上がっています。

| [koalazak/dorita980](https://github.com/koalazak/dorita980)<BR>dorita980: unofficial iRobot Roomba 980 NodeJS library / SDK| ![](http://capture.heartrails.com/150x150/border?https://github.com/koalazak/dorita980)|
|:--|:-:|


来年は、上記のパッケージを使って、**Roomba（ルンバ）**のお掃除ルートを
地図にマッピング＆Slackに投稿する仕組み作りに挑戦してみたいです。

ルンバかわいいよルンバ。


# 2. 物理で殴れ! MicroBot Push（マイクロボットプッシュ）

我が家の近所は、都市整備が進んでおらず、外灯がないため夜になると非常に暗いです。

**家の外の電気は、玄関の天井に組み込まれている**ため、
**Philips Hue**のようなWifi対応の電球に取り替えることができず、
何か電気をつける方法はないかなと思っていました。

ある日、**MicroBot Push（マイクロボットプッシュ）**という、
遠隔から操作可能な物理ボタンデバイスが発売されるという情報を知り早速購入。

| [MicroBot Push: the wireless robotic button pusher](https://prota.info/microbot/push/)<BR>マイクロボットプッシュは、人の代わりに、ボタンを押してくれる指ロボットです。| ![](http://capture.heartrails.com/150x150/border?https://prota.info/microbot/push/use-cases/)|
|:--|:-:|


**IFTTT**とも連動可能な優れもので、
(IF) 家の近くまできたら、(then) MicroBot Pushで外灯のスイッチをONにする
なんでことが可能になりました。

| 　　玄関照明をPush　 |
|:--------------:|
| <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">MicroBot Push（マイクロボットプッシュ）で玄関の照明をON・OFF。<br>PushされるとSlackにも通知が飛んできます。 <a href="https://t.co/d6cBDmkW0M">pic.twitter.com/d6cBDmkW0M</a></p>&mdash; umesan (@umesan246) <a href="https://twitter.com/umesan246/status/811927522422075392">2016年12月22日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>| 

| 　　床暖房をPush  |
|:--------------:|
|<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">MicroBot Push（マイクロボットプッシュ）で床暖房の電源をON・OFF。<br>IFTTTと組み合わせると、帰宅時には床がほかほかに。 <a href="https://t.co/1MI2vUCsBC">pic.twitter.com/1MI2vUCsBC</a></p>&mdash; umesan (@umesan246) <a href="https://twitter.com/umesan246/status/811928436335742977">2016年12月22日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>|

また、同様にスイッチならなんでも押せるので**床暖房の操作パネルにも設置**。
寒がりなので、家に着く頃にはリビングがあったかくなっているのはとても嬉しい。
（同じこと考えている方が：[床暖房を押したいけど、押せてない話](http://kei-s.hatenablog.com/entry/2016/12/13/113801)）

**IFTTT**を通し、**Slack**や**Philips Hue**等にも連携可能なので、
手元に置いておいて、[Amazon Dash Button](http://www.tatetate55.com/entry/2016/12/17/000000)のように、
イベント発火のトリガーとしても使うことも可能です。


我が家では、**電動シャッター**の設置を予算の関係で諦めたのですが、
**IRKit** や **MicroBot Push**と組み合わせると、
一斉にシャッターを開け閉めしたり、毎朝7:00にシャッターを開けるようなタスクも作成できたりと、
夢が広がっていたと思われ、購入を断念したのを非常に後悔しています。
サンタさん、今年のクリスマスは電動シャッターが欲しいです。。。




# 3. 電気配線の失敗を Philips Hue と IRKitでカバーする

![電気配置.png](https://qiita-image-store.s3.amazonaws.com/0/34349/b40a9f2e-2854-0372-915f-aed2626fe47c.png)


**マイホームを購入するときは電気配線（スイッチ）はほんとよく考えたほうがよいです。**

我が家はリビングとダイニングのスイッチが離れた場所にあって、
夜、寝室に向かうときにリビングのスイッチを切り忘れて、
リビングとダイニングをいったりきたりすることがありました。

ちょっとのことなのですが、毎日となると地味に面倒です。
ダイニング・キッチン側にも追加でリビングのスイッチの設置を依頼すればよかったですが後悔先に立たずです。

しょうがないので、ダイニングは**Philips Hue** を取り付け、 リビングは**IRKit**で、なんとかしました。

iPhoneに**「Hey Siri おやすみなさい」**といえば、**Homebridge**を通して、
１階の家電（リビング照明・リビングTV・ダイニング照明）の電源をすべて落としてくれます。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">「Hey Siri おやすみなさい」で、リビングとダイニングの照明をOFF。HomebridgeとSiriの連携。 <a href="https://t.co/kWcPXIIFBV">pic.twitter.com/kWcPXIIFBV</a></p>&mdash; umesan (@umesan246) <a href="https://twitter.com/umesan246/status/812186424279592960">2016年12月23日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

動画では**Apple Watch**ですが、普段は**iPhone**です。
**iPhone**は寝室に必ず持っていくので、階段を登りながら**Siriさん**にいつもおやすみなさいをしています。

我が家にはまだエアコンがないけれど、
来年にでも購入したら**IRKit**がさらに仕事してくれると思ってます。


# 4. 家の近所に変態が。。。 Slackで防犯情報等を通知する

我が家では、**Roomba(ルンバ)**や、**MicroBot Push（マイクロボットプッシュ）**等の、
**IoTデバイスの通知＆コントロールセンター**として**Slack**をフル活用しています。

その他にも、生活に役立つ情報はどんどん**Slack**に通知しているのでちょっとご紹介。

### 防犯情報

ご近所さんから、最近庭に置いていた自転車を何者かに盗まれて警察に相談したという話を聞き、
我が町の治安が心配になったので、防災情報サイトのRSSを登録してSlackに定期的に流すようにしています。

![スクリーンショット 2016-12-22 23.27.52.png](https://qiita-image-store.s3.amazonaws.com/0/34349/9214e180-f5ae-0993-01b8-32a3ac29994a.png)

家の近所に意外と変態が出没していて多少びびっている。
妻と共有してお互い気をつけるようにしている。

### 運行情報
![スクリーンショット 2016-12-22 0.48.28.png](https://qiita-image-store.s3.amazonaws.com/0/34349/4ec5efca-68ef-76ec-7e6d-51b2e84f522b.png)

[東京メトロのサイト](http://www.tokyometro.jp/unkou/history/fukutoshin.html)をスクレイピングして運行情報をGET。
出社時間と帰宅時間のちょっと前に運行情報を確認できるようにしています。
ただしダイヤが乱れようとも必ず出社します。

### お天気情報
![スクリーンショット 2016-12-22 23.11.01.png](https://qiita-image-store.s3.amazonaws.com/0/34349/774dbb9c-fc40-0242-ce04-fd2631414173.png)

**myThings** と連携させて、明日の天気を毎日投稿。
雨の日は傘を忘れないように通知。

### ゴミの日情報
![スクリーンショット 2016-12-22 23.52.27.png](https://qiita-image-store.s3.amazonaws.com/0/34349/a8f811dd-8ceb-8dd8-a1d3-5f85e59ef932.png)

ゴミの日の前日の夜と、朝に、今日出すゴミを通知。


### 電子ペット

![スクリーンショット 2016-12-22 23.38.09.png](https://qiita-image-store.s3.amazonaws.com/0/34349/244e44e3-814d-1507-225d-04b1291c637e.png)

電子ペットのヒュボロクとヒュボニャンを飼い始めました。
ヒュボロクは**Heroku**に、ヒュボニャンは**Raspberry Pi**にいて、
各種情報を伝えてくれつつ、たまにランダムで甘えてきます。

仕事中に「にゃーん」と通知がくるとちょっと癒されます。
bot相手に会話している妻を見ると更に癒されます。


### 記念日カウントダウン＆アップ

![スクリーンショット 2016-12-22 23.31.00.png](https://qiita-image-store.s3.amazonaws.com/0/34349/36b66b72-867b-1ab7-928f-529845afe0f3.png)

記念日をカウントダウン＆カウントアップ。
子供の成長が楽しみ。


## 5. 家族とIoT
今年は8月に子供が産まれ、妻が11月まで実家に里帰りしていました。

3ヶ月間、広い家で一人暮らし。
ここまで紹介してきた、あれやこれやを自動化しては、寂しさを紛らわしていたのですが、
11月に妻と子供が家に戻ってきたタイミングで、
自動化が仇となる事象が多々発生してしまいました。

例えば、私が出勤のため家から離れると、
**家の電気が消え、Roomba(ルンバ)が走り出し、子供が泣き叫ぶコンボが発動。**

私が帰宅して家に近づくと、
**自宅の電気とTVと床暖房がつき、もう少しで寝りにつきそうだった子供が泣き叫ぶコンボが発動。**

**妻激おこ。**

**Roomba(ルンバ)**の活動回数は激減し、**Philips Hue**や**IRKit**による電気の自動点灯も不要に。
2017年は家族全員が幸せになれる家庭内IoTを再構築せねばなりません。


## 6. まとめ

2016年は、IoTの楽しさと難しさを実感した年でした。

Roomba(ルンバ)やMicrobotPush(マイクロボットプッシュ)など、
かわいい便利なガジェットに触れつつ、**Rasberypi**、**Homebridge**、を勉強し、
**npm パッケージを公開**したりと、仕事とはまた別の知見を得ることができました。


一方、一人暮らしの時には超便利に思えていた自動化も、
家庭の状況によって、一気に複雑さが増すのを身にしみて感じました。

妻の今年の名言の一つ、
**「自動化に費やす時間があるなら、子供を抱っこして愛情を注いで」**
を胸にしっかり刻み、来年も頑張ろうと思います。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">MicroBot Push（マイクロボットプッシュ）で子育てIoT。<br>赤ちゃんが泣きだしたらメリーが鳴り出すようにしたいな。 <a href="https://t.co/4B5hOwK939">pic.twitter.com/4B5hOwK939</a></p>&mdash; umesan (@umesan246) <a href="https://twitter.com/umesan246/status/812574372472856576">2016年12月24日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
（ダメな自動化の例：赤ちゃんが泣いたらメリーが鳴り出す仕組みを作ろうとしたら却下されました）

来年はLTで発表したいな〜。

--

## 追記

[Frontend de KANPAI! #02 - エンジョイ！フロントエンド -](https://frokan.connpass.com/event/65990/) にてLTしました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Frontend de KANPAI!#02 LT枠での発表資料、<br>「Roomba（ルンバ）とフロントエンドとIoT」を公開しました。 <a href="https://twitter.com/hashtag/frokan?src=hash&amp;ref_src=twsrc%5Etfw">#frokan</a><a href="https://t.co/3GKhMaR99r">https://t.co/3GKhMaR99r</a></p>&mdash; umesan (@umesan246) <a href="https://twitter.com/umesan246/status/923527957376745473?ref_src=twsrc%5Etfw">2017年10月26日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>