Actions on Google(Smart Home)のサンプルを動かしてみる

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

自宅でGoogleアシスタントのスマートホーム機能を使えるようにするため、「Actions on Google」の「Smart Home」を試してみました。

Action on Google(Smart Home)を使ってできること

Action on Google(Smart Home)でサービスを作成すると、googleアシスタントのスマートホーム機能と連携して家電を操作するためのサービスが作成できます。

IFTTTやActions on Google(Dialogflow)を使ってGoogleアシスタントから家電を操作する方法では、スマートホーム機能の予約語(「テレビをつけて」や「ライトを消して」が予約言になっています。)が使えません。Action on Google(Smart Home)を使えば予約語を回避するために、Googleアシスタントでショートカットを設定したり、余計な言葉を追加しなくて良くなります。

Action on Google(Smart Home)を使ったサービスのサンプル

Smart Homeのガイドを見るとnodejsを使ったサンプルが置いているのでコレを動かしてみます。
このサンプルは、Googleアシスタントを使ってwebブラウザ上に表示されているIoTデバイスを操作できます。

環境

  • Android(nexus6p)
  • Windows10 Pro
    • Node.js (v8.1.3)
    • git

Smart Homeのサンプルのダウンロード

githubからactionssdk-smart-home-nodejsをダウンロードしておきます。

git clone https://github.com/actions-on-google/actionssdk-smart-home-nodejs.git

APIキーの取得

Smart Homeは「Google HomeGraph API」を使ってるので、自分のgoogleアカウントでこのAPIを利用できるようにします。
Google Cloud Console API Managerにアクセスして、左側のメニューにある「ライブラリ」から「Google HomeGraph API」を検索して有効化します。

次に左側のメニューにある「認証情報」からAPIキーを作成します。「認証情報を作成」のプルダウンから「APIキー」を選択するとキーが表示されるので、コピーします。

先程ダウンロードしたactionssdk-smart-home-nodejs内の「smart-home-provider/cloud/config-provider.js」に次の行があるので、<API_KEY>を先程コピーしたキーで置き換えます。

Config.smartHomeProviderApiKey = "<API_KEY>"

サンプルの起動

ダウンロードしたフォルダ上で次のコマンドを打って、nodeモジュールのインストールを行います。

 cd smart-home-provider/frontend
 npm install -g bower
 bower install
 cd ..

 npm install

smart-home-provider フォルダで次のコマンドを実行するとサンプルが起動します。

npm start

起動すると次のような出力がコンソールに出るので、COPY & PASTE NGROK URL BELOW:の下にあるアドレスを確認しておきましょう。このアドレスは起動したサーバに割り振られたアドレスを表しており、以降の設定で必要になります。

Smart Home Cloud and App listening at :::3000
|###################################################|
|                                                   |
|        COPY & PASTE NGROK URL BELOW:              |
|                                                   |
|          https://036f847c.ngrok.io                |
|                                                   |
|###################################################|
=====
Visit the Actions on Google console at http://console.actions.google.com
Replace the webhook URL in the Actions section with:
    https://036f847c.ngrok.io/smarthome
In the console, set the Authorization URL to:
    https://036f847c.ngrok.io/oauth

Then set the Token URL to:
    https://036f847c.ngrok.io/token

Finally press the 'TEST DRAFT' button

起動する毎にこのアドレスは変わるので、起動しなおすと設定の変更が必要になります。

Actions on GoogleでProjectを作成

Action ConsoleでAdd/importボタンをクリックして新しいプロジェクトを作成します。「Project Name」と「Region」の設定を求められたので、それぞれ「test」と「Japan」と入力しました。

作成するActionが選択できるので、赤いアイコンのSmart Homeを選びます。「fulfillment URL」の入力画面が出てくるので、サンプルを起動した時に表示されたアドレスに smarthome を追加したアドレスhttps://hogehoge.ngrok.io/smarthomeを入力します。hogehogeの部分は起動時に表示されたアドレスで置き換えてください。

App Infomationの設定

次にApp Infomationの設定をしていきます。
optionと書かれていないものはすべて設定しなければプロジェクトを試せませんでした。左上に表示されている言語がEngleshになっているので、Japaneseに変更したあとに次項目を設定します。

  1. Name: 好きな名前を入れましょう。
  2. Details: アプリの説明ですが、とりあえずなにか文字を入力しておけばOKです。
  3. Images: アイコンとバナー画像を設定します。私はgoogleの画像検索で適当な画像を拾ってきて設定しました。
  4. Contact details: メールアドレスを設定します。gmailのアドレスを入れておきます。
  5. Privacy and consent: 作成しているアプリの個人情報保護の方針を置いているアドレスを入れる必要があります。お試しだけなら適当なサイトのアドレスを入れました。

すべて設定したあと、右下のSAVEを押してOverviewに戻ります。

Account Linkingの設定

Account LinkingからAddを押して、認証情報を設定していきます。

Grant Type

Authorization codeを選択

Client information

「Client ID」と「Client secret」にはサンプル内の「smart-home-provider/cloud/config-provider.js」に記載されているConfig.smartHomeProviderGoogleClientIdConfig.smartHomeProvideGoogleClientSecretの値を入れます。私がダウンロードしたバージョンでは ZxjqWpsYj3hIMH3uWlMVrqa7FAbKLBoNUMCyLCtvでした。

「Authorization URL」と「Token URL」にはサンプルを起動した時に表示されたアドレスを入力します。それぞれhttps://hogehoge.ngrok.io/oauthhttps://hogehoge.ngrok.io/tokenを入力します。hogehogeの部分は起動時に表示されたアドレスで置き換えてください。

Configure your client (optional)

飛ばしてOKです。

Testing instructions

認証に使うアカウントがテスト用のアカウントかどうか聞かれているので、「not real」と入れておきました。
ここまで来たら、右下のSAVEを押してOverviewに戻ります。

Projectの起動

「TEST DRAFT」を押してください。

使って見よう

https://hogehoge.ngrok.io/にブラウザからアクセスします。
ログイン画面になるので、好きな名前とパスワードでログインしましょう。ログインすると、
右上にある+ボタンからライトやエアコンなどのデバイスが追加され、ブラウザ上に表示されます。

いくつかデバイスを追加したら、AndroidのGoogleアシスタントを開いて設定画面へ行きます。「スマートホーム」を開き「+」ボタンを押します。デバイスの追加画面で「[test]*** app」というものが先頭に表示されるので、コレを選びます。ログイン画面が表示されるので、ブラウザで入力した名前とパスワードを入れます。

これで、先程ブラウザで追加したデバイスが操作可能になりました。
googleアシスタントに話かけるとブラウザ上に表示されたライトをOn/OFFしたりできます。
いろいろ操作を試してください。「ライトを暗くして」のように現在の明るさを考慮した命令も実行されて面白いですよ。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*