CameraEventImage 架构
Nest Cam(旧版)
sdm.devices.traits.CameraEventImage
此 trait 属于支持根据事件生成图片的任何设备。
字段
此 trait 没有可用的字段。
命令
GenerateImage
提供用于下载相机图片的网址。
此命令支持以下事件:
类型 | 元素 | 说明 |
---|---|---|
事件 | CameraMotion trait 的 Motion 事件 | 摄像头检测到有动静。 |
事件 | CameraPerson trait 的 Person 事件 | 摄像头检测到有人。 |
事件 | CameraSound trait 的 Sound 事件 | 摄像头检测到声音。 |
事件 | DoorbellChime trait 的 Chime 事件 | 有人按门铃了。 |
eventId
来接收与该事件相关的相机图片的下载网址。
GenerateImage 请求和响应
请求
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage
",
"params" : {
"eventId" : "Ah97W4rOjQSyarHNmyxQTZk_Q8..."
}
}
响应
{ "results" : { "url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...", "token" : "g.0.eventToken" } }
GenerateImage 请求字段
字段 | 说明 | 数据类型 |
---|---|---|
eventId |
要为其请求相关摄像头图片的事件的 ID。 | string 示例:“Ah97W4rOjQSyarHNmyxQTZk_Q8...” |
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 trait。
错误
系统可能会针对此 trait 返回以下错误代码:
错误消息 | RPC | 问题排查 |
---|---|---|
相机图片无法再下载。 | DEADLINE_EXCEEDED |
事件图片会在事件发布 30 秒后过期。请务必在图片过期前下载。 |
事件 ID 不属于摄像头。 | FAILED_PRECONDITION |
使用相机事件返回的正确 eventID 。 |
如需查看 API 错误代码的完整列表,请参阅 API 错误代码参考文档。