Android 向けの Home API は、Google Home エコシステム内のすべてのデバイスを統合されたデータモデルで表します。このデータモデルは、基盤となるスマートホーム テクノロジー(Matter や Cloud-to-cloud など)に関係なく、すべての種類のデバイス(Google Nest またはサードパーティ メーカー製)を対象としています。また、smart home とモバイルアプリ デベロッパーの両方のユーザー エクスペリエンスを構築するための共通の API サーフェスを提供します。
デバイスタイプ
Home API で提示されるデバイスタイプは、Matter データモデルと Cloud-to-cloud データモデルを統合したものです。一部は Matter から直接派生したもので、一部は Matter デバイスタイプの拡張機能であり、一部は Cloud-to-cloud から派生しています。
デバイスタイプには、デバイスの制御と管理に使用されるトレイトが含まれています。デバイスタイプと同様に、特徴は Matter クラスタと Cloud-to-cloud 特徴から派生し、Matter クラスタに似た共通形式で提示されます。Home API では、Matter から派生した特徴は、クラスタではなく特徴と呼ばれます。
そのため、Home API のデバイスのタイプとトレイトは Matter を優先しています。Matter デバイスタイプまたはトレイトは、Cloud-to-cloud アナログよりも優先されます。
デバイスタイプとそのトレイトのリストについては、Android でサポートされているデバイスタイプをご覧ください。
トレイト
Kotlin バージョンのトレイトは、Home API で使用するために生成され、Home API に固有の追加機能(Matter や Cloud-to-cloud にはない機能)が含まれています。たとえば、各トレイトには、トレイトが特定の属性またはコマンドをサポートしているかどうかを確認するメソッドがあります。これは、デバイスタイプ内のすべてのデバイスに同じ機能が備わっているとは限らないため、ユーザーのデバイスで状態の読み取りや特定のアクションを実行できるかどうかを判断する際に役立ちます。
各トレイトは独自の Namespace に含まれており、使用するには個別にインポートする必要があります。
たとえば、Matter オン/オフの特性とオン/オフのプラグイン ユニットのデバイスタイプを使用するには、次のパッケージをアプリケーションにインポートします。
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Garage デバイスタイプ(Google スマートホーム)の場合は、Matter と Google のトレイトを使用します。
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio には自動入力機能があり、プロジェクトのソースファイルに import
行を追加するときに、パッケージ名全体を自動的に処理することがよくあります。ただし、パッケージ名はすべてのデバイスタイプと特性で一貫しているわけではありません。各 DeviceType
または Trait
の正しいパッケージ名を確認するには、リファレンスをご覧ください。
自動化での使用もサポートされていますが、制限がある場合があり、一部の特徴は自動化でのみ使用できます。リストについては、Android での Automation API トレイトのサポートをご覧ください。
デバイスタイプの構成
Home API は、データモデルの特徴としてほとんどの Matter 1.3 アプリケーション クラスタをサポートしています。デバイスの制御や状態に対応しておらず、エンドユーザーに有用性を提供しない特性(バインディングやグループなど)は、Home API で公開されません。
Cloud-to-cloud スマートホーム トレイトから派生したトレイトは通常、Cloud-to-cloud と Home API で同じ名前になります(OpenClose の例など)。その他の特性は、Matter メーカー固有の拡張機能を使用して作成された Matter 特性の拡張機能として表されます。これらのトレイトは、機能が Matter SDK と Google Home エコシステムに分割されている smart home トレイトのギャップを埋めます。具体的な例として、Cloud-to-cloud から派生した Google*
デバイスタイプが挙げられます。このデバイスタイプには Matter の類似デバイスはまだありません。
デバイスタイプは、Matter または Cloud-to-cloud の 1 つまたは両方のソースのトレイトから構成されます。
たとえば、ファン デバイスタイプは両方で構成され、2 つの FanControl トレイトを備えています。
- FanControl Matter トレイトは、Matter FanControl トレイトのすべての機能を提供します。
- ExtendedFanControl Google トレイトは、FanControl Matter トレイトでカバーされていない Google smart home FanSpeed トレイトのすべての機能を提供します。
このタイプのトレイトの合成は、基盤となる smart home データモデルを抽象化して、完全なデバイスタイプの機能を実現する柔軟なモデルを提供します。