iOS 向けの 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 アナログよりも優先されます。
デバイスタイプとそのトレイトのリストについては、iOS でサポートされているデバイスタイプをご覧ください。
トレイト
トレイトの Swift バージョンは、Home API で使用するために生成され、Home API 固有の追加機能(Matter や Cloud-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 アプリケーション クラスタをサポートしています。デバイスの制御や状態に対応しておらず、エンドユーザーに有用性を提供しないトレイト(Binding や Groups など)は、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 のいずれかまたは両方のソースのトレイトで構成されます。
たとえば、FanDeviceType
は両方で構成され、3 つの特性を備えています。
IdentifyTrait
Matter トレイトは、MatterIdentifyTrait
のすべての機能を提供します。FanControlTrait
Matter トレイトは、MatterFanControlTrait
のすべての機能を提供します。ExtendedFanControlTrait
Google トレイトは、FanControlTrait
Matter トレイトでカバーされていない Google smart homeFanSpeedTrait
のすべての機能を提供します。
このタイプのトレイト構成は、基盤となる smart home データモデルを抽象化し、デバイス タイプの完全な機能のための柔軟なモデルを提供します。