跳到主要内容

身份、配置与库存

以下说明表中的格式省略了文字解释中的最外层大括号,但展示的报文格式都包含 CRC 字段。

CN: 设备身份与上线

上行

{CN,deviceId,address,firmware,rssi,info1,<info2>,<info3>,<info4>,crc}

网络addressinfo1info2info3info4
2G/4G模组 IMEISIM ICCIDLACCIVPN 标识,可选
Wi-Fi模组 MAC本地 IPSSIDWi-Fi 密码预留

下行确认

{CN,confirmedDeviceId,settings,crc}

settings 使用分号分隔:KEY1:VALUE1;KEY2:VALUE2;。支持 DOMAINPORTHB(心跳秒数)、BP(库存上报秒数)、UNPWIDDMTP(充电宝品牌隔离)。不修改的键不要发送。服务端未确认时,机柜每 60 秒重发一次 CN

CS: 网络与整机配置

下行请求: {CS,messageId,operation,param1,param2,crc}

上行结果: {CS,sameMessageId,operation,result,reserved,crc}

上行查询结果: {CS,sameMessageId,currentProductKey,inventoryInterval,mqttHeartbeat,crc}

result1 表示接受,0 表示拒绝。设备会丢弃消息 ID 小于或等于最近已接受 ID 的指令;重连后比较窗口复位。

操作param1param2作用
RESETME00重启机柜
RESETNET00重启网络模组
RECONNECT00重连服务端
HEARTINFO库存上报秒数MQTT 心跳秒数设置上报周期
LEDCFG灯光模式值0 关二维码灯,1设置氛围灯和二维码灯
PBPOWER0 关,10设置充电宝供电模式
PK主题 ProductKey0设置主题路径 / IoT ProductKey
UNMQTT/IoT 用户名0设置连接账号
PWMQTT/IoT 密码0设置连接密码及 CRC 密钥来源
ID设备 ID0设置设备 ID
DM经批准的 Broker/IoT 地址0设置服务器地址
APNAPN 值0设置蜂窝网络 APN
WIFISSID密码设置 Wi-Fi 配置
SAVECFG00保存待生效配置

修改配置的操作属于高权限指令。必须限制在经过认证的运营角色中,审计每次请求和结果,并禁止把生产值写入前端日志。

LEDCFG 参数

效果参数值
绿色5507B10064800000
蓝色5507B10064000080
红色5507B10064005000
白色5507B10064808080
黄色5507B10064408000
紫色5507B10064008068
粉色5507B10064008017
七色呼吸轮转5507B11464000000
炫彩跑马5507B11040000000
关闭5507B10064000000

受支持固件会在断电后保存这些参数。

GN: 网络状态查询

下行: {GN,messageId,crc}

4G 上行: {GN,sameMessageId,imei,iccid,rssi,lac,ci,networkStatus,crc}

Wi-Fi 上行: {GN,sameMessageId,mac,wifiModel,rssi,ip,ssid,wifiPassword,crc}

IMEI、ICCID、MAC、IP、SSID 和密码都属于敏感运营数据。networkStatus 由模组/固件配置定义,未取得固件映射前不能把它当成应用层成功码。

DS: 整机配置上报

上行: {DS,messageId,deviceId,networkMode,ambientLight,powerBankSupply,qrLight,reversePowerSlot,crc}

下行确认: {DS,sameMessageId,deviceId,crc}

字段
networkMode4GWIFIETH
ambientLight0 关,1
powerBankSupply0 关,1
qrLight0 关,1
reversePowerSlot0 表示存在外部供电;其他值表示当前给机柜反向供电的槽位

设备在收到确认前每 60 秒重发一次 DS

AC: 全槽位库存上报

上行

{AC,messageId,deviceId,address,networkInfo,rssi,firmware,totalSlots,slotRecord1,...,slotRecordN,crc}

每个槽位记录为:

slotId:returnState:powerBankId:battery:slotState

字段含义
slotId从 1 开始的槽位号
returnState归还确认状态,见下表
powerBankId充电宝 ID;槽位空或无法读取时为 NULL
battery0..100 电量百分比
slotState旧固件为 S1S2S3,新固件为 S1S2S3S4

槽位状态位

状态位
S1 充电0 关,1 开,2 异常
S2 充电类型0 普通,1 22 W,2 未知,3 45 W,4 65 W
S30 未完全关闭,1 已完全关闭
S4 可用性0 启用,1 禁用,2 最低租借优先级,4 品牌前缀不匹配

固件尾缀为 240526.1 或更新时支持 S4。完成配置协商后,解析器应同时接受 3 位和 4 位形式。

归还状态

含义
0尚未收到有效 RS 确认;断电后重置为 0
1归还已确认
2已插入但锁未到位;设备约三分钟后重试 RS
3上次弹出失败/开锁异常;该槽位进入最低租借优先级
4充电宝品牌前缀不匹配

AC 默认周期为 180 秒。租借或归还后何时更新库存,以租借与归还中的指令结果为准。

CQ: 单槽位上报与查询

周期上行: {CQ,messageId,slotId,powerBankId,battery,slotState,returnState,crc}

下行查询: {CQ,messageId,slotId,crc}

slotId=0 查询全部槽位,设备用 AC 回复;正数查询单个槽位,设备用 CQ 回复。字段语义与 AC 相同。

AE: 槽位扩展健康上报

上行

{AE,messageId,deviceId,totalSlots,slotExtended1,...,slotExtendedN,crc}

每条记录为:

slotId:status:powerBankVersion:cycleCount:health:actualCapacity:realtimeElectrical

status含义
0空槽
1正常放电/待机
2正常充电
3已充满
201过压保护
202温度保护
203线材异常

healthactualCapacity 是设备上报值。最后一个实时电气字段在不同固件中存在电流/电压表示差异,应在确定具体机柜固件后按配置解析。默认上报周期为 600 秒。

CM: 借还规则配置

下行设置: {CM,messageId,minBattery,borrowOp,returnOp,lockErrorOp,voiceOp,debugOp,crc}

下行查询: {CM,messageId,0,0,0,0,0,0,crc}

上行结果: {CM,sameMessageId,minBattery,borrowOp,returnOp,lockErrorOp,voiceOp,debugOp,disabledMask,inventoryInterval,heartbeatInterval,brandPrefix,crc}

字段
minBattery0..100;设置请求中的 0 表示不变;默认 80
borrowOp101 借出后需要授权;100 无需授权;默认 101
returnOp100 不判断锁限位/轮询充电;101 判断锁限位/全充模式;199 实时切换轮询模式(回复为 99
lockErrorOp101 锁异常时禁用槽位;100 忽略此条件
voiceOp100..115 中文音量 0..15;200..215 英文音量 0..15
disabledMask十六进制位掩码:bit 0 对应 1 号槽;1 表示禁用
inventoryInterval
heartbeatInterval
brandPrefix0 关闭品牌隔离;其他值为充电宝 ID 必须匹配的前缀

未支持的操作值必须拒绝,不能自动纠正。

CC: 当前可借数量

下行: {CC,messageId,crc}

上行: {CC,sameMessageId,availableCount,crc}

availableCount 是机柜根据电量、槽位、归还状态、品牌及快充规则计算出的当前可借数量。它只是遥测数据,不代表后续弹出一定成功。