# Default float mapping

### Defaults

* Modbus device id: `1`
* RS485: `9600 8E1`
* Function codes: `FC03`
* Data format: mostly `float32`, plus a few `uint32` status registers
* Address range: `0-52`

### Registers

| Register | Description                | Type      | Unit / encoding                  |
| -------- | -------------------------- | --------- | -------------------------------- |
| 0        | sample timestamp           | `uint32`  | epoch UTC                        |
| 2        | energy\_delivered\_tariff1 | `float32` | kWh                              |
| 4        | energy\_delivered\_tariff2 | `float32` | kWh                              |
| 6        | energy\_returned\_tariff1  | `float32` | kWh                              |
| 8        | energy\_returned\_tariff2  | `float32` | kWh                              |
| 10       | energy\_delivered\_total   | `float32` | kWh                              |
| 12       | energy\_returned\_total    | `float32` | kWh                              |
| 14       | power\_delivered           | `float32` | kW                               |
| 16       | power\_returned            | `float32` | kW                               |
| 18       | net\_power\_total          | `float32` | W                                |
| 20       | voltage\_l1                | `float32` | V                                |
| 22       | voltage\_l2                | `float32` | V                                |
| 24       | voltage\_l3                | `float32` | V                                |
| 26       | current\_l1                | `float32` | A, negative when returning on L1 |
| 28       | current\_l2                | `float32` | A, negative when returning on L2 |
| 30       | current\_l3                | `float32` | A, negative when returning on L3 |
| 32       | gas timestamp              | `uint32`  | epoch UTC                        |
| 34       | gas delivered              | `float32` | m3                               |
| 36       | tariff                     | `uint32`  | numeric tariff id                |
| 38       | peak power last quarter    | `float32` | meter value                      |
| 40       | net\_power\_l1             | `float32` | W                                |
| 42       | net\_power\_l2             | `float32` | W                                |
| 44       | net\_power\_l3             | `float32` | W                                |
| 46       | water delivered            | `float32` | m3                               |
| 48       | identifier                 | `uint32`  | fixed `P1DO` = `0x5031444F`      |
| 50       | firmware version           | `uint32`  | packed `MMmmpp`                  |
| 52       | online flag                | `uint32`  | `1` = online, `0` = offline      |

### Notes

* Missing float values are returned as `NaN`.
* Missing integer values use `0xFFFFFFFF`.
* This mapping is useful when the Modbus client expects engineering values directly as floats.
