Skip to content

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

  1. Add peripheral deviceModbus Server
  2. Enter the WattWächter's IP address and port 502
  3. Set slave ID to 1
  4. 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 0x8000 marker (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.