一、核心说明
设备端通过 HTTP/HTTPS 协议向服务器推送事件(如移动侦测、门铃触发),支持纯文本事件和图片上传。推送配置(URL、Token)从 APP 端获取,格式如下:
{
"func": "DmPush",
"args": [
{
"url": "https://host:port/hestia/v4/dm/create/event",
"token": "Token"
}
]
}设备端需将 APP 下发的 URL 和 Token 持久化存储,推送时直接读取使用。
二、HTTP 请求说明
| 项目 | 说明 |
|---|---|
| 请求 URL | 从 APP 端获取(固定格式:https://host:port/hestia/v4/dm/create/event) |
| 请求方法 | POST(推荐)/ GET |
| 请求头部 | Authorization: Bearer <token>(token 从 APP 端获取)不上传图片: Content-Type: application/json上传图片:无需手动设置(服务器自动识别 multipart/form-data) |
| 必选参数 | udid:40位字符串(20位 certkey + 20位设备 UID 拼接)starttime:int64 类型(事件开始的 Unix 时间戳,单位:秒) |
| 必选二选一参数 | type:事件类型字符串(如 "motionSensor"、"doorbell")→ 若 type=doorbell,服务器自动转换 tag 为:{
"tag": [
{
"sensor": "oldDesign",
"props": [
{
"type": "doorbell"
}
]
}
]
} tag:base64 加密后的事件标识数据(符合 RFC 4648 标准) |
| 可选参数 | notify:字符串(值为 "silent" 时跳过推送通知)upload:图片文件(仅上传图片时需带,格式:upload=@本地图片路径)→ 限制:图片大小 ≤ 300KB,无格式限制(推荐 JPG/PNG) |
| 响应说明 | 状态码:200(成功)、400(参数错误)、401(认证失败) 响应体 result:空字符串(成功)、失败原因描述(失败)错误码 -3012:token 失效(设备已被 APP 移除) |
三、快速测试示例(curl)
3.1 纯事件触发(不上传图片)
curl -XPOST
-H 'Authorization: Bearer 63bbd75e6af944f202f9adef'
-H 'Content-Type: application/json'
-d '{
"udid": "TUTKKALAY20000000000FVUA9T3WKFZMUHPGY1Y1",
"starttime": 1717654305,
"tag": "W3sic2Vuc29yIiA6ICJtb3Rpb24iLCJwcm9wcyIgOlt7InR5cGUiIDogIm1vdGlvblNlbnNvciJ9XX1d"
}'
https://asia-dm.kalay.us/hestia/v4/dm/create/event3.2 事件触发 + 图片上传
curl -XPOST -H 'Authorization: Bearer 63bbd75e6af944f202f9adef' -F 'upload=@upload_image.jpg' # 本地图片路径(相对/绝对路径均可) -F 'tag=W3sic2Vuc29yIiA6ICJtb3Rpb24iLCJwcm9wcyIgOlt7InR5cGUiIDogIm1vdGlvblNlbnNvciJ9XX1d' -F 'starttime=1720767184' -F 'udid=TUTKKALAY20000000000FVUA9T3WKFZMUHPGY1Y1' https://asia-dm.kalay.us/hestia/v4/dm/create/event
