适用于 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-first。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
大多数特征都支持与自动化功能搭配使用,并且某些特征 仅 适用于自动化功能。如需了解详情,请参阅 Android 上的 Automation API 特征支持。
设备类型组成
Home API 支持数据模型中的大多数 Matter 应用集群 作为特征。与设备控制或状态不对应的特征,以及不为最终用户提供任何实用程序的特征(例如绑定和群组),不会通过 Home API 公开。
派生自 Cloud-to-cloud 智能家居特征的特征通常在 Cloud-to-cloud 和 Home API 之间具有相同的名称,例如 OpenCloseTrait。其他特征则表示为
Matter特征的扩展,使用Matter
制造商特定的扩展创建。这些特征弥合了 a
smart home 特征的功能在 the
Matter SDK 和 Google Home 生态系统之间拆分的情况。一个具体的
示例是 Google* 设备类型,它们来自
Cloud-to-cloud 但尚未有 Matter 类似项。
设备类型由来自一个或两个来源的特征组成, Matter 或 Cloud-to-cloud。
例如,
FanDeviceType
由两者组成,并具有三个特征:
IdentifyTraitMatter 特征提供 MatterIdentifyTrait中的所有 功能。FanControlTraitMatter 特征提供 MatterFanControlTrait中的所有 功能。ExtendedFanControlTraitGoogle 特征提供 Google smart homeFanSpeedTrait中的所有功能,这些功能不包含在FanControlTraitMatter 特征中。
这种类型的特征组成提供了一个灵活的模型,用于实现完整的设备类型功能,并抽象出底层数据模型。smart home