Android のデータモデル

Android 向け Home API は、Google Home エコシステムのすべてのデバイスを統合データモデルで表現します。このデータモデルは、基盤となるスマートホーム テクノロジー(MatterCloud-to-cloud など)に関係なく、すべてのタイプのデバイス(Google Nest やサードパーティ メーカーのデバイスなど)を対象としており、smart home とモバイルアプリの両方のデベロッパーに、ユーザー エクスペリエンスを構築するための共通の API サーフェスを提供します。

デバイスタイプ

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

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

たとえば、扇風機デバイスタイプは、両方で構成され、3 つのトレイトを備えています。

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

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

デバイス グループ

デバイス グループは、単一の構造内のデバイスのユーザー定義コレクションを表します。デバイス グループは HomeDevice とは異なる DeviceGroup エンティティで表されます。

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