CameraEventImage 架构
Nest Cam(旧版)
sdm.devices.traits.CameraEventImage
此特征属于支持根据事件生成图片的任何设备。
字段
此特征没有可用的字段。
命令
GenerateImage
提供用于下载摄像头图片的网址。
此命令支持以下事件:
| 类型 | 元素 | 说明 |
|---|---|---|
| 事件 | Motion 特征的运动事件 | 摄像头检测到有动作。 |
| 事件 | CameraPerson 特征的人事件 | 摄像头检测到有人。 |
| 事件 | 声音事件,属于 CameraSound 特征 | 摄像头检测到有声音。 |
| 事件 | 电铃事件 DoorbellChime trait 的 | 门铃被按下。 |
eventId,即可收到与该事件相关的摄像头图片的下载网址。
GenerateImage 请求和响应
请求
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.CameraEventImage.GenerateImage",
"params" : {
"eventId" : "-SN9UDcIBMGCQhoGXLhXU6lbpA..."
}
}
响应
{
"results" : {
"url" : "https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...",
"token" : "g.0.eventToken"
}
}
GenerateImage 请求字段
| 字段 | 说明 | 数据类型 |
|---|---|---|
eventId |
用于请求相关摄像头图片的事件的 ID。 | string示例:“-SN9UDcIBMGCQhoGXLhXU6lbpA...” |
GenerateImage 响应字段
| 字段 | 说明 | 数据类型 |
|---|---|---|
url |
用于下载摄像头图片的网址。 | string示例:“https://domain/sdm_event_snapshot/dGNUlTU2CjY5Y3VKaTZwR3o4Y1...” |
token |
下载图片时要在 HTTP Authorization 标头中使用的令牌。 | string示例:“g.0.eventToken” |
下载摄像头图片
使用基本授权,通过 HTTP Authorization 标头中的 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。 - 如果网址中未提供这两个参数,系统会为默认值 480 选择
width。
如需了解图片 属性,请参阅 CameraImage trait。
错误
系统可能会返回与此特征相关的以下错误代码:
| 错误消息 | RPC | 问题排查 |
|---|---|---|
| 摄像头图片已无法下载。 | DEADLINE_EXCEEDED |
事件图片会在事件发布 30 秒后过期。请务必在过期前下载图片。 |
| 事件 ID 不属于摄像头。 | FAILED_PRECONDITION |
使用摄像头记录的事件返回的正确 eventID。 |
如需查看完整的 API 错误代码列表,请参阅 API 错误代码参考文档 。