适用于 iOS 的 Home API 以统一的数据模型呈现 Google Home 生态系统中的所有设备。此数据模型涵盖所有类型的设备(无论是 Google Nest 设备还是第三方制造商的设备),无论底层智能家居技术(例如 Matter 或 Cloud-to-cloud)是什么,都适用。它还提供了一个通用的 API 界面,供 smart home 和移动应用开发者构建用户体验。
设备类型
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 上的自动化 API 特征支持。
设备类型组成
Home API 支持数据模型中的大多数 Matter 应用集群作为特征。不对应于设备控制或状态且不为最终用户提供任何实用功能的特征(例如绑定和群组)不会通过 Home API 公开。
从 Cloud-to-cloud 智能家居特征派生的特征在 Cloud-to-cloud 和 Home API 之间通常具有相同的名称,例如 OpenCloseTrait
示例中所示。其他则表示为 Matter 特征的扩展,使用 Matter 制造商专用扩展创建。这些特征弥合了 smart home 特征的差距,该特征的功能在 Matter SDK 和 Google Home 生态系统之间拆分。一个具体示例是来自 Cloud-to-cloud 但尚无 Matter 类似设备的 Google*
设备类型。
设备类型由一个或两个来源(Matter 或 Cloud-to-cloud)的特征组成。
例如,FanDeviceType
由两者组成,并具有以下三种特征:
IdentifyTrait
Matter 特征提供了 MatterIdentifyTrait
的所有功能。FanControlTrait
Matter 特征提供了 MatterFanControlTrait
的所有功能。ExtendedFanControlTrait
Google 特征提供了 Google smart homeFanSpeedTrait
中未被FanControlTrait
Matter 特征涵盖的所有功能。
这种特征组合为完整的设备类型功能提供了一个灵活的模型,可抽象出底层的 smart home 数据模型。