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 中添加更多功能,我们无法保证某种设备类型在特定设备上会保持稳定。请改为使用为设备返回的 trait。
parentRelations
parentRelations
对象表示当前资源的父资源,可以是结构,也可以是房间。显示名对应于
Info trait (对于具有结构父级的设备)或
RoomInfo for a trait {/19/}设备。
}{2 命令
命令是与特征相关联的请求。例如,更改 Google Nest Thermostat 的当前模式或温度设置值。
命令通过 executeCommand
API 调用发送:
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "command-name",
"params" : {
"field" : "value"
}
}
对一个命令的大多数响应都是简单的成功或失败。如需查看具体的命令用法示例,请参阅各个特征指南。
事件
事件是异步进行的,由 Google Cloud Pub/Sub 在每个 Project ID 一个主题中进行管理。
默认情况下,只要特征字段的值发生任何更改,系统就会发送事件。在响应特定设备操作或资源分配更改时,也可以发送这些事件。如需了解详情,请参阅事件。
特征类别
结构
特征 |
信息 |
sdm.structures.traits.Info |
此特征属于任何结构相关信息的结构。 |
|
RoomInfo |
sdm.structures.traits.RoomInfo |
此特征属于用于提供房间相关信息的任何聊天室。 |
|
设备
特征 |
网络连接 |
sdm.devices.traits.Connectivity |
此特征属于具有连接信息的所有设备。 |
|
粉丝 |
sdm.devices.traits.Fan |
此特征属于系统能够控制风扇的任何设备。 |
|
湿度 |
sdm.devices.traits.Humidity |
此特征属于任何具有用于测量湿度的传感器的设备。 |
|
信息 |
sdm.devices.traits.Info |
此特征属于设备相关信息的任何设备。 |
|
设置 |
sdm.devices.traits.Settings |
对于设备相关设置信息,此特征属于任何设备。 |
|
温度 |
sdm.devices.traits.Temperature |
此特征适用于任何配有传感器来测量温度的设备。 |
|
恒温器
摄像头
门铃
特征 |
DoorbellChime |
sdm.devices.traits.DoorbellChime |
此特征属于支持门铃和相关按下事件的任何设备。 |
|