软件协议文档
终端设备协议文档
功能&协议池(所有功能协议)
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协议
文档
-
+
首页
门禁20180820 MQTT协议文档V1.0.2(Vbar版)
## 修改记录表 | 版本 | 修改日期 | 修改人 | 修改内容 | | ------- | ---------- | ---------- | ------------------------------------------------------------ | | V1.0.0 | 2024/1/22 | 周小禹 | 新建文档 | | V1.0.1 | 2025/4/24 | 张博 | 1,增加了对容错时间配置的描述,标注了M350不支持的配置项。2,增加了M350查询配置新增字段的描述。3,修改了部分同步白名单字段的描述。 | | V1.0.2 | 2025/6/25 | 石磊 | 删除上报通行记录中关于错误码的描述 | # 1 概述 ## 1.1 接口概述 本文档提供一套直接访问设备的接口,用于推送获取设备信息,使用者购买设备后,就可以直接根据接口说明进行自定义开发整套门禁或相关应用系统。 接口使用MQTT通信协议,可以对接各种通用的MQTT代理,也可使用我们推荐的MQTT代理。 ## 1.2 应用场景 应用场景:当需要对接自己的业务系统时,可以通过使用接口通过MQTT协议直接与设备通讯。 ## 1.3 特点 接口简单,功能全面,适应绝大部分门禁的应用情景。 # 2 接口文档 ## 2.1 说明 接口使用MQTT协议,分为上行与下行: - 上行:是指设备上发消息给后台或应用。 - 下行:是指后台或应用下发消息给设备。 通信中间通过MQTT代理,消息包含消息topic与消息内容,格式如下: - 消息topic: 消息标题 - 消息内容:文本格式的消息内容,内容为Json格式,如 ``` { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 … } ``` 其中SerialNo(序列号)必需的,用于通讯时确保同步; DeviceAddr(设备地址) 必需的,设备的唯一地址用于通讯时保证设备是有效的设备; ## 2.2 接口列表 ## 2.2.1 同步密钥 后台或应用同步密钥到设备(支持全量与增量)。 #### a) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/secretsync 消息内容: ``` { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "SyncFlag" : 1, //同步标识,1-全量,2-增量 "SecretKeys" :[ //密钥数组 { "SecretKeyType" : "xxxxxxxx", //密钥类型,如RSA, AES等 "SecretKeyCode" : "xxxxxxxx", //密钥编码,对应密钥编码,如vguang "SecretKeyValue" : "xxxxxxxx", //密钥值 "SecretKeyExpirytime" : 1596277728 //密钥过期时间,时间戳(秒) "SyncType" : 1 //同步类型,当SyncFlag=2时有效,1-增加,2-修改,3-删除 }, …. ] } ``` #### b) 设备回馈到后台或应用 消息topic: 20180820/secretsync_reply 消息内容: ``` { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "result":0, //执行结果,0-成功,<0-失败 "msg":"" //原因(可选) } ``` ## 2.2.2 同步白名单 后台或应用同步白名单到设备(支持全量与增量)。 #### a) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/whitelistsync 消息内容: ``` { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "SyncFlag" : 1, //同步标识,1-全量,2-增量 "WhiteLists" :[ //白名单数组 { "IdentityType" : 101, //身份类型 "IdentityCode" : "xxxxxxxx", //身份标识 "OrgId" : 100, //组织编号,删除白名单时校验 (M350字段不支持) "BeginTime" : 1596277728, //开始时间,时间戳(秒) "EndTime" : 1596277728, //结束时间,时间戳(秒) "RepeatFlag" : 0, //重复标识(0-不重复,1-每天重复,2-每周重复,3-每月重复,4-每周重复带时间段) "RepeatBeginTime":1,//重复开始时间(不重复:字段无效。每天重复,填写秒数。每周重复,填写1-7。每月重复:填写1-31。) "RepeatEndTime":90000,//重复结束时间 "WeekPeriodTime":{"5":"01:00-02:00|02:00-03:00|04:00-05:00|06:00-13:48|13:50-14:00"},//每周重复带时间段(最大填写5个时间段,填写第六个会使之前的五个时间段全部失效) "Times" : 0, //次数(数字),0-不限,>0,限制次数(M350字段不支持) "SyncType" : 1 //同步类型,当SyncFlag=2时有效,1-增加,2-修改,3-删除(当为删除时,如果BeginTime, EndTime都为-1,则删除所有符合要求的,不忽略IdentityType、IdentityCode和OrgId;如BeginTime不为-1,则增加条件开始时间>=BeginTime,并匹配IdentityType与IdentityCode;如EndTime不为-1,则增加条件结束时间<=EndTime,并匹配IdentityType与IdentityCode) }, …. ] } ``` 注:身份类型, 101-普通二维码, 102-微光门禁动态码1, 以&mj开头 103-微光门禁动态码2, 以vg://v103开头 104-微光门禁动态码3, 以vg://v104开头 201-Mifare_UltraLight卡, 202-Mifare_One(S50) 卡, 203-Mifare_One(S70) 卡, 204-Mifare_Pro(X) 卡, 205-Mifare_DESFire卡, 206-身份证, 238-其他卡, 505-应急码,以&em开头的二维码 … 客户可根据自己情况选择101、102、103,或定制专用码制(定制码类型4XX)。 #### b) 设备回馈到后台或应用 消息topic: 20180820/whitelistsync_reply 消息内容: ``` { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "Result":0, //执行结果,>=0-成功,<0-失败 "WhiteLists":[{},{}..], //执行结果成功时才有此项,数组元素内容同服务器下发的内容 "Message":"" //原因(可选) } ``` Result:错误码 - 0:成功 - -1:JSON字符串错误 - -2:磁盘空间不足 - -3:数据库开启事务失败 - -4:清空数据库失败 - -5:保存失败 - -6:修改失败 - -7:删除失败 - -8:写入数据库出错 ## 2.2.3 压缩包方式同步白名单 后台或应用同步白名单压缩包地址到设备。一个压缩包限制5000条以内,原文件大小800Kb左右,zip压缩压缩后大小约为原来的1/10 ### a) 后台或应用到设备 消息topic: `20180820/{#DeviceAddr}/whitelistsync_zip` 消息内容: ```json { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "ZipUrl" : "http://xxx.xxx.xxx/", //白名单压缩文件地址 "ZipMd5" : "xxxxxxxxxx" //白名单压缩文件MD5值 } ``` ### b) 设备回馈到后台或应用 消息topic: `20180820/whitelistsync_zip_reply` 消息内容: ```json { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "Result":0, //执行结果,>=0-成功,<0-失败 "Message":"" //原因(可选) } ``` ### c) 设备回馈到后台或应用 消息topic: `20180820/whitelistsync_result` 消息内容: ```json { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "ZipUrl" : "http://xxx.xxx.xxx/", //白名单压缩文件地址 "ZipMd5" : "xxxxxxxxxx", //白名单压缩文件MD5值 "Result":0, //白名单压缩文件下载解压保存执行结果,>=0-成功,<0-失败 "Message":"" //原因(可选) } ``` #### Result:错误码 * 0:成功 * -1:JSON字符串错误 * -2:磁盘空间不足 * -3:数据库开启事务失败 * -4:清空数据库失败 * -5:保存失败 * -6:修改失败 * -7:删除失败 * -8:写入数据库出错 * -9:内存不足 * -10:开启下载任务失败 * -11:下载文件失败 * -12:md5校验失败 * -13:解压失败 ## 2.2.4 查询白名单 后台或应用查询设备的白名单 ### a) 后台或应用到设备 消息topic: `20180820/{#DeviceAddr}/whitelistquery` 消息内容: ```json { “SerialNo” : 20, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "IdentityType" : 101, //身份类型,可选,如果有则只查询此类 "IdentityCode" : "xxxxxxxx", //身份标识,可选,如果有则只查询此身份标识对应的 "OrgId" : 100, //组织编号,可选,如果有则只查询此类 "BeginTime" : 1596277728, //开始时间,时间戳(秒),可选,如果有则只查询此时间后的 "EndTime" : 1596277728, //结束时间,时间戳(秒),可选,如果有则只查询此时间前的 "PageSize" : 50, //查询每页记录条数(最大100) "CurrentPage" : 1 //查询当前页数 } ``` ### b) 设备回馈到后台或应用 消息topic: `20180820/whitelistquery_reply` 消息内容: ```json { “SerialNo” : 20, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "Result":0, //执行结果,>=0-成功,<0-失败 "Message":"", //原因(可选) "PageSize" : 50, //查询结果每页记录条数 "CurrentPage" : 50, //查询结果当前页数 "PageCount" : 3, //查询结果总页数 "Total" : 150, //查询结果记录总条数 "WhiteLists" :[ //白名单数组 { "IdentityType" : 101, //身份类型,505:应急码 "IdentityCode" : "xxxxxxxx", //身份标识 "OrgId" : 100, //组织编号 "BeginTime" : 1596277728, //开始时间,时间戳(秒) "EndTime" : 1596277728, //结束时间,时间戳(秒) "RepeatFlag" : 0, //重复标识(0-不重复,1-每天重复,2-每周重复,3-每月重复,4-每年重复,5-工作日重复,6-自定义日重复,7-自定义周重复,8-自定义月重复,9-自定义年重复) "SpaceDesc" : 0, //间隔描述(数字) "CustomDesc" : 0, //自定义描述(数字) "Times" : 0 //次数(数字),0-不限,>0,限制次数 }, …. ] } ``` 下面是转化成完全的Markdown格式的文本: ## 2.2.5 上报通行记录 设备向后台或应用上报通行记录。 a) 设备到后台或应用 消息topic: `20180820/reportrecord` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx", // 设备地址 "PassRecords": [ // 通行记录数组 { "IdentityType": 101, // 身份类型 "IdentityCode": "xxxxxxxx", // 身份标识 "OriginalCode": "xxxxxxxx", // 原始数据 "PassTime": 1596277728, // 通行时间,时间戳(秒) "PassResult": 0 // 通行验证结果,>=0-成功(1表示常开状态,2表示常闭状态),<0失败 }, ... ] } ``` 消息topic: `20180820/{#DeviceAddr}/reportrecord_reply` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx", // 设备地址 "Result": 0, // 执行结果,>=0-成功,<0-失败 "Message": "" // 原因(可选) } ``` ## 2.2.6 在线验证 设备向后台或应用在线验证。 a) 设备到后台或应用 消息topic: `20180820/onlinecheck` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx", // 设备地址 "IdentityType": 101, // 身份类型 "IdentityCode": "xxxxxxxx", // 身份标识 "OriginalCode": "xxxxxxxx", // 原始数据 "PassTime": 1596277728 // 通行时间,时间戳(秒) } ``` b) 后台或应用回馈到设备 消息topic: `20180820/{#DeviceAddr}/onlinecheck_reply` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx", // 设备地址 "PassResult": 1, // 通行验证结果,1-成功,<0失败 "Message": "" // 原因(可选) } ``` ## 2.2.7 控制设备 后台或应用控制设备。 a) 后台或应用到设备 消息topic: `20180820/{#DeviceAddr}/controldevice` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx", // 设备地址 "HintType": 1 // 控制类型,1-开门 } ``` b) 设备回馈到后台或应用 消息topic: `20180820/controldevice_reply` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx", // 设备地址 "Result": 0, // 执行结果,>=0-成功,<0-失败 "Message": "" // 原因(可选) } ``` ## 2.2.8 查询设备状态 后台或应用查询设备状态。 a) 后台或应用到设备 消息topic: `20180820/{#DeviceAddr}/getstatus` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx" // 设备地址 } ``` b) 设备回馈到后台或应用 消息topic: `20180820/getstatus_reply` 消息内容: ```json { "SerialNo": 2, // 消息序列号 "DeviceAddr": "xxxxxxxx", // 设备地址 "DeviceMode": "xxxxxxxx", // 设备型号 "DeviceNetType": 1, // 设备网络类型,1-WIFI "DeviceVer": "xxxxxxxx", // 设备版本 "OpenMode": 0, // 设备开门模式,0-正常,1-常开模式,2-常闭模式 "OpenTime": 5, // 开门时长,单位秒 "TimeSyncInterval": 43200, // 主动时钟更新间隔时间,单位秒,缺省43200秒(12小时),如果小于等于0,表示不主动更新 "DeviceStatus": 1, // 0-未激活,1-正常,2-禁用 "DeviceTime": 1596277728, // 设备时间,时间戳(秒) "DeviceSpace": 1000000, // 设备剩余空间(单位字节) "DeviceWhitelistCount": 5000, // 白名单总数量 "DevicePassRecordCount": 5000, // 未上传通行记录总数 "ScanInterval": 1000, // 扫码间隔单位毫秒(ms) "RecordUploadStrategy": 0, // 0:通行优先, 1:上传优先 "CheckMode": 0, // 0:只离线验证, 1:先离线验证失败后走在线验证 "FaultTolerantTimeInterval": 5, // 容错时间间隔小时(h)为0时表示禁用动态调整,如每隔5h时间容错增加1秒 "MaxFaultTolerantTime": 60, // 最大容错时间秒(s),如当容错时间达到60s时停止增加 "AnalogCard": 1, // 1:屏蔽手机模拟卡, 0:不屏蔽手机模拟卡 "DevGroup": "123", // 设备分组用于应急码组校验 "DeviceId": "123", // 设备ID用于应急码设备ID校验(默认值:设备出厂地址) "EmKey": "078571e7c65de78e818ff3083a4814e2" // 应急码秘钥 } "NfcChannelState" : 0,//指示通信通道的通断状态 0通,-1断开 "NfcSignal" : 0,//CONTROL_TX寄存器的值 "EmvState" : 0,//emv寄存器的状态 "FrameState" : 4//通讯帧的状态 以上四条仅为M350新增,用于查看NFC是否正常工作,其他设备是否有暂不清楚 ``` ## 2.2.9 设置设备状态 后台或应用设置设备状态。 ### a) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/setstatus 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "OpenMode" :0, "OpenTime" : 5, "TimeSyncInterval" : 43200, "ScanInterval" : 1000, "RecordUploadStrategy" : 0, "CheckMode" : 0, "FaultTolerantTimeInterval" : 5, "MaxFaultTolerantTime" :60, "AnalogCard" :1, "DevGroup" : "123", "DeviceId" : "123", "EmKey" : "078571e7c65de78e818ff3083a4814e2", "DeviceStatus" : 1 } ``` "SerialNo" : 2,//协议序列号 "DeviceAddr" : "xxxxxxxx",//设备地址 "OpenMode" :0,//开门模式 0正常,1常开,2常闭 "OpenTime" : 5,//开门时长(秒) "TimeSyncInterval" : 43200,//自动更新时间间隔 "ScanInterval" : 1000,//扫码间隔 "RecordUploadStrategy" : 0,//通行模式 0优先通行,1优先上传 "CheckMode" : 0,//在线验证 0关闭,1开启 "FaultTolerantTimeInterval" : 5,//容错时间间隔小时(h)为0时表示禁用动态调整,如每隔5h时间容错增加1秒==(容错时间:仅适用于103码制,就是103码制的超时时间。容错时间默认30s,即只要设备启动,所有103码都会增加30s的超时时间,然后再根据配置每隔一段时间增加)== "MaxFaultTolerantTime" :60,// 最大容错时间秒(s),如当容错时间达到60s时停止增加 "AnalogCard" :1,//防复制卡 0关闭,1开启==(M350设备不支持此功能)== "DevGroup" : "123",//设备分组用于应急码组校验==(M350设备不支持此功能)== "DeviceId" : "123",//设备ID用于应急码设备ID校验==(M350设备不支持此功能)== "EmKey" : "078571e7c65de78e818ff3083a4814e2",//应急码秘钥==(M350设备不支持此功能)== "DeviceStatus" : 1//激活状态 0未激活,1正常,2禁用 ### b) 设备回馈到后台或应用 消息topic: 20180820/setstatus_reply 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "DeviceMode" : "xxxxxxxx", "DeviceNetType" : 1, "DeviceVer" : "xxxxxxxx", "OpenMode" :0, "OpenTime" : 5, "TimeSyncInterval" : 43200, "DeviceStatus" : 1, "DeviceTime" : 1596277728, "DeviceSpace" : 1000000, "DeviceWhitelistCount" : 5000, "DevicePassRecordCount" : 5000, "ScanInterval" : 1000, "RecordUploadStrategy" : 0, "CheckMode" : 0, "FaultTolerantTimeInterval" : 5, "MaxFaultTolerantTime" :60, "AnalogCard" :1, "DevGroup" : "123", "DeviceId" : "123", "EmKey" : "078571e7c65de78e818ff3083a4814e2" } ``` ## 2.2.10 同步时钟 后台或应用同步时钟到设备。 ### a) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/timesync 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "DeviceTime" : 1596277728 } ``` ### b) 设备回馈到后台或应用 消息topic: 20180820/timesync_reply 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "DeviceMode" : "xxxxxxxx", "DeviceNetType" : 1, "DeviceVer" : "xxxxxxxx", "OpenTime" : 5, "TimeSyncInterval" : 43200, "DeviceStatus" : 1, "DeviceTime" : 1596277728, "DeviceSpace" : 1000000, "DeviceWhitelistCount" : 5000, "DevicePassRecordCount" : 5000 } ``` ### 设备请求到后台或应用时钟同步 a) 设备到后台或应用 消息topic: 20180820/reqtimesync 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "ReqType": 2 } ``` b) 后台或应用回馈到设备 消息topic: 20180820/{#DeviceAddr}/reqtimesync_reply 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "SyncTime" : 1596277728 } ``` ## 2.2.11 更新固件 后台或应用更新设备固件。 ### d) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/updatefirmware 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "FirmwareUrl" : "http://xxx.xxx.xxx/", "FirmwareMd5" : "xxxxxxxxxx" } ``` ### e) 设备回馈到后台或应用 消息topic: 20180820/updatefirmware_reply 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "Result":0, "Message":"" } ``` Result:错误码 0:成功 -1:JSON字符串错误 -2:磁盘空间不足(小于50K) -3:保存升级地址出错 -4:设备地址不匹配 -5:设备型号不匹配 (网络升级) ## 2.2.12 定时任务(未启用) 后台或应用向设备发布定时任务。 ### a) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/timetasksync 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "SyncFlag" : 1, "TaskLists" : [ { "TaskCode" : "xxxxxxxx", "TaskType" : "open", "TaskContent" : "open", "BeginTime" : 1596277728, "EndTime" : 1596277728, "RunTime" : 28800, "WeekRepeatFlag" : 0, "SyncType" : 1 } ] } ``` ### b) 设备回馈到后台或应用 消息topic: 20180820/timetasksync_reply 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "Result":0, "Message":"" } ``` 0:成功 -1:JSON字符串错误 -2:磁盘空间不足 -3:数据库开启事务失败 -4:清空数据库失败 -5:保存失败 -6:修改失败 -7:删除失败 -8:写入数据库出错 ## 2.2.13 离线通知 设备遗嘱断开服务器时由mqtt代理像服务器发送通知。 ### a) 设备到后台服务器 消息topic: 20180820/break_link 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx", "AppStatus" : 2, "Message" : "门禁应用异常离线" } ``` ## 2.2.14 查询设备日志 后台或应用查询设备日志。 ### c) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/extractlog 消息内容: ```json { "SerialNo" : 2, "DeviceAddr" : "xxxxxxxx" } ``` ### d) 设备回馈到后台或应用 消息topic: 20180820/extractlog_reply 消息内容: ```json { "SerialNo": 2, "DeviceAddr": "WZHTESTADDR1", "Result": 0, "Log": "Feb 5 09:16:58 vbar: verify_analysis_nfc_offline_check()|82| ERR: nfc offline check failed, identityType: 204, identityCode: cdb332be\n" } ``` ## 2.2.15 设置网络和MQTT 后台或应用设置设备网络和MQTT。 ### e) 后台或应用到设备 消息topic: 20180820/{#DeviceAddr}/setnetwork 消息内容: ```json { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "Net" : { "NetType": 1, //1-WIFI, 2-ETH *只有设备支持此网络类型时才可以配置成功, 此为必填项 "SSID": "Vguang_JS", "PWD": "vguangjs_o0", "DHCP": true,//true-动态, false-静态, 此为必填项 "IP": "192.168.2.236", "Gateway": "192.168.2.1", "DNS": "114.114.114.114", "Mask": "255.255.255.0" }, "Mqtt" : { "Addr": "123.207.152.144:61613", "ClientId": "",//可缺省 "UserName": "admin", "Password": "password" } } ``` ### f) 设备回馈到后台或应用 消息topic: 20180820/setnetwork_reply 消息内容: ```json { "SerialNo" : 2, //消息序列号 "DeviceAddr" : "xxxxxxxx", //设备地址 "Result":0, //执行结果,>=0-成功,<0-失败 "Message":"" //原因(可选) } ```
石磊
2025年6月26日 17:16
4
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期