mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Self-Hostedevaluationupdated 27 Aug 2026

evcc review

evcc is a local electric-vehicle charge controller and home energy manager that coordinates chargers, cars, meters, solar inverters, batteries, and electricity prices. It decides when and how hard to charge so a household can favor solar production, lower-cost grid periods, or a requested departure target.

+30stars / 7d
Verdict

Our evcc Node setup installed 682 packages and used 469 MB, but no build or test target ran and npm audit found 2 high plus 2 moderate vulnerabilities. Choose evcc when your exact charger, meter, and vehicle combination is documented and solar-aware charging is worth operating a dedicated controller. Treat it as physical infrastructure: retain hardware safety limits, confirm sponsor-token requirements, and validate every control mode before unattended use.

We ran it

Lab card: what happened when we ran evccScreenshot of evcc (evcc.io)
Install✓ · 23s682 packages · 469 MB
Buildn/ano build script
Testsn/ano test script
Known vulns40 critical · 2 high · 2 moderate · 0 low (npm audit)
Repo2606 files~257,727 lines of source · 13.3 MB · 25 CI workflows · Dockerfile · tests dir

Answers from our run

Does evcc build from source?

Dependencies installed in 23 seconds (682 packages), and the project has no separate build step. We cloned commit 5960e9f into a clean Debian container with 3 CPUs and no project-specific setup.

Does evcc have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does evcc have known vulnerabilities in its dependencies?

npm audit flagged 4 known advisories in the dependency tree at the time of our run.

Who should not use evcc?

Buyers whose exact hardware combination is absent from the device documentation, even if the same brand appears elsewhere in the long support list.

What are the alternatives to evcc?

OpenEMS, Home Assistant, openHAB Core. Our evcc Node setup installed 682 packages and used 469 MB, but no build or test target ran and npm audit found 2 high plus 2 moderate vulnerabilities.

Setup2/5Hardware, credentials, and config dominate; lab had no build target
Docs5/5Large device matrix and English setup references cover real integrations
Community5/57,143 stars with releases and device work in late August
Maturity4/5Frequent releases and broad hardware support, with active control bugs

Who it’s for

EV owners with a supported charger, meter, inverter, vehicle, or usable plugin interface.
Solar households that want charging power adjusted to local surplus.
Home-automation users integrating through REST, MQTT, Home Assistant, or openHAB.
Self-hosters able to validate electrical behavior and maintain device credentials.

Who it’s NOT for

Buyers whose exact hardware combination is absent from the device documentation, even if the same brand appears elsewhere in the long support list.
Users assuming every open-source component is covered by MIT alone: the README says sponsor-required components are excluded and need one token per instance.
Households unwilling to maintain vehicle-cloud, charger, inverter, or tariff credentials when their chosen integrations require them.
Anyone expecting our Node run to prove the Go controller: the measured package had no build or test target, so neither daemon compilation nor charging logic was tested.
Installations where an incorrect phase, current, or state-of-charge decision has no safe hardware limit: current issues discuss settings conflicts and continuous-mode phase scaling.

Setup reality

Our sandbox installed 682 npm packages in 23 seconds and used 469 MB. The root package had no build script or target and no test script or target, so both steps were skipped. Npm audit reported 4 known vulnerabilities: 2 high and 2 moderate, with 0 critical and 0 low.

That run covered the repository's Node tooling, not a working EV controller. Real setup needs the evcc daemon, a configuration, and reachable charger, meter, inverter, battery, vehicle, or tariff integrations. Some devices use local protocols; others need cloud credentials. Sponsor-required components need a token per instance.

Charging control touches physical equipment. Keep device-side current and safety limits, verify phase behavior, and test with conservative settings. Docker is available, but network access to local Modbus, OCPP, MQTT, HTTP, or vendor endpoints still has to be designed.

evcc coordinates the charger with the rest of the house

evcc's useful unit is the whole energy system, not the wallbox alone. It can read grid import, solar generation, battery state, vehicle state of charge, and tariff information, then adjust charging toward a selected goal. The web interface exposes those choices while REST and MQTT connect the controller to broader home automation. That is more useful than a charger vendor app when several brands must cooperate.

The README lists a very large set of chargers, meters, solar and battery systems, vehicles, heat pumps, and smart switches. Brand presence is only the first filter. Different models and firmware can use different APIs, and vehicle state may come from a cloud service rather than the car on the local network. Check the device-specific documentation for every component before buying hardware around evcc.

