2025-01-03 00:31:20 +01:00
|
|
|
# Getting Started
|
|
|
|
|
2025-01-06 16:27:57 +01:00
|
|
|
## Installation
|
|
|
|
|
|
|
|
The project requires Python 3.10 or newer. Currently there are no official packages or images published.
|
|
|
|
|
|
|
|
Following sections describe how to locally start the EOS server on `http://localhost:8503`.
|
|
|
|
|
|
|
|
### Run from source
|
|
|
|
|
|
|
|
Install the dependencies in a virtual environment:
|
|
|
|
|
|
|
|
```{eval-rst}
|
|
|
|
.. tabs::
|
|
|
|
|
|
|
|
.. tab:: Windows
|
|
|
|
|
|
|
|
.. code-block:: powershell
|
|
|
|
|
|
|
|
python -m venv .venv
|
|
|
|
.venv\Scripts\pip install -r requirements.txt
|
2025-02-10 00:38:35 +01:00
|
|
|
.venv\Scripts\pip install -e .
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
.. tab:: Linux
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
python -m venv .venv
|
|
|
|
.venv/bin/pip install -r requirements.txt
|
2025-02-10 00:38:35 +01:00
|
|
|
.venv/bin/pip install -e .
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Start the EOS fastapi server:
|
|
|
|
|
|
|
|
```{eval-rst}
|
|
|
|
.. tabs::
|
|
|
|
|
|
|
|
.. tab:: Windows
|
|
|
|
|
|
|
|
.. code-block:: powershell
|
|
|
|
|
2025-01-21 19:20:50 +01:00
|
|
|
.venv\Scripts\python src/akkudoktoreos/server/eos.py
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
.. tab:: Linux
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2025-01-21 19:20:50 +01:00
|
|
|
.venv/bin/python src/akkudoktoreos/server/eos.py
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
### Docker
|
|
|
|
|
|
|
|
```{eval-rst}
|
|
|
|
.. tabs::
|
|
|
|
|
|
|
|
.. tab:: Windows
|
|
|
|
|
|
|
|
.. code-block:: powershell
|
|
|
|
|
|
|
|
docker compose up --build
|
|
|
|
|
|
|
|
.. tab:: Linux
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
docker compose up --build
|
|
|
|
|
2025-01-03 00:31:20 +01:00
|
|
|
```
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
This project uses the `EOS.config.json` file to manage configuration settings.
|
|
|
|
|
|
|
|
### Default Configuration
|
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
A default configuration file `default.config.json` is provided. This file contains all the necessary
|
|
|
|
configuration keys with their default values.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
### Custom Configuration
|
|
|
|
|
|
|
|
Users can specify a custom configuration directory by setting the environment variable `EOS_DIR`.
|
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
- If the directory specified by `EOS_DIR` contains an existing `EOS.config.json` file, the
|
|
|
|
application will use this configuration file.
|
|
|
|
- If the `EOS.config.json` file does not exist in the specified directory, the `default.config.json`
|
|
|
|
file will be copied to the directory as `EOS.config.json`.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
### Configuration Updates
|
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
If the configuration keys in the `EOS.config.json` file are missing or different from those in
|
|
|
|
`default.config.json`, they will be automatically updated to match the default settings, ensuring
|
|
|
|
that all required keys are present.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
## Classes and Functionalities
|
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
This project uses various classes to simulate and optimize the components of an energy system. Each
|
|
|
|
class represents a specific aspect of the system, as described below:
|
2025-01-06 16:27:57 +01:00
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
- `Battery`: Simulates a battery storage system, including capacity, state of charge, and now
|
|
|
|
charge and discharge losses.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
- `PVForecast`: Provides forecast data for photovoltaic generation, based on weather data and
|
|
|
|
historical generation data.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
- `Load`: Models the load requirements of a household or business, enabling the prediction of future
|
|
|
|
energy demand.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
- `Heatpump`: Simulates a heat pump, including its energy consumption and efficiency under various
|
|
|
|
operating conditions.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
- `Strompreis`: Provides information on electricity prices, enabling optimization of energy
|
|
|
|
consumption and generation based on tariff information.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
- `EMS`: The Energy Management System (EMS) coordinates the interaction between the various
|
|
|
|
components, performs optimization, and simulates the operation of the entire energy system.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
These classes work together to enable a detailed simulation and optimization of the energy system.
|
|
|
|
For each class, specific parameters and settings can be adjusted to test different scenarios and
|
|
|
|
strategies.
|
2025-01-06 16:27:57 +01:00
|
|
|
|
|
|
|
### Customization and Extension
|
|
|
|
|
2025-02-12 14:24:17 +01:00
|
|
|
Each class is designed to be easily customized and extended to integrate additional functions or
|
|
|
|
improvements. For example, new methods can be added for more accurate modeling of PV system or
|
|
|
|
battery behavior. Developers are invited to modify and extend the system according to their needs.
|