归还充电宝
1、充电宝归还机柜,无论成功失败,上报MQTT结果
2、充电宝归还机柜,仅限成功状态,上报HTTP结果
设备回复 △
发布主题:/powerbank/{uuid}/user/update
数据格式:字节码数据,Hex,16进制解析
字节码 | 名称 | 标识代码 | 备注 |
---|---|---|---|
Byte[0] | 头码 | head | 默认:0xA8 |
Byte[1~2] | 包长度 | length | 默认:0x00 0x0E,转10进制,等于14 |
Byte[3] | 指令名称 | cmd | 默认:0x40,归还充电宝 |
Byte[4] | 机芯板地址 | controlIndex | 默认:0x10 |
Byte[5] | 仓位地址 | holeIndex | 默认:0x01 |
Byte[6] | 区域码 | area | 客户定制 |
Byte[7~10] | 充电宝SN | powerbankSN | 0x00 0x00 0x0B 0xCF = SN:3023 0x00 0x9B 0xD2 0x10 = SN:10211856 0xFF 0xFF 0xFF 0xFF = SN:4294967295 |
Byte[11] | 归还状态 | state | 0x00:归还失败 0x01:归还成功 0x11:获取SN失败 0x12:获取电压、温度等信息失败 0x13:获取软件、硬件版本信息失败 0x14:电池加锁指令失败 0x21:获取SN失败,并且电机动作失败 0x22:获取电压、温度等信息失败,并且电机动作失败 0x23:电池加锁指令失败,并且电机动作失败 0x24:防盗开关检测失败(5分内,会上报0x28归还自检指令) |
Byte[12] | 充电宝版本 | software | 0x00:无充电宝 0x01:V001 0x10:V016 |
Byte[13] | 充电宝电量 | soc | 0x00:0% 0x01:1% 0x64:100% |
Byte[14] | 校验码 | verify | 数据包补码校验 |
示例:上报SN弹出数据
A8 00 0F 40 10 01 04 05 8E 17 08 01 CA 5F 18
json
A8 -------------------------------------------- Byte[0] 头码
00 0F ----------------------------------------- Byte[1~2] 包长度15
40 -------------------------------------------- Byte[3] 归还充电宝指令
10 -------------------------------------------- Byte[4] 机芯板地址
01 -------------------------------------------- Byte[5] 仓位号
04 -------------------------------------------- Byte[6] 区域码
05 8E 17 08 ------------------------------------Byte[7~10] 充电宝SN:93198088
01 -------------------------------------------- Byte[11] 归还状态
CA -------------------------------------------- Byte[12] 充电宝版本 V202
5F -------------------------------------------- Byte[13] 充电宝电量 95%
18 -------------------------------------------- Byte[14] 校验码
API请求
仅限归还成功后,请求API。
请求URL
GET
https://{host}/api/rentbox/client/return?rentboxSN={rentboxSN}&singleSN={singleSN}&hole={hole}&sign={sign}
text
/api/rentbox/client/return
请求参数
名称 | 标识代码 | 是否必填 | 备注 |
---|---|---|---|
服务器域名 | host | YES | 客户提供,例如:s.abc.com |
机柜SN | rentboxSN | YES | 4G通讯模块,IMEI号 |
充电宝SN | singleSN | YES | - |
仓位号 | hole | YES | - |
接口签名 | sign | YES | MD5加密 |
接口签名
text
sign=MD5("hole={hole}|rentboxSN={rentboxSN}|singleSN={singleSN}")
请求示例
sign = f0bd0053d4431f2de7642b33d8b309f7
MD5("hole=1|rentboxSN=860602069165357|singleSN=93198088")
响应结果
json
{
"code":200,
"type":0,
"data":"",
"msg":"OK",
"time":1705661910697
}
名称 | 标识代码 | 类型 | 备注 |
---|---|---|---|
状态码 | code | int | 默认:200 |
状态类型 | type | int | 默认:0 |
自定义数据 | data | string | 默认:"" |
异常消息 | msg | string | 默认:OK |
时间戳 | time | long | 当前毫秒时间戳 |