Skip to content

Vaillant: report energy per circuit (heating vs. hot water) #33019

Description

@Johannes-del

Problem

Two Vaillant chargers on the same myVaillant system (one for hot water, one with zone: for the heating circuit) report the same power to both loadpoints. charger/vaillant.go decorates the meter with the MPC sum over all devices of the system (#17994), which has no notion of circuits. Every kWh gets counted twice, and the prioritizer credits one loadpoint with the other's consumption.

A 0 W dummy meter on the heating loadpoint (the workaround suggested in #32535) stops the double counting, but then heating sits at 0 kWh forever and hot water absorbs the entire heat pump consumption:

evcc for 2026-08-20: 2.58 kWh hot water, 0 kWh heating. myVaillant app, same day: 1.6 kWh hot water plus 1.1 kWh heating.

What I'd like

myVaillant does report electrical energy per circuit. That is where the app's own split comes from: /emf/v2/{systemId}/devices/{uuid}/buckets with operationMode=HEATING|DOMESTIC_HOT_WATER and energyType=CONSUMED_ELECTRICAL_ENERGY, summed over heat pump and backup heater. sensonet already wraps it (GetEnergyData, device list via GetDeviceData), evcc just never calls it. Decorating the charger with api.MeterEnergy (HEATING when zone is configured, DOMESTIC_HOT_WATER otherwise) would give each loadpoint its real energy, since evcc prefers meter totals over power integration.

I ran this outside evcc first, as loadpoint meters fed by a small local service reading those buckets. It matches the app to within rounding. Three things I hit doing that:

  • Power stays system-wide, there is no per-circuit power. Only the energy side can be fixed this way.
  • Buckets are hourly and get revised downwards occasionally. The total has to be accumulated monotonically, otherwise SetEnergyMeterTotal re-anchors to the lower value and books the same energy again on the way back up.
  • Standby (~12 W here) appears in no bucket, so both circuits together stay slightly below the system total. The app has the same gap.

evcc 0.314.0. Happy to send a PR if you want this.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions