Home API for Android 概览

适用于 Android 的 Google Home API 提供了一个统一的 API 界面,使开发者能够与用户住宅中实体的状态进行交互。这些实体可以描述与用户结构和房间关联的设备和非设备信息。

Home API 定义了用户可以与之互动的以下实体:

  • 结构表示包含房间和住宅的住宅。
  • 房间是结构的一部分,包含设备。
  • 设备实现包含属性的特征、符合类型、发出事件并响应命令。
  • 自动化操作是结构的一部分,使用住宅元数据和设备来自动执行住宅中的任务。

图 1 展示了此架构:

图示:Android 应用的 Home API 架构
图 1:Android 应用的 Home API 架构

Home API 设备类型可能由智能家居开放标准 Matter 提供支持,也可能是 Google Home 生态系统中的 Cloud-to-cloud 设备。某些设备类型可能同时包含这两者的功能。如需了解详情,请参阅 Android 上支持的设备类型

Matter 中,设备功能按集群分组,这些集群在 Home API 中表示为 Matter 标准特征。Home API 支持当前 Matter 规范中定义的标准 Matter 集群。

在 Google Home 生态系统中,设备功能按智能家居特征分组,这些特征在 Home API 中表示为 Google 智能家居特征。Home API 支持 Cloud-to-cloud 计划中定义的一组智能家居特征。

此外,还提供其他特征,例如特定于制造商的集群和平台特征。如需了解详情,请参阅 Android 上的数据模型

语言

Android 的 Home API 采用 Kotlin 编写,并提供使用 Flow 管理状态和订阅的惯用 Kotlin 接口。与标准订阅 API 相比,这具有多项优势。

如果您还不熟悉协程、Flow 和 Jetpack Compose,建议您先熟悉相关 Kotlin 文档:

实体标识符

Home API 中的每个实体都有一个 ID,用于表示其主要标识符。此 ID 是唯一且稳定的标识符,在实体的整个生命周期内都不会发生变化。此 ID 可用于缓存对象或检查相等性,因为实体的元数据可能会发生变化。

请参阅 HasId 接口,了解哪些实体具有 ID。

术语映射

Home API 中的实体与 MatterCloud-to-cloud 概念的对应关系如下:

Home API Matter Cloud-to-cloud
特征 集群 特征
属性 属性 属性、状态
命令 命令 命令
事件 事件 后续跟进回答、通知