Loxone Miniserver¶
The WattWächter Plus integrates with Loxone via its Modbus TCP server. Loxone Config has no SunSpec auto-discovery — unlike Home Assistant or evcc, the Miniserver does not parse the SunSpec header itself. Registers must be added manually.
Prerequisites¶
- WattWächter Plus running firmware 1.1.0 or newer
- Modbus TCP enabled on the WattWächter — see Modbus TCP → Enabling
- Loxone Miniserver (Gen 1 with Modbus Extension or Gen 2) on the same network
Step 1 — Add the Modbus server in Loxone Config¶
- Add peripheral device → Modbus Server
- Enter the WattWächter's IP address and port 502
- Set slave ID to
1 - Choose a polling interval (e.g. 5–10 s)
Step 2 — Add the registers manually¶
For each value you want to use, add a Modbus sensor under the Modbus server. The most relevant registers:
| Value | Address | Count | Data type | Scaling (SF register) |
|---|---|---|---|---|
| Total active power | 40088 | 1 | int16 (signed!) | 40092 (W_SF) |
| Active power L1 / L2 / L3 | 40089 / 40090 / 40091 | 1 | int16 | 40092 (W_SF) |
| Current L1 / L2 / L3 | 40073 / 40074 / 40075 | 1 | int16 | 40076 (A_SF) |
| Voltage L1 / L2 / L3 | 40078 / 40079 / 40080 | 1 | int16 | 40085 (V_SF) |
| Frequency | 40086 | 1 | int16 | 40087 (Hz_SF) |
| Total import | 40116 | 2 | uint32 (acc32) | 40124 (TotWh_SF) |
| Total export | 40108 | 2 | uint32 (acc32) | 40124 (TotWh_SF) |
The complete register map (all SunSpec fields, data types, OBIS codes) is in the Modbus TCP reference.
For each value in Loxone:
- Read the scaling factor as a separate sensor and apply it via a formula/status block:
value = raw × 10^SF. The SF registers are stable in practice — you can also read them once and hard-code the constant to avoid an extra calculation. - Sentinel filter: values ≤ −32000 are the SunSpec
0x8000marker (not implemented). Filter them out via a status block, otherwise Loxone will display bogus values for fields your meter doesn't deliver. Use the status endpoint to see which fields are valid.
Step 3 — Split import and export¶
Total power W (40088) is signed: positive on import, negative on export. For the Loxone energy monitor, split the value via a status block into two quantities:
- Import =
MAX(W, 0) - Export =
MAX(-W, 0)
The energy counters TotWhImp (import) and TotWhExp (export) live in separate registers anyway — wire those up directly.
Which registers does my meter deliver?
The WattWächter always populates W, TotWhImp and TotWhExp with valid values (falling back to 0 when no data is available), so that Loxone accepts the device as a valid meter. Per-phase values and frequency are only populated when your meter delivers the corresponding OBIS codes. A live overview is available at /api/v1/modbus/status.