evcc
Solar-aware electric vehicle charging controller
evcc is an open-source EV charging controller that optimizes charging around solar production and electricity prices. It targets EV owners with solar or dynamic tariffs. It is deployed via Docker or a binary.
Key features
- Solar-optimized EV charging
- Dynamic tariff support
- Many wallbox integrations
- Home Assistant integration
Pros & cons
Strengths
- Maximizes solar self-use
- Wide hardware support
- Lightweight
Trade-offs
- Niche use case
- Requires compatible hardware
evcc replaces
Last reviewed Sep 13, 2026 · 883 words
A 10 kWp roof feeding a 60 kWh car through evcc in PV mode will, in a European summer, put most of your driving into the battery at zero marginal cost, and with a dynamic tariff it does the winter equivalent by charging in the 3 or 4 cheapest hours overnight. That is the entire pitch: evcc sits between your wallbox, your grid meter and your inverter and decides moment by moment how much current to allow. It is the most useful piece of software in my house, and also the one where the hardware list matters more than the software.
Check three pieces of hardware before you install anything
evcc needs to talk to a charger it can control, to a meter it can read, and ideally to the car. Chargers: go-e, KEBA, Easee, Wallbox, openWB, Zaptec, the Tesla Wall Connector Gen 3, any OCPP 1.6 wallbox, plus generic Modbus units and dumb chargers behind a Shelly relay. Grid and PV meters: SMA, Fronius, SolarEdge, Kostal, Huawei, Victron, Enphase, and a Shelly 3EM as the budget path. Vehicles: most major brands through their cloud APIs, or any car through the charger's own state-of-charge readout where the charger reports it. The device list at evcc.io is long, but if your wallbox is a locked-down installer-only unit with no API, evcc cannot help you, and that is the "requires compatible hardware" warning in one sentence.
The four modes are the whole user interface
Off does nothing. Now charges at full power regardless of source. Min+PV charges at the minimum current the car accepts (usually 6 A per phase) and adds solar surplus on top, which keeps the car ticking up on cloudy days. PV charges only from surplus and pauses when a cloud passes; a configurable delay stops it flapping. Add a minimum state of charge ("always get me to 40 percent") and a plan ("100 percent by Saturday 9 a.m., cheapest hours") and you have covered what a commercial energy management system charges a four-figure sum for. Phase switching between 1 and 3 phases, where the charger supports it, widens the usable surplus range from about 1.4 kW to 11 kW.
Configuration is one YAML file, and the wizard writes most of it
services:
evcc:
image: evcc/evcc:latest
network_mode: host
volumes:
- ./evcc.yaml:/etc/evcc.yaml
- ./evcc-data:/root/.evcc
restart: unless-stopped
Run evcc configure once (inside the container works) and it interviews you about charger, meters, vehicles and tariff, then emits evcc.yaml; after that, edit by hand. The web UI listens on port 7070 and is meant for your LAN, so put it behind your proxy's login before exposing it. Host networking is not optional for devices that use multicast or Modbus UDP discovery, and SMA inverters are the usual example. RAM use stays under the 256 MB figure; a Raspberry Pi 4 runs it with room for Home Assistant alongside. Session history lands in an SQLite file in the data directory, which is the only thing you need to back up besides the YAML.
Home Assistant integration is MQTT, and it is the right way round
evcc publishes every value (grid power, PV power, charge power, state of charge, mode) to MQTT under a configurable topic prefix and accepts mode and target changes on set topics, so a Mosquitto broker makes everything appear in Home Assistant as sensors and selects. There is also a community HACS integration that polls evcc's REST API. Either way, keep evcc as the source of truth for charging decisions; it runs a control loop on a configurable interval, 30 seconds by default, and Home Assistant automations that fight it produce a car that never charges. Use HA for the automations around it, such as switching to Now when a calendar event says a long trip starts tomorrow, and feed Grafana from the same MQTT topics for history. The first month with Home Assistant piece covers the broker setup.
The sponsor token
A subset of integrations, mostly vehicle cloud APIs and some chargers, require a sponsor token, which you get by sponsoring the project on GitHub for a couple of euros a month at last check; a free trial token exists for testing. The core, including OCPP chargers, Modbus meters and the PV-mode logic, works without one. I consider it the best-value subscription in my homelab, and it is why a 7,176-star niche project has a core team that answers issues within days.
What I'd do
Buy the wallbox only after checking it against the evcc device list; an OCPP-capable unit is the safe choice. Run evcc in Docker on the same box as Home Assistant, host networking, config from the wizard, MQTT to Mosquitto. Default mode PV in summer and Min+PV in winter, a minimum state of charge of 30 percent, and a dynamic tariff if your supplier offers one. If you have no solar and a flat tariff, skip it; a timer on the wallbox does the same job. The rest of the home automation category is optional; this is the one that pays for the server.
Compare evcc
19 head-to-head comparisons.
- evcc vs Home Assistant
- evcc vs Zigbee2MQTT
- evcc vs ESPHome
- evcc vs Mosquitto
- evcc vs Home Assistant Operating System
- evcc vs Domoticz
- evcc vs Gladys Assistant
- evcc vs Mozilla WebThings Gateway
- evcc vs Home Assistant Supervisor
- evcc vs SmartApp Bridge
- evcc vs ioBroker
- evcc vs Z-Wave JS UI
- evcc vs openHAB
- evcc vs AppDaemon
- evcc vs Pimatic
- evcc vs Jeedom
- evcc vs OpenHAB Cloud
- evcc vs Zwave-JS Server
- evcc vs FHEM
Similar home automation apps
Home Assistant
Home AutomationOpen-source home automation that puts privacy first
Replaces SmartThings, Google Home
Frigate
Home AutomationLocal NVR with real-time AI object detection
Replaces Google Home
ntfy
Home AutomationSend push notifications to your phone via simple HTTP
Replaces Pushover, Pushbullet
Homebridge
Home AutomationBring non-HomeKit smart devices into Apple Home
Replaces Apple HomeKit hubs
Tasmota
Home AutomationOpen-source firmware for ESP-based smart devices
Replaces Tuya Cloud
ThingsBoard
Home AutomationOpen-source IoT platform for device management and data
Replaces AWS IoT, Azure IoT