Google Home Sample App for Matter は Google Home Mobile SDK を使用して、Google Home app (GHA) と同様の Android アプリを作成します。このサンプルアプリには、次の機能があります。
- 物理デバイスと仮想 Matter デバイスをローカル Android ファブリックにコミッショニングする
- 物理デバイスと仮想デバイスを開発ファブリックにコミッショニングする
- 開発ファブリック上のデバイスを操作する(ライトをオンにするなど)
- マルチ管理機能を使用すると、開発ファブリック上のデバイスを他のアプリと共有したり、他のアプリから共有されたデバイスを開発ファブリックに含めたりできます。
- デベロッパー ユーティリティ
このガイドでは、Sample App for Matter APK をインストールし、それを使用して Matter デバイスのコミッショニング、制御、共有を行う方法について説明します。
ソースコードをダウンロードし、Mobile SDK を統合して Android Studio で画面をカスタマイズする方法については、Sample App for Matter Codelab をお試しください。
Sample App for Matter Codelab に移動
前提条件
- テストに使用できる Android O(8.1、API レベル 27)以降のデバイス。デバイスが最新の Matter をサポートしていることを確認するには、Matter モジュールとサービスを確認するガイドをご覧ください。
- オン/オフ機能を備えた Matter デバイスを構築します。このサンプルアプリは、仮想デバイスと ESP32 で動作します。
- Matter Virtual Device(MVD)。環境に関する問題を最小限に抑えるため、まず MVD を使用することを強くおすすめします。問題が発生した場合、サンプルアプリが MVD に対して使用されていれば、調査がはるかに容易になります。
rootnode_dimmablelight_bCwGYSDpoe
アプリで Matter 仮想デバイスをビルドします。Google Home Developer Console で Matter 統合を作成するときは、ベンダー ID に0xFFF1
、プロダクト ID に0x8000
を使用します。all-clusters-app
を使用して Espressif デバイスをビルドします。Developer Console で Matter 統合を作成する場合は、ベンダー ID として0xFFF1
を、商品 ID として0x8001
を使用します。
Sample App for Matter でデバイスをコミッショニングして操作するために、Google Nest Hub (2nd gen) などのハブは必要ありません。
インストール
Sample App for Matter GitHub リポジトリのリリース セクションに移動します。最新のリリースについては、アセット セクションで
GHSAFM-version-default-debug.apk
という名前の APK を探します。targetcommissioner
は選択しないでください。Android Debug Bridge(adb)をインストールします。
Android デバイスを USB で接続し、[ファイル転送] を有効にしてから、APK をインストールします。
$ adb unroot && adb install GHSAFM-version-default-debug.apk
デバイスをコミッショニングする
サンプルアプリを初めて起動すると、Sample App for Matter Codelab へのリンクを含むダイアログが表示されます。[今後このメッセージを表示しない] を選択した場合、アプリの [管理] セクションで設定を更新すると、いつでもダイアログを再び表示できます。
次の手順では、Matter デバイスをローカル Android ファブリックに追加します。また、サンプルアプリにローカルな開発ファブリックも追加します。
Matter ファブリックとは
Matterファブリックは、ホーム ネットワーク内のデバイス間で共有される信頼ドメインであり、デバイス間の通信を可能にします。
デバイスには、プラットフォーム、アプリ、または相互にやり取りするデバイスのグループに対応するファブリックが 1 つ以上存在する場合があります。ファブリックには一意の ID があり、デバイスは同じ認証情報と認証局(CA)のセットを共有します。これらの認証情報は、Matter のコミッショニング時に割り当てられます。
Matter デバイスをコミッショニングする手順は次のとおりです。
[
デバイスを追加] ボタンをタップして、コミッショニング プロセスを開始します。次に、制御は Google Play services に移ります。これは Mobile SDK の呼び出しから起動されます。所有権を証明するには、[QR コードをスキャン] をタップするか、[ペア設定コードを使用] をタップします。
コミッショニングが完了したら、[デバイス名] を入力し、[完了] をタップします。
デバイスがローカル Android ファブリックと開発ファブリックの両方に接続されました。
デバイスのコミッショニングを行う場合、コミッショニング作業と関連する画面はすべて Play services によって処理されます。これにより、一貫性のあるユーザー エクスペリエンスが提供され、Wi-Fi や Thread の認証情報などの機密性の高い権限を処理する必要がなくなります。
デバイスを操作する
開発ファブリックは、サンプルアプリから Matter デバイスを制御するための認証情報を作成します。
ホーム画面で、デバイスのオンとオフを切り替えることができます。デバイスをタップすると、デバイスの詳細にアクセスできます。
デバイス共有
デバイスの共有は、Matter 仕様ではマルチ管理者フローと呼ばれます。デバイスをサンプルアプリにコミッショニングすると、他のエコシステムと簡単に共有できます。
Matter デバイスを他のエコシステムと共有するには、Android デバイスに別のプラットフォームがインストールされている必要があります。この外部プラットフォームがターゲットのコミッショナーになります。ターゲット コミッショナーとして使用できるサンプルアプリの別のインスタンスを作成しました。
Sample App for Matter GitHub リポジトリのリリース セクションに移動します。最新のリリースについては、アセット セクションで
GHSAFM-version-targetcommissioner-debug.apk
という名前の APK を探します。default
は選択しないでください。ターゲット コミッショナーをインストールします。
$ adb unroot && adb install GHSAFM-version-targetcommissioner-debug.apk
ホーム画面でデバイスをタップして、デバイス情報を表示します。[共有] をタップします。
サンプルアプリは Mobile SDK Share API を呼び出し、再び Play services に制御が移ります。
共有シートが表示され、デバイスをペア設定するアプリまたはプラットフォームを選択できます。この画面では、デバイスを共有する 2 つの方法が用意されています。
- 設定コードをターゲットのコミッショナー アプリと共有して手動で行う
- Matter 委員として登録されているローカルの Android アプリ
ターゲットのコミッショナー アプリには GHSAFM-TC というラベルが付いています。このサンプルアプリのインスタンスをタップして、デバイスを共有します。
次に、外部アプリ(ターゲット コミッショナー)がデバイスのコミッショニングを独自のファブリックに完了します。
設定
ホーム画面で、設定アイコン
をクリックします。ここでは、ユーザー設定の更新、ヘルプの利用、アプリの詳細の確認を行うことができます。ハーフシート通知
設定画面で、Matter デバイスの先行型コミッショナブル ディスカバリ通知を無効にできます。
アプリケーションが独自の Matter 検出またはコミッショニング フローを提供している場合、中断を防ぐためにこれらの通知を抑制することが望ましい場合があります。詳しくは、コミッショナブルな検出通知を抑制するをご覧ください。
デベロッパー ユーティリティ
[設定] 画面から、デベロッパー ユーティリティにもアクセスできます。
Logcat でデバイスとユーザー設定の DataStore リポジトリの内容を確認するには、次の手順を行います。
[リポジトリのコンテンツをログに記録] をクリックします。
ダイアログで [OK] をクリックし、[Logcat] を確認します。
フィードバックやご質問
Sample App for Matter での開発の改善点など、ご意見やフィードバックがありましたら、フィードバック フォームにご記入ください。
Sample App for Matter で問題が発生した場合は、次の手順に沿って環境を確認してください。
サンプルアプリの使用について質問がある場合や、コードのバグを発見した場合は、GitHub リポジトリの Issue Tracker に問題を送信できます。
技術的な質問について Google から公式なガイダンスを得るには、スマートホーム デベロッパー フォーラムをご利用ください。
コミュニティから技術サポートを受けるには、Stack Overflow で google-smart-home
タグを使用します。