软件协议文档
终端设备协议文档
功能&协议池(所有功能协议)
MQTT协议文档
HTTP协议文档
微光TLV协议文档
微光卡&码协议
功能模块&UI文档
人脸机
VF105
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列MQTT协议文档V1.37.0(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
VF203
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
VF系列-MQTT协议文档V1.37.2(Vbar版本)
VF 系列 HTTP 协议接口文档-V1.37.1(Vbar版本)
VF106
门禁标品MQTT协议文档(Android版本)
Access control standard MQTT protocol document
VF114
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
VF205
门禁标品MQTT协议文档(DejaOS版本)
VF系列HTTP协议接口文档V1.0.28(Vbar版本)
VF系列-协议模式下通讯协议文档V1.0.4(Vbar版本)
读头
EE200
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
TX200
读头标品TLV通讯协议
Read header standard TLV communication protocol
QT960
读头标品TLV通讯协议
Read header standard TLV communication protocol
QT660
读头标品TLV通讯协议
Read header standard TLV communication protocol
Q340
读头标品TLV通讯协议
Read header standard TLV communication protocol
M300
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
JL7000
读头标品TLV通讯协议
Read header standard TLV communication protocol
Q350
读头标品TLV通讯协议
Read header standard TLV communication protocol
MU86
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
MET
读头标品TLV通讯协议
Read header standard TLV communication protocol
扫码器TCP/HTT通讯协议V1.0(Vbar版本)
读头标品TLV通讯协议V3.10(Vbar版本)
M350
读头标品TLV通讯协议
Read header standard TLV communication protocol
读头标品TLV通讯协议V3.10(Vbar版本)
扫码器TCP/HTT通讯协议V1.0(Vbar版本)
DW200
读头标品TLV通讯协议(DejaOS版本)
Read header standard TLV communication protocol
读头标品HTTP&TCP协议文档(DejaOS版本)
读头标品HTTP&TCP协议文档(Vbar版本)
读头标品TLV通讯协议V3.10(Vbar版)
读头标品RS485一拖多协议V0.7(Vbar版本)
M340
读头标品TLV通讯协议
Read header standard TLV communication protocol
CR90
刷卡模块通信协议v3.0
CR90指令文档
微光指令:0x60 蓝牙设备控制
1.7/2.x扫码器配置字段说明文档
门禁
DW200
门禁标品MQTT协议文档(DejaOS版本)
Access control standard MQTT protocol document
门禁扫码器MQTT协议文档(Vbar版本)
MU86
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议文档V1.0.2(Vbar版)
Q350
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议文档V1.0.2(Vbar版)
MET
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议文档V1.0.2(Vbar版)
M350
门禁标品MQTT协议文档
Access control standard MQTT protocol document
门禁20180820 MQTT协议V1.0.1(Vbar版本)
门禁20180820 MQTT协议文档V1.0.2(Vbar版本)
MP86
门禁20180820 MQTT协议文档V1.0.2(Vbar版本)
控制板
CC104
控制板标品MQTT协议文档
Control board standard MQTT protocol documentation
CC101
控制板标品MQTT协议文档
Control board standard MQTT protocol documentation
CC101标品20211101MQTT协议V3.6(Vbar版本)
平台服务协议文档
网关服务接口定义
门禁应用接口定义
工具文档
多弦产品API签名安全规则
海外锁
app和后台的mqtt协议
文档
-
+
首页
门禁标品MQTT协议文档(DejaOS版本)
# MQTT协议接口文档 # 一、概述 本文档提供一套直接访问设备的接口,用于推送获取设备信息,使用者购买设备后,就可以直接根据接口说明进行自定义开发整套门禁或相关应用系统。接口使用MQTT通信协议,可以对接各种通用的MQTT代理,也可使用我们推荐的MQTT代理。 ## 1.1、应用场景 当需要对接自己的业务系统时,可以通过使用接口通过MQTT协议直接与设备通讯。 ## 1.2接口规范 接口使用MQTT协议,分为上行与下行: 上行:是指设备上发消息给后台或应用。 下行:是指后台或应用下发消息给设备。 通信中间通过MQTT代理,消息包含消息topic与消息内容,格式如下: 1)消息topic 消息标题,不管是上行还是下行,发送指令和返回指令的规则是”指令”和”指令_reply”。格式如下: a) 下行:20211214/cmd/{#deviceSn}/xxxx 对应的返回指令(上行):20211214/cmd/xxxx_reply b) 上行:20211214/event/yyyy 对应的返回指令(下行):20211214/event/{#deviceSn}/yyyy_reply > **注:20211214是接口版本的特定标识,cmd表示由后台或应用主动给设备发送指令,event表示设备主动给后台或应用发送消息或触发事件。** {.is-info} 2)消息内容 文本格式的消息内容,内容为Json格式 a)文本消息 发送指令的格式固定,都包含serianNo、deviceSn、data,如: { "serialNo" : "00000001af", //消息序列号,10位字符串,包含的字母和数字,必需的, "deviceSn" : "xxxxxxxx", //设备序列号,设备的唯一地址用于通讯时保证设备是有效的设备 "data" :, //不同的指令对应的Data内容不一样,可以是任何类型,不是必填 } b)返回消息 返回消息格式固定都包含serianNo、deviceSn、result、code、message、data,如 { "serialNo" : "00000001af", //消息序列号,10位字符串,包含的字母和数字,必需的,用于通讯时确保同 步 "deviceSn" : "xxxxxxxx", //设备地址,设备的唯一地址用于通讯时保证设备是有效的设备 "result" :0 //0表示成功,非0表示失败 , "code" :"LAN_SUS-0", //错误码 "message" : "出错的原因信息或成功的提示信息", 不是必填 "data" : //不同的指令对应的Data内容不一样,可以是任何类型,不是必填 } ## 1.3注意事项 a) 若调用接口返回提示“参数异常”,请按以下步骤检查: > - 检查参数名称是否拼错、参数名称中是否带有空格或回车。 > - 检查参数值是否符合规范,如 Int 值未定义、 id 含有数字字母以外的非法字符等。 > - Json 中是否多了或少了",请仔细核对每个接口的 消息内容。 {.is-info} ## 1.4适用范围 此文档适用范围为: > 1. 版本号为: **v1.1.x** 及更高版本的设备。- 版本号中的 X 表示任意数字。 # 二、设备管理类接口 ## 2.1设备配置 a) 后台或应用到设备 | 消息topic | topic: 20211214/cmd/{#deviceSn}/setConfig| | --------- | --------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 配置数据 | Object | Y | 所有配置集合 | 设备配置data域可选参数 > 注:所有配置参数为非必传,需要配置什么只需传对应字段即可 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | -------------------------- | -------------- | -------- | -------- | ------------------------------------------------------------ | | tcpEn | TCP开关 | Int | N | 0:关(默认) 1:开 | | tcpServerIp | IP | String | N | TCP服务器IP | | tcpServerPort | 端口 | Int | N | TCP服务器端口号 | | rsBaudrate | 波特率 | String | N | RS485波特率<br /> 默认:"115200-8-N-1" | | wgDataSize | 韦根 | Int | N | 26:韦根26<br /> 34:韦根34<br /> 默认;34 | | relayDelay | 延时 | Int | N | 继电器延时时间<br /> 单位:毫秒,分度:50ms<br /> 默认:2000 | | recMode | 识别模式 | Int | N | 识别模式(1:人/卡合一,2:人/码合一,3:人/卡/码任一) | | scannerWorkMode | 工作模式 | Int | N | 工作模式(针对刷卡/扫码 1:透传模式,2:协 议模式,3:开发模式,4:本地白名单模式)**注:当为开发模式时,faceWorkMode亦会同时变为开发模式** | | faceWorkMode | 工作模式 | Int | N | 工作模式(针对刷脸 1:透传模式,2:协议模式3:开发模式,4:本地白名单模式)**注:当为开发模式时,faceWorkMode亦会同时变为开发模式** | | onlineCheck | 在线验证 | Int | N | 当scannerWorkMode=4或faceWorkMode=4时有效,1:优先离线。0:只离线 | | protocolChannel | 协议通道 | Int | N | 协议通道( 1:HTTP,2:485,3:TCP)**注:当为开发模式时此配置配开发模式下通道不支持HTTP,若配置HTTP会默认走TCP** | | protocolActionSuc | 成功动作 | Int | N | 协议验证成功动作(对应比特位为1有效,bit1:播报语音,bit2:输出继电器) | | protocolActionFailed | 失败动作 | Int | N | 协议验证失败动作(bit1:播报语音, bit2) | | httpAddr | http地址 | String | N | HTTP协议回调地址 | | httpTimeout | 超时时间 | Int | N | HTTP请求超时时间 毫秒 | | qrEn | 扫码开关 | Int | N | 0:关闭, 1:打开(默认) | | qrAffixesFt | 前后缀格式 | Int | N | 二维码前后缀格式<br /> 1:字符串格式,2:十六进制格式 | | qrPrefix | 前缀 | String | N | 二维码前缀,默认:""(空) | | qrPostfix | 后缀 | String | N | 二维码后缀,默认:""(空) | | qrCr | 回车 | Int | N | 二维码末尾回车符<br /> 1:末尾加回车,0:不加回车 | | qrNl | 换行 | Int | N | 二维码末尾换行符<br /> 1:末尾加换行,0:不加换行 | | qrFt | 格式转换 | Int | N | 二维码韦根输出格式转换<br /> 0:原始二进制字符不做转换 以下bit位为1有效<br />bit0:数字字符转hex:"1234" --> 0x04D2<br />bit1:数字字符转hex反序:"1234" --> 0xD204 bit2:hex字符转hex:"abcd" --> 0xabcd <br />bit3:hex字符转hex反序 :"abcd" --> 0xcdab bit4:数字字符转pid vid <br />bit5:数字字符转pid vid 反序 <br />bit6:韦根26输出低3字节(当bit4 or bit5为1时有效) | | nfcEn | 刷卡开关 | Int | N | 0:关闭, 1:打开(默认) | | nfcFt | 格式转换 | Int | N | NFC格式转换,0:不转换,1:转16进制<br />字符格式输出,2:转10进制字符输出 | | nfcOrd | 正反序 | Int | N | NFC数据正反序 1:反序,0:正序 | | nfcAffixesFt | 前后缀格式 | Int | N | NFC前后缀格式,1:字符串格式,2:十六进制格式 | | nfcPrefix | 前缀 | String | N | NFC前缀,默认:""(空) | | nfcPostfix | 后缀 | String | N | NFC后缀,默认:""(空) | | nfcCr | 回车 | Int | N | NFC数据末尾回车 1:末尾加回车,0:不加回车 | | nfcNl | 换行 | Int | N | NFC数据末尾换行 1:末尾加换行,0:不加换行 | | nfcReadIdNum | 身份证号 | Int | N | 1:读取身份证号,0:读取身份证物理卡号 | | idDetailed | 身份证详细信息 | Int | N | 身份详细信息,支持多选 姓名 1 性别 2 民族 4 出生 8 住址 16 号码 32签发 64 生效 128 失效 256 图片 512 | | cusTag0 | 自定义配置 | String | N | 自定义配置,主要用于定制cusTag0~ cusTag9 共10个 | | cusTag1 | 自定义配置 | String | N | 自定义配置,主要用于定制cusTag0~ cusTag9 共10个 | | cusTag2 | 自定义配置 | String | N | 自定义配置,主要用于定制cusTag0~ cusTag9 共10个 | | cusTag3 | 自定义配置 | String | N | 自定义配置,主要用于定制cusTag0~ cusTag9 共10个 | | cusTag4 ~ cusTag9 | 自定义配置 | String | N | 自定义配置,主要用于定制cusTag0~ cusTag9 共10个 | | recgThreshold | 识别阀值 | Int | N | 人脸相似度阀值, 用于判断这个人是否识别通过(0~100)默认:54 | | registerThreshold | 注册阈值 | Int | N | 注册阈值,人员相似度阈值(0~100),当人员相似度达到此值时将会导致注册失败 | | faceCardThreshold | 识别阀值 | Int | N | 人脸相似度阀值, 用于判断这个人是否和身份证照片识别通过(0~100)默认:30 | | faceCardMode | 人证识别模式 | Int | N | 仅识别模式为人证核验时有效<br /> 0:针对陌生人进行人证识别<br /> 1:针对所有人进行人证识别 | | living | 活体检测 | Int | N | 1: 开启活检(默认), 0: 关闭活检 | | alarmTemperature | 报警温度 | Float | N | 默认37.3 | | bodyTemperatureDetect | 测温开关 | Int | N | 1:打开测温服务模块,0:关闭(默认) | | exposureValues | 曝光补偿 | Int | N | 曝光补偿,默认:0 | | maxTrackFaces | 人脸识别数 | Int | N | 多人识别,人脸识别数配置[1,5] | | faceRecgEnable | 识别开关 | Int | N | 人脸识别:1: 开启,0: 关闭 | | infraredEnable | 红外预览图 | Int | N | 红外图像:1: 开启,0: 关闭 | | livingDetectThresholdScore | 活体阈值 | Int | N | 活体检测阈值(0~100)默认(10), 活检算法每次判断人脸视频帧是否活体, 并给出一个分数, 当这个分数累计大于阈值后, 就认为当前是活体, 活体检测阈值越大需要活检的分数越高, 非活体攻击难度越大, 同时可能会影响活体通过率 | | maskDetectEnable | 口罩检测 | Int | N | 口罩检测,1:打开,0:关闭(默认) | | maskEnable | 口罩识别 | Int | N | 口罩识别,1:打开(默认),0:关闭 | | maskThresholdValue | 口罩阈值 | Int | N | 口罩阈值(0~100),默认:53 | | recgDistance | 识别距离 | Int | N | 识别距离(50~150cm),默认:150 | | recgInterval | 识别间隔 | Int | N | 重复识别的时间间隔单位毫秒ms,默认:1500,需大于recgTimeout | | recgTimeout | 识别超时 | Int | N | 识别超时单位毫秒ms,最低1000 | | repeatRecgEnable | 重复识别 | Int | N | 重复识别开关,1:打开(默认),0:关闭 | | strangerVoice | 识别语音 | Int | N | 陌生人语音对应比特位为1有效,bit0:播放请先注册,bit1:播陌生人你好 ,bit2:播放自定义语音| | strangerVoiceData | 自定义识别语音 | String | N | 陌生人语音自定义内容 | | temperatureCompensation | 温度补偿 | Int | N | 温度补偿,默认:0 | | voiceMode | 语音模式 | Int | N | 语音模式对应比特位为1有效,bit0播报名字,bit1播放问候语 | | grettings | 问候语 | Int | N | 问候语对应比特位为1有效,bit0:播放打卡成功,bit1:播放请通行,bit2:播放欢迎光临,bit3:播放时间问候语 | | infraredLightSet | 补光灯 | Int | N | 补灯光模式 0:长闭,1:长开,2:自动模式 | | lightSensitive | 光敏控制 | Int | N | 光敏控制(暂时没有使用),1:打开(默认),0:关闭 | | lightHighBrightness | 最高亮度 | Int | N | 环境光高于此值关闭红外检测人脸是否进入识读区域 | | lightLowBrightness | 最低亮度 | Int | N | 环境光低于此值且有人脸进入识读区域打开补光 | | lightDetInterval | 检测间隔 | Int | N | 环境光检测间隔,单位秒,默认:1s | | lightDelayTime | 补光灯延时 | Int | N | 自动模式下补光灯亮起延时时间,单位秒,默认:15s | | lightBrightness | 亮度 | Int | N | 补光灯亮度(0~100) | | tamperSwitch | 防拆开关 | Int | N | 1:打开,0:关闭 | | alarmSwitch | 报警开关 | Int | N | 1:打开,0:关闭 | | doorSensorDelay | 报警延时 | Int | N | 报警延时,报警信号出发多久后执行,单位秒,默认:30s | | doorSensor | 触发类型 | Int | N | 报警信号触发类型,0:与地断开触发,1:与地短接触发,2:不触发(默认) | | alarmOutputSwitch | 输出开关 | Int | N | 报警触发输出开关,1:打开(默认),0:关闭 | | alarmRelay | 报警继电器 | Int | N | alarmOutputSwitch=1有效 1:输出继电器,0:不输出继电器 | | alarmWgData | 报警韦根 | String | N | alarmOutputSwitch=1有效 0:不输出韦根,n:韦根输出n | | alarm485Data | 报警485 | String | N | alarmOutputSwitch=1有效 ""(空):不输出485 "abcd":485输出"abcd" | | alarmVoiceData | 报警语音 | String | N | alarmOutputSwitch=1有效 ""(空):播放默认语音 "警报":播放 "警报" lightBrightness | | tamperSwitch | 防拆开关 | Int | N | 1:打开,0:关闭 | | alarmSwitch | 报警开关 | Int | N | 1:打开,0:关闭 | | doorSensorDelay | 报警延时 | Int | N | 报警延时,报警信号出发多久后执行,单位秒,默认:30s | | doorSensor | 触发类型 | Int | N | 报警信号触发类型,0:与地断开触发,1:与地短接触发,2:不触发(默认) | | alarmOutputSwitch | 输出开关 | Int | N | 报警触发输出开关,1:打开(默认),0:关闭 | | alarmRelay | 报警继电器 | Int | N | alarmOutputSwitch=1有效 1:输出继电器,0:不输出继电器 | | alarmWgData | 报警韦根 | String | N | alarmOutputSwitch=1有效 0:不输出韦根,n:韦根输出n | | alarm485Data | 报警485 | String | N | alarmOutputSwitch=1有效 ""(空):不输出485 "abcd":485输出"abcd" | | alarmVoiceData | 报警语音 | String | N | alarmOutputSwitch=1有效 ""(空):播放默认语音 "警报":播放 "警报" | | faceCheckSucVoice | 语音类型 | Int | N | 人脸核验成功语音:0:无语音,1:播放默认语音,2:播放自定义语音 | | faceCheckSucVoiceData | 语音数据 | String | N | 人脸核验成功自定义语音内容 | | faceCheckSucRelay | 刷脸继电器 | Int | N | 人脸核验成功继电器,0:无动作,1:输出继电器 | | faceCheckSuc485 | 458输出类型 | Int | N | 人脸核验成功485输出0:无输出,1:输出自定义数据,2:输出人员ID | | faceCheckSuc485Data | 485数据 | String | N | 人脸核验成功485自定义数据 | | faceCheckSucWg | 韦根类型 | Int | N | 人脸核验成功韦根输出 0: 无输出,1:输出自定义数据,2:输出人员ID | | faceCheckSucWgData | 韦根数据 | Int | N | 人脸核验成功韦根输出数据。 韦根 26 范围为 1-65535,有效范围为 5 位;韦根 34 范围为 1-4294967295,有效范围为 10位。若超出范围,则输出的信号会进行转换,输出无效信号。 | | faceCheckFailedVoice | 语音类型 | Int | N | 人脸核验失败语音,0:无语音,1:播放默认语音,2:播放自定义语音 | | faceCheckFailedVoiceData | 语音数据 | Int | N | 人脸核验失败自定义语音内容 | | cardCheckSucVoice | 语音类型 | Int | N | 刷卡核验成功语音:0:无语音,1:播放默认语音,2:播放自定义语音 | | cardCheckSucVoiceData | 语音数据 | String | N | 刷卡核验成功自定义语音内容 | | cardCheckSucRelay | 继电器开关 | Int | N | 刷卡核验成功继电器,0:无动作,1:输出继电器 | | cardCheckSuc485 | 485类型 | Int | N | 刷卡核验成功485输出,0:无输出,1:输出自定义数据,2:输出卡号 | (下表接上表尾,因markdown最多创建99行,所以创建两个表) | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ------------------------ | -------------- | -------- | -------- | ------------------------------------------------------------ | | cardCheckSuc485Data | 485数据 | String | N | 刷卡核验成功485自定义输出数据 | | cardCheckSucWg | 韦根类型 | Int | N | 刷卡核验成功韦根输出,0:无输出,1:输出自定义数据,2:输出卡号 | | cardCheckSucWgData | 韦根数据 | Int | N | 刷卡核验成功韦根输出数据。韦根 26 范围为 1-65535,有效范围为 5 位;韦根 34 范围为 1-4294967295,有效范围为 10位。若超出范围,则输出的信号会进行转换,输出无效信号 | | cardCheckFailedVoice | 语音类型 | Int | N | 刷卡核验失败语音,0:无语音,1:播放默认语音,2:播放自定义语音 | | cardCheckFailedVoiceData | 语音数据 | String | N | 刷卡核验失败语音自定义语音内容 | | qrCheckInterval | 扫码间隔 | Int | N | 扫码间隔 默认1000毫秒 | | qrCheckSucVoice | 语音类型 | Int | N | 扫码核验成功语音:0:无语音,1:播放默认语音,2:播放自定义语音 | | qrCheckSucVoiceData | 语音数据 | String | N | 扫码核验成功语音自定义语音内容 | | qrCheckSucRelay | 继电器 | Int | N | 扫码核验成功继电器,0:无动作,1:输出继电器 | | qrCheckSuc485 | 485类型 | Int | N | 扫码核验成功485输出,0:无输出,1:输出自定义数据,2:输出卡号 | | qrCheckSuc485Data | 485数据 | String | N | 人脸核验成功485自定义数据 | | qrCheckSucWg | 韦根类型 | Int | N | 扫码核验成功韦根输出,0:无输出,1:输出自定义数据,2:输出卡号 | | qrCheckSucWgData | 韦根数据 | Int | N | 人脸核验成功韦根输出数据。韦根 26 范围为 1-65535,有效范围为 5 位;韦根 34 范围为 1-4294967295,有效范围为 10位。若超出范围,则输出的信号会进行转换,输出无效信号 | | qrCheckFailedVoice | 语音类型 | Int | N | 扫码核验失败语音,0:无语音,1:播放默认语音,2:播放自定义语音 | | qrCheckFailedVoiceData | 语音数据 | String | N | 扫码核验失败语音自定义语音内容 | |bleCheckSucVoice |语音类型 | Int | N | 蓝牙核验成功语音:0:无语音,1:播放默认语音,2:播放自定义语音 | |bleCheckSucVoiceData |语音类型 | String | N | 蓝牙核验成功语音自定义语音内容 | |bleCheckSucRelay |继电器开关 | Int | N | 蓝牙核验成功继电器,0:无动作,1:输出继电器 | |bleCheckFailedVoice |语音类型 | Int | N | 蓝牙核验失败语音,0:无语音,1:播放默认语音,2:播放自定义语音 | |bleCheckFailedVoiceData |语音类型 | String | N |蓝牙核验失败语音自定义语音内容 | |blePassword |密码 | String | N | 蓝牙认证及透传解密密钥 | | saveLargePic | 全景图片 | Int | N | 通行记录全景图片1:保存,0 :不保存 | | saveSmallPic | 人脸图片 | Int | N | 通行记录人脸图片1:保存,0 :不保存 | | saveStrangerRecord | 陌生人记录 | Int | N | 陌生人记录:1:保存,0 :不保存 | | avoidAttendanceStep | 保存间隔 | Int | N | 通行记录保存间隔。单位秒s,默认3 | | autoDisplayBrightness | 屏幕亮度调节 | Int | N | 自动调节屏幕亮度 0:关闭(默认),1:打开 | | displayBrightness | 屏幕亮度 | Int | N | 屏幕亮度(0-100)默认:80 | | autoScreenOff | 自动息屏 | Int | N | 自动息屏,0:关闭,1:打开(默认) | | autoScreenOffTime | 息屏时间 | Int | N | 自动息屏时间,默认:300秒 | | autoScreenSaverTime | 自动屏保 | Int | N | 自动屏保时间,默认:30秒 | | snShow | 设备SN | Int | N | 显示SN,0:不显示,1:显示 | | ipShow | 设备IP | Int | N | 显示IP,0:不显示,1:显示 | | nameShow | 姓名 | Int | N | 显示姓名,0:不显示,1:显示 | | volume | 音量 | Int | N | 音量(0-100),默认:50 | | autoSetTime | 时间更新 | Int | N | 自动更新时间 0:关闭,1:打开(默认) | | autoSetTimezone | 时区更新 | Int | N | 自动设置时区 0:关闭,1:打开(默认) | | timezone | 时区 | String | N | 时区,默认:"Asia/Shanghai"<br /> 可用时区参见《附表 2 可用时区列表》 | | deviceName | 设备名 | String | N | 默认:大门,任意字符串长度小于128 | | deviceDirection | 设备位置 | Int | N | 设备位置<br /> 1:进(默认),2:出,3:进/出 | | language | 语言 | Int | N | 0:中文, 1:英文 | | mqttAddr | MQTT服务器地址 | String | N | MQTT服务器地址,eg:"123.207.152.144:61613" | | mqttClientId | 客户端ID | String | N | 客户端ID,默认设备SN | | mqttUserName | 用户名 | String | N | MQTT用户名 | | mqttUserPassword | 密码 | String | N | MQTT用户密码 | | mqttTopicPrefix | 主题前缀 | String | N | MQTT订阅主题的前缀 | | mqttMessageQos | QoS等级 | Int | N | QoS0,At most once,至多一次<br /> QoS1,At least once,至少一次<br /> QoS2,Exactly once,确保只有一次 | 消息发送示例: {"serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "tcpEn": 1, "tcpServerIp": "10.102.106.78", "tcpServerPort": 8989, "rsBaudrate": "115200-8-N-1", "wgDataSize": 34, "relayDelay": 2000, "recMode": 3, "scannerWorkMode": 1, "faceWorkMode": 1, "protocolChannel": 1, "protocolActionSuc": 1, "protocolActionFailed": 1, "httpAddr": "http://10.102.106.113:5678/httpTest", "httpTimeout": 2000, "qrEn": 1, "qrAffixesFt": 1, "qrPrefix": "", "qrPostfix": "", "qrCr": 0, "qrNl": 0, "qrFt": 0, "nfcEn": 1, "nfcFt": 0, "nfcOrd": 0, "nfcAffixesFt": 1, "nfcPrefix": "", "nfcPostfix": "", "nfcCr": 0, "nfcNl": 0, "nfcReadIdNum": 0, "cusTag0": "1", "cusTag1": "0", "cusTag2": "cus_tag2", "cusTag3": "cus_tag3", "cusTag4": "cus_tag4" "faceCheckSucVoice": 1, "faceCheckSucRelay": 1, "faceCheckSuc485": 2, "faceCheckSuc485Data": "face485data", "faceCheckSucWg": 2, "faceCheckSucWgData": 1234567890, "faceCheckFailedVoice": 1, "faceCheckFailedVoiceData": "人脸认证失败", "faceCheckSucVoiceData": "人脸认证成功", "cardCheckSucVoice": 1, "cardCheckSucRelay": 1, "cardCheckSuc485": 2, "cardCheckSuc485Data": "card485data", "cardCheckSucWg": 1, "cardCheckSucWgData": 9876543210, "cardCheckFailedVoice": 1, "cardCheckFailedVoiceData": "刷卡失败", "cardCheckSucVoiceData": "刷卡成功", "qrCheckSucVoice": 1, "qrCheckSucRelay": 1, "qrCheckSuc485": 2, "qrCheckSuc485Data": "qr485data", "qrCheckSucWg": 1, "qrCheckSucWgData": 1234567890, "qrCheckFailedVoice": 1, "qrCheckFailedVoiceData": "扫码失败哦", "qrCheckSucVoiceData": "扫码成功", "bleCheckFailedVoice": 1, "bleCheckSucRelay": 1, "bleCheckSucVoiceData": "蓝牙认证成功", "bleCheckFailedVoiceData": "蓝牙认证失败", "blePassword": "01234567890123456789012345678901", "nameShow": 1, "ipShow": 1, "snShow": 1, "language": 0, "autoScreenOff": 1, "autoScreenOffTime": 300, "autoScreenSaverOff": 1, "autoScreenSaverTime": 10, "autoDisplayBrightness": 0, "displayBrightness": 100, "volume": 70, "deviceName": "大门", "autoSetTime": 1, "autoSetTimezone": 1, "timezone": "Asia/Shanghai", "maxTrackFaces": 3, "faceCardThreshold": 30, "faceCardMode": 1, "recgThreshold": 54, "living": 1, "alarmTemperature": 37.3, "bodyTemperatureDetect": 0, "exposureValues": 0, "faceRecgEnable": 1, "infraredEnable": 0, "livingDetectThresholdScore": 10, "maskDetectEnable": 0, "maskEnable": 1, "maskThresholdValue": 53, "recgDistance": 150, "recgInterval": 1000, "recgTimeout": 2000, "repeatRecgEnable": 0, "strangerVoice": 1, "strangerVoiceData": "请注册", "temperatureCompensation": 0, "voiceMode": 0, "grettings": 0, "infraredLightSet": 2, "lightSensitive": 1, "lightHighBrightness": 20000, "lightLowBrightness": 100, "lightDetInterval": 1, "lightDelayTime": 5, "lightBrightness": 80, "tamperSwitch": 0, "alarmSwitch": 1, "doorSensorDelay": 3, "doorSensor": 2, "alarmOutputSwitch": 0, "alarmRelay": 1, "alarmWgData": 11112222, "alarm485Data": "alarm485Data", "alarmVoiceData": "", "saveLargePic": 0, "saveSmallPic": 1, "saveStrangerRecord": 1, "avoidAttendanceStep": 10, "mqttAddr": "123.207.152.144:61613", "mqttClientId": "", "mqttUserName": "admin", "mqttUserPassword": "password", "mqttTopicPrefix": "", "mqttMessageQos": 2 } } b)设备回馈到后台或应用 | **消息topic** |**topic: 20211214/cmd/setConfig_reply**| | ------------- | --------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | 错误码 | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 配置数据 | Object | Y | 仅包含当前配置的集合 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result" :0, "code" :"LAN_SUS-0", "message" : "配置成功", "data": { "tcpEn": 1, "tcpServerIp": "10.102.106.78", "tcpServerPort": 8989, "rsBaudrate": "115200-8-N-1", "wgDataSize": 34, "relayDelay": 2000, "recMode": 3, "scannerWorkMode": 1, "faceWorkMode": 1, "protocolChannel": 1, "protocolActionSuc": 1, "protocolActionFailed": 1, "httpAddr": "http://10.102.106.113:5678/httpTest", "httpTimeout": 2000, "qrEn": 1, "qrAffixesFt": 1, "qrPrefix": "", "qrPostfix": "", "qrCr": 0, "qrNl": 0, "qrFt": 0, "nfcEn": 1, "nfcFt": 0, "nfcOrd": 0, "nfcAffixesFt": 1, "nfcPrefix": "", "nfcPostfix": "", "nfcCr": 0, "nfcNl": 0, "nfcReadIdNum": 0, "cusTag0": "1", "cusTag1": "0", "cusTag2": "cus_tag2", "cusTag3": "cus_tag3", "cusTag4": "cus_tag4" "faceCheckSucVoice": 1, "faceCheckSucRelay": 1, "faceCheckSuc485": 2, "faceCheckSuc485Data": "face485data", "faceCheckSucWg": 2, "faceCheckSucWgData": 1234567890, "faceCheckFailedVoice": 1, "faceCheckFailedVoiceData": "人脸认证失败", "faceCheckSucVoiceData": "人脸认证成功", "cardCheckSucVoice": 1, "cardCheckSucRelay": 1, "cardCheckSuc485": 2, "cardCheckSuc485Data": "card485data", "cardCheckSucWg": 1, "cardCheckSucWgData": 9876543210, "cardCheckFailedVoice": 1, "cardCheckFailedVoiceData": "刷卡失败", "cardCheckSucVoiceData": "刷卡成功", "qrCheckSucVoice": 1, "qrCheckSucRelay": 1, "qrCheckSuc485": 2, "qrCheckSuc485Data": "qr485data", "qrCheckSucWg": 1, "qrCheckSucWgData": 1234567890, "qrCheckFailedVoice": 1, "qrCheckFailedVoiceData": "扫码失败哦", "qrCheckSucVoiceData": "扫码成功", "bleCheckFailedVoice": 1, "bleCheckSucRelay": 1, "bleCheckSucVoiceData": "蓝牙认证成功", "bleCheckFailedVoiceData": "蓝牙认证失败", "blePassword": "01234567890123456789012345678901", "nameShow": 1, "ipShow": 1, "snShow": 1, "language": 0, "autoScreenOff": 1, "autoScreenOffTime": 300, "autoScreenSaverOff": 1, "autoScreenSaverTime": 10, "autoDisplayBrightness": 0, "displayBrightness": 100, "volume": 70, "deviceName": "大门", "autoSetTime": 1, "autoSetTimezone": 1, "timezone": "Asia/Shanghai", "maxTrackFaces": 3, "recgThreshold": 54, "living": 1, "alarmTemperature": 37.3, "bodyTemperatureDetect": 0, "exposureValues": 0, "faceRecgEnable": 1, "infraredEnable": 0, "livingDetectThresholdScore": 10, "maskDetectEnable": 0, "maskEnable": 1, "maskThresholdValue": 53, "recgDistance": 150, "recgInterval": 1000, "recgTimeout": 2000, "repeatRecgEnable": 0, "strangerVoice": 1, "strangerVoiceData": "请注册", "temperatureCompensation": 0, "voiceMode": 0, "grettings": 0, "infraredLightSet": 2, "lightSensitive": 1, "lightHighBrightness": 20000, "lightLowBrightness": 100, "lightDetInterval": 1, "lightDelayTime": 5, "lightBrightness": 80, "tamperSwitch": 0, "alarmSwitch": 1, "doorSensorDelay": 3, "doorSensor": 2, "alarmOutputSwitch": 0, "alarmRelay": 1, "alarmWgData": 11112222, "alarm485Data": "alarm485Data", "alarmVoiceData": "", "saveLargePic": 0, "saveSmallPic": 1, "saveStrangerRecord": 1, "avoidAttendanceStep": 10, "mqttAddr": "123.207.152.144:61613", "mqttClientId": "", "mqttUserName": "admin", "mqttUserPassword": "password", "mqttTopicPrefix": "", "mqttMessageQos": 2 } `}` 返回错误码: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ---------------------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数异常 | LAN_EXP-2800 | data参数异常 | data 参数异常 | | 操作正确 | LAN_SUS-0 | 设置成功 | "data":{设备当前配置参数} | ## 2.2设备配置查询 a)后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/getConfig** | | ------------- | --------------------------------------------- | 消息参数说明 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | 消息发送示例: ` {` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr" ` }` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/getConfig_reply | | ------------- | --------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 配置数据 | Object | Y | 详见下表 | 配置查询data参数列表 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | --------- | -------- | -------- | --------------------------------------------------- | | …… | …… | …… | …… | 详见《[设备配置data域可选参数](#设备配置data参数)》 | | netType | 网络类型 | Int | Y | 0:以太网,1:WiFi | | ssid | WiFi账号 | String | Y | | | pwd | WiFi密码 | String | Y | | | isDHCPMod | DHCP 模式 | bool | Y | True或 false | | ip | ip 地址 | String | Y | 例:192.168.1.123 | | gateway | 网关 | String | Y | 例:192.168.1.1 | | subnetMask | 子网掩码 | String | Y | 例:255.255.255.0 | | DNS | DNS服务器 | String | Y | 例:114.114.114.114 | 返回示例: `{ ` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "data": { "tcpEn": 0, "tcpServerIp": "10.102.106.116", "tcpServerPort": 8060, "rsBaudrate": "115200-8-N-1", "wgDataSize": 34, "relayDelay": 2000, "httpAddr": "http://192.168.2.19:80/sendTest", "httpTimeout": 2000, "qrEn": 1, "qrAffixesFt": 1, "qrPrefix": "", "qrPostfix": "", "qrCr": 0, "qrNl": 0, "qrFt": 0, "nfcEn": 1, "nfcFt": 0, "nfcOrd": 0, "nfcAffixesFt": 1, "nfcPrefix": "", "nfcPostfix": "", "nfcCr": 0, "nfcNl": 0, "nfcReadIdNum": 0, "cusTag0": "1", "cusTag1": "0", "cusTag2": "cus_tag2", "cusTag3": "cus_tag3", "cusTag4": "cus_tag4" "faceCheckSucVoice": 1, "faceCheckSucRelay": 1, "faceCheckSuc485": 2, "faceCheckSuc485Data": "face485data", "faceCheckSucWg": 2, "faceCheckSucWgData": 1234567890, "faceCheckFailedVoice": 1, "faceCheckFailedVoiceData": "人脸认证失败", "faceCheckSucVoiceData": "人脸认证成功", "cardCheckSucVoice": 1, "cardCheckSucRelay": 1, "cardCheckSuc485": 2, "cardCheckSuc485Data": "card485data", "cardCheckSucWg": 2, "cardCheckSucWgData": 1233211230, "cardCheckFailedVoice": 1, "cardCheckFailedVoiceData": "刷卡失败", "cardCheckSucVoiceData": "刷卡成功", "qrCheckSucVoice": 1, "qrCheckSucRelay": 1, "qrCheckSuc485": 2, "qrCheckSuc485Data": "qr485data", "qrCheckSucWg": 2, "qrCheckSucWgData": 9876543210, "qrCheckFailedVoice": 1, "qrCheckFailedVoiceData": "扫码失败", "qrCheckSucVoiceData": "扫码成功", "bleCheckFailedVoice": 1, "bleCheckSucRelay": 1, "bleCheckSucVoiceData": "蓝牙认证成功", "bleCheckFailedVoiceData": "蓝牙认证失败", "blePassword": "01234567890123456789012345678901", "alarmOutputSwitch": 1, "alarmRelay": 1, "alarmWgData": 0, "alarm485Data": "", "alarmVoiceData": "", "recMode": 3, "scannerWorkMode": 2, "faceWorkMode": 1, "protocolChannel": 1, "protocolActionSuc": 1, "protocolActionFailed": 1, "language": 0, "ipShow": 1, "snShow": 1, "nameShow": 1, "autoScreenOff": 1, "autoScreenOffTime": 300, "autoScreenSaverOff": 1, "autoScreenSaverTime": 10, "autoDisplayBrightness": 0, "displayBrightness": 80, "volume": 60, "deviceName": "大门", "infraredLightSet": 2, "lightSensitive": 1, "lightHighBrightness": 1100, "lightLowBrightness": 500, "lightDetInterval": 1, "lightDelayTime": 10, "alarmSwitch": 0, "doorSensorDelay": 3, "doorSensor": 2, "lightBrightness": 80, "tamperSwitch": 0, "autoSetTime": 1, "autoSetTimezone": 1, "timezone": "Asia/Shanghai", "maxTrackFaces": 1, "recgThreshold": 54, "registerThreshold": 50, "living": 1, "alarmTemperature": 37.299999237060547, "bodyTemperatureDetect": 0, "exposureValues": 0, "faceRecgEnable": 1, "infraredEnable": 0, "livingDetectThresholdScore": 10, "maskDetectEnable": 0, "maskEnable": 1, "maskThresholdValue": 53, "recgDistance": 150, "recgInterval": 1000, "recgTimeout": 1000, "repeatRecgEnable": 1, "strangerVoice": 1, "strangerVoiceData": "请注册", "temperatureCompensation": 0, "voiceMode": 0, "grettings": 0, "saveLargePic": 0, "saveSmallPic": 1, "saveStrangerRecord": 0, "avoidAttendanceStep": 5, "netType": 1, "ssid": "bin_test", "pwd": "12345678", "isDHCPMod": true, "ip": "10.102.106.199", "gateway": "10.102.106.124", "dns": "114.114.114.114", "subnetMask": "255.255.255.0", "mqttAddr": "123.207.152.144:61613", "mqttClientId": "p0Lx8TI3mpOr", "mqttUserName": "admin", "mqttUserPassword": "password", "mqttTopicPrefix": "", "mqttMessageQos": 2 } `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ---------------------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 操作正确 | LAN_SUS-0 | 查询成功 | deviceSn 正确即可 | ## 2.3网络配置 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/setNetInfo | | ------------- | ---------------------------------------------- | 网络配置参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 配置数据 | Object | Y | 所有配置集合 | 网络配置data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ---------- | ------------- | ------ | ---- | ------------------------------------------------------------ | | netType | 网络类型 | Int | Y | 设备默认为使用以太网,0: 以太网,1: WiFi,2: 4G<br /> a) 传入1:设备使用WiFi连接,ssid、pwd参数必须传入且不可为空 | | ssid | Wifi账号 | String | N/Y | netType=1为必填 | | pwd | WiFi密码 | String | N/Y | netType=1为必填 | | isDHCPMod | DHCP 模式选择 | bool | N/Y |netType!=2时必填</br> 设备默认为 DHCP 模式,即自动获取 IP 地址<br /> b) 传入true:设备配置为 DHCP 模式,自动获取动态 IP,无须传入其余参数<br /> c) 传入 false:自定义网络配置,即手动设置静态IP,ip、gateway、subnetMask、DNS必须传入且不可为空 | | ip | ip 地址 | String | N/Y | isDHCPMod=false为必填,例:192.168.1.123 | | gateway | 网关 | String | N/Y | isDHCPMod=false为必填,例:192.168.1.1 | | subnetMask | 子网掩码 | String | N/Y | isDHCPMod=false为必填,例:255.255.255.0 | | DNS | DNS服务器 | String | N/Y | isDHCPMod=false为必填,例:114.114.114.114 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "netType": 1, "ssid": "Vguang_JS", "pwd": "vguangjs_o0", "isDHCPMod": false, "ip": "192.168.2.236", "gateway": "192.168.2.1", "dns": "114.114.114.114", "subnetMask": "255.255.255.0" } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/setNetInfo_reply** | | ------------- | ---------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | :------: | :--------------: | :--------------------------------: | :-------------------------------------: | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数异常 | LAN_EXP-2400 | netType参数异常 | 传入参数格式错误或缺少必传参数 | | 参数异常 | LAN_EXP-2402 | ssid 参数异常 | 传入参数格式错误或缺少必传参数 | | 参数异常 | LAN_EXP-2403 | pwd 参数异常 | 传入参数格式错误或缺少必传参数 | | 参数异常 | LAN_EXP-2404 | isDHCPMod 参数不合法 | 传入参数格式错误或缺少必传参数 | | 参数异常 | LAN_EXP-2405 | ip 参数异常 | 传入参数格式错误或缺少必传参数 | | 参数异常 | LAN_EXP-2406 | gateway 参数异常 | 传入参数格式错误或缺少必传参数 | | 参数异常 | LAN_EXP-2407 | dns 参数异常 | 传入参数格式错误或缺少必传参数 | | 参数异常 | LAN_EXP-2408 | subnetMask 参数异常 | 传入参数格式错误或缺少必传参数 | | 操作正确 | LAN_SUS-0 | success | success | ## 2.4设置设备时间 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/setTime** | | ------------- | ------------------------------------------- | 时间参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | :------: | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 时间数据 | Object | Y | 详见下表 | 网络配置data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------- | --------------- | ---- | ---- | ------------------------------------------------------------ | | timestamp | Unix 秒级时间戳 | Int | Y | 配置成功后,设备使用该设置时间<br /> 若设备未连入公网,时间设置成功后,会按照设置的时间增长<br /> 若设备连入公网,设备本身有网络时间校对机制(需要设置为自动更新时间),每隔 30 分钟会联网校对一次时间,将设备时间调整与公网时间一致。 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "timestamp": 1617350260 } `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/setTime_reply | | ------------- | ------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{ ` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | :--------- | :----------- | :----------------------------------------------------------- | :----------------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数不合法 | LAN_EXP-2500 | timestamp 参数异常 | timestamp 含有非法字符 | | 操作正确 | LAN_SUS-0 | 设置成功。若设备未连入公网,则此时间会生效;若设备连入公网,则会重新使用公网时间 | timestamp 生效后,在局域网内会按照该时间持续增长 | ## 2.5设备重启 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/restartDevice** | | ------------- | ------------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | ------ | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | 消息发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr" `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/restartDevice_reply | | ------------- | ------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{ ` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功,设备重启中" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ---------------------------------- | -------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进程中 | | 操作正确 | LAN_SUS-0 | 操作成功,设备即将重启 | deviceSn正确即可 | ## 2.6 设备重置 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/deviceReset | | ------------- | ----------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | ------ | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr" `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/deviceReset_reply | | ------------- | ----------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "设备重置成功,自动重启后生效" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ---------------------------------------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 操作正确 | LAN_SUS-0 | 操作成功。设备即将清空数据,并将设备配置恢复出厂设置 | | ## 2.7 设备禁用\启用 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/deviceDisable | | ------------- | ------------------------------------------------- | 设备禁用\启用参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 配置数据 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------- | -------- | ------- | ---- | ---------------------------- | | isDisable | 是否禁用 | Boolean | Y | true:禁用, false:解除禁用 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "isDisable": true } `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/deviceDisable_reply | | ------------- | ------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------------------- | --------------------------------------- | | 通用错误 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用错误 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 操作正确 | LAN_SUS-0 | 设置成功 | | ## 2.8 设备升级 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/deviceUpgrade | | ------------- | ------------------------------------------------- | 设备升级参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 升级参数 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ------ | ------------------- | ------ | ---- | ------------------------------------------------------------ | | type | 升级包类型 | Int | Y | type值强校验,必须为0或1<br /> 0:升级包为xxx.pkg完整的PKG包升级包较大,适合用于设备整体升级包括(u-boot、kernel、system)<br /> 1:升级包为xxx.tar.xz自定义升级包,升级包较小,内含自定义升级脚本(用来更换配置文件(图片、语音等)、以及应用程序的升级) | | url | 下载 包地址OTA 升级 | String | Y | 调用接口时访问该 url,若 url 能访问到,则设备开始执行下载文件;若 url 访问失败,则接口 返回提示“url 访问失败,设备无法下载”设备开始下载,但文件不一定正确,是否安装成功需要查看设备具体界面 | | md5 | 升级包MD5值 | string | Y | 升级包进行MD5验证 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "type": 1, "url": "http://10.102.106.165/aio.tar.xz", "md5": "521c2bdc835d4f13b5f9d6db164f0881" } `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/deviceUpgrade_reply | | ------------- | ------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "设备即将开始下载" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------------------- | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进程中 | | 参数异常 | LAN_EXP-2700 | url 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-2701 | md5 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-2702 | type 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 设备即将开始下载 | 设备访问 url 并尝试下载文件确 | ## 2.9 设备信息查询 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/deviceInformation | | ------------- | ----------------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | ------ | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr" `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/deviceInformation_reply** | | ------------- | ----------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 信息数据 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------------- | --------------- | ------ | ---- | ------------------- | | version | 版本号 | String | Y | 设备系统版本号 | | subVersion | 应用版本号 | String | Y | 应用程序aio的版本号 | | releaseData | 应用发布日期 | String | Y | 2021/06/30 | | sn | 设备地址(MAC) | String | Y | | | time | 时间 | String | Y | 2021/06/30 当前时间 | | diskTotal | 设备总空间 | Int | Y | 单位 M | | diskUsed | 已用空间 | Int | Y | 单位 M | | diskFree | 剩余空间 | Int | Y | 单位 M | | persionCount | 注册人员数 | Int | Y | | | passRecordCount | 通行记录总数 | Int | Y | | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "data": { "diskTotal": 6296, "diskUsed": 380, "diskFree": 5915, "version": "v2.0.3rc3_r1", "subVersion": "v1.0.42", "releaseData": "2021/12/10", "sn": "p0Lx8TI3mpOr", "time": "2021/12/14 16:17:44", "persionCount": 0, "passRecordCount": 0 } `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ---------------- | -------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 操作正确 | LAN_SUS-0 | 查询成功 | 设备信息查询成功 | ## 2.10 摄像头标定 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/cameraCalibrate | | ------------- | --------------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 标定参数 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ------- | -------- | ---- | ---- | -------- | | timeout | 标定超时 | Int | Y | 单位秒 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "timeout": 60 } `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/cameraCalibrate_reply | | ------------- | --------------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | ---------- | ---------------- | -------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数不合法 | LAN_EXP-3100 | timeout参数异常 | | | 操作正确 | LAN_SUS-0 | 查询成功 | 设备信息查询成功 | ## 2.11远程控制 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/control | | ------------- | ------------------------------------------- | 时间参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 时间数据 | Object | Y | 详见下表 | 网络配置data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------- | -------- | ------ | ---- | ----------------------------------------------- | | command | 命令 | Int | Y | 1:开继电器, 2,播报语音,96,特征值计算;97,触摸测试,98,屏幕测试;100:重启,101:PING | | voiceData | 语音数据 | String | N | command=2时有效 | | address | Ping地址 | String | N | command=101时有效 | |otherdata |其他数据 |String |N |command=96时,传入照片base64值 | 发送示例: `{ ` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "command": 1} `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/control_reply | | ------------- | ------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | |data |其他信息 |String |N |96位特征值 | 返回示例 `{ ` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | ---------- | ------------ | ---------------------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数不合法 | LAN_EXP-2150 | command参数异常 | command不支持 | | 操作正确 | LAN_SUS-0 | 成功 | 成功 | ## 2.12 报警 a) 设备到后台或应用 | **消息topic** | **topic: 20211214/event/alarm** | | ------------- | ------------------------------- | 消息参数说明 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 标定参数 | Object | Y | 详见下表 | data参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ----------- | -------- | -------- | -------- | ------------------------------------------------------------ | | alarmType | 人员类型 | Int | Y | 1:表示门磁状态 2:火警状态 3:异常开门 4:开门超时 | | alarmStatus | 人员ID | String | Y/N | alarmType=1:必传,0-门磁关,1-门磁开。<br /> alarmType=2:必传,0-无火警,1-有火警。<br /> alarmType=3:非必传,无。<br /> alarmType=4:非必传,无。 | 发送示例: `{ ` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "alarmType": 1, "alarmStatus": 1 } `}` b) 后台或应用回馈到设备 | **消息topic** | **topic: 20211214/event/{#deviceSn}/alarm**_reply | | ------------- | ------------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明 | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------- | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 参数异常 | LAN_EXP-3000 | 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 认证成功 | 认证成功 | ## 2.13 心跳(未启用) a) 设备到后台或应用 | **消息topic** | **topic: 20211214/event/heartbeat** | | ------------- | ----------------------------------- | 消息参数说明 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 标定参数 | Object | Y | 详见下表 | data参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------------------------------- | | timeStamp | 时间 | Int | Y | 时间戳,单位秒 eg: 1640917147 表示:2021-12-31 10:19:07 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "timeStamp": 1640917147 } `}` b) 后台或应用回馈到设备 | **消息topic** | **topic: 20211214/event/{#deviceSn}/heartbeat**_reply | | ------------- | ----------------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明 | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------- | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 参数异常 | LAN_EXP-3000 | 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 认证成功 | 认证成功 | ## 2.14 遗嘱 a) 设备到后台或应用 | **消息topic** | **topic: 20211214/event/lwt** | | ------------- | ----------------------------- | 消息参数说明 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 标定参数 | Object | Y | 详见下表 | data参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------ | | status | 状态 | Int | Y | 1:MQTT离线 | | message | 提示 | String | N | 提示信息 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "status": 1, "message": "异常离线" } `}` b) 后台或应用回馈到设备(无需回复) | **消息topic** | **topic: 20211214/event/{#deviceSn}/lwt**_reply | | ------------- | ----------------------------------------------- | ## 2.15 日志 a) 后台到设备或应用 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/extractLog** | | ------------- | ---------------------------------------------- | 时间参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 时间数据 | Object | Y | 详见下表 | 网络配置data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ------ | ---- | ------ | ---- | ------------------------------------------------------------ | | logTag | 命令 | String | N | 当logTag为:"rm /data/log/" 时会清除设备所有日志,清除后需重启设备才可以重新记录 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "logTag": "vbar_log"} `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/extractLog**_reply | | ------------- | ---------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 日志 | String | Y | 日志详情 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "data" : "日志详细信息" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ---------------------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | 设备禁用中,拒绝此接口 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 操作正确 | LAN_SUS-0 | 成功 | 成功 | ## 2.16 设备密码 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/password | | ------------- | -------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 配置数据 | Object | Y | 所有配置集合 | 网络配置data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------- | ----------------------------- | ------ | ---- | ------------------------------------------------------------ | | devOldPwd | WebServer登录密码和配置码密码 | String | Y | 设备默认密码为password,修改密码时,分别传入新、旧密码 **注:此接口所有操作均会校验此密码,请妥善保管。若忘记密码,则需重置设备恢复默认密码,设备会清空所有数据** | | devNewPwd | WebServer登录密码和配置码密码 | String | N/Y | 当修改是此项为必填,修改成功后新密码为此项 | | apiOldPwd | HTTP接口调用密码 | String | N/Y | 1.新设备或重置后(恢复初始化)的设备,调用HTTP接口前,需要先进行初始密码设置,apiOldPwd和apiNewPwd传入一样的值即可<br />2.修改密码时,分别传入新、旧密码 <br /> **注:密码不可为空("")或空格(" ")** | | apiNewPwd | HTTP接口调用密码 | String | N/Y | | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "devOldPwd": "password", "devNewPwd": "123456", "apiOldPwd": "abcde", "apiNewPwd": "abcde" } `}` b)设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/password_reply | | ------------- | -------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 信息数据 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ----------- | ----------------------------- | ------ | ---- | ----------------------------------------------------- | | isSetApiPwd | 是否设置接口密码 | Int | Y | 0:未设置,1:已设置 | | apiPwd | HTTP接口调用密码 | String | N/Y | isSetApiPwd为1时必传 | | devPwd | WebServer登录密码和配置码密码 | String | N/Y | 新WebServer登录密码和配置码密码,仅在修改密码时为必传 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "data": { "isSetApiPwd": 1, "apiPwd": "abcde", "devPwd": "123456" } `}` 返回说明: | 类型 | Code | msg | 触发原因 | | ------------ | -------------------- | --------------------------------------- | -------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | | 参数不合法 | LAN_EXP-3300 | 密码错误或参数异常 | | | 参数不合法 | LAN_EXP-3301 | 密码修改失败 | | | 参数不合法 | LAN_EXP-3302 | 接口密码不一致 | | | 参数不合法 | LAN_EXP-3303 | 密码初始化失败 | | | 参数不合法 | LAN_EXP-3304 | 接口密码错误 | | | 参数不合法 | LAN_EXP-3305 | 接口密码修改失败 | | | 操作正确 | LAN_SUS-0 | 成功 | 成功 | ## 2.17 连接上报 a) 设备到后台或应用 | **消息topic** | topic: 20211214/event/connect | | ------------- | -------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------ | | serialNo | 序列号 | String | Y | | deviceSn | 设备SN | String | Y | | | data | 上报数据 | String | Y | data数据 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | -------- | -------- | ------ | ---- | ------------ | | mqttClientId | mqtt客户端id | String | Y | mqtt客户端id | | version | 系统版本号 | String | Y | 系统版本号 | | subVersion | 应用版本号 | String | Y | 应用版本号 | | netType | 网络类型 | Int | Y | 网络类型(0:以太网 1:WIFI 2:4G) | | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "mqttClientId": "0123456789", "version": "v2.0.4rc_r1", "subVersion": "VF203-v1.1.34", "releaseData": "2023/07/12 10:50", "netType": 0 } `}` b)后台或应用回馈到设备 | **消息topic** | topic: 20211214/event/connect_reply | | ------------- | -------------------------------------- | 消息参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | time | 时间戳 | Object | Y | 时间戳,单位秒 eg: 1640917147 表示:2021-12-31 10:19:07| 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "time": 1640917147 `}` 返回说明: | 类型 | Code | msg | 触发原因 | | ------------ | -------------------- | --------------------------------------- | -------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 参数不合法 | LAN_EXP-3400 | 上报失败 | 上报数据不合法/缺少参数 | | 操作正确 | LAN_SUS-0 | 成功 | 成功 | # 三、人员管理类接口 ## 3.1 人员注册 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/personCreate** | | ------------- | ------------------------------------------------ | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 人员信息 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ------------------------ | -------------- | ------ | ---- | ------------------------------------------------------------ | | employeeNumber | 人员 Id | String | Y | 员工号,E.g SW200 | | name | 人员名称 | String | Y | name 参数必传且内容不可为空。长度、内容无限制。 | | gender | 性别 | String | N | Gender(E.g "Man/Women/..." ) | | nationa | 国家 | String | N | | | departmentName | 部门名称 | String | N | | | idCardNumber | 人员卡号 | String | N | 注册时可以不填,长度、内容无限制。若注册人员时填写了卡号,可直接刷对应卡号的卡进行识别,屏幕也会显示与该卡号对应的人员的名字。 | | mobile | 手机号 | String | N | 人员手机号 | | accessRight | 权限模式 | Int | N | 0:自由通行<br /> 1:临时通行,模式1<br /> 2:临时通行模式2 | | temporaryAccessStartTime | 开始时间戳 | Int | N | 对应临时通行模式1 | | temporaryAccessEndTime | 结束时间戳 | Int | N | 对应临时通行模式1 | | temporaryAccessTimes | 通行次数 | Int | N | 对应临时通行模式2 | | accessCardNumber | 门禁卡号 | String | N | 门禁卡号,识别模式为刷卡时有效 | | remarks | 备注 | String | N | 用于填写说明信息 | | photoFromCapture | 拍照注册 | Int | N | 1:拍照注册 | | replace | 替换标志 | Int | N | 1:若员工号已注册则替换 | | registerBase64 | 照片base64数据 | String | Y/N | 注册人员的Base64图片,当photoFromCapture = 1时可不传,当photoFromCapture != 1时为必传项 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "employeeNumber": "100002", "name": "常永彬", "accessCardNumber": "412725199402161515", "idCardNumber": "4127251994", "photoFromCapture":0, "registerBase64": "/9j/4AAQSkZJRgABAQEAYABgAAD…" } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/personCreate_reply** | | ------------- | ------------------------------------------ | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{ ` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ------------------------ | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数异常 | LAN_EXP-3000 | employeeNumber 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-3001 | name 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-3002 | registerBase64 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 注册异常 | LAN_EXP-3003 | employeeNumber 已被占用 | 人员ID已经注册 | | 注册异常 | LAN_EXP-3004 | registerBase64 数据错误 | 非base64编码数据 | | 注册异常 | LAN_EXP-3005 | registerBase64 图片错误 | 图片脸部特征过低,人脸库存在相似度过高的图片等 | | 注册异常 | LAN_EXP-3006 | 拍照注册中 | 上次注册未完成 | | 注册异常 | LAN_EXP-3007 | 注册数量已达最大值 | | | 操作正确 | LAN_SUS-0 | 人员信息添加成功 | 人员信息成功写入数据库确 | ## 3.2 人员删除 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/person**Delete | | ------------- | ------------------------------------------------ | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 人员数据 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------------- | ------- | ------ | ---- | ------------------------------------------------------------ | | employeeNumber | 人员 ID | String | Y | 若删除多个人员, id 用英文逗号拼接 传入-1 则删除所有人员<br /> • 以下数据会被删除,本地将不再做存储: 该人员 ID、人员信息 该人员对应的识别记录、现场抓拍照片 该人员对应的注册照片<br /> • 人员 ID(id)只允许数字-1, 0~9 和英文字母, 且最大长度为 255 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "employeeNumber": "-1" } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/personDelete**_reply | | ------------- | ------------------------------------------ | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明 | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ------------------------ | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数异常 | LAN_EXP-3000 | employeeNumber 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 删除成功 | 成功删除指定的 id | ## 3.3人员查询 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/personF**ind | | ------------- | ---------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 查询参数 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------------- | ------------ | ------ | ---- | ------------------------------------------------------------ | | picLarge | 注册时的照片 | Int | N | 是否返回注册时照片,0或者不传不返回,1:返回 | | employeeNumber | 人员 ID | String | N | • 查询指定 id 的人员信息<br /> • id 传入-1 表示不局限于 id 查询人员 | | name | 人员姓名 | String | N | 当name不存在时表示不局限于name 查询人员 | | length | 每页最大数量 | int | Y | 返回图片范围(0,50],不返回图片(0,1000] | | index | 页码 | int | Y | 页码,从 0 开始。 index 的传入值必须小于总页码数,如:总页码数为 1, index 只能传入 0 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "employeeNumber":"", "name":"", "picLarge":1, "startTime":-1, "endTime":-1, "length": 100, "index": 0 } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/personFind_reply** | | ------------- | ---------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 配置数据 | Object | Y | 详见下表 | 人员查询data参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ----------- | ---------- | -------- | -------- | ----------------------- | | pageInfo | 查询页数据 | Object | Y | 详见<pageInfo数据>表 | | personInfos | 人员数组 | Array | Y/N | 详见<personInfos数据>表 | pageInfo数据 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | ---------- | -------- | -------- | ------------ | | index | 当前页 | Int | Y | | | length | 每页大小 | Int | Y | | | total | 总数 | Int | Y | | | totalPage | 总页数 | Int | Y | | | size | 当前页大小 | Int | Y | | personInfos数据 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | -------------- | -------- | -------- | -------- | -------------- | | employeeNumber | 人员ID | String | Y | | | name | 人员姓名 | String | Y | | | idCardNumber | 卡号 | String | Y | | | picBase64 | 注册照片 | String | Y | Base64照片数据 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "data": { "pageInfo": { "index": 0, "length": 20, "total": 2, "totalPage": 1, "size": 2 }, "personInfos": [ { "employeeNumber": "100001", "name": "张三", "idCardNumber": "123456", "picBase64": "/9j/4AAQSkZJRgABAQEAYAB…" }, { "employeeNumber": "100002", "name": "李四", "idCardNumber": "456789", "picBase64": "/9j/4AAQSkZJRgABAQEAYAB…" } ] } `}` 返回说明 | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------------------------------- | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 通用报错 | LAN_EXP-1006 | The XX method is not supported. | Method 与 url 不匹配 | | 参数异常 | LAN_EXP-3016 | length 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-3017 | index 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 查询成功 | 查询操作成功 | ## 3.4 同步白名单 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/whiteListSync** | | ------------- | ------------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 人员信息 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ---------- | ---------- | ----- | ---- | ---------------------- | | syncFlag | 同步标识 | Int | Y | 1-全量,2-增量 | | whiteLists | 白名单数组 | Array | Y | 白名单Json数组详见下表 | whiteLists数组,数组大小最好控制在1000以内,单个元素为Object类型,参数如下 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------------- | ------------ | ------ | ---- | ------------------------------------------------------------ | | userType | 用户类型 | Int | Y | 101-101码制,100-普通码,103-103码制,202-卡,303-人脸,400-密码 | | userId | 用户ID | String | Y | | | beginTime | 开始时间 | Int | N | 时间戳,单位秒 eg: 1640917147 表示:2021-12-31 10:19:07<br /> 小于等于0则不限制开始时间 | | endTime | 结束时间 | Int | N | 时间戳,单位秒<br /> 小于等于0则不限制结束时间 | | repeatType | 重复类型 | Int | N | 小于等于0-不重复,1-每天重复,2-每周重复,3-每月重复,4-周重复规则对应于weekPeriodTime | | repeatBeginTime | 重复开始时间 | Int | N/Y | repeatType=1:开始时间为距0点的时间,范围[0,86400],eg:28800表示当天8点,必传 repeatType=2:开始时间为周几,eg: 1-周一,2-周二 … 取值[1, 7],必传 <br />repeatType=3:开始时间为某日,取值[1, 31],必传 | | repeatEndTime | 重复结束时间 | Int | N/Y | repeatType=1:结束时间为距0点的时间,范围[0,86400],eg:28800表示当天8点,必传 repeatType=2:结束时间为周几,eg: 1-周一,2-周二 … 取值[1, 7],必传 <br />repeatType=3:结束时间为某日,取值[1, 31],必传 | | weekPeriodTime | 周重复规则 | Object | N/Y | repeatType=4:周重复规则,必传,规则见下表 | | syncType | 同步类型 | Int | Y | 当syncFlag=2时有效,1-增加,2-修改,3-删除(当为删除时,如果beginTime, endTime<=0,则删除所有符合要求的,不忽略userType、userId;如beginTime>0,则增加条件开始时间beginTime,并匹配userType与userId;如endTime> 0,则增加条件结束时间endTime,并匹配userType与userId) | weekPeriodTime参数如下,每天的时间格式为:"HH:MM-HH:MM",24小时制时分, Eg:"08:00-09:30|10:00-11:30"最多5个时间段。周1~7至少有一天为必传 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ------ | ---- | ------ | ---- | ------------------------------------------------------------ | | 1 | 周一 | String | N/Y | 无此项代表周一无权限,"00:00-24:00":代表周一全天有效,多个时间段用 \| 分割中间不要有空格,每天最多5个时间段Eg:"08:00-09:30\|10:00-11:30\|12:00-13:30\|15:00-16:30\|17:00-18:30" | | 2 | 周二 | String | N/Y | 同上 | | 3 | 周三 | String | N/Y | 同上 | | 4 | 周四 | String | N/Y | 同上 | | 5 | 周五 | String | N/Y | 同上 | | 6 | 周六 | String | N/Y | 同上 | | 7 | 周日 | String | N/Y | 同上 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "syncFlag": 1, "whiteLists":[ { "userType":202, "userId": "cdb332be", "beginTime":1640917147, "endTime":1672453147, "repeatType":0, "repeatBeginTime":0, "repeatEndTime":0, "syncType":1 }, … ] } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/whiteListSync_reply** | | ------------- | ------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | --------------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数异常 | LAN_EXP-3010 | whiteLists白名单数组错误 | 参数名拼写错误、参数漏传 | | 参数异常 | LAN_EXP-3011 | syncFlag 白名单同步标识错误 | 参数名拼写错误、参数漏传 | | 参数异常 | LAN_EXP-3012 | userType 人员类型参数错误 | 参数名拼写错误、参数漏传 | | 参数异常 | LAN_EXP-3013 | userId 人员ID参数错误 | 参数名拼写错误、参数漏传 | | 参数异常 | LAN_EXP-3014 | syncType 同步类型参数错误 | 参数名拼写错误、参数漏传 | | 操作正确 | LAN_SUS-0 | 白名单添加成功 | 白名单成功写入数据库 | ## 3.5 查询白名单 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/whiteListF**ind | | ------------- | ------------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 人员信息 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------- | ------------ | ------ | ---- | ------------------------------------------------------------ | | userType | 用户类型 | Int | N | 101-二维码,202-卡,303-人脸,400-密码 | | userId | 用户ID | String | N | | | beginTime | 开始时间 | Int | N | 若存在且大于0,则只查找 >= beginTime | | endTime | 结束时间 | Int | N | 若存在且大于0,则只查找 <= endTime | | length | 每页最大数量 | Int | Y | (0,1000] | | index | 页码 | Int | Y | 页码,从 0 开始。 index 的传入值必须小于总页码数,如:总页码数为 1, index 只能传入 0 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "userType":202, "userId": "cdb332be", "beginTime":1640917147, "endTime":1672453147, "length": 100, "index": 0 } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/whiteListF**ind_reply | | ------------- | ------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 配置数据 | Object | Y | 详见下表 | 人员查询data参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | ---------- | -------- | -------- | ------------------------ | | pageInfo | 查询页数据 | Object | Y | 详见<pageInfo数据>表 | | whiteLists | 白名单数组 | Array | Y/N | 详见< whiteLists数据>表 | pageInfo数据 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | ---------- | -------- | -------- | ------------------ | | index | 当前页 | Int | Y | 当前页 | | length | 每页大小 | Int | Y | 当前页大小 | | total | 总数 | Int | Y | 白名单总数 | | totalPage | 总页数 | Int | Y | 总页数 | | size | 当前页大小 | Int | Y | 当前页实际白名单数 | whiteLists数据 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | --------------- | ------------ | -------- | -------- | -------------------- | | userType | 人员类型 | Int | Y | | | userId | 人员ID | String | Y | | | beginTime | 开始时间 | Int | Y | | | endTime | 结束时间 | Int | Y | | | repeatType | 重复类型 | Int | Y | | | weekPeriodTime | 周重复规则 | Object | N/Y | repeatType=4时为必填 | | repeatBeginTime | 重复开始时间 | Int | Y | | | repeatEndTime | 重复结束时间 | Int | Y | | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "data": { "pageInfo": { "index": 0, "length": 20, "total": 1, "totalPage": 1, "size": 1 }, "whiteLists": [ { "userType":202, "userId": "cdb332be", "beginTime":1640917147, "endTime":1672453147, "repeatType":0, "repeatBeginTime":0, "repeatEndTime":0 } ] } `}` 返回说明 | | Code | msg | 触发原因 | | -------- | ------------ | -------------------------------- | ------------------------------------------------------------ | | 类型 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 通用报错 | LAN_EXP-1006 | The XX method is not supported. | Method 与 url 不匹配 | | 参数异常 | LAN_EXP-3016 | length 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-3017 | index 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 查询成功 | 查询操作成功 | ## 3.6 在线认证 a) 设备到后台或应用 | **消息topic** | **topic: 20211214/event/onlineCheck** | | ------------- | ------------------------------------- | 消息参数说明 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 标定参数 | Object | Y | 详见下表 | data参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | -------------------------------- | | userType | 人员类型 | Int | Y | 101-二维码,202-卡,303-人脸,400-密码 | | userId | 人员ID | String | Y | 二维码code,卡、人脸为userId | | orgCode | 原始数据 | String | Y | 二维码原始数据,卡、人脸为userId | | passTime | 通行时间 | Int | Y | 时间戳,单位秒 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "userType":202, "userId": "cdb332be", "orgCode": "cdb332be", "passTime":1640917147 } `}` b) 后台或应用回馈到设备(无需回复) | **消息topic** | **topic: 20211214/event/{#deviceSn}/onlineCheck**_reply | | ------------- | ------------------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明 | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------- | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 参数异常 | LAN_EXP-3000 | 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 认证成功 | 认证成功 | ## 3.7 人员注册(feature) a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/registerFeats** | | ------------- | ------------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 人员信息 | Array | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ------------------------ | -------------- | ------ | ---- | ------------------------------------------------------------ | | employeeNumber | 人员 Id | String | Y | 员工号,E.g SW200 | | name | 人员名称 | String | Y | name 参数必传且内容不可为空。长度、内容无限制。 | | feature | 人脸特征值 | String | Y | **注:人脸特征值为16进制字符串长度必须为2048,可见发送示例** | | gender | 性别 | String | N | Gender(E.g "Man/Women/..." ) | | nationa | 国家 | String | N | | | departmentName | 部门名称 | String | N | | | idCardNumber | 人员卡号 | String | N | 注册时可以不填,长度、内容无限制。若注册人员时填写了卡号,可直接刷对应卡号的卡进行识别,屏幕也会显示与该卡号对应的人员的名字。 | | mobile | 手机号 | String | N | 人员手机号 | | accessRight | 权限模式 | Int | N | 0:自由通行<br /> 1:临时通行,模式1<br /> 2:临时通行模式2 | | temporaryAccessStartTime | 开始时间戳 | Int | N | 对应临时通行模式1 | | temporaryAccessEndTime | 结束时间戳 | Int | N | 对应临时通行模式1 | | temporaryAccessTimes | 通行次数 | Int | N | 对应临时通行模式2 | | accessCardNumber | 门禁卡号 | String | N | 门禁卡号,识别模式为刷卡时有效 | | remarks | 备注 | String | N | 用于填写说明信息 | | photoFromCapture | 拍照注册 | Int | N | 1:拍照注册 | | replace | 替换标志 | Int | N | 1:若员工号已注册则替换 | | registerBase64 | 照片base64数据 | String | Y/N | 注册人员的Base64图片,当photoFromCapture = 1时可不传,当photoFromCapture != 1时为必传项 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":[ { "employeeNumber": "1", "name": "常永彬", "idCardNumber": "1234567890", "feature": "f403370f0afe30fe48eadfff2b03fce8fae01de2f01bf1091321251a4c10fafee504f215fa4435eaca27bc22fe17c206131e370de515f2efe5f2120afc1003e828d107dbfa2219fd0213ff242309f0d222dfecd206fee4f50d1104380eefd4bd4313132c26e9fbf302fec4f9ff1a14ff26ce09d2131ce01d0229081812160f03f90c0d020813eb2c2bf82c0af6c50308fb340d08f9f6131b0ce2010b0be2fb1cc0f014cbfee5d1deefe9e3e32c082b01f6eae4f5dfcc22c51d29f322f5fe12f4e0c205f80b1eedcef0ecaad32329fe1306eced0b06d30f070a054bd1f9f5fd1309e5ec1b1cedcffb1daf1c151701f301062011240fe7f90407e52c07010109ed2234b8de1d0b24fc18161a0bcf1500ef0ce7f2010ff3f9f622ecf7380cf3f9fefad61e0600d52d2cda16f801103437f809de0ddd020afb02edfdfe031d090000171d05d70f132bfd27eb1f2ff607e2e40008c81dcf1c1409f60501fb1acf010a1d1fe2f3e705f311b63b3d04fe1cd6ede101e223390800370d0a25f3eefee81011f1f32c1fe035cef7d1effbd119e90e14fb11fadffdf12432030af3152a1017f6490be004f7ecfe3e3ecb0d1ef3ebf6360ce9e8e9f1e80f033216090f041507fb2b03fdf814240fbbcbf223f313c9ee0cbc1603000707ed21e6e428030519f6fae51ded4d161cdf0efb03ed0113d53cc809f9cbf7102b040105fbeffe102bfa0eaf231a2a0ef607f7fb11feefd5f012c913d1fbef340cb60c010718114b2af81fc6ce3f30dadfedace514fc3ae5db300e05d8c9fe3520e6db62e7f933f8ea0df32137defbeb062ca32d280cb4fcc4ecf729df0111e1e0d801fe14b05fc000d6cf2c18e0eec43408251301c3cd250acb0ebef805010a4d54eaeef0f7110429ff2226fbedd523e7d61319f9288e0dfe530fb4d909ee34d51dfc11ead405de230bd023d82aecd104e8c9ecf2d9dc1f18014fae00fddc265f1fe10cda250bec37fcddf6061ee81217c22c2f4306d22fe1f40724f604b8f4e3c116abf6d422f419f910e51c0a20212a44e1b1460221d33928cde8ee801317fa1d1629e0c2f5053344fd3609dee4562646cd46f91ad9f9ac1374c5d40b1c1fab2e47f9c726c1ec0a1b1b3b23fcfd2dc4f762d9344835f2456041181d0ae93e01d825360225e3ecf9e8e50c2a0017f40b0c07ec0174ff0fe0ea02182f0c2feb07eb1856f2f841d903ffb9db11330f20d0ca530115d9d8b513fdb2c62211083ec314040a23f8ddfdfdd52f22c73122a7e5ead5eeeef3f1bf110aba3e030bd440d3f208080d153c0410f9db0619f80618d4f1ce47bc0f42f2121fe910e5e162facaf0e9c5fa1833361fd623164bfe040afcecd322cad0e70a0afd1ff5012beb4fdc1414ebe0e8fffb15b1c50a223af0c329f6dc32191dbece2a051129fa20fbf5ecd204e8a30eeafbfe2a", }, { "id": "2", "name": "张三", "idCardNumber": "1234567890", "feature": "0001020304……", } ] `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/registerFeats_reply** | | ------------- | ------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | ------------------------ | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数异常 | LAN_EXP-3000 | employeeNumber 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-3001 | name 参数异常 | 人员ID已经注册 | | 注册异常 | LAN_EXP-3003 | employeeNumber 已被占用 | | | 注册异常 | LAN_EXP-3007 | 注册数量已达最大值 | | | 注册异常 | LAN_EXP-3018 | data 数组大小为0 | | | 注册异常 | LAN_EXP-3019 | Feature参数异常 | | | 注册异常 | LAN_EXP-3020 | Feature相似度过高 | | | 操作正确 | LAN_SUS-0 | 人员信息添加成功 | 人员信息成功写入数据库确 | ## 3.8 同步密钥(VG103动态码) a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/secretSync** | | ------------- | ---------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 人员信息 | Array | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ---------- | -------- | ----- | ---- | -------------- | | syncFlag | 同步标识 | Int | Y | 1-全量,2-增量 | | secretKeys | 密钥数组 | Array | Y | 详见下表 | secretKeys参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ------------------- | -------- | ------ | ---- | ------------------------------------------------------------ | | secretKeyType | 密钥类型 | String | Y | 密钥类型,如RSA, AES等 | | secretKeyCode | 密钥编码 | String | Y | 密钥编码,对应密钥编码,如vguang | | secretKeyValue | 密钥值 | String | Y | | | secretKeyStartTime | 开始时间 | Int | Y | 密钥开始时间,时间戳(秒) | | secretKeyExpirytime | 过期时间 | Int | Y | 密钥过期时间,时间戳(秒) | | syncType | 同步类型 | Int | Y | 同步类型,当SyncFlag=2时有效,1-增加,2-修改,3-删除,删除时SecretKeyValue、SecretKeyStartTime、SecretKeyExpirytime为可选SecretKeyStartTime存在删除>=SecretKeyStartTime,SecretKeyExpirytime存在删除<=SecretKeyExpirytime | 发送示例: `{` "serialNo": "00000000f7", "deviceAddr": "4E66008FC126", "data": { "syncFlag": 1, "secretKeys": [ { "secretKeyType": "RSA", "secretKeyCode": "vguang", "secretKeyValue": "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIhGA5XLhPR22MRf7ms4R3NeUyV4UvnUiu2YIrxB4RMojK8QY90760Otx6fWZsEi0gY5ysLWPZSZdu92vA4s1BsCAwEAAQ==", "secretKeyStartTime": 1563456783, "secretKeyExpirytime": 1963456783, "syncType": 1 } ] } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/secretSync_reply** | | ------------- | ---------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "message": "成功" `}` # 四、识别记录 ## 4.1 识别记录删除 a) 后台或应用到设备 | **消息topic** | **topic: 20211214/cmd/{#deviceSn}/deleteRecords** | | ------------- | ------------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 删除参数 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------------- | -------- | ------ | ---- | ------------------------------------------------------------ | | employeeNumber | 人员 ID | String | N | 若删除多个人员, id 用英文逗号拼接<br /> 传入-1 则删除所有人员记录<br /> • 以下数据会被删除,本地将不再做存储: 该人员 ID、人员信息 该人员对应的识别记录、现场抓拍照片 该人员对应的注册照片<br /> • 人员 ID(id)只允许数字-1, 0~9 和英文字母, 且最大长度为 255 | | startTime | 开始时间 | Int | N | 传入大于0的数删除startTime之后的记录<br /> 传入小于等于0或不传删除所有 | | endTime | 结束时间 | Int | N | 传入大于0的数删除endTime之前的记录<br /> 传入小于等于0或不传删除所有 | 发送示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "employeeNumber":"-1" } `}` b) 设备回馈到后台或应用 | **消息topic** | topic: 20211214/cmd/**deleteRecords_reply | | ------------- | ------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 删除数目 | Int | Y | 删除的记录数目 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "删除成功", "data": 100 `}` 返回说明: | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------------------- | --------------------------------------- | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 操作正确 | LAN_SUS-0 | 删除成功 | 成功删除识别记录和现场照 | ## 4.2 识别记录查询 a) 后台或应用到设备 | **消息topic** | topic: 20211214/cmd/{#deviceSn}/findRecords | | ------------- | ----------------------------------------------- | 消息参数说明 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | -------- | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 查询参数 | Object | Y | 详见下表 | data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------------- | ------------ | ------ | ---- | ------------------------------------------------------------ | | employeeNumber | 人员 ID | String | N | 查询指定 id 的人员识别记录<br /> 传入-1 可查询所有人员的识别记录,包括陌生人<br /> 传入 STRANGERBABY,可查询所有陌生人/识别失败记录<br /> 传入 IDCARD,可查询所有人证比对的记录 | | picLarge | 识别时的照片 | Int | N | 是否返回识别时照片,0或者不传不返回,1:返回 | | name | 人员姓名 | String | N | 当name不存在时表示不局限于name 查询 | | startTime | 记录开始时间 | Int | N | 若不按时间查询,不传此项<br />若需要按时间查询,传入时间戳 | | endTime | 记录结束时间 | Int | N | 若不按时间查询,不传此项<br />若需要按时间查询,传入时间戳 | | length | 页大小 | Int | Y | 返回图片范围(0, 50],不返回图片(0,1000] | | index | 页码 | Int | Y | 从 0 开始 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data":{ "employeeNumber":"", "name":"", "picLarge":1, "startTime":-1, "endTime":-1, "length": 100, "index": 0 } `}` b) 设备回馈到后台或应用 | **消息topic** | **topic: 20211214/cmd/findRecords_reply** | | ------------- | ----------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | | data | 配置数据 | Object | Y | 详见下表 | data 数据 人员查询data参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | ---------------- | ------ | ---- | -------------------- | | pageInfo | 查询页数据 | Object | Y | 详见<pageInfo数据>表 | | records | 是否设置接口密码 | Array | Y/N | 详见<records数据>表 | pageInfo数据 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | --------- | ---------- | ---- | ---- | -------- | | index | 当前页 | Int | Y | | | length | 每页大小 | Int | Y | | | total | 总数 | Int | Y | | | totalPage | 总页数 | Int | Y | | | size | 当前页大小 | Int | Y | | records 数据 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------------- | ---------- | ------ | ---- | -------------- | | employeeNumber | 人员ID | String | Y | | | name | 人员姓名 | String | Y | | | timeStamp | 通行时间戳 | Int | Y | | | picBase64 | 通行照片 | String | Y | Base64照片数据 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功", "data": { "pageInfo": { "index": 0, "length": 100, "total": 3, "totalPage": 1, "size": 3 }, "records": [ { "employeeNumber": "100002", "name": "常永彬", "timeStamp": 1639475284, "picBase64": "/9j/4AAQSkZJRgABAQAAAQABAAD…", }, { "employeeNumber": "100002", "name": "常永彬", "timeStamp": 1639475288, "picBase64": "/9j/4AAQSkZJRgABAQAAAQABAAD…", }, { "employeeNumber": "100002", "name": "常永彬", "timeStamp": 1639475291, "picBase64": "/9j/4AAQSkZJRgABAQAAAQABAAD…", } ] } `}` 返回说明: | **类型** | **Code** | **msg** | **触发原因** | | -------- | ------------ | -------------------- | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 通用报错 | LAN_EXP-1005 | 设备正忙,请稍后再试 | 设备正在升级、设置网络或其他任务进 程中 | | 参数异常 | LAN_EXP-3016 | length 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 参数异常 | LAN_EXP-3017 | index 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 查询成功 | 查询操作成功 | ## 4.3 通行记录上报 a) 设备到后台或应用 | **消息topic** | **topic: 20211214/event/reportRecords** | | ------------- | --------------------------------------- | 消息参数说明 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | -------- | -------- | -------- | ------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | data | 标定参数 | Object | Y | 详见下表 | data参数 | **参数名** | **描述** | **类型** | **必传** | **附加说明** | | ---------- | ---------- | -------- | -------- | -------------------- | | records | 白名单数组 | Array | Y | 详见< records数据>表 | records数据 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | ----------- | ---------- | ------ | ---- | ------------------------------------------ | | userId | 用户ID | String | Y | | | userType | 用户类型 | Int | Y | 101-二维码,202-卡,303-人脸,400-密码 | | baseData | 基础数据 | String | Y | | | timeStamp | 通行时间戳 | Int | Y | | | temperature | 体温 | Float | Y | | | result | 通行结果 | Int | Y | 0-成功,非0失败 | | message | 描述信息 | String | Y | | | name | 人员姓名 | String | Y/N | userType=303,为必填 | | picBase64 | 通行照片 | String | Y/N | userType=303,为必填<br /> Base64照片数据 | 发送示例: `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "data": { "records": [ { "userId": "412725202101011234", "userType": 101, "baseData": "&llgyAQASADQxMjcyNTIwMjEwMTAxMTIzNA==@3Fa", "timeStamp": 1639475284, "result": 0, "message": "成功", "name": "张三", "picBase64": "/9j/4AAQSkZJRgABAQEAYABgAAD…", }, … ] } `}` b) 后台或应用回馈到设备 | **消息topic** | **topic: 20211214/event/{#deviceSn}/reportRecords**_reply | | ------------- | --------------------------------------------------------- | 消息参数 | 参数名 | 描述 | 类型 | 必传 | 附加说明 | | -------- | -------- | ------ | ---- | ------------------------------ | | serialNo | 序列号 | String | Y | | | deviceSn | 设备SN | String | Y | | | result | 结果 | Int | Y | 0表示成功,非0表示失败 | | code | 错误码 | String | Y | | | message | 错误提示 | String | N | 出错的原因信息或成功的提示信息 | 返回示例 `{` "serialNo": "0000000001", "deviceSn": "p0Lx8TI3mpOr", "result": 0, "code": "LAN_SUS-0", "message": "成功" `}` 返回说明 | 类型 | Code | msg | 触发原因 | | -------- | ------------ | -------- | ------------------------------------------------------------ | | 通用报错 | LAN_EXP-1000 | 未知错误 | 未知错误 | | 参数异常 | LAN_EXP-3000 | 参数异常 | 参数名拼写错误、参数漏传、参数在请求中的位置不正确、参数名带有空格或回车、参数值异常 | | 操作正确 | LAN_SUS-0 | 认证成功 | 认证成功 | ## 附录1 Code 码总览 | Code码 | msg | | ------------------- | ------------------------------------------------------------ | | 通用错误码 | | | LAN_SUS-0 | 接口调用成功, msg 随接口不同而不同 | | LAN_EXP-1000 | 未知异常 | | LAN_EXP-1001 | 密码参数异常 | | LAN_EXP-1002 | 密码错误 | | LAN_EXP-1003 | 接口服务未设置密码,请先设置密码 | | LAN_EXP-1004 | 设备已被禁用,请先启用再做其它操作 | | LAN_EXP-1005 | 设备正忙,请稍后再试 | | LAN_EXP-1006 | The XX method is not supported. | | LAN_EXP-1007 | 请求body错误 | | LAN_EXP-1008 | json格式错误 | | LAN_EXP-1009 | 保存数据出错 | | LAN_EXP-1010 | 设备升级中 | | LAN_EXP-1011 | 设备SN不匹配 | | 设置密码 | | | LAN_EXP-2000 | oldPass不合法 | | LAN_EXP-2001 | newPass不合法 | | LAN_EXP-2002 | oldPass != newPass | | LAN_EXP-2003 | oldPass错误 | | 禁用设备 | | | LAN_EXP-2100 | isDisable参数不合法 | | 远程控制 | | | LAN_EXP-2150 | Command 错误 | | LAN_EXP-2151 | 重启失败 | | 隐藏 IP、设备序列号 | | | LAN_EXP-2200 | ipShow 参数异常 | | LAN_EXP-2201 | snShow 参数异常 | | 设备序列号获取 | | | LAN_EXP-2300 | 读取SN失败 | | 网络配置 | | | LAN_EXP-2400 | en 参数异常 | | ~~LAN_EXP-2401~~ | ~~wifiMsg 参数异常~~ | | LAN_EXP-2402 | ssid 参数异常 | | LAN_EXP-2403 | pwd 参数异常 | | LAN_EXP-2405 | ip 参数异常 | | LAN_EXP-2406 | gateway 参数异常 | | LAN_EXP-2407 | dns 参数异常 | | LAN_EXP-2408 | subnetMask 参数异常 | | 设置设备时间 | | | LAN_EXP-2500 | timestamp 参数异常 | | 屏幕显示设置 | | | LAN_EXP-2600 | autoScreenOff 参数异常 | | LAN_EXP-2601 | autoScreenOffTime 参数异常 | | LAN_EXP-2602 | autoScreenSaverOff 参数异常 | | LAN_EXP-2603 | autoScreenSaverTime 参数异常 | | LAN_EXP-2604 | autoDisplayBrightness 参数异常 | | LAN_EXP-2605 | displayBrightness 参数异常 | | 设备升级 | | | LAN_EXP-2700 | url 参数异常 | | LAN_EXP-2701 | md5 参数异常 | | 设备配置 | | | LAN_EXP-2800 | data 参数异常 | | 照片注册 | | | LAN_EXP-3000 | employeeNumber 参数异常 | | LAN_EXP-3001 | name 参数异常 | | LAN_EXP-3002 | registerBase64 参数异常 | | LAN_EXP-3003 | employeeNumber 已被占用 | | LAN_EXP-3004 | registerBase64 非base64编码数据 | | LAN_EXP-3005 | registerBase64 图片注册失败,常见错误有:图片脸部特征过低,人脸库存在相似度过高的图片等 | | LAN_EXP-3006 | 拍照注册,上次拍照注册未完成 | | 白名单 | | | LAN_EXP-3010 | whiteLists白名单数组错误 | | LAN_EXP-3011 | syncFlag 白名单同步标识错误 | | LAN_EXP-3012 | userType 人员类型参数错误 | | LAN_EXP-3013 | userId 人员ID参数错误 | | LAN_EXP-3014 | syncType 同步类型参数错误 | | LAN_EXP-3015 | 全量更新,清空白名单失败 | | LAN_EXP-3016 | length 参数异常,有效范围(0,1000] | | LAN_EXP-3017 | index 参数异常,范围[0, ~] | | 摄像头标定 | | | LAN_EXP-3100 | timeout 参数异常 | | 提取日志 | | | LAN_EXP-3200 | logTag参数异常 | | 设备密码 | | | LAN_EXP-3300 | 密码错误或参数异常 | | LAN_EXP-3301 | 密码修改失败 | | LAN_EXP-3302 | 接口密码不一致 | | LAN_EXP-3303 | 密码初始化失败 | | LAN_EXP-3304 | 接口密码错误 | | LAN_EXP-3305 | 接口密码修改失败 | ## 附表 2 可用时区列表 | 时区 | | | ---------------- | ----------------------- | | Asia/Shanghai | 中国标准时间 (北京) | | Asia/Tokyo | 日本时间 (东京) | | Europe/London | 格林尼治标准时间 (伦敦) | | Europe/Paris | 英国时间 (巴黎) | | Europe/Berlin | 德国时间 (柏林) | | America/New_York | 美国东部时间 (纽约) |
马志祥
2025年5月29日 15:35
24
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期