Android 用 Home API の概要

Android 向け Google Home API は、統合された API サーフェスを提供し、デベロッパーがユーザーの家のエンティティの状態を操作できるようにします。これらのエンティティは、ユーザーの構造と部屋に関連付けられたデバイスとデバイス以外の情報を記述できます。

Google Home の API は、ユーザーが操作できる次のエンティティを定義します。

  • 構造 は、部屋とデバイスを含む家を表します。
  • 部屋 は構造の一部であり、デバイスが含まれています。
  • デバイス は、属性を含むトレイトを実装し、タイプに準拠し、イベントを生成し、コマンドに応答します。
  • 自動化 は構造の一部であり、家のメタデータとデバイスを使用して家でのタスクを自動化します。

図 1 はこのアーキテクチャを示したものです。

Android アプリの Home API アーキテクチャを示す図
図 1: Android アプリ向け Google Home API のアーキテクチャ

Google Home API のデバイスタイプは、 Matterによってサポートされている場合もあれば、 スマートホームのオープン スタンダードである Cloud-to-cloud デバイスである場合もあります。Google Home エコシステム。一部のデバイスタイプには、両方の機能が組み込まれている場合があります。詳しくは、Android で サポートされているデバイスタイプ をご覧ください。

Matter では、デバイスの機能はクラスタごとにグループ化されます 。これは、Google Home の API では Matter 標準トレイトとして表されます。Google Home の API は、現在の Matter 仕様で定義されている Matter クラスタの標準セットをサポートしています。

Google Home エコシステムでは、デバイスの機能はスマートホーム トレイトごとにグループ化されます。これは、Google Home の API では Google スマートホーム トレイトとして表されます。 Google Home の API は、 Cloud-to-cloud プログラムで定義されているスマートホーム トレイトのセットをサポートしています。

メーカー固有のクラスタやプラットフォーム トレイトなど、他のトレイトも利用できます。詳しくは、 Android のデータモデルをご覧ください。

エコシステム

Google Home エコシステムは、スマートホーム エクスペリエンスの構築、管理、保護、統合のための合理化された基盤を提供します。図 2 は、コンポーネントがどのように連携しているかを示しています。

Android アプリの Home API エコシステムを示す図
図 2: Android アプリ向け Google Home API エコシステム

このエコシステムには、家でのタスクとデバイスの設定を自動化する方法を提供する自動化を保存して実行する Google 自動化エンジン が含まれています。

Google Home の API は OAuth 2.0 を使用して、構造内のデバイスへのアクセスを許可します。OAuth を使用すると、ユーザーはログイン認証情報を公開することなく、アプリやサービスに権限を付与できます。

Google Home Developer Console は、Google Home の API プロジェクトのすべての段階(ブランドの確認から、開発、テスト、認定、最終的なリリースまで)を管理するために使用されます。Google Home エコシステムを通じて堅牢なツールと配信を提供しながら、開発プロセスを効率化します。

言語

Android 向け Google Home API は Kotlin で記述されており、 Flow を使用して状態とサブスクリプションを管理する慣用的な Kotlin インターフェースを提供します。これにより、標準のサブスクリプション API に比べて多くのメリットがあります。

まだお使いでない場合は、コルーチン、Flow、Jetpack Compose に関する Kotlin のドキュメントをよく理解することをおすすめします。

エンティティ ID

Google Home の API の各エンティティには、プライマリ ID を表す ID があります。この ID は一意で安定した ID であり、エンティティの存続期間中に変更されることはありません。この ID を使用して、エンティティのメタデータが変更される可能性があるため、オブジェクトをキャッシュに保存したり、等価性を確認したりできます。

ID を持つエンティティについては、HasId インターフェースをご覧になり、 どのようなエンティティが ID を持つかをご確認ください。

用語マッピング

Google Home の API のエンティティは、次のように MatterCloud-to-cloud のコンセプトにマッピングされます。

Google Home の API Matter Cloud-to-cloud
トレイト クラスタ トレイト
属性 属性 属性、状態
コマンド コマンド コマンド
イベント イベント フォローアップの回答、通知