协议
设备端根据 HTTP注册时获得的MQTT配置信息建立连接,订阅云端消息使用主题 down_topic,上报数据使用主题 up_topic。
消息传输采用JSON数据格式。
发送数据及示例
| 参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|
| biz | string | 是 | 业务类型 |
| id | string | 是 | 数据包ID,消息回复时需要携带该ID |
| data | object | 否 | 数据包内容 |
| time | int | 是 | 推送时间 |
{"biz":"relay_out","id":"146548481","data": {},"time":1631518842}
回复数据及示例
| 参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|
| biz | string | 是 | 业务类型 |
| id | string | 是 | 数据包ID,和云端推送的数据包ID保持一致,表示对该消息的应答 |
| data | object | 否 | 数据包内容 |
| time | int | 是 | 设备端当前时间戳 |
| code | int | 是 | 响应码,0表示成功,其它表示异常 |
| msg | string | 是 | 响应信息,异常为具体异常内容 |
{"biz":"relay_out","id":"146548481","data": {},"time":1631518842,"code": 0,"msg": ""}
支持的业务场景
| 指令类型 | 编码 | 备注 | |
|---|---|---|---|
| 云端推送数据至设备 | 白名单下发 | persons | 增量下发白名单到设备 |
| 继电器输出(开门) | relay_out | 适用于远程开门,远程推送继电器信号 | |
| 获取设备信息及配置 | get_config | 获取设备的配置信息 | |
| 修改设备配置 | set_config | 远程修改设备的配置,具体参考如下清单 | |
| 重启 | restart | 远程重启设备 | |
| OTA升级 | upgrade | 远程升级软件版本 | |
| 运营广告 | ad | 设备开启广告模式时,推送广告播放内容 | |
| 恢复出厂设置 | recovery | 清空设备端白名单数据,配置恢复至默认状态 | |
| 设备发送数据至云端 | 通行记录上报 | records | 上报各种核验方式的通行结果 |
| 异常日志上报 | exception | 设备运行异常时,上报日志 |
云端推送数据至设备
推送继电器动作(开门)
发送数据及示例
| 参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|
| delay | int | 是 | 延时秒数,一般为 5 秒 |
{"biz":"relay_out","id":"146548481","data": {"delay":5},"time":1631518842}
回复数据及示例
{"biz":"relay_out","id":"146548481","data": {},"time":1631518842,"code": 0,"msg": ""}
白名单下发
发送数据及示例
| 参数 | 子参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| inserts | array | 是 | 新增或更新人员的ID集合 | |
| id | string | 是 | 人员ID,服务端确保唯一性 | |
| name | string | 是 | 姓名 | |
| picture | string | 否 | 图片地址(推荐)或人员图片base64编码 | |
| password | string | 否 | 密码开门时必填,只有设备支持密码时下发 | |
| ic_card | string | 否 | 刷IC卡时必填,多张卡时使用英文逗号拼接 | |
| id_card | string | 否 | 刷身份证必填,只有设备支持身份证时下发 | |
| start_time | int | 是 | 有效期 — 起始时间,Unix时间戳 | |
| end_time | int | 是 | 有效期 — 截止时间,Unix时间戳 | |
| floor | string | 否 | 人员楼层信息,如有多个楼层,用逗号分隔,如 5,6 则具有5层和6层的梯控权限。 | |
| deletes | array | 是 | 删除人员的ID集合 |
{"biz": "persons","id": "146548481","data": {"inserts": [{"id": "123","name": "123","start_time": 123,"end_time": 123,"picture": "https://host.apic.jpg"},{"id": "1234","name": "1234","start_time": 123,"end_time": 123,"ic_card": "001234,002234,003234","floor": "1,5,22"}],"deletes": ["123","223"]},"time": 1631518842}
回复数据及示例
人脸注册失败时会返回face字段
{"biz": "persons","id": "146548481","data": {"face": [{"personId1": "人脸注册失败, 图片下载失败"},{"personId2": "人脸注册失败, 未识别到人脸"}]},"time": 1631518842,"code": 0,"msg": ""}
获取设备信息及配置
发送数据及示例
{"biz":"get_config","id":"146548481","data": {},"time":1631518842}
回复数据及示例
配置项参考 《设备配置清单》
{"biz":"get_config","id":"146548481","data": {"common": {"device_name":"幸福家园"},"system": {"volume":5},"function": {"face_open":1,}},"time":1631518842,"code": 0,"msg": ""}
修改设备配置
发送数据及示例
配置项参考《设备配置清单》
{"biz":"set_config","id":"146548481","data": {"common": {"device_name":"幸福家园"},"system": {"volume":5},"function": {"face_open":1,}},"time":1631518842}
回复数据及示例
{"biz":"set_config","id":"146548481","time":1631518842,"code": 0,"msg": ""}
重启
发送数据及示例
{"biz":"restart","id":"146548481","data": {},"time":1631518842}
回复数据及示例
{"biz":"restart","id":"146548481","time":1631518842,"code": 0,"msg": ""}
OTA升级
发送数据及示例
| 参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 升级包地址 |
| version | string | 是 | 待升级的版本号 |
{"biz":"upgrade","id":"146548481","data": {"url":"https//ganlin.com/download/xx.apk","version":"1.1.0"},"time":1631518842}
回复数据及示例
{"biz":"upgrade","id":"146548481","time":1631518842,"code": 0,"msg": ""}
运营广告
发送数据及示例
| 参数 | 子参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| list | array | 是 | 本次广告推送的数据,支持批量 | |
| ad_id | string | 是 | 广告ID,保证唯一性 | |
| duration | int | 是 | 广告播放时长,默认 5 秒 | |
| start_time | int | 是 | 广告投放开始时间 | |
| end_time | int | 是 | 广告投放截止时间 | |
| type | int | 是 | 广告内容类型 1:图片 2:视频 | |
| url | string | 是 | 广告素材的地址 | |
| enable | int | 是 | 是否可用,如果不可用,客户端删除广告 | |
| volume� | float | 否 | 视频广告音量0-1 |
{"biz":"ad","id":"146548481","data": {"list": [{"ad_id":"123456789","duration":5,"start_time": 1631605242,"end_time": 1631608842,"type":1,"url": "https://ganlin.com/1.png","enable":1},{"ad_id":"123456780","duration":5,"start_time": 1631605242,"end_time": 1631608842,"type":2,"url": "https://ganlin.com/2.mp4","enable":1,"volume": 0,}]},"time":1631518842}
回复数据及示例
{"biz":"ad","id":"146548481","data": {},"time":1631518842,"code": 0,"msg": ""}
恢复出厂设置
设备执行该指令将配置还原到默认配置,清除白名单数据。
发送数据及示例
{"biz":"recovery","id":"146548481","data": {},"time":1631518842}
回复数据及示例
{"biz":"recovery","id":"146548481","time":1631518842,"code": 0,"msg": ""}
设备发送数据至云端
通行记录上报
发送数据及示例
| 参数 | 子参数 | 子参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|---|---|
| records | array | 是 | 记录数据 | ||
| id | int | 是 | 记录ID | ||
| person_id | string | 是 | 人员ID | ||
| name | string | 是 | 人员姓名 | ||
| picture | string | 否 | 抓拍的图片base64编码 | ||
| password | string | 否 | 密码开门时必填 | ||
| ic_card | string | 否 | 刷卡时IC卡号 | ||
| id_card | string | 否 | 刷身份证时身份证号 | ||
| time | int | 是 | 设备端通行的时间,Unix时间戳 | ||
| type | int | 是 | 验证类型 (见下方核验方式清单) | ||
| result | int | 是 | 通行验证结果 0:正常通过 1:陌生人,无法通行 2:已过期 3:未到访问时间 4:超出访问次数 | ||
| gauze | int | 否 | 口罩识别情况 0:不检测 1:无口罩 2:有口罩 3:无口罩 可通行 | ||
| temperature | float | 否 | 体温 | ||
| health | object | 否 | 健康码情况 | ||
| qr_color | string | 否 | green:绿码 yellow:黄码 red:红码 gray:灰码 unknown:未知 | ||
| nucleic_result | int | 否 | 核酸检测结果,1:阴性 2:阳性 | ||
| nucleic_time | int | 否 | 核酸检测时间,Unix时间戳 | ||
| inoculate | string | 否 | 疫苗接种情况 | ||
| trip | string | 否 | 近14天行程 |
{"biz":"records","id":"146548481","data": {"records": [{"id":1,"person_id":"12345678","picture":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyM","password":"","ic_card":"","id_card":"","type":1,"time":1631518842,"result":0,"gauze":0,"temperature":36.523}]},"time":1631518842}
回复数据及示例
只上报,云端收到该消息不做回复。
异常日志上报
发送数据及示例
| 参数 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|
| type | string | 是 | 异常类型 storage_alert:存储预警 remove:设备被拆除 camara_damage:摄像头损坏 temp_high:温度过高 |
| description | string | 否 | 异常描述 |
| time | int | 是 | 异常发生时间 |
回复数据及示例
只上报,云端收到该消息不做回复。
设备配置清单
该配置可以通过“获取设备信息及配置”获取,也可通过“修改设备配置”远程进行修改。
| 类别 | 字段名 | 子参数 | 数据类型 | 说明 | 备注 |
|---|---|---|---|---|---|
| 通用 common | device_name | string | 设备名称 | ||
| open_voice | string | 开门提示语音, 可动态替换: 姓名, 体温 |
默认:请进, 动态: {姓名},请通行, 当前体温: {体温} |
||
| tip_voice | string | 靠近提示音 | (已忽略) | ||
| io_type | int | 进出类型 | 1: 进, 2: 出 | ||
| 系统 system |
volume | float | 设备音量 | ||
| relay | int | 继电器延时关闭时间 | 默认: 5 | ||
| 功能 function | verify_user | int | 是否验证用户白名单 | 默认:0 | |
| pic_take� | int | 人脸抓拍 | 默认: 0 | ||
| led_open� | int | 是否开启补光灯� | 默认:1 | ||
| face_open | int | 是否开启人脸识别 | 默认:1 | ||
| face_check� | int | 是否开启人脸检测 | 默认:0 | ||
| live_check�� | int | 是否开启活体检测 | 默认:0 | ||
| call_talk� | int | 是否支持呼叫对讲� | 默认:1 | ||
| display_ad | int | 是否开启广告模式 | 默认:1 | ||
| fnVerifyMode� | array | 核验方式, (见下方核验方式清单) |
默认: [1,3,7] | ||
| call_mode� | array | 支持的对讲模式 | 默认:[] | ||
| face_card_compare | int | 是否开启人证比对 | 默认:0 | ||
| health_code | int | 健康码核验 | 0:关闭 1:只查验全部放行 2:仅绿码通行 3:仅绿码+24小时核酸通行 4:仅绿码+48小时核酸通行 5:仅绿码+72小时核酸通行 | ||
| health_api | object | 健康码接口相关配置 | 默认:0,开启健康码核验才会有此项值 | ||
| region | string | 地区,湖北:hubei | |||
| platform | string | 调用平台标识 | |||
| app_id | 调用App ID | ||||
| app_secret | 调用App 密钥 | ||||
核验方式清单
1:IC卡2:蓝牙3:刷二维码4:远程5:人脸识别6:扫描二维码7:密码8:身份证9:指纹10:刷健康码
