Android Studio 用 Google Home プラグイン

Matter ; Home API

Google Home Plugin for Android Studio は、Google Home Platform デベロッパー向けに設計、作成されています。このプラグインを使用すると、Google Assistant Simulator、Cloud Logging などのツールにアクセスして、スマートホームの開発プロセスを簡素化できます。

Android Studio 用 Google Home プラグイン

セキュリティに関するお知らせ

Android Studio がシークレットとパスワードを保存しないようにするには、次の操作を行います。

  1. [File]、[Settings...] の順にクリックします。
  2. [Appearance & Behavior] で [System Settings] を展開し、[Passwords] をクリックします。
  3. [保存しない。再起動後にパスワードを消去する] を選択します。
Android Studio 用 Google Home プラグイン

機能

アシスタント シミュレータ

スマートホーム デバイスが Google Home エコシステムで正常に動作するかどうかをテストするには、Android Studio を離れることなく、いつでも Assistant Simulator を操作できます。

Assistant Simulator を使用すると、クエリ(「ライトをオンにして」など)を入力してデバイスを簡単に操作できます。Android Studio 内で、Assistant Simulator はコマンドに基づいてテキスト メッセージで応答します(例: 「わかりました。ライトをオンにします。」)。

アシスタント シミュレータでテストする

Cloud Logging を表示する

Google Cloud Logging には、デバッグ情報と主な指標が表示され、アクションの使用状況を把握できます。開発を簡素化するため、Google Home Plugin では、トラブルシューティング中にコードのすぐ横にリアルタイムの Cloud Logging メッセージが表示されます。

リアルタイム ログを表示することも、期間を選択することもできます。

Cloud Logging のビュー

バッチ発話

1 つの発話に対する Assistant Simulator のレスポンスは決定的ではありません。たとえば、次のようなフレーズで回答します。

  • わかりました。2 つのライトをオンにします。
  • はい、2 つの照明をつけます。
  • わかりました。2 個のライトをオンにします。
  • はい、2 個のライトをオンにします。

自動テストを実行し、これらのさまざまなレスポンスで Google 統合がどのように機能するかを確認するには、発話スクリプトを実行してバッチ発話を Assistant Simulator に送信します。スクリプトを保存すると、レスポンスを収集して、クエリに対して複数のテストを実行できます。

ホームグラフ ビューア

Home Graph Viewer を使用すると、デバイスの状態を表示し、ブラウザで Google Home テストスイート を起動できます。

Android Debug Bridge(adb)ログビューア

Adb Log Viewer は、ログファイル(Matter デバイスのログファイル、Google Home のログ、Android のログなど)を表示、分析するためのツールです。

インストール

Android Studio に Google Home Plugin をインストールする手順は次のとおりです。

  1. Android Studio をダウンロードまたは更新します。 Android Studio をダウンロード
  2. [File] > [Settings](macOS では [Android Studio] > [Preferences])に移動します。
  3. [Plugins] セクションで [Marketplace] に移動し、google home を検索します。
  4. ツールをインストールして Android Studio を再起動します。

このプラグインは、JetBrains Marketplace から直接ダウンロードすることもできます。

セットアップ

プラグインをインストールしたら、Assistant Simulator を使用して Cloud Logging を表示する前に、次の手順を完了する必要があります。

Google でログイン

Google Home パネルからデベロッパー アカウントにログインして、Android Studio がユーザーに代わって Google サービスと通信することを承認できます。

  1. Android Studio ウィンドウの左側にある縦のタブ列で、[Google Home] タブをクリックします。

  2. [Sign in with] で [Google] をクリックしてブラウザを起動します。

    Android Studio の Google ログイン
  3. スマートホーム デバイスにリンクしているアカウントを選択します。

  4. [Google でログイン] 承認ページで、[許可] をクリックします。

  5. ブラウザ ウィンドウを閉じて、Android Studio に戻ります。

ログインが完了し、[Sign Out] オプションが表示されます。

Cloud プロジェクトを選択する

ログイン後、プルダウンからプロジェクトを選択します。プロジェクト リストをフィルタするには、フィルタ式(matter など)を入力して Enter を押します。

[プロジェクト] プルダウンには、[フィルタ] に基づいて最初の 100 個のプロジェクトが読み込まれます。選択内容は、Android Studio を終了しても保持されます。

プロジェクトの選択

