unsubbed.co

evcc

Evcc handles extensible Electric Vehicle Charge Controller and home energy management system as a self-hosted solution.

Open-source home energy management for EV owners, honestly reviewed. No marketing fluff, just what you get when you self-host it.

TL;DR

  • What it is: Open-source (MIT) EV charge controller and home energy management system that routes surplus solar power to your car instead of selling it back to the grid at a loss [README][5].
  • Who it’s for: EV owners with a solar PV installation (or a dynamic electricity tariff) who want to automate charging without depending on a cloud service or a proprietary app [1][README].
  • Cost savings: The software is free. The hardware to run it — a Raspberry Pi or a cheap VPS — costs under $10/month. The real savings are on your electricity bill: charging on solar surplus instead of grid power can eliminate most of your EV fuel cost.
  • Key strength: The widest hardware compatibility you’ll find in this category. Over 100 EV chargers, 30+ vehicle brands, and 100+ inverter and battery systems are supported — regardless of manufacturer [README][1].
  • Key weakness: German-first project with limited English-language documentation, YAML configuration file that requires manual editing, and no hosted SaaS option. This is a self-hosted-or-nothing tool [README][5].

What is evcc

evcc is a local home energy management system built around one central idea: your EV is a large, flexible battery that should charge when electricity is cheap or clean — specifically, when your solar panels are generating more power than your household is consuming.

The software runs on a Raspberry Pi, a Linux server, or in Docker, entirely on your home network. It talks to your wallbox (EV charger), your solar inverter, your home battery, and optionally your car’s API. When solar surplus is detected, it starts or increases charging. When surplus drops, it throttles back. No cloud subscription. No per-kilowatt-hour fee. No data leaving your home [README][1].

The project started as a Go application by Andreas Lüthi (handle: andig) and has grown into one of the most active self-hosted energy projects on GitHub, sitting at 6,284 stars with an active community and regular releases [merged profile]. It’s been featured in Germany’s PV Magazine and c’t Magazin — the kind of technical press that actually tests hardware rather than regurgitates press releases [README].

The name is deliberately lowercase. The German homepage headline is “Sonne tanken. Ganz einfach.” — “Charge on sunshine. Simply.” That’s a fair description of the product’s ambition, if not its setup complexity [website].


Why people choose it

The self-hosted EV charging space is narrow. Most EV owners are stuck choosing between:

  1. Their wallbox manufacturer’s proprietary app (closed, cloud-dependent, often discontinued when the manufacturer moves on)
  2. Home Assistant with a patchwork of community integrations (powerful but fragile)
  3. Commercial energy management systems from inverter vendors like SMA or Fronius (expensive, locked to their hardware ecosystem)

evcc positions itself as the hardware-agnostic, cloud-free alternative to all three.

The hardware independence argument is real. The README lists over 100 supported EV chargers spanning ABB, go-e, KEBA, Mennekes, Tesla, Wallbox, and dozens of European brands that proprietary apps simply don’t support [README]. It speaks OCPP and EEBus — the two major open charging protocols — alongside dozens of proprietary protocols. If you bought a charger three years ago whose companion app has been abandoned, evcc likely supports it [README][1].

The vehicle list is similarly broad: BMW, Tesla, Volkswagen Group (Audi, Skoda, Seat, Cupra), Hyundai, Kia, Renault, Ford, Volvo, and 20+ other brands, with read access to state-of-charge, charging schedules, and preconditioning status where the manufacturer API allows [README][1].

Dynamic tariff integration is the second major draw. European energy markets increasingly offer real-time electricity pricing (Tibber, Octopus Energy, Awattar), where overnight prices can be 80% lower than peak rates. evcc integrates directly with Tibber and other dynamic tariff providers to charge when the grid is cheapest and greenest — useful even if you don’t have solar [README][website].

The live community data page on evcc.io shows aggregate statistics from participating users: current load, solar fraction, and total solar energy since October 2022. That collective data dashboard is something you won’t see from any proprietary system [website].

