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!

Would there be an opportunity to influence the charging behavior of the evcc loadpoints by OpenEMS in future enhancements, to allow the OpenEMS solver to optimize the overall consumption, instead of using the evcc optimizer?
OpenEMS as the higher-level over-all EMS and evcc as a sub for EV charging?

Hi @janklostermann,

that’s an interesting thought. We don’t know how either system will evolve, but from our side, we’d certainly be open to considering a deeper integration like that — having OpenEMS act as the higher-level EMS with evcc handling the EV charging underneath.

However, as things stand, there doesn’t seem to be much interest from the maintainer of this repo in merging even our read-only integration (PR #3553), which has been open for quite some time without a review.

Without that foundation in place, further development in this direction is unfortunately unlikely from our side. It simply doesn’t make sense to invest more effort into follow-up features when the baseline PR remains unmerged.

cc: @iseeberg79

@stefan.feilmeier @Sn0w3y as both of you are active in reviewing, would one of you have s look at this PR, or whst is needed/who could do it?