プロジェクト フィルタについては、Google Cloud リファレンスのクエリ パラメータをご覧ください。

アシスタント シミュレータを使用する

Android Studio で Assistant Simulator を開くには、Google Home Plugin パネルから [Utterances Panel] をクリックします。

発話パネルを開く

Assistant Simulator にクエリを送信する方法はいくつかあります。次に、各オプションについて説明します。

クエリを入力して回答を収集する

Assistant Simulator を操作するには、クエリを入力して Enter キーを押します。

クエリを再送信するには、クエリの最後にある 再送信アイコンをクリックします。

1 つ以上のクエリを送信したら、 [リプレイ] をクリックしてクエリを再実行し、レスポンスを確認します。[Utterances] パネルでは、保存されたキャッシュ内のクエリとレスポンスを追跡します。[Replay] では、この内部キャッシュに新しいレスポンスのみが追加され、ボタンをクリックするたびにクエリが重複することはありません。

アシスタント シミュレータで発話を再生する

[ 保存] をクリックして、[発話] パネルに入力したクエリとレスポンスを保存します。インタラクションは、次の形式で JSON に変換されます。

  • ask: クエリ。
  • answers: Assistant Simulator レスポンスの配列。

この JSON ファイルは Android Studio で編集できます。

{
  "collected": false,
  "lines": [
    {
      "ask": "turn lights on",
      "answers": [
        "OK, turning 2 lights on.",
        "Sure, turning on 2 lights."
      ]
    }
  ]
}

バッチ レスポンスを収集する

Google Home Plugin パネルで [Utterances File] をクリックして、保存した JSON ファイルを新しいタブで開きます。[パスを選択] では、ファイルまたはフォルダを選択できます。フォルダを選択すると、Collect と Test はそのフォルダ内のすべての発話 .json ファイルに対して機能します。

同じファイルまたは異なるファイル(lights、lights(1)、plug など)に対して複数のタブを開くことができます。

ステータスバーには、前回のテストの結果(該当する場合)、ファイルが収集されたかどうかを示す黄色または緑色のドット、発話 .json ファイルパスが表示されます。[収集] をクリックすると、Assistant Simulator がクエリを実行します。新しいレスポンスが収集されると通知が届きます。クエリの処理中は、ステータスバーにカウンタが表示されます。

アシスタント シミュレーターで発話を集める

Collect が完了すると、ステータスバーが更新され、.json パスの前に緑色のチェックマークが表示されます。また、発話ファイルに、考えられるレスポンスが入力されます。

アシスタント シミュレーターで発話を集める
{
  "collected": true,
  "lines": [
    {
      "ask": "turn lights on",
      "answers": [
        "OK, turning 2 lights on.",
        "Sure, turning on 2 lights.",
        "Sure, turning 2 lights on.",
        "Got it, turning 2 lights on.",
        "Alright, turning on 2 lights.",
        "OK, turning on 2 lights.",
        "Got it, turning on 2 lights.",
        "Alright, turning 2 lights on."
      ]
    }
  ]
}

収集を早期に停止した場合、.json パスは収集済みとしてマークされません。

バッチ発話をテストする

レスポンスを収集したら、 [テスト] をクリックしてクエリを再生し、レスポンスとログを確認します。バッチ発話をテストすると、Assistant Simulator は JSON ファイルに保存されたレスポンスを想定します。テストで収集されていないレスポンスが返された場合は、次のレスポンスのような通知が届きます。

Expected one of: "Got it, turning on 2 lights."

アシスタント シミュレータで発話を実行する

このシナリオは、テストが失敗したことを示しています。それ以外の場合、Assistant Simulator は各クエリを実行してレスポンスを返します。テストが成功すると、ステータスバーに チェックが表示されます。

アシスタント シミュレータで発話を実行する

Cloud Logging を表示する

Cloud Logs ツール ウィンドウでプロジェクト タブを開くには、Google Home Plugin パネルから [Cloud Logs] をクリックします。プロジェクトごとに個別の Cloud Log タブを開くことができます。

Cloud Logging のタブ

検索キーワード

選択したプロジェクトでは、[クエリ] フィールドを使用してログをフィルタすることもできます。たとえば、light のキーワードでログをフィルタするには、次のようにします。

Cloud Logging クエリ

[QL を使用] を選択して、Logging のクエリ言語を使用します。

Cloud Logging のクエリ言語

