Skip to content

Commit

Permalink
Adjust readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris committed Oct 9, 2024
1 parent 8a2901a commit 7f0b8bb
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 23 deletions.
62 changes: 48 additions & 14 deletions README-DE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,29 @@ Die Diskussion findet im [Forum](https://www.akkudoktor.net/forum/diy-energie-op
## Installation

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

Das Projekt erfordert Python 3.10 oder neuer.

## Konfiguration

Dieses Projekt verwendet eine `config.json`, um Konfigurationseinstellungen zu verwalten.

### Standardkonfiguration

Eine Standardkonfigurationsdatei `default.config.json` wird bereitgestellt. Diese Datei enthält alle notwendigen Konfigurationsschlüssel mit ihren Standardwerten.

### Benutzerdefinierte Konfiguration

Benutzer können ein benutzerdefiniertes Konfigurationsverzeichnis angeben, indem sie die Umgebungsvariable `EOS_USER_DIR` setzen.

- Wenn das im Verzeichnis angegebene `config.json` bereits existiert, wird diese Konfigurationsdatei verwendet.
- Wenn die Datei `config.json` im angegebenen Verzeichnis nicht existiert, wird die `default.config.json` in dieses Verzeichnis als `config.json` kopiert.

### Konfigurationsupdates

Wenn in der `config.json` Konfigurationsschlüssel fehlen oder von denen in `default.config.json` abweichen, werden sie automatisch aktualisiert, um den Standardschlüsseln zu entsprechen und sicherzustellen, dass alle erforderlichen Schlüssel vorhanden sind.

### Schnellanleitung

Unter Linux (Ubuntu/Debian):
Expand All @@ -27,8 +46,7 @@ Unter Macos (benötigt [Homebrew](https://brew.sh)):
brew install make
```

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

### Ausführliche Anleitung
Expand All @@ -39,6 +57,7 @@ Alle notwendigen Abhängigkeiten können über `pip` installiert werden. Klonen
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:

Expand Down Expand Up @@ -70,20 +89,19 @@ source .venv/bin/activate
Sollte `pip install` die mariadb-Abhängigkeit nicht installieren können,
dann helfen folgende Kommandos:

* Debian/Ubuntu: `sudo apt-get install -y libmariadb-dev`
* Macos/Homebrew: `brew install mariadb-connector-c`
- Debian/Ubuntu: `sudo apt-get install -y libmariadb-dev`
- Macos/Homebrew: `brew install mariadb-connector-c`

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

## Nutzung

Einstellungen in `config.py` anpassen.
Um das System zu nutzen, führen Sie `flask_server.py` aus, damit wird der Server gestartet


```bash
./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:
Expand All @@ -106,99 +124,110 @@ Diese Klassen arbeiten zusammen, um eine detaillierte Simulation und Optimierung

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.2024)

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

- **Beschreibung**: Ein Array von Floats, das den Strompreis in Euro pro Wattstunde für verschiedene Zeitintervalle darstellt.
- **Typ**: Array
- **Element-Typ**: Float
- **Länge**: 48

### gesamtlast

- **Beschreibung**: Ein Array von Floats, das die Gesamtlast (Verbrauch) in Watt für verschiedene Zeitintervalle darstellt.
- **Typ**: Array
- **Element-Typ**: Float
- **Länge**: 48

### pv_forecast

- **Beschreibung**: Ein Array von Floats, das die prognostizierte Photovoltaik-Leistung in Watt für verschiedene Zeitintervalle darstellt.
- **Typ**: Array
- **Element-Typ**: Float
- **Länge**: 48

### temperature_forecast

- **Beschreibung**: Ein Array von Floats, das die Temperaturvorhersage in Grad Celsius für verschiedene Zeitintervalle darstellt.
- **Typ**: Array
- **Element-Typ**: Float
- **Länge**: 48

### pv_soc

- **Beschreibung**: Ein Integer, der den Ladezustand des PV Akkus zum START der aktuellen Stunde anzeigt, das ist nicht der aktuelle!!!
- **Typ**: Integer

### pv_akku_cap

- **Beschreibung**: Ein Integer, der die Kapazität des Photovoltaik-Akkus in Wattstunden darstellt.
- **Typ**: Integer

### einspeiseverguetung_euro_pro_wh

- **Beschreibung**: Ein Float, der die Einspeisevergütung in Euro pro Wattstunde darstellt.
- **Typ**: Float

### eauto_min_soc

- **Beschreibung**: Ein Integer, der den minimalen Ladezustand (State of Charge) des Elektroautos in Prozent darstellt.
- **Typ**: Integer

### eauto_cap

- **Beschreibung**: Ein Integer, der die Kapazität des Elektroauto-Akkus in Wattstunden darstellt.
- **Typ**: Integer

### eauto_charge_efficiency

- **Beschreibung**: Ein Float, der die Ladeeffizienz des Elektroautos darstellt.
- **Typ**: Float

### eauto_charge_power

- **Beschreibung**: Ein Integer, der die Ladeleistung des Elektroautos in Watt darstellt.
- **Typ**: Integer

### eauto_soc

- **Beschreibung**: Ein Integer, der den aktuellen Ladezustand (State of Charge) des Elektroautos in Prozent darstellt.
- **Typ**: Integer

### start_solution

- **Beschreibung**: Kann null sein oder eine vorherige Lösung enthalten (wenn vorhanden).
- **Typ**: null oder object

### haushaltsgeraet_wh

- **Beschreibung**: Ein Integer, der den Energieverbrauch eines Haushaltsgeräts in Wattstunden darstellt.
- **Typ**: Integer

### haushaltsgeraet_dauer

- **Beschreibung**: Ein Integer, der die Dauer der Nutzung des Haushaltsgeräts in Stunden darstellt.
- **Typ**: Integer







# 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

- **Beschreibung**: Ein Array von Binärwerten (0 oder 1), das anzeigt, ob in einer bestimmten Stunde Energie entladen wird.
- **Typ**: Array
- **Element-Typ**: Integer (0 oder 1)
- **Länge**: 48

### eauto_obj

- **Beschreibung**: Ein Objekt, das Informationen über das Elektroauto enthält.
- **charge_array**: Ein Array von Binärwerten (0 oder 1), das anzeigt, ob das Elektroauto in einer bestimmten Stunde geladen wird.
- **Typ**: Array
Expand All @@ -224,12 +253,14 @@ Dieses Dokument beschreibt die Struktur und Datentypen des JSON-Outputs, den der
- **Typ**: Integer

### eautocharge_hours_float

- **Beschreibung**: Ein Array von Binärwerten (0 oder 1), das anzeigt, ob das Elektroauto in einer bestimmten Stunde geladen wird.
- **Typ**: Array
- **Element-Typ**: Integer (0 oder 1)
- **Länge**: 48

### result

- **Beschreibung**: Ein Objekt, das die Ergebnisse der Simulation enthält.
- **E-Auto_SoC_pro_Stunde**: Ein Array von Floats, das den Ladezustand des Elektroautos für jede Stunde darstellt.
- **Typ**: Array
Expand Down Expand Up @@ -277,6 +308,7 @@ Dieses Dokument beschreibt die Struktur und Datentypen des JSON-Outputs, den der
- **Länge**: 35

### simulation_data

- **Beschreibung**: Ein Objekt, das die simulierten Daten enthält.
- **E-Auto_SoC_pro_Stunde**: Ein Array von Floats, das den simulierten Ladezustand des Elektroautos pro Stunde darstellt.
- **Typ**: Array
Expand Down Expand Up @@ -324,10 +356,12 @@ Dieses Dokument beschreibt die Struktur und Datentypen des JSON-Outputs, den der
- **Länge**: 35

### spuelstart

- **Beschreibung**: Kann `null` sein oder ein Objekt enthalten, das den Spülstart darstellt (wenn vorhanden).
- **Typ**: null oder object

### start_solution

- **Beschreibung**: Ein Array von Binärwerten (0 oder 1), das eine mögliche Startlösung für die Simulation darstellt.
- **Typ**: Array
- **Element-Typ**: Integer (0 oder 1)
Expand Down
Loading

0 comments on commit 7f0b8bb

Please sign in to comment.