Android 上的数据模型

适用于 Android 的 Home API 以统一的数据模型呈现 Google Home 生态系统中的所有设备。此数据模型涵盖所有类型的设备(无论是 Google Nest 设备还是第三方制造商的设备),无论底层智能家居技术(例如 MatterCloud-to-cloud)是什么,都适用。它还提供了一个通用的 API 界面,供 smart home 和移动应用开发者构建用户体验。

设备类型

Home API 中显示的设备类型是 MatterCloud-to-cloud 数据模型的统一。有些直接派生自 Matter,有些是 Matter 设备类型的扩展,还有些派生自 Cloud-to-cloud

设备类型包含用于控制和管理设备的特征。与设备类型类似,特征是从 Matter 集群和 Cloud-to-cloud 特征派生出来的,并以与 Matter 集群类似的通用格式呈现。在 Home API 中,Matter 派生的特征称为特征,而不是集群

因此,Home API 中的设备类型和特征旨在实现 Matter 优先。Matter 设备类型或特征的优先级高于 Cloud-to-cloud 模拟。

如需查看设备类型及其特征的列表,请参阅 Android 上支持的设备类型

特征

系统会生成特性的 Kotlin 版本,以供在 Home API 中使用,并且这些版本包含 Home API 特有的其他功能(在 MatterCloud-to-cloud 中找不到)。例如,每个特性都有用于检查特性是否支持特定属性或命令的方法。这有助于确定是否可以在用户设备上读取状态或执行某些操作,因为设备类型中的并非所有设备都具有相同的功能。

每个特征都包含在自己的命名空间中,必须单独导入才能使用。

例如,如需使用 Matter On/Off 特征和 On/Off Plug-in Unit 设备类型,请将以下软件包导入到您的应用中:

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

对于 Garage 设备类型(来自 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 行时,通常会为您处理完整的软件包名称。不过,软件包名称在所有设备类型和特征中并不一致。请参阅参考资料,验证每个 DeviceTypeTrait 的软件包名称是否正确。

特征也支持与自动化操作搭配使用,但可能受到限制,并且某些特征仅适用于自动化操作。如需查看列表,请参阅 Android 上的自动化 API 特征支持

设备类型组成

Home API 支持数据模型中的大多数 Matter 应用集群作为特征。不对应于设备控制或状态且不为最终用户提供任何实用功能的特征(例如绑定和群组)不会通过 Home API 公开。

Cloud-to-cloud 智能家居特征派生的特征通常在 Cloud-to-cloud 和 Home API 之间具有相同的名称,例如 OpenClose 示例。其他则表示为 Matter 特征的扩展,使用 Matter 制造商专用扩展创建。这些特征弥合了 smart home 特征的差距,该特征的功能在 Matter SDK 和 Google Home 生态系统之间拆分。一个具体示例是来自 Cloud-to-cloud 但尚无 Matter 类似设备的 Google* 设备类型。

设备类型由一个或两个来源(MatterCloud-to-cloud)的特征组成。

例如,风扇设备类型由两者组成,并具有以下三种特征:

  • Identify Matter 特征提供了 Matter Identify 的所有功能。
  • FanControl Matter 特征提供了 Matter FanControl 特征的所有功能
  • ExtendedFanControl Google 特征提供 Google smart home FanSpeed 特征中未包含在 FanControl Matter 特征中的所有功能

这种特征组合为完整的设备类型功能提供了一个灵活的模型,可抽象出底层的 smart home 数据模型。