iOS のデータモデル

iOS 向け 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 アナログよりも優先されます。

デバイスタイプとそのトレイトのリストについては、iOS でサポートされているデバイスタイプ をご覧ください。

トレイト

トレイトの Swift バージョンは、Home API で使用するために生成され、 Matter や Matter または Cloud-to-cloud にはない Home API 固有の追加機能が含まれています。たとえば、各 トレイトには、特定の属性または コマンドをトレイトがサポートしているかどうかを確認するメソッドがあります。デバイスタイプ内のすべてのデバイスに同じ機能が搭載されているとは限らないため、ユーザーのデバイスで状態の読み取りや特定のアクションを実行できるかどうかを判断する際に便利です。

トレイトとデバイスタイプをインポートするには、GoogleHomeTypes モジュールをアプリケーションにインポートします。

import GoogleHomeTypes

また、トレイト名とデバイスタイプ名に typealias を使用して、コードを短縮し、名前空間の重複を回避することもできます。

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

ほとんどのトレイトは自動化で使用できます。一部のトレイトは自動化でのみ使用できます。 詳しくは、Android での Automation API トレイトのサポート をご覧ください

デバイスタイプの構成

Home API は、ほとんどの Matter アプリケーション クラスタ をデータモデルのトレイトとしてサポートしています。Binding や Groups など、デバイスの制御や状態に対応せず、エンドユーザーにとって有用でないトレイトは、Home API では公開されません。

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

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

たとえば、 FanDeviceType は と の両方で構成され、次の 3 つのトレイトを備えています。

  • IdentifyTrait Matter トレイトは、 Matter IdentifyTrait のすべての機能を提供します。
  • FanControlTrait Matter トレイトは、Matter FanControlTrait のすべての 機能を提供します。
  • ExtendedFanControlTrait Google トレイトは、FanControlTrait Matter トレイトでカバーされていない Google smart home FanSpeedTrait のすべての機能を提供します。

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