# 自行车 mqtt 协议文档 ## sub: device/lock/{siteId}/{lockId}/info {"bikeCode":"1234567890","lockId":"kjflksjlkfsjdlk","siteId": 456,"status":0,"code":"789"} ## sub: device/lock/{siteId}/{lockId}/bike {"bikeCode":"1234567890","lockId":789,"siteId": 456,"time":"2023-10-13 10:12:90"} # 自行车 mqtt 协议文档 ## 通信规范 - 每个站点一个 mqtt 连接,clientId 为 SITE_站点编号_时间戳 - 一个站点由部署在上位机上的软件通过can总线与多个锁通信,并与服务器通过mqtt做消息转发 - siteId + lockId 为锁的唯一索引,在同一站点下,lockId不重复 ## sub: device/lock/{siteId}/{lockId}/info qos=1 > **锁信息,在站点软件启动初始化、getInfo主题,unlock主题时时会推送锁的完整状态** - 数据 ```json { "siteId": "1015", // 站点编号,同主题{siteId} "lockId": 2, // 锁编号,同主题{lockId} "status": 1, // 状态,0闭合, 1打开,2运行中, 3异常, -1自检中 "bikeCode": "12345678", // 自行车ic卡号,8位数字,如:10000012,无车为空 "timestamp": 1234567823423 // 时间戳, ms值 } ``` ## pub: device/lock/{siteId}/{lockId}/getInfo qos=0 > 实时获取锁信息, 站点在收到此消息时,发送指定获取到锁的实时消息,并发布到info主题 - 数据 ```json ``` ## pub: device/lock/{siteId}/{lockId}/unlock qos=0 > 开锁,成功失败可关注info消息推送 - 数据 ```json ``` ## sub: device/lock/{siteId}/{lockId}/bike qos=1 > 还车, 还车成功时,获得所还车辆ic卡号推送 - 数据 ```json { "siteId": "1015", // 站点编号,同主题{siteId} "lockId": 2, // 锁编号,同主题{lockId} "status": 1, // 状态,0闭合, 1打开,2运行中, 3异常, -1自检中 "bikeCode": "12345678", // 自行车ic卡号,8位数字,如:10000012,无车为空 "timestamp": 1234567823423 // 时间戳, ms值,站点上位机收到还车指令的时间,仅做参考,请以服务器时间为准 } ``` ## sub: device/lock/{siteId}/health qos=0 > ## 站点心跳主题, 间隔30s - 数据 ```json { "timestamp": 1234567823423 // 时间戳, ms值 } ``` ## sub: device/lock/{siteId}/siteInfo qos=1 > 新增 - 站点信息,站点在连接服务器后即推送 - 数据 ```json { "siteId": "1015", // 站点编号,同主题{siteId} "locks": 1234, // 锁数量 "version": "1.0.7", // 站点软件版本号 "timestamp": 1234567823423 // 时间戳, ms值 } ``` ## sub: device/lock/{siteId}/{lockId}/adminCard qos=1 > 新增 - 管理员刷卡记录上报 - 数据 ```json { "siteId": "1015", // 站点编号,同主题{siteId} "lockId": 2, // 锁编号,同主题{lockId} "cardNo": "1001", // 管理员卡号,四位数字 "bikeCode": "12345678", // 自行车ic卡号,8位数字,如:10000012,无车为空 "timestamp": 1234567823423 // 时间戳, ms值 } ```