Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions docs/features/optimizer.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
sidebar_position: 12
---

import Screenshot from "../../src/components/Screenshot";

# Optimizer 🧪

:::warning Experimentell
Der Optimizer befindet sich in einer frühen Entwicklungsphase.
Die angezeigten Daten sind aktuell rein informativ.
Steuerungsaktionen folgen in zukünftigen Versionen.
:::

Der Optimizer analysiert Prognosen, Verbrauchsdaten und den aktuellen Zustand deines Energiesystems, um kostenoptimale Entscheidungen zu treffen.
Er ergänzt die regelbasierte Steuerung von evcc um eine vorausschauende Optimierung.

## Warum ein Optimizer?

evcc arbeitet regelbasiert und deterministisch.
Das funktioniert hervorragend für viele Setups.
Z. B. mit PV-Anlage, Batterie und einem Fahrzeug.

Bei komplexeren Szenarien stößt dieser Ansatz an Grenzen:

- **Mehrere Fahrzeuge:** Welches soll zuerst geladen werden?
- **Batterie oder Fahrzeug:** Wohin soll die verfügbare Energie fließen?
- **Dynamische Tarife:** Lohnt sich Netzladen heute Nacht oder reicht die Sonne morgen?

Der Optimizer kann diese Fragen beantworten.
Aktuell legst du Einstellungen wie Preislimits oder Batterieprioritäten selbst fest.
Perspektivisch kannst du diese Entscheidungen dem Optimizer überlassen.
Er findet dann automatisch die optimalen Werte.
Wir arbeiten Schritt für Schritt daran.

## Was macht der Optimizer? {#how-it-works}

Der Optimizer sammelt verschiedene Daten:

- **Prognosedaten:** PV-Ertrag, Strompreise, Einspeisetarife
- **Historische Daten:** typisches Verbrauchsprofil deines Haushalts
- **Aktueller Zustand:** Ladestand der Batterie, angeschlossene Fahrzeuge, Wärmebedarf

Auf Basis dieser Daten berechnet ein Optimierungsalgorithmus das voraussichtliche Verhalten deines Energiesystems.
Er identifiziert kostenoptimale Aktionen: effiziente [Ladepläne](./plans), Batteriesteuerung (Halten, Netzladen).
Außerdem prognostiziert er, wann die Hausbatterie voll oder leer sein wird.

Ziel: **Energiekosten minimieren.**

## Optimizer nutzen {#setup}

Aktivierung über die Benutzeroberfläche:

1. **Konfiguration → Experimentell** → aktivieren
2. **Konfiguration → Optimizer 🧪** → aktivieren

Der Optimizer erfordert ein aktives [Sponsoring](/docs/sponsorship).
Bei neuen Installationen kann es bis zu 24 Stunden dauern, bis genug Daten gesammelt wurden, um erste Ergebnisse anzuzeigen.

- **Hauptansicht → Energiefluss (aufklappen):** Zeigt an, wann die Hausbatterie voraussichtlich voll oder leer sein wird.
- **Menü → Optimizer:** Diagramme, die zeigen, wie sich Hausbatterie und Ladepunkte in den nächsten Stunden verhalten sollen und wie viel Geld gespart werden kann (siehe Screenshot unten).

<Screenshot
name="features/screenshots/optimizer-debug"
caption="Optimizer Debug-Ansicht mit Prognosen und Optimierungsergebnissen."
/>

## Aktueller Stand und Ausblick {#status}

Der Optimizer ist aktuell rein informativ.
Er zeigt Prognosen und Einsparpotenziale an, greift aber noch nicht aktiv in die Steuerung ein.

Nächste Schritte:

- Aktionen integrieren: Hausbatterie aktiv steuern
- [Ladepläne](./plans) durch den Optimizer optimieren lassen
- Nutzern ermöglichen, spezifische Einstellungen an den Optimizer zu übergeben

## Technischer Hintergrund {#technical}

Der Optimizer ist Python-basiert und nutzt das starke Ökosystem für mathematische Optimierung und Statistik.
Er ist kein Teil von evcc selbst, sondern ein eigenständiger Dienst.

Bei Aktivierung wird der Cloud-Service `optimizer.evcc.io` aufgerufen.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

analog zum UI-Text besser „externe Service“

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Der Optimizer ist eine Komponete zur Vorhersage von….
Ob Python und Ökosystem ist doch irrelevant für den Anwender, oder?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ob Python und Ökosystem ist doch irrelevant für den Anwender, oder?

Im Abschnitt "Technischer Hintergrund" finde ich das angebracht. Das beantwortet die Frage "Warum ist das nicht direkt in evcc eingebaut?"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guter Punkt...

Der Dienst arbeitet **zustandslos**.
Es werden keine Daten gespeichert.
Details zum Datenschutz findest du in unserer [Datenschutzerklärung](https://evcc.io/datenschutz/).

Der Optimizer ist wie evcc selbst Open Source: [github.com/evcc-io/optimizer](https://github.com/evcc-io/optimizer).
Du kannst dir das fertige Docker Image [evcc/optimizer](https://hub.docker.com/r/evcc/optimizer) auch lokal installieren.
Über die Umgebungsvariable `OPTIMIZER_URI` gibst du dann deinen eigenen Endpunkt an.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
sidebar_position: 12
---

import Screenshot from "../../../../../src/components/Screenshot";

# Optimizer 🧪

:::warning Experimental
The optimizer is in an early stage of development.
The displayed data is currently informational only.
Control actions will follow in future versions.
:::

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?

evcc works rule-based and deterministically.
This works great for many setups.
E.g. a solar system, battery, and one vehicle.

More complex scenarios push this approach to its limits:

- **Multiple vehicles:** Which one should be charged first?
- **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 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? {#how-it-works}

The optimizer collects various data:

- **Forecast data:** Solar yield, electricity prices, feed-in tariffs
- **Historical data:** Your household's typical consumption profile
- **Current state:** Battery state of charge, 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](./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 {#setup}

Enable via the user interface:

1. **Configuration → Experimental** → enable
2. **Configuration → Optimizer 🧪** → enable

The optimizer requires an active [sponsorship](/docs/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 how much money can be saved (see screenshot below).

<Screenshot
name="features/screenshots/optimizer-debug"
caption="Optimizer debug view with forecasts and optimisation results."
/>

## Current State & Next Steps {#status}

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](./plans)
- Enable users to hand over specific settings to the optimizer

## Technical Background {#technical}

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**.
No data is stored.
For privacy details, see our [privacy policy](https://evcc.io/en/datenschutz/).

Like evcc itself, the optimizer is open source: [github.com/evcc-io/optimizer](https://github.com/evcc-io/optimizer).
You can also install the Docker image [evcc/optimizer](https://hub.docker.com/r/evcc/optimizer) locally.
Use the `OPTIMIZER_URI` environment variable to point evcc to your own endpoint.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading