整机上报
1、设备开机1分钟,上报一次数据
2、机柜每20分钟,上报整机数据
3、归还充电宝(自检0x28),立即上报一次数据。
指令下发 ▼
订阅主题:/powerbank/{uuid}/user/get
数据格式:JSON字符串
名称 | 标识代码 | 数据类型 | 备注 |
---|---|---|---|
指令名称 | cmd | string | upload_all |
更新整机上报
{ "cmd":"upload_all" }
设备回复 △
无, 会触发API请求
API请求
请求URL
POST
https://{host}/api/rentbox/client/upload?rentboxSN={rentboxSN}&signal={signal}&sign={sign}
/api/rentbox/client/upload
Content-Type:text/plain
请求参数
名称 | 标识代码 | 是否必填 | 备注 |
---|---|---|---|
服务器域名 | host | YES | 客户提供,例如:s.abc.com |
机柜SN | rentboxSN | YES | 4G通讯模块,IMEI号 |
信号值 | signal | YES | - |
接口签名 | sign | YES | MD5加密 |
接口签名
sign=MD5("rentboxSN={rentboxSN}|signal={signal}")
Body
上报数据:字节码数据,Hex,16进制解析
字节码 | 名称 | 标识代码 | 备注 |
---|---|---|---|
Byte[0] | 头码 | head | 默认:0xA8 |
Byte[1~2] | 包长度 | length | 例如:0x01 0x25,转10进制,包长度为293 |
Byte[3] | 指令名称 | cmd | 默认:0x10,机柜信息 |
Byte[4~n] | 自定义数据 | data | 机芯板信息、仓位信息 |
Byte[n+1] | 校验码 | verify | 数据包补码校验 |
示例:上报18口机柜信息
A8 01 25 10 10 00 00 00 6E 6E 01 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 02 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 03 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 04 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 05 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 06 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 20 00 00 00 6E 6E 07 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 08 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 09 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 0A 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 0B 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 0C 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 30 00 00 00 6E 6E 0D 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 0E 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 0F 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 10 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 11 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 12 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 88
A8 -------------------------------------------- Byte[0] 头码
01 25 ----------------------------------------- Byte[1~2] 包长度:293
10 -------------------------------------------- Byte[3] 上报机柜信息指令
10 00 00 00 6E 6E ----------------------------- 机芯板信息 1
01 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 -- 仓位信息:1
02 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 -- 仓位信息:2
03 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 -- 仓位信息:3
04 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 -- 仓位信息:4
05 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 -- 仓位信息:5
06 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 -- 仓位信息:6
20 00 00 00 6E 6E ----------------------------- 机芯板信息 2
07 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 -- 仓位信息:7
08 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 -- 仓位信息:8
09 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 -- 仓位信息:9
0A 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 -- 仓位信息:10
0B 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 -- 仓位信息:11
0C 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 -- 仓位信息:12
30 00 00 00 6E 6E ----------------------------- 机芯板信息 3
0D 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 -- 仓位信息:13
0E 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 -- 仓位信息:14
0F 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 -- 仓位信息:15
10 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 -- 仓位信息:16
11 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 -- 仓位信息:17
12 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 -- 仓位信息:18
88 -------------------------------------------- Byte[292] 校验码
机芯板信息
共6个字节。示例:单个机芯板数据
30 00 00 00 6E 6E
字节码 | 名称 | 标识代码 | 备注 |
---|---|---|---|
Byte[0] | 机芯板地址 | controlIndex | 默认:0x10 |
Byte[1] | 预留1 | undefined1 | 默认:0x00 |
Byte[2] | 预留2 | undefined2 | 默认:0x00 |
Byte[3] | 温度 | temp | 0x00:没有NTC 0x10:16℃ 0x64:100℃ |
Byte[4] | 软件版本号 | softVersion | 0x00:0 0x10:16 0xFF:255 |
Byte[5] | 硬件版本号 | hardVersion | 0x00:0 0x10:16 0xFF:255 |
仓位信息
共15个字节。示例:单个仓位数据
01 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00
字节码 | 名称 | 标识代码 | 备注 |
---|---|---|---|
Byte[0] | 仓位地址 | holeIndex | 范围:0-100 |
Byte[1] | 状态信息 | state | 0x00:没有移动电源 0x01:充电宝正常 0x02:充电异常 0x03:通讯异常 0x04:卡宝/损坏 0x05:按键被强制释放 0x06:归还时电磁阀未归位 0x07:预留 0x08:防盗协议通信不成功 0x09:Typec短路 0x0A:归还失败,电池不弹出 0x0B~0xFF:预留 |
Byte[2] | 充电宝电流 | powerbankCurr | 保留1位小数 例如:0x10=16,表示1.6A |
Byte[3] | 充电宝电压 | powerbankVolt | 保留1位小数 例如0x10=16,表示1.6V |
Byte[4] | 区域码 | area | 客户定制 |
Byte[5~8] | 充电宝SN | powerbankSN | 0x00:0 0x10:16 0xFF:255 |
Byte[9] | 电量 | soc | 0x00:0 0x10:16% 0xFF:255% |
Byte[10] | 温度 | temp | 0x00:没有NTC 0x10:16℃ 0x64:100℃ |
Byte[11] | 充电电压 | chargeVolt | 保留1位小数 例如0x10=16,表示1.6V |
Byte[12] | 充电电流 | chargeCurr | 保留1位小数 例如0x10=16,表示1.6A |
Byte[13] | 软件版本 | softVersion | 0x00:0 0x10:16 0xFF:255 |
Byte[14] | 仓位检测 | sensor | 解析为二进制 ----------- Bit[7]:按键检测:0闭合 1断开 Bit[6]:电磁阀检测:0闭合 1断开 Bit[5]:预留 Bit[4]:预留 Bit[3]:预留 Bit[2]:预留 Bit[1]:预留 Bit[0]:预留 ---------- 0X80=1000 0000:按键断开,电磁阀闭合 0X40=0100 0000:按键闭合,电磁阀断开 0X00=0000 0000:按键闭合,电磁阀闭合 0XC0=1100 0000:按键断开,电磁阀断开 |
请求示例
Content-Type:text/plain
Body Hex
A8 01 25 10 10 00 00 00 6E 6E 01 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 02 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 03 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 04 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 05 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 06 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 20 00 00 00 6E 6E 07 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 08 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 09 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 0A 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 0B 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 0C 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 30 00 00 00 6E 6E 0D 01 00 F1 04 05 8E 17 08 5F 18 00 00 CA 00 0E 01 00 E1 04 05 8E 15 F0 63 18 00 00 CA 00 0F 00 00 00 00 00 00 00 00 FF FF 00 00 00 80 10 01 00 EB 04 05 8D 99 F7 5F 18 00 00 CA 00 11 01 00 EA 04 05 8D FC 12 5F 18 00 00 CA 00 12 01 00 B6 04 05 8D 93 E7 1A 1C 32 14 CA 00 88
sign = f212709ce41a2c6ac4ac3f6c9bdee020
MD5("rentboxSN=860602069165357|signal=CSQ:30")
响应结果
{
"code":200,
"type":0,
"data":"",
"msg":"OK",
"time":1705661910697
}
名称 | 标识代码 | 类型 | 备注 |
---|---|---|---|
状态码 | code | int | 默认:200 |
状态类型 | type | int | 默认:0 |
自定义数据 | data | string | 默认:"" |
异常消息 | msg | string | 默认:OK |
时间戳 | time | long | 当前毫秒时间戳 |