Android 版 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 类似项。
如需查看设备类型及其特征的列表,请参阅 Android 上支持的设备类型 。
特征
系统会生成特征的 Kotlin 版本,以供在 Home API 中使用,并且包含 Home API 特有的其他功能( Matter或Cloud-to-cloud中没有)。例如,每个 特征都有用于检查特征是否支持特定属性或 命令的方法。这在确定是否可以在用户的设备上读取状态或执行某些操作时非常有用,因为设备类型中的并非所有设备都应具有所有相同的功能。
每个特征都包含在自己的命名空间中,并且必须单独导入才能使用。
例如,如需使用 Matter On/Off 特征和 On/Off 插件单元设备类型,请将以下软件包导入到您的应用中:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
对于 车库设备 类型 (来自 Google 智能家居),请混合使用 Matter 和 Google 特征:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio 具有自动补全功能,并且在向项目中的源文件添加 import 行时,通常会
为您处理完整的软件包名称
。不过,软件包名称在所有设备类型和特征中并不一致。请参阅参考文档,以验证每个
DeviceType或
Trait的正确软件包名称。
大多数特征都支持与自动化功能搭配使用,并且某些特征 仅 适用于自动化功能。如需了解详情,请参阅 Android 上的自动化 API 特征支持。
设备类型组成
Home API 支持大多数 Matter 应用集群 作为数据模型中的特征。与设备控制或状态不对应的特征,以及不为最终用户提供任何实用程序的特征(例如绑定和群组),不会通过 Home API 公开。
派生自Cloud-to-cloud智能家居特征的特征通常在Cloud-to-cloud和 Home API 之间具有相同的名称,例如 OpenClose。其他特征则表示为
Matter特征的扩展,使用Matter
制造商特定的扩展创建。这些特征弥合了 a
smart home 特征的功能在 the
Matter SDK 和 Google Home 生态系统之间拆分的情况。一个具体
示例是 Google* 设备类型,它们来自
Cloud-to-cloud 但目前还没有 Matter 类似项。
设备类型由来自一个或两个来源的特征组成, Matter 或 Cloud-to-cloud。
例如,风扇设备 类型由 和 组成,并具有三个特征:
IdentifyMatter 特征提供 MatterIdentify中的所有 功能。FanControlMatter 特征提供 MatterFanControl特征中的所有 功能ExtendedFanControlGoogle 特征提供 Google smart homeFanSpeed特征中的所有功能,这些功能不包含在FanControlMatter 特征中
这种类型的特征组成提供了一个灵活的模型,用于实现完整的设备类型功能,并抽象出底层数据模型。smart home