家の中のIoT化を進めて色々な部分が自動化出来てきたので一旦まとめてみました。
住まいのIoT化
住まいのIoT化、と書いてますが、単なる自動化された部分や、 自分自身の記録なども含めてまとめてあります。
ここから1年ちょっとでやってきたことなど。
現在の概略図がこれ。
基本的にGoogleアシスタントから何でも命令できる様になっています。
以下では少し重複する部分もありますが機能別や状況別にそれぞれまとめてみます。
サービス連携状況
スマホアプリ
Blynk: https://apps.apple.com/jp/app/id808760481
Googleアシスタント連携
Googleアシスタントと直接連携ができるサービスは連携。 IoTに対応していないリモコンだけのものなどはNature Remo Mini/SwitchBot Hub Mini などを通して命令。
Google アシスタントと連携しているサービス:
- Nature Remo Smart Home
- Nature Remo Mini
- エアコン、シーリングライト、サーキュレーター
- Nature Remo Mini
- Switchbot Smart
- SwitchBot Hub Mini、SwitchBot、SwitchBotカーテン
- TP-Link Kasa
- スマートプラグ
- ECOVACS
- DEEBOT OZMO 901(お掃除ロボット)
- COCORO AIR for Smart Home
- KI-JS50(空気清浄加湿器)
- Qrio Lock
- Qrio Lock 2(スマートロック)(状態は確認出来るが操作は出来ない)
これらのサービスはGoogleアシスタント経由でもスマホの専用アプリから直接操作することも可能。
SwitchBot/カーテン、及びQrio LockはBluetooth接続で直接アプリから操作することも可能。
他は基本的にはWiFi経由。
IFTTT連携
IFTTTと連携しているサービス:
- Google Assistant V2
Google Assistant: https://ifttt.com/google_assistant - Location (スマホの位置情報)
- Nature Remo works better with IFTTT
- SwitchBot
- TP-Link Kasa
- Withings Sleep
- Webhooks (for Blynk+COCORO AIR)
- Google Sheets
リモコン
エアコンやシーリングライト、サーキュレーターは直接IoT化されていませんが リモコンをNature Remo Miniなどに登録することでIoT化でき、 Googleアシスタントなどから操作できるようになります。
Nature Remo Mini及びSwitchBot Hub Miniで代替出来るため基本的にリモコンは使いません。
2つあるのは歴史的な理由ですが、Googleアシスタントに両方を認識させて それぞれで「エアコン」の様に同じ名前で登録していると、現環境だと 「エアコン付けて」などは全てSwithBot側が優先されて起動されていました。
サーバーが落ちた場合に2つあると冗長性が増しますが、まあ殆ど意味が無いので 下手な混乱を避けるためにSwitchBot側ではエアコンやライトのリモコンの登録はしていません。
Nature Remo側だけにしているのは下に書くようにNature Remo側で各機器の状態を記録しているのでNature Remoでの状態を正しく保ちたいため。
SwitchBot
ただのボタンしかない部分もSwitchBotがあればIoT化出来ます。
現在は換気扇を止めるボタンと、マンションのオートロックを解除するためにドアフォンに2つ使っています。
ライト
- 玄関、トイレ、洗面所、キッチン: 人感センサー(玄関は備え付けのもの)
- 部屋のシーリングライト(リモコン操作できるもの): リモコンをNature Remo miniに登録
- アプリからOn/Off、色、輝度の調整
- Googleアシスタントで声でOn/Off、色、輝度の調整
- IFTTTのLocationをトリガーに帰宅/外出時にOn/Off
- Withings SleepからIFTTT経由で起きた時/寝た時にOn/Off
これら以外で家の中でライトを手動で付けている場所はお風呂とキッチンの換気扇のライトだけです。
状況に応じた命令
外出時
IFTTTのLocationをトリガーにして、自宅から一定距離離れた時に以下を実行:
- 部屋のカーテンを閉める (SwitchBot Hub Mini経由)
- 部屋の空気清浄加湿器をOff (Blynk経由)
- 自宅から離れた時刻をGoogle Sheetsに記録
COCORO AirはIFTTTに直接対応していないため専用URLを抜き出してWebhookをBlynkで設定してそれをIFTTTから使っています。
Nature Remoのオートメーション機能で自宅から一定距離離れた時に以下を実行:
- 部屋のライトをOff
- 部屋のエアコンをOff
Qrio Lock
- 玄関の鍵をオートロック
これらの自動化が出来ているので外出時にいちいち電気を消したり何かすることは一切ありません。 料理してたとしたら火元はちょっと気になりますが、それ以外は基本的に全て自動で外出モードになってくれます。
Nature Remoの場所認識機能を使って別途ライトなどのOn/Offを行っていますが、 これもやろうと思えばIFTTT経由でできるためそちらで全部まとめた方が良いかもしれない、とも思ってたりしますが現状こんな感じ。
帰宅時
連携としては外出時とほとんど同じです。 カーテンに関しては帰宅時には開けたりしません。
また、エアコンに関しては季節によって変更します。
IFTTTのLocationをトリガーにして、自宅の一定距離以内に入ったら以下を実行:
- 部屋の空気清浄加湿器をOn (Blynk経由)
- 自宅に戻った時刻をGoogle Sheetsに記録
Nature Remoのオートメーション機能で自宅の一定距離以内に入ったら以下を実行:
- 部屋のライトをOn
- 部屋のエアコンをOn (四季のそれぞれで暖房や冷房のシーンをNature Remoで別々に設定し適当なものを指定。春秋はライトのみでエアコンはつけない。)
Qrio Lock
- ハンズフリー機能で近づいた時に玄関の鍵を自動で開ける
帰宅時に電気がついていたりエアコンがついてるのは気分が良いです。
就寝時/起床時
Withings Sleepを使うと就寝時、起床時のタイミングをトリガーとしてIFTTTで扱うことが出来ます。
ただし、実際にはベッドの上に乗った瞬間と降りた瞬間になります。
就寝時には
- ライトをOff
- エアコンをOff
- カーテンを閉める
にし、逆に起床時にはOnにしたり開けたりしています。
ライト、カーテンに関しては特に起床時に気分が良いです。
ただ、ベッドの上で本を読んだりする場合にはライトが切れたりしてしまうので そういうことが多い場合には就寝時の命令はちょっとやりすぎかもしれません。
ちなみにKI-JS50(空気清浄加湿器)は暗くなると自動的に静かな運転モードに変わります。
スケジュール化されているもの
- お掃除ロボット: 毎日お昼に掃除 (Googleアシスタントからも命令可能)
記録しているもの
以下のものをGoogle Sheetsに記録。
- Raspberry Pi: 気温、湿度、気圧、二酸化炭素濃度
- 家などの滞在時間: IFTTTのLocationを使う
以下は一旦各種機器から対応サーバーにアップロードされているものをGoogle Apps Scriptsを使って API経由でデータを取ってきてるもの。
- Nature Remo API: 気温、エアコン及びライトの状態(On/Off, 設定温度など)
- Withings API: Withings Body Cardio(体重、体脂肪など)、Withings Sleep(睡眠時間)
- Oura Ring API: 睡眠時間など
まとめ
ここまででかなりの部分を自動化出来たり記録できるようになったんじゃないかと思っています。
後、自動化されるとうれしいものとして
- お風呂の掃除
- 皿洗い
- 洗濯
とかでしょうか?
お風呂の掃除って面倒だけど自動化は難しいだろうな、と思ってたことの1つですが、 実はそういったものはすでに実現しているという。。。
まあこれは簡単には導入できませんが。
皿洗いは食洗機が無いので導入すればまあ。
洗濯は今は縦型で軽く乾燥出来るやつではあるんですが、ドラム式で全部乾燥できるようにするか。
自動化、というだけでなく、洗濯機も冷蔵庫とかもIoT化してるものは結構出ていて、 何が嬉しいかは正直良く分からないですがIoTとなってるものは片っ端から対応製品に変えていきたかったり。
そういったものも色々組合わせて新しい何かが作れると楽しいなと思ってます。
後は色々記録とってますが現状ただただ集めてるだけで有効活用できてないので その辺も何か出来ないかな、と模索しているところ。