Optimizer đ§Ș
The optimizer analyses forecasts, consumption data, and the current state of your energy system to make cost-optimal decisions. It complements evccâs rule-based control with predictive optimisation.
Why an Optimizer?
Section titled âWhy an Optimizer?âevcc works rule-based and deterministically. This works great for many setups. E.g. a solar system, home battery, and one vehicle.
More complex scenarios push this approach to its limits:
- Multiple vehicles: Which one should be charged first?
- Home battery or vehicle: Where should the available energy go?
- Dynamic tariffs: Is it worth charging from the grid tonight, or will there be enough solar energy tomorrow?
The optimizer can answer these questions. Currently, you set values like price limits or home battery priorities yourself. In the future, you can let the optimizer handle these decisions. It will then automatically find the optimal values. Weâre working on this step by step.
What Does the Optimizer Do?
Section titled âWhat Does the Optimizer Do?âThe optimizer collects various data:
- Forecast data: Solar yield, electricity prices, grid export tariffs, outdoor temperature to predict heating demand
- Historical data: Your householdâs typical consumption profile
- Current state: Home battery charge level, connected vehicles, heating demand
Based on this data, an optimisation algorithm calculates the expected behaviour of your energy system. It identifies cost-optimal actions: efficient charging plans, battery control (hold, grid charging). It also predicts when the home battery will be full or empty.
Goal: Minimise energy costs.
Using the Optimizer
Section titled âUsing the OptimizerâEnable via the user interface:
- Configuration â Experimental â enable
- Configuration â Optimizer đ§Ș â enable
The optimizer requires an active sponsorship. For new installations, it can take up to 24 hours to collect enough data to show first results.
- Main view â Energy flow (expand): Shows when the home battery is expected to be full or empty.
- Menu â Optimizer: Graphs showing how your home battery and charging points should behave over the coming hours and what the expected energy cost over the optimisation horizon will be (see screenshot below).

Current State & Next Steps
Section titled âCurrent State & Next StepsâThe optimizer is currently informational only. It shows forecasts and potential savings but does not yet actively control anything.
Next steps:
- Integrate actions: actively control the home battery
- Let the optimizer optimise charging plans
- Enable users to hand over specific settings to the optimizer
Technical Background
Section titled âTechnical BackgroundâThe optimizer is Python-based and leverages the strong ecosystem for mathematical optimisation and statistics. It is not part of evcc itself but a standalone service.
When enabled, the cloud service optimizer.evcc.io is called.
The service is stateless.
Data is only stored when you give feedback on a plan explanation.
For privacy details, see our privacy policy.
Like evcc itself, the optimizer is open source: github.com/evcc-io/optimizer.
You can also install the Docker image evcc/optimizer locally.
Use the OPTIMIZER_URI environment variable to point evcc to your own endpoint.
To keep the calculation fast, evcc merges the slots beyond 48 hours into hourly slots.
With your own optimizer, you can move this boundary with the OPTIMIZER_COARSEN_AFTER environment variable in hours, e.g. 72.
The value 0 keeps 15-minute slots for the full forecast.