Akkudoktor-EOS / EOS

Other
11 stars 5 forks source link

Energiesystem Simulation und Optimierung

Dieses Projekt bietet eine umfassende Lösung zur Simulation und Optimierung eines Energiesystems, das auf erneuerbaren Energiequellen basiert. Mit Fokus auf Photovoltaik (PV)-Anlagen, Batteriespeichern (Akkus), Lastmanagement (Verbraucheranforderungen), Wärmepumpen, Elektrofahrzeugen und der Berücksichtigung von Strompreisdaten ermöglicht dieses System die Vorhersage und Optimierung des Energieflusses und der Kosten über einen bestimmten Zeitraum.

Mitmachen

Die Diskussion findet im Forum statt. Bugs bitte im Issue Tracker melden, Code-Beiträge und Bug-Fixes nehmen wir gerne als Pull-Requests entgegen.

Installation

Gute Install Anleitung: https://meintechblog.de/2024/09/05/andreas-schmitz-joerg-installiert-mein-energieoptimierungssystem/

Das Projekt erfordert Python 3.8 oder neuer.

Schnellanleitung

Unter Linux (Ubuntu/Debian):

sudo apt install make

Unter Macos (benötigt Homebrew):

brew install make

Nun config.example.py anpassen und dann in config.py umbennenen. Anschließend kann der Server über make run gestartet werden. Eine vollständige Übersicht über die wichtigsten Kurzbefehle gibt make help.

Ausführliche Anleitung

Alle notwendigen Abhängigkeiten können über pip installiert werden. Klonen Sie das Repository und installieren Sie die erforderlichen Pakete mit:

git clone https://github.com/Akkudoktor-EOS/EOS
cd EOS

Als Nächstes legen wir ein virtuelles Environment an. Es dient zur Ablage der Python-Abhängigkeiten, die wir später per pip installieren:

virtualenv .venv

Schließlich installieren wir die Python-Abhängigkeiten von EOS:

.venv/bin/pip install -r requirements.txt

Um immer die Python-Version aus dem Virtual-Env zu verwenden, sollte vor der Arbeit in EOS Folgendes aufgerufen werden:

source .venv/bin/activate

(für Bash-Nutzende, der Standard unter Linux) oder

. .venv/bin/activate

(wenn zsh verwendet wird, vor allem MacOS-Nutzende).

Sollte pip install die mariadb-Abhängigkeit nicht installieren können, dann helfen folgende Kommandos:

gefolgt von einem erneuten pip install -r requirements.txt.

Nutzung

config.example.py anpassen und dann in config.py umbennenen Um das System zu nutzen, führen Sie flask_server.py aus, damit wird der Server gestartet

./flask_server.py

Klassen und Funktionalitäten

In diesem Projekt werden verschiedene Klassen verwendet, um die Komponenten eines Energiesystems zu simulieren und zu optimieren. Jede Klasse repräsentiert einen spezifischen Aspekt des Systems, wie nachfolgend beschrieben:

Diese Klassen arbeiten zusammen, um eine detaillierte Simulation und Optimierung des Energiesystems zu ermöglichen. Für jede Klasse können spezifische Parameter und Einstellungen angepasst werden, um verschiedene Szenarien und Strategien zu testen.

Anpassung und Erweiterung

Jede Klasse ist so gestaltet, dass sie leicht angepasst und erweitert werden kann, um zusätzliche Funktionen oder Verbesserungen zu integrieren. Beispielsweise können neue Methoden zur genaueren Modellierung des Verhaltens von PV-Anlagen oder Batteriespeichern hinzugefügt werden. Entwickler sind eingeladen, das System nach ihren Bedürfnissen zu modifizieren und zu erweitern.

Input für den Flask Server (Stand 30.07.204)

Beschreibt die Struktur und Datentypen des JSON-Objekts, das an den Flask-Server gesendet wird. Hier mit einem Prognosezeitraum von 48 Stunden!

Felder des JSON-Objekts

strompreis_euro_pro_wh

gesamtlast

pv_forecast

temperature_forecast

pv_soc

pv_akku_cap

einspeiseverguetung_euro_pro_wh

eauto_min_soc

eauto_cap

eauto_charge_efficiency

eauto_charge_power

eauto_soc

start_solution

haushaltsgeraet_wh

haushaltsgeraet_dauer

JSON-Output Beschreibung

Dieses Dokument beschreibt die Struktur und Datentypen des JSON-Outputs, den der Flask-Server zurückgibt. Hier mit einem Prognosezeitraum von 48h

Felder des JSON-Outputs (Stand 30.7.2024)

discharge_hours_bin

eauto_obj

eautocharge_hours_float

result

simulation_data

spuelstart

start_solution