EVCC integration as read only EVCS

Hi,

as already mentioned here, @iseeberg79 and I have developed a new read-only EVCS meter integration for OpenEMS that reads loadpoint data from an evcc instance via its HTTP API. The PR can be found here: #3553.

What it does:

The integration exposes evcc loadpoints as OpenEMS meter components, allowing vehicle charging consumption to be properly reflected in OpenEMS energy flows and history. This aligns with the Read-Only Integration approach (option 1) outlined in the EMS Integration proposal.

Specifically, the implementation provides:

  • Two meter components: LoadpointConsumptionMeterEvcc (3-phase) and LoadpointConsumptionSinglePhaseMeterEvcc (single-phase) to support different wallbox configurations
  • Captured metrics per loadpoint: power (total + per phase), voltage and current (per phase), energy (session + cumulative), vehicle information (name, charging state, mode), plug state, and active phases
  • Automatic loadpoint matching: The component matches the configured loadpoint by title with an index-based fallback
  • ElectricityMeter-compliant energy calculation: Uses calculateEnergyFromPower() to derive energy values from power readings
  • Complete test coverage with fixtures for both meter implementations

A note on our approach:

During development, we explored different approaches across multiple branches. For this initial PR, we deliberately chose the simplest and most straightforward method, using calculateEnergyFromPower() to derive energy values from power readings. We believe this is a solid and reliable foundation for a first integration.

However, we also have a branch that directly reads the rising (cumulative) energy values provided by evcc. Many wallboxes are equipped with MID-certified meters, which means these energy values are already highly accurate.

Using them directly would avoid the inherent imprecision of calculating energy from power over time. We would be happy to submit this as a follow-up PR if there is interest.

We have been testing the implementation over the past weeks in our environments and it has been working reliably.

We are genuinely motivated to contribute to the OpenEMS ecosystem and would be happy to maintain this integration long-term — including bug fixes, updates for future evcc API changes, and the follow-up PRs mentioned above. If there are any changes, improvements, or adjustments needed to align with OpenEMS coding standards or architecture, we are very open to feedback and will address review comments promptly.

We would really appreciate a timely review so we can keep the momentum going. We have more ideas for deeper integration between evcc and OpenEMS, but would like to build on a merged foundation rather than maintaining diverging branches indefinitely.

Happy to discuss any questions or suggestion!

3 Likes