SDM API 中的特征包含字段、命令和事件。
字段
字段是具有常见数据类型(例如数字或字符串)的值。例如,某个字段可能包含 Google Nest 温控器的当前模式或环境湿度。
您可以通过 GET 调用所需 API 端点来查看特征和字段:
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 对象表示当前资源的父资源,可以是结构或房间。显示名称对应于具有结构父级的设备的
Info 特征 ,或具有房间父级的设备的
RoomInfo 特征  。
命令
命令是与特征相关联的请求。例如,更改 Google Nest 温控器上的当前模式或温度设定点。
通过 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 |  
        | 此特征属于任何具有温度测量传感器的设备。 |  | 
温控器
相机
  
    | 特征 | 
    | CameraClipPreview | 
      
        | sdm.devices.traits.CameraClipPreview |  
        | 此特征属于支持下载片段预览的任何设备。 |  | 
    | CameraEventImage | 
      
        | sdm.devices.traits.CameraEventImage |  
        | 此特征属于支持根据事件生成图片的任何设备。 |  | 
    | CameraImage | 
      
        | sdm.devices.traits.CameraImage |  
        | 此特征属于支持拍摄图片的任何设备。 |  | 
    | CameraLiveStream | 
      
        | sdm.devices.traits.CameraLiveStream |  
        | 此特征属于支持直播的任何设备。 |  | 
    | CameraMotion | 
      
        | sdm.devices.traits.CameraMotion |  
        | 此特征属于支持运动检测事件的任何设备。 |  | 
    | CameraPerson | 
      
        | sdm.devices.traits.CameraPerson |  
        | 此特征属于支持人员检测事件的任何设备。 |  | 
    | CameraSound | 
      
        | sdm.devices.traits.CameraSound |  
        | 此特征属于支持声音检测事件的任何设备。 |  | 
门铃
  
    | 特征 | 
    | DoorbellChime | 
      
        | sdm.devices.traits.DoorbellChime |  
        | 此特征属于支持门铃响铃和相关按压事件的任何设备。 |  |