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 でサポートされているデバイスタイプをご覧ください。

トレイト

Home API で使用するために、トレイトの Kotlin バージョンが生成されます。これには、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 や Groups など)は、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 データモデルを抽象化し、デバイス タイプの完全な機能のための柔軟なモデルを提供します。