以下に、QL クエリの例をいくつか紹介します。

severity = (DEBUG OR INFO OR NOTICE OR WARNING OR ERROR OR CRITICAL OR ALERT OR EMERGENCY) AND resource.type="assistant_action_project" AND timestamp > "2022-04-07T00:40:18Z"
jsonPayload.executionLog.executionResults.actionResults.action.trait = "TRAIT_ON_OFF"
jsonPayload.executionLog.executionResults.actionResults.action.actionType = "ONOFF_ON"

日付と時刻のクエリ

日付でログをクエリすることもできます。これは、[以降] と [以前] をクリックして有効にできます。指定されたテキスト フィールドに日付と時刻の形式を入力できます(例: 5/11/22, 12:37 PM)。または、日付選択ツール を使用して日付を選択し、テキスト フィールドに時刻を入力することもできます。

  • 5/1/22 より後の日付を選択するには、[以降] を選択し、日付アイコン をクリックします。
  • 5/1/22 より前の日付を選択するには、[以前] を選択して日付アイコン をクリックします。
  • 5/1/22~6/30/22 の日付を選択するには、[以前] と [以降] を選択し、日付アイコン から日付を選択します。

[リアルタイム] を選択して、ライブ プロジェクト ログを取得します。[停止] をクリックして、リアルタイム フィードを終了します。

重大度

プルダウンから [Minimal Severity] を選択することもできます。

クエリ結果

[Fetch] をクリックして、クエリ パラメータを送信します。

ログが読み込まれたら、任意のレコード をクリックして、完全な JSON ペイロードを開きます。もう一度 をクリックすると、メッセージの全文が表示されます。

必要に応じて、[フィルタ] ボックスにキーワードを入力して、ログの結果を絞り込むことができます。[x] をクリックしてフィルタを削除し、元の取得結果に戻ります。

Cloud Logging を表示する

Home Graph を表示してテストを実行する

デバイスを一覧表示するには、Google Home Plugin パネルから [Home Graph] を選択します。

[更新] をクリックして、選択したプロジェクトに関連付けられているデバイスのデバイス名、デバイス ID、デバイスタイプを表示します。複数のプロジェクトで複数の Google Home Graph パネルを開くことができます。

デバイスが読み込まれたら、任意のレコード をクリックして、JSON ペイロード全体を展開します。

Home Graph JSON ペイロード

[展開] と [折りたたむ] を使用して、デバイスの JSON ペイロードを表示または非表示にすることもできます。

Home Graph の JSON の展開と折りたたみ

特定のデバイスのテストスイートを起動するには、[Test] をクリックします。これにより、ブラウザでテストスイートが起動し、デバイスが選択されてテストの準備が整います。[Start] をクリックして、テスト結果を待ちます。

ホームグラフのテストを実行する

テストが完了すると、テストの詳細を確認してログを表示できます。

ホームグラフの完了したテスト

Android Debug Bridge(adb)ログビューア

Adb Log ツール ウィンドウでプロジェクト タブを開くには、Google Home プラグイン ツールバー(左側)の [Adb Log] コマンドをクリックします。ログファイルごとに個別の Adb Log タブを開くことができます。タブを削除するには、 アイコンをクリックします。

[選択] フィールドを使用して、表示する特定のロギング コンポーネントを選択し、[重大度] プルダウンを使用して、一致するログの重大度を持つエントリのみを表示します。

選択した adb ログについて、Filter フィールドを使用してログエントリをフィルタできます。オプションで 大文字と小文字を区別 または 正規表現 修飾子を使用できます。

さらに、次のことが可能です。

  • 特定のエントリを検索するには、[Find] フィールドと、[Find Next]( アイコン)コマンドおよび [Find Previous]( アイコン)コマンドを使用します。
  • 必要に応じて、[大文字と小文字を区別] または [正規表現] 修飾子を使用します。
  • [行に移動] を使用すると、ログ内の指定した行(番号)に移動できます。

[番号付き] を選択すると、行番号が追加されたログ行が表示されます。[Raw] を選択して、未加工のログエントリを表示します。

Adb ログビューア

リソースとフィードバック

[リソース] をクリックすると、デベロッパー ツールとリソースのリストが表示されます。

Google Home Plugin を使用した開発エクスペリエンスの改善方法に関するご意見やフィードバックを送信するには、[フィードバック] をクリックします。

フィードバックを送信