GoogleHome×IFTTT できることまとめてみた

[ヴァル研究所 Advent Calendar 2017](https://qiita.com/advent-calendar/2017/val)の18日目は、某家電量販店の半額キャンペーンにまんまと引っかかって購入した[GoogleHome](https://store.google.com/product/google_home)について書きたいと思います。

##忙しい方向け[今北産業](http://dic.nicovideo.jp/a/%E4%BB%8A%E5%8C%97%E7%94%A3%E6%A5%AD) 
- GoogleHome×IFTTTの組み合わせで、ボイスコマンドから何かさせる仕組みを比較的楽に作れそう
- GoogleHome＝GoogleAssistantのトリガーはけっこうバリエーションがあり、入力方法の工夫しがいがある
- 現状、IFTTTからの仕組みだけではGoogleHomeを喋らせる事はできなさそうなので今後に期待

##きっかけ
- 某家電量販店の半額キャンペーンを口実にGoogleHome買っちゃった
- 過去回でIFTTTを使い込んでいたこともあり、これを使っていじる気満々
- 住宅メーカーのサービスもIFTTTで作るというニュースが出ていたり　
    - [住宅メーカーが「Google Home」を活用するとどうなるか](https://news.mynavi.jp/article/20171209-google_home/)
- 自分でもなんか作ってみたいなーと思いながら調べているうちに自己ノウハウ化してしまったのでまとめました

##おさらいとしてIFTTTの基本
[IFTTT](https://ifttt.com)はWebサービス、アプリケーション、IoTデバイス同士を連携させるサービスです。

- 「IF This Then That」でレシピを構成
![alt](https://softwareengineeringdaily.com/wp-content/uploads/2017/10/ifttt.png)
- thisは入力でありトリガー
    - 「メールを受信したら」など、レシピを作動させる条件を設定できる
    - 今回はここをGoogleHome＝GoogleAssistantで作る
<br>
<br>

- thatは出力でありアクション
    - 様々なWebサービス、アプリケーション、IoTデバイスへデータを書き込んだり動作させたりできる

##GoogleHomeからの入力、トリガー
IFTTT内では、GoogleHomeのトリガーは「GoogleAssistant」として扱われています。
用意されているGoogleAssistantのトリガーは下記の4つ。
![screencapture-ifttt-create-if-google_assistant-1513245184098.png](https://qiita-image-store.s3.amazonaws.com/0/152460/b3a8d10a-b7b4-aa06-37db-04848a20eef5.png)

- **Say a simple phrase：シンプルなフレーズを言う**
    - 「OK Google」のあとに「お腹空いた」のように登録してあるフレーズを話しかけると反応します

<img width="250" alt="スクリーンショット 2017-12-17 18.13.15.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/6e253836-8073-bddc-3123-ae076c657ec9.png">
<br>

- **Say a phrase with a number：番号のあるフレーズを言う**
    - 「OK Google」のあとに「今日の料理は星 # 個です」などと話しかけると反応します
    - 「#」部分の番号(数字)要素を投稿などに使うことができます
    - 「ひとつ、ふたつ、みっつ」などの数えの読みには反応できないようです。やや残念

<img width="250" alt="スクリーンショット 2017-12-17 18.59.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/f55e325d-b085-77da-0aae-161c311b66e4.png">
<br>

- **Say a phrase with a text ingredient：テキストを含むフレーズを言う**
    - 「OK Google」のあとに「Evernoteに $ とメモして」などと話しかけると反応します
    - 「$」部分のテキストを投稿などに使うことができます

<img width="250" alt="スクリーンショット 2017-12-17 19.02.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/3840110c-14f9-5488-b5f2-bd43aa1f550f.png">
<br>

- **Say a phrase with both a number and a text ingredient：テキストと数字を含む言葉を言う**
    - 「OK Google」のあとに「いやいや $ 警部 ＃ 個で十分ですよ」などと話しかけると反応します
    - 「#」部分の番号(数字)要素と「$」部分のテキストを投稿などに使うことができます

<img width="250" alt="スクリーンショット 2017-12-17 19.12.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/0c7ce6f1-9c9e-d879-b124-6d684cad4eb6.png">
<br>

- **各トリガー共通**
    - 話し方は3つまで登録できます(シンプルフレーズとして「お腹空いた」「腹減った」「お腹吹田市」を登録するなど) 
    - 出力、アクションとは関係なく、発話を認識した際に返す(トークバックする)内容も登録できます
        - シンプルフレーズ「そもさん」に対して、「せっぱ」を返すとか
        - 「Evernoteに $ とメモしました」のような、入力内容を含むトークバックも可能
    - 「$」「#」の前後に半角スペースが必要です
    - 「OK Google」のあとに言う言葉の中で、「$」「#」の前を空白にすることはできません
    - 言語は英語、フランス語、ドイツ語、日本語が選べます

GoogleHomeに何と話しかけることをトリガーにするかは、このあたりを踏まえて考える事になります。

##出力、アクション
選択肢はありすぎてキリがないのですが、テキストと数値が使えるとなればだいたいのことはできそうです。

- SNS投稿はとりあえず試してみたくなったり

<img width="300" alt="スクリーンショット 2017-12-18 9.55.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/3fed9852-c6e5-8dd8-5e25-c0c24007afed.png">

<img width="300" alt="スクリーンショット 2017-12-17 21.04.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/be9ce506-6b45-3987-292b-2feb03369920.png">
<br>

- ログ取りはGoogleスプレッドシートに数値とテキストそれぞれで記録したり

<img width="300" alt="スクリーンショット 2017-12-17 19.11.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/865cf0b3-0089-74f2-bb43-d8f3aa045006.png">

<img width="300" alt="スクリーンショット 2017-12-17 19.11.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/152460/0ffeccf4-2d99-56dc-3cd8-975fb4a891af.png">
<br>

- ToDoリストはEvernoteやiOSリマインダーにアクションが用意されています

<img width="300" alt="スクリーンショット_2017-12-17_19_30_27.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/152460/9185ac78-69ef-4c23-250f-4b6f3d7a51b8.png">

<img width="300" alt="スクリーンショット_2017-12-17_19_30_27.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/152460/43d33705-9dd1-e420-7614-29f5f0cb7ee5.jpeg">


##まとめ
- GoogleHome=GoogleAssistantのトリガーの応用範囲は広そう
    - 単アクションだけでなく、入力に使用したテキストや数値を使うことができる
    - 「何を」と「いくつ」を使えることで応用範囲は広い
<br>
<br>
- アクションでGoogleHomeを喋らせることができるともっと面白そう
    - トリガーのトークバックは設定できるが、これはあくまで入力に対するリアクション
    - IFTTT内には、GoogleAssistantのアクションが存在しないため、何かをトリガーに、アクションとして喋らせることは現状できない