-
-
Notifications
You must be signed in to change notification settings - Fork 201
docs: add optimizer #1025
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
naltatis
wants to merge
3
commits into
main
Choose a base branch
from
docs/optimizer
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
docs: add optimizer #1025
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. | ||
| 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.
91 changes: 91 additions & 0 deletions
91
i18n/en/docusaurus-plugin-content-docs/current/features/optimizer.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. |
Binary file added
BIN
+57.7 KB
...s-plugin-content-docs/current/features/screenshots/optimizer-debug-dark-1x.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+133 KB
...s-plugin-content-docs/current/features/screenshots/optimizer-debug-dark-2x.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+58.3 KB
...-plugin-content-docs/current/features/screenshots/optimizer-debug-light-1x.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+129 KB
...-plugin-content-docs/current/features/screenshots/optimizer-debug-light-2x.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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“
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Im Abschnitt "Technischer Hintergrund" finde ich das angebracht. Das beantwortet die Frage "Warum ist das nicht direkt in evcc eingebaut?"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Guter Punkt...