30
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Googleスマートホームアプリの作成方法

Last updated at Posted at 2018-08-19
1 / 74

1. はじめに


参考文献

今回のGoogleスマートホームアプリの作り方は、以下のサイトを参考に、2018年8月時点の開発環境にアレンジし、まとめたものとなります。


参考サイト


このスライドを見てできること

  • Googleスマートホームアプリの作り方が理解できる。
  • ブラウザ上の仮想家電を声で操作するこることができる。
  • スマートフォンアプリのGoogleアシスタントから家電操作する方法が理解できる。

今回作成するGoogleスマートホームアプリ

  • アプリ名:[test]テスト用アプリ
トークシナリオ
ユーザー:「テストランプをつけて」
Googleアシスタント:「はい。テストランプをオンにします。」

ユーザー:「テストランプを赤くして」
Googleアシスタント:「はい。テストランプの色を変えます。」

ユーザー:「テストランプの明るさを50%にして」
Googleアシスタント:「分かりました。テストランプの明るさを50パーセントに設定します。」

ユーザー:「テストランプを消して」
Googleアシスタント:「はい。テストランプをオフにします。」


注意事項

  • 今回作成するGoogleスマートホームアプリでは、ブラウザ上に表示される『仮想の家電』に対し、Googleアシスタント/GoogleHomeから音声操作をおこないます。
  • Googleアシスタント/GoogleHomeから利用するGoogleアカウントと、開発で利用するGoogleアカウントは『同じ』アカウントをお使いいただくと、動作確認がスムーズにおこなえます。
  • あくまで『サンプルアプリ』であることを、あらかじめご理解のうえ、お試しください。

2. 事前準備・開発環境


事前準備

  • Googleアカウントの用意

必要なソフトウェア

  • ブラウザ:Google Chrome(推奨)
  • エディタ:Visual Studio Code(推奨)
  • エディタ:サクラエディタ(でもよいよ)

必要な開発環境

  • インターネット(Wi-Fi / 有線LAN)
  • Linuxコマンドが利用できるパソコン環境(Raspberry Pi、Ubuntu、Mac OS X)
  • Windows 10 をお使いの方は、次ページ「Windows 10 をお使いの方へ」をご確認ください。

Windows 10 をお使いの方へ

  • Windows 10 開発環境をお使いの場合、Linuxコマンドを実行できるよう設定が必要です。
  • まだ設定されてない方は、こちらのページ(http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html)の手順を参考に、Linuxコマンドを利用できるように設定してください。

3. アカウントの用意


Googleアカウントの用意


4. Actions on Google


