iOS のデータモデル

iOS 向けの Home API は、Google Home エコシステム内のすべてのデバイスを統合されたデータモデルで表します。このデータモデルは、基盤となるスマートホーム テクノロジー(MatterCloud-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 アナログよりも優先されます。

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

トレイト

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

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

import GoogleHomeTypes

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

import GoogleHomeTypes

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

自動化での使用もサポートされていますが、制限が適用される場合があり、一部の特徴は自動化でのみ使用できます。リストについては、iOS での Automation API トレイトのサポートをご覧ください。

デバイスタイプの構成

Home API は、データモデルの特徴としてほとんどの Matter 1.3 アプリケーション クラスタをサポートしています。デバイスの制御や状態に対応しておらず、エンドユーザーに有用性を提供しない特性(バインディングやグループなど)は、Home API で公開されません。

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

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

たとえば、FanDeviceType は両方から構成され、3 つの特性があります。

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

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