CameraEventImage 架构
Nest Cam(旧版) 
sdm.devices.traits.CameraEventImage
此特征属于支持根据事件生成图片的任何设备。
字段
此特征没有可用的字段。
命令
GenerateImage
提供用于下载相机图片的网址。
此命令支持以下事件:
| 类型 | 元素 | 说明 | 
|---|---|---|
| 事件 | CameraMotion 特征的动作事件 | 摄像头检测到有动静。 | 
| 事件 | CameraPerson 特征的人物事件 | 摄像头检测到有人。 | 
| 事件 | CameraSound 特征的声音事件 | 摄像头检测到有声音。 | 
| 事件 | DoorbellChime 特征的 Chime 事件 | 有人按了门铃。 | 
eventId 来接收与该事件相关的相机图片的下载网址。
GenerateImage 请求和响应
请求
POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.CameraEventImage.GenerateImage",
  "params" : {
    "eventId" : "eqxAGXAQ3bD4LQkqCi4R8XaqC_..."
  }
}
响应
{
  "results" : {
    "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
    "token" : "g.0.eventToken"
  }
}
GenerateImage 请求字段
| 字段 | 说明 | 数据类型 | 
|---|---|---|
| eventId | 要请求相关摄像头图像的事件的 ID。 | string示例:“eqxAGXAQ3bD4LQkqCi4R8XaqC_...” | 
GenerateImage 响应字段
| 字段 | 说明 | 数据类型 | 
|---|---|---|
| url | 用于下载相机映像的网址。 | string示例:“https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1..." | 
| token | 下载映像时要在 HTTP 授权标头中使用的令牌。 | string示例:“g.0.eventToken” | 
下载相机拍摄的图片
使用 HTTP 授权标头中的 token(采用基本授权)从 GenerateImage
  命令响应中对 url 进行 GET 调用,以下载摄像头图片:
curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...使用 width 或 height 查询参数自定义下载图片的清晰度。只需指定其中一个参数。另一个形参会根据相机的宽高比自动缩放。
例如,如果摄像头的宽高比为 4:3,要下载分辨率为 480 x 360 的摄像头图像,请指定宽度或高度:
宽度
curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?width=480高度
curl -H "Authorization: Basic g.0.eventToken" \
      https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...?height=360下载网址还存在其他限制:
- 如果网址中同时提供了这两个参数,系统会使用 width并忽略height。
- 如果网址中未提供这两个参数,系统会为 width选择默认值 480。
如需了解图片属性,请参阅 CameraImage 特征。
错误
可能会返回与此特征相关的以下错误代码:
| 错误消息 | RPC | 问题排查 | 
|---|---|---|
| 摄像头图像已无法再下载。 | DEADLINE_EXCEEDED | 活动图片会在活动发布 30 秒后过期。请务必在过期之前下载图片。 | 
| 事件 ID 不属于相应摄像头。 | FAILED_PRECONDITION | 使用相机事件返回的正确 eventID。 | 
如需查看完整的 API 错误代码列表,请参阅 API 错误代码参考文档。
