yamamoWorks

.NET技術を中心に気まぐれに更新していきます

Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【IFTTT編】

前回までにWehookを起点にPS4を制御するところまで実装できました。今回はいよいよGoogle Home(Assistant)との連携です。

Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【概要編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【IoT Hub編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【PS4前編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【PS4後編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【Functions編】

IFTTT

IFTTT(If This Then That)はWebサービス同士を連携させるプラットフォームで、Google Home(Assistant)やAmazon Echo(Alexa)なども対応しており、スマートスピーカーにカスタム処理を実装する際の1つの方法として利用できます。

Sign upしたらMy Appletsから「New Applet」ボタンをクリックします。 次に[+]thisをクリックしGoogle Assistantを探して選択します。

f:id:yamamoWorks:20180407225314p:plain:w300 f:id:yamamoWorks:20180407225153p:plain:w300

Google Assistantのtriggerは4つ用意されています。

  • Say a simple phrase
  • Say a phrase with a number
  • Say a phrase with a text ingredient
  • Say a phrase with both a number and a text ingredient

今回実現したいのは「torneを起動して」や「Netflixを起動して」なので Say a phrase with a text ingredient を使用して「○○を起動して」という1つのアプレットを定義したいのですが、可変となるtextを先頭にする事が出来ない制約がある為、以下のどちらかで実現する必要があります。

  1. Say a simple phrase を使用して起動したいアプリ毎にアプレットを作成する。
  2. Say a phrase with a text ingredient を使用して「プレステで○○を起動して」という1つのアプレットを作成する。

今回は発声を短くしたいので前者を採用します。

「What do you whant to say?」に認識して欲しい音声を入力し「What do you want the Assistant to say in response?」にGoogle Homeが発声する応答を入力します。「What's another way to say it?」と「And another way?」はオプショで別の言い方を登録できます。
f:id:yamamoWorks:20180505232830p:plain

「Create trigger」ボタンを押して保存したら次に[+]thatをクリックしWebhooksを探して選択します。

ここで【Functions編】で作成したFunctionsのURLを取得しておきます。
f:id:yamamoWorks:20180505233437p:plain

URLに上記で取得したURLを入力し、MethodをPOST、Content Typeをapplication/json、Bodyには【Functions編】のテストで使用した内容を入力して完成です!
f:id:yamamoWorks:20180505231526p:plain
同様に他の起動したいアプリのアプレットも作成します。代表的なアプリのTitleIdを載せておきます。
ちなみに「torne」はGoogle Homeが音声認識してくれないので「トルネ」で登録が必要です。 また「Amazon Video」だとChromecastデバイスを探そうとするので「プライムビデオ」で登録しないとダメでした。

Title Id
Netflix CUSA02988
torne CUSA00442
Spotify CUSA01780
Amazon Prime Video CUSA03099
Monster Hunter World CUSA06027

f:id:yamamoWorks:20180506001618p:plain

後は【PS4後編】で作成したプログラムを実行した状態で「OK Google, Netflixを起動して」と言えばPS4がスタンバイモードから起動してNetflixが起動します!

動作確認まで出来たので、次回はRaspberry Piにプログラムを載せます。