> 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/koppelingen/modbus-rtu-tcp/sdm630.md).

# SDM630

Deze mapping bootst de veelgebruikte registerindeling van de Easton SDM630 na.

De bronnamen geven de natuurlijke eenheid van de waarde aan. De `scale` bepaalt hoe deze waarde naar het register wordt omgerekend. Bijvoorbeeld:

* `net_power_l1_kw` met `scale 1000` wordt als W weggeschreven
* `voltage_l1_v` met `scale 1` blijft V
* `energy_delivered_total_kwh` met `scale 1` blijft kWh

## Aannames en ontbrekende waarden

* Alle waarden zijn 32-bit floats en worden als high word gevolgd door low word verzonden, behalve het serienummer op register `0xFC00` dat een UINT32 is.
* De P1-telegram levert geen arbeidsfactor of schijnbaar vermogen. Daarom neemt de SDM630-mapping arbeidsfactor 1 aan: schijnbaar vermogen is `abs(actief vermogen)` en reactief vermogen is `0 var`.
* Register 48 is de som van dezelfde drie fasestromen die registers 6, 8 en 10 gebruiken.
* `direction_l1`, `direction_l2`, `direction_l3` en `direction_total` geven `-1` bij teruglevering en `1` bij afname.
* Alleen voor het SDM630-profiel worden ontbrekende velden en niet-gemapte registers binnen het ondersteunde adresbereik als nul teruggegeven. Andere mappings blijven `MBUS_VAL_UNAVAILABLE` (`0xFFFFFFFF`) gebruiken.

## Registermapping

| Register | Betekenis                           | Bron                         | Eenheid | Scale | Type   |
| -------: | ----------------------------------- | ---------------------------- | ------- | ----: | ------ |
|        0 | Spanning L1                         | `voltage_l1_v`               | V       |     1 | float  |
|        2 | Spanning L2                         | `voltage_l2_v`               | V       |     1 | float  |
|        4 | Spanning L3                         | `voltage_l3_v`               | V       |     1 | float  |
|        6 | Stroom L1                           | `current_l1_a`               | A       |     1 | float  |
|        8 | Stroom L2                           | `current_l2_a`               | A       |     1 | float  |
|       10 | Stroom L3                           | `current_l3_a`               | A       |     1 | float  |
|       12 | Actief vermogen L1                  | `net_power_l1_kw`            | W       |  1000 | float  |
|       14 | Actief vermogen L2                  | `net_power_l2_kw`            | W       |  1000 | float  |
|       16 | Actief vermogen L3                  | `net_power_l3_kw`            | W       |  1000 | float  |
|       18 | Schijnbaar vermogen L1              | `apparent_power_l1_va`       | VA      |     1 | float  |
|       20 | Schijnbaar vermogen L2              | `apparent_power_l2_va`       | VA      |     1 | float  |
|       22 | Schijnbaar vermogen L3              | `apparent_power_l3_va`       | VA      |     1 | float  |
|       24 | Reactief vermogen L1                | vaste waarde `0`             | var     |     1 | float  |
|       26 | Reactief vermogen L2                | vaste waarde `0`             | var     |     1 | float  |
|       28 | Reactief vermogen L3                | vaste waarde `0`             | var     |     1 | float  |
|       30 | Richting L1                         | `direction_l1`               | -       |     1 | float  |
|       32 | Richting L2                         | `direction_l2`               | -       |     1 | float  |
|       34 | Richting L3                         | `direction_l3`               | -       |     1 | float  |
|       48 | Totale stroom                       | `current_total_a`            | A       |     1 | float  |
|       52 | Totaal actief vermogen              | `net_power_total_kw`         | W       |  1000 | float  |
|       56 | Totaal schijnbaar vermogen          | `apparent_power_total_va`    | VA      |     1 | float  |
|       60 | Totaal reactief vermogen            | vaste waarde `0`             | var     |     1 | float  |
|       62 | Totale richting                     | `direction_total`            | -       |     1 | float  |
|       70 | Frequentie                          | vaste waarde `50`            | Hz      |     1 | float  |
|       72 | Geïmporteerde actieve energie       | `energy_delivered_total_kwh` | kWh     |     1 | float  |
|       74 | Geëxporteerde actieve energie       | `energy_returned_total_kwh`  | kWh     |     1 | float  |
|      200 | Lijnspanning L1-L2                  | `line_voltage_l12_v`         | V       |     1 | float  |
|      202 | Lijnspanning L2-L3                  | `line_voltage_l23_v`         | V       |     1 | float  |
|      204 | Lijnspanning L3-L1                  | `line_voltage_l31_v`         | V       |     1 | float  |
|      342 | Totale doorgevoerde actieve energie | import + export              | kWh     |     1 | float  |
| `0xFC00` | Serienummer dongle                  | `device_serial_u32`          | -       |     1 | UINT32 |

{% hint style="warning" %}
Vanaf firmware 5.9.5 hebben registers 24, 26, 28 en 60 de officiële SDM630-betekenis voor reactief vermogen. Eerdere firmware gaf hier ten onrechte nogmaals actief vermogen terug.
{% endhint %}
