# Inepro / KLEFR 6924 emulation

### Defaults

* Modbus device id: `1`
* RS485: `9600 8N1`
* Function codes: `FC03`
* Base address: requests start at `0x4000`
* Data format: mainly `float32`, plus a small number of `uint32` info registers

### Identification block

| Register | Description               | Value      |
| -------- | ------------------------- | ---------- |
| `0x4000` | fixed identifier          | `18010365` |
| `0x4005` | fixed firmware-like value | `1.18`     |
| `0x4007` | fixed model-like value    | `18`       |
| `0x4009` | fixed flag                | `1`        |

### Power quality and measurements

| Register | Description                      | Unit / encoding                  |
| -------- | -------------------------------- | -------------------------------- |
| `0x5000` | single-phase voltage placeholder | `NaN`                            |
| `0x5002` | voltage\_l1                      | V                                |
| `0x5004` | voltage\_l2                      | V                                |
| `0x5006` | voltage\_l3                      | V                                |
| `0x5008` | frequency                        | `50.0` Hz                        |
| `0x500A` | average current placeholder      | `NaN`                            |
| `0x500C` | current\_l1                      | A                                |
| `0x500E` | current\_l2                      | A                                |
| `0x5010` | current\_l3                      | A                                |
| `0x5012` | active\_power\_total             | kW-like DSMR engineering value   |
| `0x5014` | active\_power\_l1                | kW-like DSMR engineering value   |
| `0x5016` | active\_power\_l2                | kW-like DSMR engineering value   |
| `0x5018` | active\_power\_l3                | kW-like DSMR engineering value   |
| `0x501A` | reactive\_power\_total           | not implemented                  |
| `0x501C` | reactive\_power\_l1              | not implemented                  |
| `0x501E` | reactive\_power\_l2              | not implemented                  |
| `0x5020` | reactive\_power\_l3              | not implemented                  |
| `0x5022` | apparent\_power\_total           | mirrors total active power logic |
| `0x5024` | apparent\_power\_l1              | mirrors L1 active power logic    |
| `0x5026` | apparent\_power\_l2              | mirrors L2 active power logic    |
| `0x5028` | apparent\_power\_l3              | mirrors L3 active power logic    |
| `0x502A` | power\_factor\_total             | `1.0` or `-1.0`                  |
| `0x502C` | power\_factor\_l1                | `1.0` or `-1.0`                  |
| `0x502E` | power\_factor\_l2                | `1.0` or `-1.0`                  |
| `0x5030` | power\_factor\_l3                | `1.0` or `-1.0`                  |

### Energy registers

| Register | Description             | Unit / encoding         |
| -------- | ----------------------- | ----------------------- |
| `0x6000` | net energy total        | imported minus exported |
| `0x6002` | net energy tariff 1     | imported minus exported |
| `0x6004` | net energy tariff 2     | imported minus exported |
| `0x6006` | per-phase net energy    | average of all phases   |
| `0x6008` | per-phase net energy    | average of all phases   |
| `0x600A` | per-phase net energy    | average of all phases   |
| `0x600C` | forward energy total    | imported                |
| `0x600E` | forward energy tariff 1 | imported                |
| `0x6010` | forward energy tariff 2 | imported                |
| `0x6012` | forward phase energy    | average of all phases   |
| `0x6014` | forward phase energy    | average of all phases   |
| `0x6016` | forward phase energy    | average of all phases   |
| `0x6018` | reverse energy total    | exported                |
| `0x601A` | reverse energy tariff 1 | exported                |
| `0x601C` | reverse energy tariff 2 | exported                |
| `0x601E` | reverse phase energy    | average of all phases   |
| `0x6020` | reverse phase energy    | average of all phases   |
| `0x6022` | reverse phase energy    | average of all phases   |

### Device info

| Register | Description      | Value               |
| -------- | ---------------- | ------------------- |
| 400      | device id        | current `DevID`     |
| 402      | serial config    | encoded serial mode |
| 404      | baudrate         | actual baudrate     |
| 406      | pre4 meter flag  | `0` or `1`          |
| 408      | firmware version | packed `MMmmpp`     |
| 410      | dongle name      | packed `P1M3`       |
