evcc

Solar-aware charging for electric vehicles

Home Automation MIT Advanced ★ 7,316 stars

What is evcc?

evcc coordinates an EV charger, a solar inverter, a battery and a smart meter so the car charges from surplus solar power rather than from the grid. It supports an unusually wide range of hardware for a niche tool.

Best for

Charging an EV from your own solar production

Why choose evcc

evcc solves a problem that is genuinely hard to solve otherwise: charging an electric car from your own solar production rather than the grid. It reads your inverter, battery, smart meter and charger, and coordinates them so the car charges from surplus power, tracking the changing output as clouds pass and the house load shifts. It supports an unusually wide range of hardware for a niche tool, because the community has reverse-engineered or documented the APIs of a large number of inverters and chargers. Beyond solar optimisation it handles scheduled charging, tariff-aware charging in cheaper windows, and vehicle preconditioning. For anyone with panels and an EV, it typically converts otherwise-exported electricity into kilometres, which is a tangible return that most home automation does not provide.

Replaces

  • Zappi Hub
  • Proprietary inverter apps
  • OpenWB

Key features

  • Reads production, consumption and battery state
  • Dynamically adjusts charging current
  • Vehicle and charger integrations
  • Web UI with statistics

What to watch out for

Setup is genuinely involved, and the difficulty is hardware compatibility rather than the software itself. You need a supported inverter, meter and charger, and some combinations require additional hardware or a local API that a vendor firmware update can disable. Vendor cloud APIs are a persistent risk: a manufacturer changing or removing access breaks functionality that worked, and local control is always preferable to cloud control for exactly that reason. Charging control is not the same as charging safety — the vehicle and the charger own the electrical limits, and evcc's job is optimisation, so do not treat it as a protection layer. Getting reliable readings sometimes requires installing a separate energy meter, which is an additional purchase and installation.

How to deploy

  • Docker with access to your inverters and charger
  • Configure meters, chargers and vehicles
  • Set charging modes and priorities

Getting started

Check your inverter, meter and charger against the supported list before buying anything else, because compatibility determines feasibility. Prefer local interfaces over cloud APIs wherever the hardware allows, since that is what survives a vendor firmware change. Start with the meter and verify the readings against reality — a wrong sign or a mis-scaled value produces charging behaviour that looks like a bug in the logic. Then add the charger and confirm a basic minimum-current charge before enabling solar tracking. Set the minimum charge power and the phase-switching behaviour deliberately, because those determine how the system behaves as solar output fluctuates.

Typical setup

It runs alongside an inverter, a meter and a charger that have been checked against the supported hardware list first, because compatibility determines whether the project is feasible at all. Local interfaces are preferred over vendor cloud APIs wherever the hardware allows, since those survive firmware changes. The meter is configured and its readings verified against reality before the charger is added, because a wrong sign or scale produces behaviour that looks like a logic bug. Minimum charge power and phase-switching behaviour are set deliberately, and a basic minimum-current charge is confirmed before solar tracking is enabled.

Who should look elsewhere

Do not attempt it if your hardware is unsupported or only accessible through a cloud API the manufacturer could change, because reliability will depend on a third party's goodwill. Avoid it if you have no solar generation or cheap tariff to optimise around, since there is nothing for it to coordinate. And if you are not comfortable diagnosing a system that spans an inverter, a meter and a charger, the complexity will likely outweigh the savings.

Project health

  • GitHub stars: 7,316
  • Last code push: 2026-10-01
  • Open issues: 182
  • Status: actively developed

Figures pulled from the GitHub API and refreshed periodically.

More in Home Automation