Skip to content

Periodic Upload

1、The device is powered on for 1 minute and reports data once.
2、The cabinet reports the complete machine data every 20 minutes.
3、Return the power bank (self-fix 0x28) and report the data immediately.

Command send ▼

Subscribe to topic: /powerbank/{uuid}/user/get

Data format: JSON string

NameIdentification codeData typeRemarks
Command namecmdstringupload_all

Update the whole machine report

text
{"cmd":"upload_all"}

Command Reply △

None, But Trigger API request

API Request

Request URL

POST

https://{host}/api/rentbox/client/upload?rentboxSN={rentboxSN}&signal={signal}&sign={sign} 

text
Request URL: /api/rentbox/client/upload
Content-Type:application/octet-stream
sign = MD5("rentboxSN={rentboxSN}|signal={signal}")

Request Parameters

NameIdentification codeIs it requiredRemarks
Server domain namehostYESProvided by the customer, for example: s.abc.com
cabinet SNrentboxSNYES4G communication module, IMEI number
signal valuesignalYES-
Interface signaturesignYESMD5 encryption

Body

Reported data: bytecode data, Hex, hexadecimal parsing

BytecodeNameIdentification codeRemarks
byte[0]Header codeheadDefault: 0xA8
byte[1~2]Packet lengthlengthFor example: 0x00 0x89, converted to decimal, the packet length is 137
byte[3]Command namecmdDefault: 0x10, cabinet information
byte[4~n]Custom datadataMovement board information, position information
byte[n+1]Verification codeverifyData packet complement check

Example: Report 8-port cabinet information

text
A8 00 89 10 01 FF FF 00 04 16 01 01 00 EC 00 05 11 49 F1 64 1F 32 01 0D 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 80 03 01 00 E8 00 05 11 46 AC 64 20 32 00 0D 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 80 02 FF FF 00 04 16 05 01 00 D7 00 04 C6 F0 96 64 1F 32 00 1A 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 80 07 01 00 E9 00 05 11 49 DB 64 1E 32 00 0D 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 80 D8
text
A8 -------------------------------------------- byte[0] Header code
00 89 ----------------------------------------- byte[1~2] Packet length: 137
10 -------------------------------------------- byte[3] Report cabinet information command
01 FF FF 00 04 16 ---------------------------- Movement board information: 1
01 01 00 EC 00 05 11 49 F1 64 1F 32 01 0D 00 -- Position information: 1
02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 -- Position information: 2
03 01 00 E8 00 05 11 46 AC 64 20 32 00 0D 00 -- Position information: 3
04 00 00 00 00 00 00 00 00 00 00 00 00 00 80 -- Position information: 4
02 FF FF 00 04 16 ----------------------------- Movement board information: 2
05 01 00 D7 00 04 C6 F0 96 64 1F 32 00 1A 00 -- Position information: 5
06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 -- Position information: 6
07 01 00 E9 00 05 11 49 DB 64 1E 32 00 0D 00 -- Position information: 7
08 00 00 00 00 00 00 00 00 00 00 00 00 00 80 -- Position information: 8
D8 -------------------------------------------- byte[136] checksum

Movement board information

Total 6 bytes. Example: Single movement board data

text
01 FF FF 00 04 16
Byte codeNameIdentification codeRemarks
byte[0]Movement board addresscontrolIndexRange: 1-100
byte[1]Reserved 1undefined 1Default: 0x00
byte[2]Reserved 2undefined 2Default: 0x00
byte[3]Temperaturetemp0x00: No NTC
0x10: 16℃
0x64: 100℃
byte[4-5]version numberversion0x0001:V1
0x041A:V1050
0x0FA1:V4001

Position information

15 bytes in total. Example: Single location data

text
01 01 00 EC 00 05 11 49 F1 64 1F 32 01 0D 00
Byte codeNameIdentification codeRemarks
byte[0]Location addressholeIndexRange: 1-100
byte[1]Status informationstate0x00:Slot empty, no power bank 0x01:Power bank normal 0x02:Region code error 0x03:Communication error 0x04:Anti-theft alarm 0x05~0xFF:Reserved
byte[2]Power bank currentpowerbankCurrKeep 1 decimal place
For example: 0x10=16, indicating 1.6A
byte[3]Voltage of power bank cellspowerbankVoltKeep 1 decimal place
For example, 0x10=16 means 1.6V
byte[4]Area codeareaCustomized
byte[5~8]Power bank SNpowerbankSN0x05 0x11 0x49 0xF1=85019121
byte[9]Battery levelsoc0x00、0xFF:0%
0x10:16%
0x64:100%
byte[10]Temperaturetemp0x00: No NTC
0x10: 16℃
0x64: 100℃
byte[11]Charging voltagechargeVoltKeep 1 decimal place
For example, 0x10=16 means 1.6V
byte[12]Charging currentchargeCurrKeep 1 decimal place
For example, 0x10=16, indicating 1.6A
byte[13]versionversion0x00: 0
0x10: V16
0xFF: V255
byte[14]sensor detectionsensorParse as Binary ----------- Bit[7]:Anti-theft function: 0 Disable, 1 Enable Bit[6]:Reserved-------- Bit[5]:Self-test status: 0 Idle, 1 Testing Bit[4]:Serial port status: 0 Normal, 1 Error Bit[3]:Charging status: 0 Not charging, 1 Charging Bit[2]:Reserved-------- Bit[1]:IR status: 0 Blocked, 1 Clear Bit[0]:Position/Micro switch: 0 Released, 1 Triggered ---------- 0x8B=1000 1011:Power bank detected, all normal 0x89=1000 1001:Power bank detected, but IR blocked 0x82=1000 0010:Slot empty 0x93=1001 0011:Foreign object detected (Serial communication error) 0xB3=1011 0011:Foreign object detected (Serial communication error), Self-test triggered

Position diagram

API Example

POST

https://s.abc.com/api/rentbox/client/upload?rentboxSN=860602069165357&signal=CSQ:30&sign=f212709ce41a2c6ac4ac3f6c9bdee020

text
Request URL: /api/rentbox/client/upload
Content-Type:application/octet-stream
sign = MD5("rentboxSN=860602069165357|signal=CSQ:30") 
     = f212709ce41a2c6ac4ac3f6c9bdee020

body hexs

text
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

API Response

NameIdentification codeTypeRemarks
status codecodeintDefault: 200
status typetypeintDefault: 0
Custom datadatastringDefault: ""
Exception messagemsgstringDefault: OK
timestamptimelongcurrent millisecond timestamp
json
{
    "code":200,
    "type":0,
    "data":"",
    "msg":"OK",
    "time":1705661910697
}