The project is community-funded through sponsorships, not VC-backed — which means the incentive structure is “keep the hardware working for real users” rather than “lock them into a subscription” [website].


Features

Core charging logic:

  • PV surplus charging: automatically starts and throttles charging based on solar generation minus household consumption [README]
  • Minimum and maximum charge limits per vehicle [1]
  • Charging schedules — “be at 80% by 7am tomorrow” [1]
  • Grid-aware charging with dynamic electricity tariff support (Tibber, Awattar, and others) [README]
  • Battery-aware operation: respects home battery state of charge before prioritizing EV charging [README]
  • Granular power control down to milliamp steps on compatible chargers [5]

Hardware integration:

  • 100+ EV chargers via OCPP, EEBus, Modbus, HTTP, and vendor-specific protocols [README][1]
  • Smart plugs as low-cost charging points (Shelly, Tasmota, TP-Link, AVM FRITZ!) [README][1]
  • 100+ solar inverters and battery systems (Fronius, SMA, SolarEdge, Huawei, Victron, and many more) [README]
  • Heat pumps and electric heaters as secondary controllable loads [README]
  • Vehicle APIs for 30+ car brands (state of charge, preconditioning, remote charge) [README][1]

Protocols and extensibility:

  • Modbus, HTTP, MQTT, WebSocket, and shell script plugins for any device not natively supported [5][README]
  • REST and MQTT APIs for integration with Home Assistant and other automation platforms [5]
  • Telegram, Pushover, and other push notification services [5][README]
  • InfluxDB logging with Grafana dashboard support for historical data [5][README]

UI and monitoring:

  • Clean, responsive web interface with light and dark mode [1][website]
  • Official Android app for remote access on your home network [1]
  • Live statistics dashboard [website]
  • Demo instance available for testing before installation [1][website]

What it doesn’t do:

  • There is no hosted cloud version. If you want evcc, you run it yourself [README].
  • Vehicle-to-grid (V2G) bidirectional charging is limited to specific hardware combinations [README].
  • The UI is primarily German; English is available but the documentation and community forums lean heavily German [README].

Pricing: SaaS vs self-hosted math

evcc software cost: $0. MIT license, no usage fees, no per-device fees [merged profile].

Hardware to run it:

  • Raspberry Pi 4 (2GB): ~$45 one-time. Runs 24/7, consumes ~3–5W.
  • Existing Linux server or NAS: $0 additional.
  • Docker on a cheap VPS (Hetzner CX11): ~$4/month — though running a local network controller on a remote VPS adds latency and a dependency on internet uptime, so local hardware is strongly preferred.

What you actually save: A typical EV charging on grid power at €0.30–0.40/kWh (EU average) costs around €700–1,100/year for 15,000 km/year. Charging on solar surplus that would otherwise be exported at €0.08–0.10/kWh buyback rate means the effective charging cost drops by €200–400/year depending on your solar capacity and driving pattern. The Raspberry Pi pays for itself in weeks.

Sponsorship model: The live community data aggregation and certain participation features require a sponsorship, which funds ongoing development [website]. The core software — charging logic, hardware integrations, REST API — is fully functional without sponsoring. Pricing for sponsorship tiers is not published in the available data; check https://evcc.io directly.

Competitor pricing for context: Commercial home energy management systems from SMA (Sunny Home Manager), Fronius (Smart Meter), or Huawei (FusionSolar) are either bundled with hardware at a premium or sold as subscriptions starting around €100–200/year, and they only work with the same manufacturer’s hardware. evcc replaces those locked-in systems with hardware-agnostic, perpetually free software.


Deployment reality check

This is where honest reviews of evcc need to spend more time. The setup process is not beginner-friendly.

