Deep Tech. Blog

ガジェットや技術についての紹介や自身のメモとして記事を書いていくブログ

【Google Home】Google Homeに喋らせたい(IFTTT連携)

概要

 前回CURLgoogle-home-notifierに任意のテキストをPOSTすることでGoogle Homeに喋らせることが可能になりました.今回はIFTTTと連携することで,例えばボタンを押すことをトリガーとしてGoogle Homeに予め決めておいたテキストを喋らせてみようと思います.

手順

IFTTTとの連携のポイント
 IFTTTは様々なイベントをトリガーとしてアクションを発生させることができます.今回はボタンを押すことをトリガーとすることを目標としています.具体的にはiOSのIFTTTアプリ中のボタンを押すことをトリガーとします.
 そして,アクションとして前回CURLgoogle-home-notifierにPOSTしたようにIFTTTからgoogle-home-notifierにPOSTを行なうことが出来ればGoogle Homeを喋らせることが出来るようになるという目論見です.

  1. IFTTTにサインイン
     私は既にIFTTTのアカウントを持っていますので,そのアカウントでIFTTT(https://ifttt.com/)にサインインします.まだアカウントを持っていない方はサインアップからアカウントを取得しましょう.最終的にはiOS上のボタンをトリガーにしますが,トリガーの作成はPCのブラウザで作成可能なのでトリガーとアクションの作成はブラウザ上で行ないます.

  2. Appletの作成
     サインイン後,画面右上のドロップダウンメニューから「New Applet」を選択します.
    f:id:deep_tech:20180902162412p:plain
     すると下図のような画面が出てきますので,「+ this」部分をクリックしてトリガーの作成を開始します. f:id:deep_tech:20180902162410p:plain
     Choose a serviceということで,沢山のアイコンが表示されると思います.これらのサービスと連携して様々なイベントをトリガーとして利用することが可能です.今回はボタンを押すことをトリガーとしたいので,「Search services」テキストボックスに「BUTTON」と入力します.すると下図のようにButton Widgetのみが表示された状態になると思います.Button Widgetアイコンをクリックしましょう.
    f:id:deep_tech:20180902162414p:plain
     IFTTTアプリを最新にしろと言われていますが,恐らく最新なので気にせず「Connect」ボタンを押して進めます.
    f:id:deep_tech:20180902162407p:plain
    f:id:deep_tech:20180902162405p:plain
     「Button press」という名前でButton Widgetが登録されたようです.表されている「Button press」を更にクリックするとトリガーとして設定出来ます.
    f:id:deep_tech:20180902162403p:plain
     トリガーが設定されると「+ this」だったところがButton Widgetのアイコンになっています. f:id:deep_tech:20180902162437p:plain
     次に,ボタンを押したときに行なうアクションを設定します.「+ that」をクリックします.
    f:id:deep_tech:20180902162417p:plain
     Choose action serviceということで,また沢山のアイコンが表示されていると思います.IFTTTが実行出来るアクションも多いのですが,ここではPOSTを行えるアクションを選びます.
     POSTが可能なサービス「Webhooks」を選択するため,「Search services」テキストボックスに「Web」と入力するとWebhooksサービスだけが表示されます. f:id:deep_tech:20180902162435p:plain
     「Connect」ボタンを押してサービスを利用可能な状態にします.
    f:id:deep_tech:20180902162433p:plain
     利用可能になったWebhooksサービスをクリックして選択します.
    f:id:deep_tech:20180902162430p:plain
     アクションの詳細を設定する画面が表示されます.各フィールドを下記のように設定します.

    • URL:node example.jsを実行した際に表示されるngrokのURLを入力
    • Method:CURLでPOSTしたようにPOSTを指定
    • Content Type:application/x-www-form-urlencodedを指定
    • Body:text=[Google Homeに喋らせる内容]形式で入力 f:id:deep_tech:20180902162425p:plain
       必要に応じてこのアクションの名前を付けて「Finish」で設定終了です. f:id:deep_tech:20180902162422p:plain
  3. Appletの実行
     上記手順を踏んだ後,iOSのIFTTTアプリに同じアカウントでサインインすると上記設定で作成したAppletがIFTTTアプリ上に現れているはずです.IFTTTアプリ上でボタンを押すことでRaspberry Pi上で実行しているgoogle-home-notifierにnotificationがPOSTされ,Google Homeが喋ってくれます. f:id:deep_tech:20180902220122j:plain

次回

 ここまでの設定で,例えば帰宅するときにIFTTTアプリのボタンを押すだけで「今から帰るよー」とかGoogle Homeに喋らせることが可能になりました.GPSの位置情報の曖昧さを考えると,もしかしたらこの使い方の方がいいかも知れません.次回,実際その辺はどうなのかと言うことを実際に設定して試してみたいと思います.  以下蛇足ですが,いつの間にかngrokで繋がらなくなったという場合はアドレスが期限切れになっている可能性があります.そんな場合は,下記のサイトを参考にするといいと思います. google-home-notifierが気づいたら動かなくなってた時の対処法