Alexaを導入して自宅IoT化をはかったら少しだけ家庭円満になった話〜自宅IoTのススメ〜

この記事は [StudioZ Tech Advent Calendar 2019](https://qiita.com/advent-calendar/2019/studioz) の20日目の記事です。

## 前置き
今現在住んでいるところは賃貸物件なのですが、某賃貸代理店を利用して借りたところで、管理会社がなく大家さんが直で管理している物件でした。
これ自体は特に問題ないのですが、いざ住んでみると・・・

- エアコンのリモコンが壊れているのか、液晶はついていても何も反応しない
- リビングの電気のスイッチが玄関付近にあり、寝る前に消したりしづらい（導線が最悪）
- リビングの電気はリモコンから操作できるようだが、そもそもリモコンがない・・・
（前の人が持って行った・・・？）

等々、ポロポロと問題が・・・
これを大家さんに相談したところ、エアコンは購入するが、電気は壊れているわけではないのでスイッチでONOFFしてほしいと言われ・・・
不便だなぁと思いつつしばらく生活していたものの、一向にエアコンは交換してもらえず、何度か連絡するも買う買うといいつつ実際は対応してもらえず、寒くなる日々に怯えていました・・・。

当然ながら某賃貸代理店さんに連絡するも、「基本貸すまでの契約をするお仕事なので貸した後は知らないっス」と言われ・・・（まぁそうですよねー）
嫁からは寒いし不便だし引っ越したいと言われる始末・・・
いいかげんにどうにかしないとといろいろ考えていたところ、ちょうどAmazonのサイバーマンデーが・・・！
ここからIoT化が始まるのでした。

## 購入したもの
アレクサ本体：第二世代 Amazon Echo
スマート家電コントローラ：[RS-WFIREX3](https://iot.ratocsystems.com/products/rs-wfirex3/)
（合わせて１万円しないくらいでした。）

## アレクサを使用してやりたいこと
- 部屋の電気を使用してONOFFする
- エアコンをONOFFする
- エアコンの冷房暖房を切り替える
- エアコンの温度を調整する
- テレビの電源をONOFFする
- テレビのチャンネル、ボリュームを操作する
- テレビの番組表をONOFFする
- 扇風機を操作する
- おまけ：今日の天気と予定を確認する

## やったこと
#### Amazon Echo(アレクサ)の配置
一時期、スマートスピーカーが流行った頃（２０１７年くらいに流行りましたね）
IoT化はしていないまでもAmazon EchoやらGoogle HomeやらLine Clovaやらを購入し、配置してみた人はある程度いるのではないかと思います。

とりあえず配置してWifiにつなげるだけでAlexaと会話できるようになります。
例えばAlexaであればAmazonPrimeに加入していれば音楽を流せるようになったりします。
ただ、実際に音楽を流せたとしてもそうそう部屋で大音量で音楽をかけることなんてあまりなく、デフォルト状態のままでは気づけばホコリを被ったインテリアの一種になっている・・・なんていう人も多いのではないでしょうか。

#### スマート家電コントローラの配置
もちろんIoT対応のWifiで操作できる機器であればそのままの状態のスマートスピーカーでも操作はできますが、値段は高いし対応している機種も少ないので、家電全てをIoT対応機器にする、なんていうのはあまり現実的ではないかと思います。

そこで便利なのがスマート家電コントローラ。これはスマートスピーカーを経由して赤外線機器を操作できる機器で、今回はコレを使ってエアコンやら電気を操作できるようにしました。
![スクリーンショット 2019-12-18 18.01.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/21f87c72-0137-3e17-018b-96dc51dd7446.png)
グレーの通信がWifiで赤い通信が赤外線です。

#### 家電コントローラに家電を認識させる
ここらへんはマニュアル通りになってくるのですが、スマートフォンに[家電リモコン](https://apps.apple.com/jp/app/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E5%AE%B6%E9%9B%BB%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9/id1063944197)を入れ、照明、テレビ、エアコン、扇風機といったような家電を認識させます。
このときプリセットに存在する家電であれば非常に楽なのですが、だいたい賃貸の照明やエアコンは古く（うちのは2005年製でした）プリセットにはない機器でした。
とは言え、所詮赤外線なので同じメーカーの似たような型番であればだいたい似たような動きをしてくれることが多いです。
<img width="200" alt="IMG_3235.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/407d7a53-44c2-1c26-fad2-e245af1815f3.png">　<img width="200" alt="IMG_3236.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/5996453a-24a5-81b1-1532-6d0d5c274c01.png">　<img width="200" alt="IMG_3237.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/d7665264-8dc5-5e76-2e1c-1a7afea26017.png">
同等のスマート家電コントローラであれば似たような画面になるのではないでしょうか。
機器名がなければ似たような型番の機器を総当りです・・・！

<img width="200" alt="IMG_3238.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/001ad6fb-83b9-7215-1ff8-d8b13f7be763.png">　
一通り家電を登録すると画像のような状態になります。
番組表とかテレビ[入力切替]とかは一旦おいておいてください。
この状態になると、スマートフォン経由で各家電を操作できるようになります。
（これでなんとかエアコンを動かすことができてホット一息・・・） 

副産物ですが、ネットワーク経由で家電を操作できるので自宅外からエアコンをつけたりができるようになりました。
照度が取れるので、例えば夜であればもう自宅に帰ってきているのかな？という事もわかりますね・・・。

#### 家電リモコンとアレクサを連携させ、アレクサから家電を操作できるようにする
予め、[Alexa アプリ](https://apps.apple.com/jp/app/amazon-alexa/id944011620)をダウンロードしておき、Amazonアカウントでログインしておきます。
アレクサもAmazonアカウントに紐づけておくとスムーズです。

家電リモコン側のAmazonAlexa設定を行い、Amazonアカウントと紐付けます。
<img width="200" alt="IMG_3239.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/4c20ef56-a18f-afb6-2d12-1ed76684e9ba.png">　<img width="200" alt="IMG_3240.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/fb8f03c8-fdca-f93d-5da0-9df01445c83a.jpeg">

連携が完了すると、Alexaアプリのデバイス側の表記が右のようになります。


#### プリセット登録にないボタンの呼び出し方
プリセットのままでも左の画像のように電源ONOFF、ボリューム変更、チャンネル変更等はできるのですが、番組表や録画一覧といったような機能は対応していないので、オリジナルリモコンとして「番組表」「録画一覧」「入力切替」「テレビ[下]」などの声で操作したいボタンを追加で登録しました。

オリジナルリモコンとして登録する場合、アレクサから利用できるのは電源のONOFFのみになります。
（これが非常に不便・・・なにか抜け道はあるかもなのですがあまり探っていないです）
1つ前の左画像の一番下にある通り、「番組表」も電源ONOFFの表示となっています。

電源ONOFFの場合、アレクサ経由で実行させるには「○○つけて」「○○消して」という呼び出しになるのですが、「番組表」であれば「番組表つけて」という自然な意味になるのですが、例えば「入力切替」であれば「入力切替つけて」という意味不明な呼び出しになってしまいます。

そこで便利なのが定形アクションです。
呼び出し文言を好きなように設定できるのと、同じボタンを複数回組み合わせて使うことができます。
<img width="200" alt="IMG_3242.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/e90a3a48-1ea8-bcd1-0b61-7d4e18523463.png">　<img width="200" alt="IMG_3243.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/c0af0169-8023-4dca-0def-03eb4e15d494.png">　<img width="200" alt="IMG_3244.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/0c4e0def-4f9c-b27a-9fdf-034fbb7e4663.png">
ただ、ちょっと問題なのが連続アクションに弱いこと。
例えば、定形アクションを利用してテレビの入力切替をHDMI1まですすめるためには・・・
入力切替ボタン→下→下・・・と連続してボタンを押し、赤外線通信を数回行う必要があります。
ここの連携が弱いのが問題で、例えばボタンの動作通りに入力切替→下→下と登録すると、sleepなしに連続で通信を行うため、テレビ側が受け取れず、実際の動作は入力切替ボタンのみが動いた感じになります。

アレクサには「待機」という命令もあるのですが、待機の最小時間が1分なため、sleep的な役割としては使えません。
試行錯誤した結果、なにか発音させれば適度な間隔をあけられることがわかりました。
とは言えウルサイので無音を発音させるために「っ」を使用したところ、適切に連続アクションを行うことができるようになりました。

コレでやりたかったことが一通りできるようになり・・・、
- リモコンが壊れて動かなかったエアコンも
- スイッチが使いづらい位置にある照明も
- 料理中に操作しづらいテレビや扇風機の操作も
できるようになり、少しだけ家庭円満になりました。

#### おまけ1:グループ化するとちょっと便利
アレクサは家電をグループ化して一斉に電源をONにすることができます。
以下のように「リビング」というグループを作り「テレビ」と「照明」をグループに入れてあげると、「リビングON」で２つの機器に同時にONにすることができ便利です。
<img width="200" alt="IMG_3247.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/6d24b7df-5f4e-7504-cb15-0446fa298aea.png">


#### おまけ2:言った言わない事件
明日○○の予定があるのに覚えてないの！？
みたいな状況はよくあると思います。
これを避けるために、うちではgoogleカレンダーを共有状態にし、お互いのiphoneに同期させています。
同期方法は以下引用元にて。

Googleヘルプ カレンダー
URL：https://support.google.com/calendar/answer/99358?hl=ja&co=GENIE.Platform%3DiOS

このgoogleカレンダーをAmazonアカウントに紐付けると、アレクサからカレンダーにアクセスできるようになります。
<img width="200" alt="IMG_3246.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/fb64e919-71f1-7d53-7425-279a07788160.png">　<img width="200" alt="IMG_3245.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/467966/09ad0d43-f026-12df-82e8-a93b7e8330a8.png">

カレンダーだけであれば「今日の予定を教えて」や「今週末の予定を教えて」でも呼び出せますが、先程の定形アクションを利用し、話題、天気予報、ニュース、カレンダーから今日の予定とアクションを行うようにして使うことで毎日の朝の流れに組み込むことができ、予定の共有漏れがなくなりました。