The configuration is YAML, not a setup wizard. You edit a evcc.yaml file by hand, choosing the correct device type, entering IP addresses or Modbus addresses, and wiring together meters, chargers, and vehicles by name [5][README]. The old Go package documentation [5] shows what this looks like: it’s structured but verbose, and a wrong Modbus address means silent failure, not a helpful error message.

What you actually need:

  • A Raspberry Pi (or equivalent Linux device) on your home network
  • Docker installed, or a Go binary for your platform
  • Your solar inverter’s local IP address or Modbus TCP endpoint
  • Your wallbox’s local address, Modbus address, or OCPP server URL
  • Optionally: your vehicle’s API credentials

What can go sideways:

  • Inverter communication is often the hardest part. Many solar inverters have inconsistent Modbus implementations or require firmware updates to expose local APIs. evcc has a large compatibility list, but “supported” means the protocol is implemented — not that every firmware version works.
  • Vehicle API integrations depend on the manufacturer’s cloud (BMW, Volkswagen Group, etc.), which means evcc can’t read your battery state if the manufacturer’s servers are down or they change their API. Tesla is an exception since evcc accesses it locally [README].
  • The Android app [1] gives you remote access to the evcc UI, but requires your phone and the evcc server to be on the same network (or connected via VPN). There’s no built-in remote access proxy.
  • Documentation is substantively better in German than in English. Non-German speakers will hit translation gaps in community forums and GitHub issues.

Realistic setup time: For someone who has deployed Docker before and knows their inverter model: 1–3 hours. For a non-technical homeowner who bought a Fronius Primo and a go-e charger and has never opened a YAML file: plan a full day and budget for asking in the community forum.

The project does offer professional support options listed on the homepage [website] — useful if you’re deploying in a client’s home or don’t want to troubleshoot Modbus yourself.


Pros and Cons

Pros

  • MIT-licensed, zero ongoing cost. The software is free and will stay free. No vendor can raise the price, shut down the cloud, or discontinue support for your specific charger [merged profile].
  • Unmatched hardware compatibility. 100+ chargers, 100+ inverters, 30+ vehicle brands. This is the widest support matrix in the open-source EV charging space by a considerable margin [README][1].
  • Genuinely local. No cloud account required, no data leaving your home network, no dependency on third-party uptime [README][website].
  • Dynamic tariff integration. Charges when electricity is cheapest or cleanest without manual intervention [README].
  • Active community and regular releases. 6,284 GitHub stars, nightly build CI, and a community of enthusiasts who add new hardware support frequently [merged profile][README].
  • Granular power control. Milliamp-level control on compatible chargers means the system can precisely track solar surplus rather than toggling charging on and off [5].
  • REST and MQTT APIs. Plays well with Home Assistant, Grafana, and any home automation stack [5][README].
  • Multi-load management. Controls heat pumps and electric heaters alongside the EV charger, prioritizing loads intelligently [README].

Cons

  • Setup requires technical confidence. Manual YAML configuration, no guided setup wizard, Modbus/TCP knowledge required for some hardware [5][README].
  • German-first project. Documentation and community support is primarily in German. English documentation exists but is incomplete in places [README].
  • No hosted option. If you want evcc, you operate it. There is no managed cloud fallback [README].
  • Vehicle API fragility. Manufacturer APIs break when vendors push updates. Your charging schedule’s SoC awareness depends on a cloud you don’t control [README].
  • Limited English-language third-party reviews. Unlike mature self-hosted tools, there’s minimal English review content available — most community knowledge lives in German forums and GitHub issues.
  • Hardware debugging is hard. When a meter or charger doesn’t respond correctly, the feedback loop is slow. Community knowledge helps, but troubleshooting Modbus issues is not fun [5].
  • Sponsorship required for some features. Community data participation and potentially some premium features require a financial contribution — pricing not publicly listed [website].

Who should use this / who shouldn’t

