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