Actions on Google ログイン

  1. 「Actions on Google」( https://console.actions.google.com/ )サインイン画面を開く。
  2. Googleアカウントを用いて、Actions on Google にサインインする。
    1.png

Actions on Google プロジェクトの作成

  • 「Add/import project」を、クリックする。
    2.png

Actions on Google プロジェクトの作成

  1. プロジェクト名(任意名)「SmartHomeSample2」を、入力する。
  2. 言語「Japanese」を、選択する。
  3. リージョン「Japan」を、選択する。
  4. 「CREATE PROJECT」ボタンを、クリックする。
    3.png

プロジェクトの確認

  • プロジェクトが作成されたことを、確認する。(この画面になればOKです。)
  • Actions on Google プロジェクトを作成すると、Google Cloud Platform側にもプロジェクト内容が反映されます。
    4.png

5. Google Cloud Platform(GCP)


API Managerを開く

1.「Google Cloud Platform」の「Cloud Console」を利用し、「API Manager」( https://console.developers.google.com/apis )画面を開く。
2.画面上部を確認し、当該「プロジェクト名」が表示されていることを確認する。
6.png


プロジェクトの変更方法

  • もしも当該プロジェクトが選択されていなかった場合は、以下をおこな。

1.「プロジェクト名」をクリック。
2. ポップアップ表示されたウィンドウの「すべて」を選択する。
3. 当該「プロジェクト名」を選択する。
4. 「開く」をクリックし、プロジェクトを変更する。
7.png


APIとサービスの有効化

  • 画面上部の「APIとサービスの有効化」を、クリックする。
    8.png

APIとサービスを検索

  • 検索キーワードに、「HomeGraph」を入力する。
    9.png

APIとサービスを検索

  • 検索結果の「HomeGraph API」を、クリックする。
    10.png

HomeGraph API を有効化

  • 「有効にする」をクリックし、HomeGraph APIを有効化する。
    11.png

API Manager(APIキー)

  • API Managerの画面の「認証情報」タブで、「認証情報を作成」をドロップダウンし、「APIキー」を選択しクリックする。
    12.png

APIキーをメモする

  1. 画面上に「APIキー」が表示されるので、忘れないようメモしておくこと。(後でAPIキーを利用します。)
  2. 「閉じる」を、クリックする。
    13.png

API Manager(サービスアカウントキー)

  • API Managerの画面の「認証情報」タブで、「認証情報を作成」をドロップダウンし、「サービスアカウントキー」を選択しクリックする。
    14.png

サービスアカウントキーJSONの保存

  1. サービスアカウントに「App Engine default service account」を選択する。
  2. キーのタイプに「JSON」を選択する。
  3. 「作成」ボタンをクリックし、JSONファイルをダウンロード保存する。
    15.png

サービスアカウントキーJSONの確認

  • ローカルPCのダウンロードフォルダを確認し、「サービスアカウントキー.JSON」ファイルが保存されていることを確認する。
    16.png

JSONのリネーム

  • ダウンロードした「サービスアカウントキー.JSON」のファイル名を、「jwt-key.json」にリネームする。
    17.png

6. ローカルサーバのセットアップ(Linuxコマンド)


ローカルサーバのセットアップ

セットアップコマンド
サンプルコードを git clone(サイトから直接ダウンロードでもOKです)
$ git clone https://github.com/actions-on-google/actionssdk-smart-home-nodejs

git cloneしたフォルダ内に移動
$ cd actionssdk-smart-home-nodejs/

ダウンロードしたサンプルのcloudフォルダに移動
$ cd smart-home-provider/cloud/

任意のテキストエディタでconfig-provider.jsファイルを開く
(viコマンドを知らない方はGUIのテキストエディタで開いてください)
$ vi config-provider.js


config-provider.jsファイルの編集

  • config-provider.jsファイル内の「<API_KEY>」と書かれた部分を削除し、先ほどメモした「APIキー」の文字列に書きかえる。
    20.png

config-provider.jsファイルの保存

  • config-provider.jsファイルの編集後、ファイルを保存する。
    19.png

jwt-key.jsonファイルの配置

  • 先ほどダウンロードした「jwt-key.json」ファイル を、cloudフォルダ内に保存する。(重要)
保存の確認コマンド
cloudフォルダ内に「jwt-key.json」ファイルがあることを確認する
$ ls
auth-provider.js    datastore.js  smart-home-provider-cloud.js
config-provider.js  jwt-key.json


セットアップ(つづき)

セットアップコマンド
git cloneしたフォルダ内に移動
$ cd actionssdk-smart-home-nodejs/

frontendフォルダに移動
$ cd smart-home-provider/frontend/

仮想スマートデバイスを動かすローカルサーバを構築
$ npm install -g bower
$ bower install
$ cd ../
$ npm install

※ npm install コマンドで、WARNログが出力されると思いますが、おそらくそのままでもOKだと思います。(各人の環境に合わせてご判断&ご対応ください。)


ローカルサーバの起動

  • npm start コマンドを実行するとローカルサーバ(ngrok)が起動しますので、起動状態のままにしておいてください。このプログラムを停止するとサーバが停止します。
ローカルサーバ起動コマンド
git cloneしたフォルダ内に移動
$ cd actionssdk-smart-home-nodejs/

frontendフォルダに移動
$ cd smart-home-provider/frontend/

smart-home-providerに移動
$ cd ../

仮想スマートデバイスを動かすローカルサーバを起動
$ npm start


ローカルサーバの情報確認

  • サーバ情報はメモしておいてください。
  • URLは npm start コマンド実行する度に変更され、コマンドを停止すると破棄されます。
    21.png

ローカルサーバの情報確認

  • サーバ起動ログを、上にさかのぼります。
  • 「クライアントID」と「クライアントシークレット」をメモしておいてください。
    22.png

7. Actions on Google つづき


アクションの作成

  1. メニューから「Actions」を、クリックする。
  2. 「ADD YOUR FIRST ACTION」を、クリックする。
    23.png

Home automation のビルド

  1. 下にスクロールする。
  2. メニューから「Home automation」を、クリックする。
  3. 「BUILD」を、クリックする。
    24.png

フルフィルメントURLの登録

  1. fulfillment URLに、先ほどメモした「スマートホーム用」URLを設定する。
  2. 「DONE」を、クリックする。

※もしサーバを再起動した場合、都度URLが変わりますので、再設定してください。
25.png


アカウントリンク の設定

  1. メニューから「Account linking」を、クリックする。
  2. 「NEXT」を、クリックする。
    26.png

リンキングタイプの設定

  1. Linking typeに、「OAuth」と「Authorization code」を設定する。
  2. 「NEXT」を、クリックする。
    27.png

クライアント情報の設定

  1. 先ほどメモした「クライアントID」、「クライアントシークレット」を設定する。
  2. 「アカウントリンク用URL」を、2つ設定する。
  3. 「NEXT」を、クリックする。
    28.png

スコープの設定

  • スコープ(任意項目)は設定せずに、「NEXT」をクリックする。
    29.png

テスターコメントの設定

  1. Googleテスターさん向けに、「コメント」を入力する。
  2. 「SAVE」を、クリックする。
    30.png

設定内容の反映

  • 「TEST」をクリックし、テストシミュレータを起動する。
    31.png

設定内容の反映

  • 「Test now enabled.」メッセージが、ポップアップを表示されるのを確認する。(これでGoogleスマートホームアプリは作成完了となります。)
    32.png

8. ポータルサイト


ポータルサイトを開く

  1. ローカルサーバのURLにアクセスする。
  2. 「LOGIN」を、クリックする。
  • user: rick / password: oldman
    33.png

仮想家電デバイスの登録

  • 右上の「+」アイコンを、クリックする。
    34.png

デバイスの追加

  • 「RGB Light」アイコンを、クリックする。
    35.png

デバイスの追加

  1. ニックネームに、「テストランプ」を設定する。
  2. デバイス名に、「テストランプ」を設定する。
  • ニックネーム(任意名)はデバイス呼び出し名となるため、音声認識しやすい名前にしてください。
    36.png

9. Googleスマートホームアプリの設定


Googleアシスタントアプリの起動

  1. お持ちのスマートフォンで、「Googleアシスタント」アプリをタップする。
  • ※アカウントは、開発で用いたGoogleアカウントに変更のうえお使いください。
    37.png

設定を開く

  1. 設定を開くため「コンパス」アイコンをタップする。
    38.png

設定を開く

  • 「設定」をタップする。
    39.png

スマートホームの設定

  • 設定メニューの「機能」から「スマートホーム」をタップする。
    40.png

デバイスの追加

  • 画面下の「+」アイコンをタップする。
    41.png

デバイスの追加

  • 「テスト用アプリ」をタップする。
  • ※アプリ名を設定された方はそのアプリ名を選択してください。
    42.png

アカウントリンクをする

  • 「LOGIN」ボタンをクリックして、アカウントリンクをおこなう。
    47.png

部屋の割り当て

  • 当該デバイスをタップして、デバイスの利用場所(仮想)を設定する。
    43.png

部屋の割り当て

  • 任意の利用場所をタップする。
    44.png

部屋の割り当て

  • 「完了」タップする。。
    45.png

部屋の割り当て

  • 「OK」ボタンをタップする。
    46.png

10. Googleアシスタントアプリのテスト


Googleアシスタントアプリのテスト

  1. Googleアシスタントアプリを開く。
  2. ユーザ発話「テストランプをつけて」をする。
    48.png

ポータルサイトを確認する

  1. ポータルサイトを確認する。
  2. ユーザ発話「テストランプをつけて」のタイミングで、ブラウザ内の照明が「点灯」することを確認する。
    49.png

他フレーズのテスト

トークシナリオ
ユーザー:「テストランプを赤くして」
Googleアシスタント:「はい。テストランプの色を変えます。」

ユーザー:「テストランプの明るさを50%にして」
Googleアシスタント:「分かりました。テストランプの明るさを50パーセントに設定します。」

ユーザー:「テストランプを消して」
Googleアシスタント:「はい。テストランプをオフにします。」


11. おわり

みなさん、Googleスマートホームアプリの作成方法はいかがでしたか?みなさんの環境でも、うまくセットアップできていれば幸いです。(私はなんだかんだ2時間くらいはまりました。。。)うまくいけば、1時間もあれば完了するかと思います。

2018/08/19 TAKAHIRO NISHIZONO

30
31
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?