MBMap Registry
  1. Devices
  2. BYD
  3. Battery-Box Premium

BYD Battery-Box Premium Modbus register map

Also covers Battery-Box Premium HVS, Battery-Box Premium HVM, Battery-Box Premium HVL, Battery-Box Premium LVS, Battery-Box Premium LVL

Battery-Box Premium battery management unit, read-only status over its Ethernet port

  • Unofficial
  • 32 registers
  • Modbus TCP
  • Revision 1 · 2026-10-18
  • Identity: serial number

Unofficial: Copied from an unofficial source and not tested. Read it as a draft and check a value on the real device before you rely on the rest. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.

Communication

Protocol
Modbus TCP
Unit ID
1
TCP port
8080
Byte / word order
ABCD · bytes big-endian, words high first
Addresses
0-based

Connection values are defaults: the device may be configured differently.

Map

Registers
32 holding registers
Groups
2
Translation tables
3
Revision
1 · 2026-10-18
Added
()
File
maps/byd/battery-box-premium.mbmap.json · 8 KB · history
SHA-256
20e86c9867742b697d94315fba0da6f22e15ca40b876a345b71952535cf8357e
Manufacturer
byd.com

Device identity

What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.

Registers
RoleRegisterAddressTypeValues
Serial number Serial number holding 0 string[9]

Sources and notes

Source: Community reverse engineering of the BE Connect Plus protocol (sarnau/BYD-Battery-Box-Infos); BYD publishes no register map

  • Unofficial: BYD does not publish this protocol and the registers were worked out from the installer software. Treat every value as unchecked and keep to reading.
  • The battery management unit answers on its fixed Ethernet address 192.168.16.254, port 8080, unit id 1. It speaks Modbus RTU framing (with CRC) carried over a TCP connection, not Modbus TCP with the MBAP header; a client must be set to RTU-over-TCP.
  • Only one client can be connected at a time: the BE Connect Plus app and a monitoring script cannot run together. Wi-Fi access of the unit is switched off after a while, so the wired Ethernet port is the practical route; the unit needs a route to 192.168.16.0/24.
  • Readable blocks found by the community: 0x0000 to 0x0066 (hardware information and configuration), 0x0500 to 0x0518 (current status), 0x0550 to 0x0557 (BMS information) and 0x05A0 to 0x05A7 (history). The last two are request-and-response areas and are not mapped; registers 0x0010 to 0x0012 hold the hardware configuration and must never be written.
  • The bit meanings of the error bitmask at 0x050D are not mapped; the reference script prints it as a hexadecimal number.
AreaAddressNameTypeAccessUnitScaleDescription
HR 0 string[9] R 18 ASCII characters; the prefix tells the type: P03 or E0P3 for high-voltage packs (HVL, HVM, HVS), P02 or P011 for low-voltage ones (LVL, LVFlex, LVS)
HR 12 uint16 bits 8–15 R Firmware area A of the battery management unit, shown as V<major>.<minor>
HR 12 uint16 bits 0–7 R
HR 13 uint16 bits 8–15 R Firmware area B of the battery management unit
HR 13 uint16 bits 0–7 R
HR 14 uint16 bits 8–15 R Battery management system firmware
HR 14 uint16 bits 0–7 R
HR 15 uint16 bits 8–15 R
HR 15 uint16 bits 0–7 R
HR 16 uint16 bits 0–3 R
HR 16 uint16 bits 4–7 R
HR 16 uint16 bits 8–11 R Index into the list of inverters the pack was configured for; the list in the reference script has more entries than four bits can address. Do not change it: it is the hardware configuration
HR 17 uint16 bits 8–15 R
HR 17 uint16 bits 0–7 R Index into the battery type list of the serial prefix: HVL, HVM, HVS for P03 and E0P3, or LVL, LVFlex (Lite), LVS / LVS Lite for P02 and P011
HR 18 uint16 bits 8–15 R
HR 1280 uint16 R %
HR 1281 uint16 R V ×0.01
HR 1282 uint16 R V ×0.01
HR 1283 uint16 R %
HR 1284 int16 R A ×0.1
HR 1285 uint16 R V ×0.01
HR 1286 uint16 R °C
HR 1287 uint16 R °C
HR 1288 uint16 R °C
HR 1290 uint16 bits 8–15 R
HR 1290 uint16 bits 0–7 R
HR 1293 uint16 R Bit set for each error; the bit meanings of the pack are not documented here
HR 1294 uint16 bits 8–15 R Parameter table version
HR 1294 uint16 bits 0–7 R
HR 1296 uint16 R V ×0.01
HR 1297 uint16 R Read as one register by the reference script; the neighbouring register may hold the high word
HR 1299 uint16 R Read as one register by the reference script

Help improve this map