> For the complete documentation index, see [llms.txt](https://docs.smart-stuff.nl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.smart-stuff.nl/p1-modbus-dongle/firmware-v2-current/register-mapping/wallbox-p1mb.md).

# Wallbox - P1MB

## Mapping behaviour

* Device Manager mapping value: `12`
* Profile: `XEMEX`
* Read function codes: `FC03` and `FC04`
* Register widths: mixed 16-bit and 32-bit
* 32-bit word order: high word first (MSW-LSW)
* Unmapped register handling: Zero-filled

{% hint style="info" %}
Device ID, baud rate and serial format are global firmware v2 settings. They are not changed when this mapping is selected.
{% endhint %}

## Register overview

| Address (decimal / hex) | Words | Type     | Source or fixed value          | Conversion | Missing |
| ----------------------- | ----: | -------- | ------------------------------ | ---------- | ------- |
| `0` / `0x0000`          |     8 | `text`   | `constant "WBXCSB0000013123"`  | —          | zero    |
| `8` / `0x0008`          |     3 | `text`   | `constant "XEMEX"`             | —          | zero    |
| `11` / `0x000B`         |     8 | `text`   | `constant "XM_P1MB_V03"`       | —          | zero    |
| `19` / `0x0013`         |     1 | `uint16` | `dev_id`                       | —          | zero    |
| `20` / `0x0014`         |    48 | `text`   | `header_text`                  | —          | zero    |
| `68` / `0x0044`         |     2 | `text`   | `p1_version_text`              | —          | zero    |
| `70` / `0x0046`         |     7 | `text`   | `timestamp_text`               | —          | zero    |
| `78` / `0x004E`         |    48 | `text`   | `equipment_id_text`            | —          | zero    |
| `126` / `0x007E`        |     2 | `uint32` | `energy_delivered_tariff1_kwh` | scale 1000 | zero    |
| `128` / `0x0080`        |     2 | `uint32` | `energy_delivered_tariff2_kwh` | scale 1000 | zero    |
| `130` / `0x0082`        |     2 | `uint32` | `energy_returned_tariff1_kwh`  | scale 1000 | zero    |
| `132` / `0x0084`        |     2 | `uint32` | `energy_returned_tariff2_kwh`  | scale 1000 | zero    |
| `134` / `0x0086`        |     2 | `text`   | `tariff_text`                  | —          | zero    |
| `136` / `0x0088`        |     2 | `uint32` | `power_delivered_kw`           | scale 1000 | zero    |
| `138` / `0x008A`        |     2 | `uint32` | `power_returned_kw`            | scale 1000 | zero    |
| `761` / `0x02F9`        |     2 | `uint32` | `voltage_l1_v`                 | scale 10   | zero    |
| `763` / `0x02FB`        |     2 | `uint32` | `voltage_l2_v`                 | scale 10   | zero    |
| `765` / `0x02FD`        |     2 | `uint32` | `voltage_l3_v`                 | scale 10   | zero    |
| `767` / `0x02FF`        |     1 | `uint16` | `current_l1_a`                 | —          | zero    |
| `769` / `0x0301`        |     1 | `uint16` | `current_l2_a`                 | —          | zero    |
| `771` / `0x0303`        |     1 | `uint16` | `current_l3_a`                 | —          | zero    |
| `773` / `0x0305`        |     2 | `uint32` | `power_delivered_l1_kw`        | scale 1000 | zero    |
| `775` / `0x0307`        |     2 | `uint32` | `power_delivered_l2_kw`        | scale 1000 | zero    |
| `777` / `0x0309`        |     2 | `uint32` | `power_delivered_l3_kw`        | scale 1000 | zero    |
| `779` / `0x030B`        |     2 | `uint32` | `power_returned_l1_kw`         | scale 1000 | zero    |
| `781` / `0x030D`        |     2 | `uint32` | `power_returned_l2_kw`         | scale 1000 | zero    |
| `783` / `0x030F`        |     2 | `uint32` | `power_returned_l3_kw`         | scale 1000 | zero    |
| `785` / `0x0311`        |     1 | `uint16` | `mbus_device_type_ch1`         | —          | zero    |
| `786` / `0x0312`        |     1 | `uint16` | `mbus_device_type_ch2`         | —          | zero    |
| `787` / `0x0313`        |     1 | `uint16` | `mbus_device_type_ch3`         | —          | zero    |
| `788` / `0x0314`        |     1 | `uint16` | `mbus_device_type_ch4`         | —          | zero    |
| `789` / `0x0315`        |    48 | `text`   | `mbus_equipment_id_ch1_text`   | —          | zero    |
| `837` / `0x0345`        |    48 | `text`   | `mbus_equipment_id_ch2_text`   | —          | zero    |
| `885` / `0x0375`        |    48 | `text`   | `mbus_equipment_id_ch3_text`   | —          | zero    |
| `933` / `0x03A5`        |    48 | `text`   | `mbus_equipment_id_ch4_text`   | —          | zero    |
| `981` / `0x03D5`        |     7 | `text`   | `mbus_timestamp_ch1_text`      | —          | zero    |
| `988` / `0x03DC`        |     2 | `uint32` | `mbus_delivered_ch1_m3`        | scale 1000 | zero    |
| `990` / `0x03DE`        |     7 | `text`   | `mbus_timestamp_ch2_text`      | —          | zero    |
| `997` / `0x03E5`        |     2 | `uint32` | `mbus_delivered_ch2_m3`        | scale 1000 | zero    |
| `999` / `0x03E7`        |     7 | `text`   | `mbus_timestamp_ch3_text`      | —          | zero    |
| `1006` / `0x03EE`       |     2 | `uint32` | `mbus_delivered_ch3_m3`        | scale 1000 | zero    |
| `1008` / `0x03F0`       |     7 | `text`   | `mbus_timestamp_ch4_text`      | —          | zero    |
| `1015` / `0x03F7`       |     2 | `uint32` | `mbus_delivered_ch4_m3`        | scale 1000 | zero    |
| `1017` / `0x03F9`       |     2 | `uint32` | `energy_delivered_total_kwh`   | scale 1000 | zero    |
| `1019` / `0x03FB`       |     2 | `uint32` | `energy_returned_total_kwh`    | scale 1000 | zero    |
| `1021` / `0x03FD`       |     4 | `text`   | `p1_version_be_text`           | —          | zero    |

## Reading the table

* **Words** is the number of consecutive 16-bit Modbus registers occupied by the entry.
* **Source** names correspond directly to the firmware v2 recipe source.
* **Conversion** records the exact scale, transform or direction handling configured by the recipe.
* This page is generated from `mb_recipe.h` and `modbus_profiles.h` for firmware 2.3.0.
