特征

SDM API 中的特征由字段、命令和事件组成。

字段

字段是具有常见数据类型(例如数字或字符串)的值。例如,某个字段可能包含 Google Nest Thermostat 的当前模式或环境湿度。

您可以通过对所需 API 端点的 GET 调用来查看特征和字段:

GET /enterprises/project-id/devices/device-id
{
  "name" : "enterprises/project-id/devices/device-id",
  "type" : "sdm.devices.types.device-type",
  "traits" : { ... },
  "parentRelations" : [
    {
      "parent" : "enterprises/project-id/structures/structure-id/rooms/room-id",
      "displayName" : "Lobby"
    }
  ]
}

设备类型

不应使用 SDM API 返回的 sdm.devices.types.device-type 推断或推理其分配到的实际设备的功能。随着 SDM API 中添加更多功能,我们无法保证特定设备的设备类型将保持稳定。请改为使用设备返回的特征。

parentRelations

parentRelations 对象表示当前资源的父级资源,可以是结构,也可以是房间。显示名称对应于信息 trait (对于具有结构父项的设备)或RoomInfo trait customName

命令

命令是与 trait 相关联的请求。例如,更改 Google Nest Thermostat 的当前模式或温度设定点。

通过 executeCommand API 调用发送命令:

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "command-name",
  "params" : {
    "field" : "value"
  }
}

对命令的大多数响应都是简单的成功或失败。如需查看特定命令用法示例,请参阅各个 trait 指南。

事件

事件是异步的,并由 Google Cloud Pub/Sub 进行管理,每个 Project ID 对应一个主题。

默认情况下,trait 字段的值发生更改时,系统会发送事件。它们也可以发送响应特定设备操作或资源分配变化。如需了解详情,请参阅事件

特征类别

结构

trait
信息
sdm.structures.traits.Info
此 trait 属于任何结构,用于提供结构相关信息。
RoomInfo
sdm.structures.traits.RoomInfo
此 trait 属于任何房间,用于提供与房间相关的信息。

设备

trait
连接
sdm.devices.traits.Connectivity
此 trait 适用于具有连接信息的任何设备。
风扇
sdm.devices.traits.Fan
此 trait 适用于具有系统风扇控制功能的任何设备。
湿度
sdm.devices.traits.Humidity
此 trait 适用于任何具有测量湿度的传感器的设备。
信息
sdm.devices.traits.Info
此 trait 属于任何设备,用于提供与设备相关的信息。
设置
sdm.devices.traits.Settings
此 trait 属于任何设备,用于提供与设备相关的设置信息。
温度
sdm.devices.traits.Temperature
此 trait 适用于任何具有温度测量传感器的设备。

温控器

trait
ThermostatEco
sdm.devices.traits.ThermostatEco
此 trait 属于支持 ECO 模式的温控器设备类型。
ThermostatHvac
sdm.devices.traits.ThermostatHvac
此特征属于可以报告 HVAC 详情的 THERMOSTAT 设备类型。
ThermostatMode
sdm.devices.traits.ThermostatMode
此 trait 属于支持不同温控器模式的 THERMOSTAT 设备类型。
ThermostatTemperatureSetpoint
sdm.devices.traits.ThermostatTemperatureSetpoint
此 trait 属于支持设置目标温度和温度范围的温控器设备类型。

相机

特征
CameraClipPreview
sdm.devices.traits.CameraClipPreview
此 trait 适用于支持下载剪辑预览的任何设备。
CameraEventImage
sdm.devices.traits.CameraEventImage
此 trait 属于支持根据事件生成图片的任何设备。
CameraImage
sdm.devices.traits.CameraImage
此 trait 属于支持拍照的任何设备。
CameraLiveStream
sdm.devices.traits.CameraLiveStream
此 trait 适用于任何支持直播的设备。
CameraMotion
sdm.devices.traits.CameraMotion
此 trait 属于支持运动检测事件的任何设备。
CameraPerson
sdm.devices.traits.CameraPerson
此特征属于支持人员检测事件的任何设备。
CameraSound
sdm.devices.traits.CameraSound
此 trait 属于支持声音检测事件的任何设备。

门铃

trait
DoorbellChime
sdm.devices.traits.DoorbellChime
此 trait 适用于支持门铃铃声和相关按压事件的任何设备。