Use evcc if:

  • You own an EV and a solar PV system and you want to maximize the amount of free solar power that goes into your car.
  • You have a wallbox or a charger supported by evcc (check the list — it’s long) and you’re tired of the manufacturer’s cloud app.
  • You’re comfortable running a Raspberry Pi and editing YAML, or you’re willing to spend a few hours learning.
  • You want a system that will keep working regardless of what your inverter or charger manufacturer decides to do with their app.
  • You’re on a dynamic electricity tariff and want automated off-peak charging.

Skip it if:

  • You have no solar panels and no interest in dynamic tariff optimization — a simpler scheduled timer on your charger accomplishes the same thing at zero cost.
  • You’re not willing to touch a config file. The setup is genuinely technical.
  • You need a polished English-language community and docs. The German bias in documentation and forums is real.
  • Your specific inverter or charger isn’t on the supported list and you can’t find a plugin workaround.
  • You want a vendor-supported solution with a phone number to call when it breaks.

Consider Home Assistant instead if:

  • You already run Home Assistant and want to add EV charging as one integration among many. evcc can integrate with Home Assistant via MQTT [README], but if your whole smart home is already there, the HA EV charging integrations may be sufficient without adding a separate service.

Alternatives worth considering

  • openWB — German competitor, also open source, also Raspberry Pi-based. More opinionated about hardware (it started as a specific wallbox product) but has a more graphical configuration UI. Less flexible hardware support than evcc.
  • Home Assistant EV integrations — If you’re already running HA, the built-in energy management and third-party EV integrations (charger cards, Zappi/go-e integrations) cover similar territory with no additional service to maintain. Less optimized for PV surplus logic, but more general.
  • Victron Energy’s Venus OS — If your entire energy stack is Victron hardware, their closed-source Venus OS on a Cerbo GX does sophisticated energy management out of the box. Vendor lock-in, but polished.
  • SMA Sunny Home Manager — SMA’s proprietary energy management system. Works well if your inverter and charger are both SMA. Useless otherwise.
  • Commercial HEMS systems — Loxone, KNX-based solutions. Full home automation with EV charging as one feature. 10x the cost, professional installation required, vendor-dependent.

For a homeowner with a mix of hardware from different manufacturers (common in Europe where people buy inverter from one brand and charger from another), the realistic shortlist is evcc vs Home Assistant. Pick evcc if PV surplus charging is your primary goal. Pick Home Assistant if you want a unified smart home hub that also handles EV charging.


Bottom line

evcc is the right tool for a specific, well-defined problem: you have solar panels, you have an EV, and you want the car to charge on your own electricity rather than the grid’s. It does this job better than anything else in the open-source space, with broader hardware support than any commercial alternative and a completely local architecture that doesn’t depend on any vendor’s cloud staying alive.

The trade-offs are honest. The setup is technical. The documentation is better in German. There’s no hosted option and no hand-holding. But for the target user — a European EV owner who’s watched their electricity costs climb and is tired of paying grid rates to charge a car parked next to a solar installation — evcc delivers on its core promise in a way that proprietary systems can’t match, because proprietary systems are built to sell you hardware, not to integrate with hardware you already own.

If the YAML config is the blocker, that’s exactly what upready.dev deploys for clients. One-time setup, done, the solar charging just works.


Sources

  1. AndroidFreeware — evcc solar charging APK listing (version 1.2.0, MIT license, 603 downloads). https://www.androidfreeware.net/download-evcc-solar-charging-apk.html
  2. AndroidFreeware (FR) — evcc solar charging APK listing (same data, French locale). https://www.androidfreeware.net/fr/download-evcc-solar-charging-apk.html
  3. selfh.st — This Week in Self-Hosted (18 October 2024) (weekly self-hosted news roundup, context on self-hosted community). https://selfh.st/weekly/2024-10-18/
  4. pkg.go.dev — evcc command (github.com/andig/evcc) (Go package documentation, early evcc architecture and feature list). https://pkg.go.dev/github.com/andig/evcc

Primary sources:

Features

Integrations & APIs

  • Plugin / Extension System
  • Telegram Integration
  • WebSocket Support