What happened when we ran it

Our sandbox installed 682 npm packages in 23 seconds and occupied 469 MB. The root package exposed no build script or target, so the build step was skipped. It also exposed no test script or target, so tests were skipped. We did not convert either absence into a pass. Npm audit reported 4 known vulnerabilities: 2 high and 2 moderate, with 0 critical and 0 low.

The measured checkout was commit 5960e9f in an unprivileged Node 22 container with 3 CPUs and 8 GB of RAM. It contained 2,606 files, about 257,727 lines of source, and occupied 13.3 MB before the npm install. Our scan found 25 CI workflow files, a Dockerfile, and a tests directory. The root package scripts provide linting, development, Playwright, simulation, Storybook, and license checks, but no generic build or test command.

These results describe the repository's JavaScript tooling, not the Go controller's runtime. We did not compile the daemon, connect a charger, simulate solar surplus, change a current limit, or run its Go tests. The 469 MB footprint matters to contributors and UI tooling. It is not a measurement of the published evcc container or appliance storage.

Local control still depends on outside services for some devices

The project goal is local energy management without relying on an evcc cloud service. Many Modbus, SunSpec, MQTT, HTTP, EEBus, and OCPP paths can communicate on the home network. Vehicle and tariff integrations may still depend on manufacturer or provider clouds. An outage, changed login flow, expired token, or vendor rate limit can remove state that a charging rule expects.

Configuration therefore needs failure behavior, not just successful credentials. Decide what charging should do when the vehicle state of charge is unknown, a meter stops reporting energy, or an inverter disappears. Release 0.314.3 added a fallback to power integration when a meter loses its energy register and kept OCPP WebSockets alive between heartbeats. Those fixes show the kind of partial telemetry a real installation encounters.

Sponsor tokens alter the open-source calculation

The repository is licensed under MIT, with an explicit exception. The README says sponsor-required components are excluded from that license and require one evcc sponsorship token per instance; custom licensing is available. This is not a hidden hosted subscription, but it means hardware selection can determine whether a nominally self-hosted setup needs a paid token.

Read the sponsorship page and the source header for the chosen device before committing to it. A supported charger that requires a token has a different total cost from one using an unrestricted local protocol. The model funds integration work, and buyers still need the condition stated up front because a long brand list can obscure per-device terms.

Physical limits must remain outside the software

Charging current and phase switching affect real electrical equipment. evcc should operate inside limits enforced by the charger, installation, breaker, cable, and vehicle. Software settings are useful for optimization, but they should not be the only protection against an unsafe command or stale reading. Start with conservative current bounds and watch several complete charging sessions before enabling unattended tariff or surplus rules.

The August 27 issue queue included a report that phase and current settings conflict or do not stick, plus work on restoring a configured default mode after restart. Another issue described one-phase scaling being blocked in continuous modes, with a related fix in progress. Those are specific live reports rather than a claim that all phase switching is broken. They identify regression cases for installations using the same modes.

Release 0.314.3 reflects fast device maintenance

Version 0.314.3 was published August 23, 2026, and GitHub recorded a push on August 27. The repository had 7,143 stars and 142 combined open issues and pull requests when fetched. Device fixes and additions were active on August 26 and 27. That cadence suits a project tracking changing firmware and vendor APIs, though frequent updates also call for staged deployment.

evcc is compelling when its compatibility matrix matches the entire house. The controller can then turn otherwise separate devices into one understandable charging policy. Our limited Node result leaves the central Go runtime unverified, so adoption should begin with the project's own simulator or conservative live setup, followed by checks for disconnects, restarts, phase changes, sponsor requirements, and device-side safety limits.

Alternatives

ProjectWhat it isPick it when
OpenEMSA modular energy-management platform for storage, generation, loads, and grid services.pick this instead when a general energy-management framework and custom controller development matter more than an EV-first interface.
Home Assistant gh↗A broad home-automation system with energy dashboards and many device integrations.pick this instead when EV charging is one automation among many and custom automations are acceptable.
openHAB CoreThe automation runtime behind openHAB's device bindings and rules.pick this instead when an existing openHAB installation should own the charging rules and device model.

What people are saying

  1. [github-trending] evcc-io/evcc

Sources

  1. evcc repository and README
  2. evcc device documentation
  3. evcc sponsorship model
  4. evcc 0.314.3 release
  5. Phase and current settings report
  6. Continuous-mode phase scaling report

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →