Android のデータモデル

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 にはない機能)が含まれています。たとえば、各トレイトには、トレイトが特定の属性またはコマンドをサポートしているかどうかを確認するメソッドがあります。これは、ユーザーのデバイスで状態の読み取りや特定のアクションを実行できるかどうかを判断する際に役立ちます。デバイスタイプ内のすべてのデバイスが同じ機能をすべて備えているとは限らないためです。

各トレイトは独自の名前空間に含まれており、使用するには個別にインポートする必要があります。

たとえば、Matter のオン/オフ トレイトとオン/オフ プラグイン ユニット デバイスタイプを使用するには、次のパッケージをアプリにインポートします。

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

ガレージ デバイスタイプ(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 アプリケーション クラスタをデータモデルのトレイトとしてサポートしています。Binding など、エンドユーザーに直接的なユーティリティを提供しない低レベルの構成クラスタは、Home API を介して公開されません。

Cloud-to-cloud スマートホーム トレイトから派生したトレイトは、通常、Cloud-to-cloud と Google Home API で同じ名前になります(OpenClose の例など)。その他は、Matter メーカー固有の拡張機能を使用して作成された Matter トレイトの拡張機能として表されます。これらのトレイトは、Matter SDK と Google Home エコシステムの間で機能が分割されている smart home トレイトのギャップを埋めます。この具体的な例として、Cloud-to-cloud から取得されるものの、Matter の類似物がまだない Google* デバイスタイプがあります。

デバイスタイプは、Matter または Cloud-to-cloud のいずれかまたは両方のソースのトレイトで構成されます。

たとえば、ファン デバイスタイプは、次の 3 つのトレイトで構成されています。

  • Identify Matter トレイトは、Matter Identify のすべての機能を提供します。
  • FanControl Matter トレイトは、Matter FanControl トレイトのすべての機能を提供します。
  • ExtendedFanControl Google トレイトは、FanControl Matter トレイトでカバーされていない Google smart home FanSpeed トレイトのすべての機能を提供します。

このタイプのトレイト構成は、完全なデバイスタイプ機能に柔軟なモデルを提供し、基盤となる smart home データモデルを抽象化します。

デバイス グループ

デバイス グループは、1 つのストラクチャ内のデバイスのユーザー定義コレクションを表します。デバイス グループは DeviceGroup エンティティで表されます。これは HomeDevice とは異なります。

デバイス グループの詳細については、Structure API をご覧ください。