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
Google*
ほとんどのトレイトは自動化で使用できます。一部のトレイトは自動化でのみ使用できます。 詳しくは、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 トレイトのギャップを埋めます。具体的な
例として、Google* デバイスタイプがありますが、
Cloud-to-cloud から派生したもので、まだ Matter の類似のものはありません。
デバイスタイプは、いずれか一方または両方のソースのトレイトで構成されます。 Matter または Cloud-to-cloud。
たとえば、扇風機デバイス タイプは と の両方で構成され、次の 3 つのトレイトを備えています。
IdentifyMatter トレイトは、MatterIdentifyのすべての 機能を提供します。FanControlMatter トレイトは、MatterFanControlトレイトのすべての 機能を提供します。ExtendedFanControlGoogle トレイトは、 Google smart homeFanSpeedトレイトでカバーされていないFanControlMatter トレイトのすべての機能を提供します。
このタイプのトレイト構成は、デバイスタイプ の完全な機能を実現する柔軟なモデルを提供し、基盤となるsmart homeデータ モデルを抽象化します。