Elektroauto lädt Solarstrom an einer Wallbox. Person verwendet evcc auf dem Smartphone.

Solar charging. Super simple.

evcc optimises sustainability when charging electric vehicles. It enables charging using as much self-generated power as possible. And best of all, it can do so in most cases without any further modification to your house’s existing electrical installation.

What makes evcc special?

We 💚 good UI

We want make solar charging easy for everyone. In the best case scenario, this works without manual interventions and regular setting adjustments. But if you do want to see what the system is doing, we have a clean and responsive web interface ready to go.

You can choose between Light- and Dark-Mode.

We have set up a sample installation you can use to try the interface.

Try Demo UI

How evcc works

How it works

Using your own solar power to charge the car helps increase self-consumption - that is, using the electricity yourself instead of supplying it to the grid.

evcc makes it possible to control the current of your wallbox. We already support a wide range of chargers. If a lot of solar power is being generated, evcc allows the charger to charge the car with lots of solar power. Inversely, if less solar power is available, evcc slows down (or even pauses) charging.

evcc needs a grid energy meter to work properly. Using this measuring device, evcc knows the current excess of energy and can continuously adjust the charging power appropriately. The good news - almost every existing solar systems already contain the necessary energy meters. If not, you can easily add your own.

If a supported vehicle is set up, evcc can take its current battery charging status and range into account when planning charging - even if the sun’s not out, it’ll still make sure you’ll have enough range for your daily trips.

And if you have a supported battery storage system available, evcc can also control its state of charge, managing it against your vehicle seamlessly.

evcc can work with a number of widely used interfaces and protocols, such as Modbus, SunSpec, HTTP, JSON, REST, and MQTT. This means that almost all products available on the market today can be connected to evcc. And in order to work properly with other, high-level energy management systems, evcc also includes support for the SEMP and EEBUS protocols.

Install evcc at your home

System requirements

evcc is written in Go, and is extremely efficient. You don’t need a system with a lot of CPU or RAM - typically you can run it on a Raspberry Pi or in Docker (e.g. Synology NAS). Windows, macOS and Linux are all fully supported.

Setting up evcc

evcc is very flexible. However, the initial setup still requires a fair amount of technical knowledge. If you’re familiar with the command line, and you’ve ever edited a YAML file, then you should be able to get it configured. You’ll find everyting you need to know in the documentation.

Getting Started (German)

Support the project

Actively participating

Join the development team, and help us support the project by fixing bugs, adding features, and improving documentation.

You can get in touch, ask questions, and get support from other users in the Forum. Feel free to chat with us on our Slack. We don’t bite!

Financial support

Everyone working on evcc is doing it in their spare time. You’re welcome to support us as a GitHub sponsor.

You work for a company which offers wallboxes, energy measurement systems, or solar / PV systems? Do you want to help enable your customers to charge their cars with their own solar power? Get in touch with us. Contributing code or sponsoring us with hardware greatly helps us to expand evcc’s capabilities.


Carsten ThieleTimo ReimannTjarko TjadenGuido ZockollNico HoffmannChristian JosepeitStephan SchwebeJedlixTinkerforge GmbHTim FremuthMarc PrengerUlrich WinterPeter NagelUlrich SchreinerTobiasRalf RottmannIngo Sigmund Sebastian HubrichStefan HauboldDaniel MelzerTomOldmannLimbasUdo GötzenstefanRoland JestrabekWilkoMarkus TheilenSteffenDenny SandnerOliKMartin PorschPatrick JanningAxel SchmidtDirk ReskeStephan PauxbergerDaniel SchadeMichaelMartin WeigelStefan Kral