Change configuration source priorities to: - cli - environment vars - dotenv settings - config file settings - init settings By this the environment vars supersede any configuration var provided by the configuration file or by the initialisation with pydantic. The test_config.py::test_computed_path was fixed to to not use the defaul env var overwrite defined by conftest.py. This seemed to indicate non working env vars, but in fact was a test setupt fault. Besides this fix there are other fixes and changes added: * fix: exclude computed fields when merging settings Pydantic may overwrite settings by values given for computed fields and use these values instead of re-computing the field. Avoid computed fields in merging settings. * chore: improve Windows compatability of development setup Improve scripts to better run also on Windows. When doing path checks keep compatibility also to Windows pathes. A lot of changes to avoid the famous Windows CRLF handling and keep line endings to LF. * chore: add development hint for Windows Windows developers should set core.autocrlf to false. * chore: update version Signed-off-by: b0661 <b0661n0e17e@gmail.com>
Build optimized energy management plans for your home automation
AkkudoktorEOS is a comprehensive solution for simulating and optimizing energy systems based on renewable sources. Optimize your photovoltaic systems, battery storage, load management, and electric vehicles while considering real-time electricity pricing.
Why use AkkudoktorEOS?
AkkudoktorEOS can be used to build energy management plans that are optimized for your specific setup of PV system, battery, electric vehicle, household load and electricity pricing. It can be integrated into home automation systems such as NodeRED, Home Assistant, EVCC.
🏘️ Community
We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved:
-
GitHub Issue Tracker: discuss ideas and features, and report bugs.
-
Akkudoktor Forum: get direct suppport from the community.
What do people build with AkkudoktorEOS
The community uses AkkudoktorEOS to minimize grid energy consumption and to maximize the revenue from grid energy feed in with their home automation system.
- Andreas Schmitz, the Akkudoktor, uses EOS integrated in his NodeRED home automation system for OpenSource Energieoptimierung.
- Jörg, meintechblog, uses EOS for day-ahead optimization for time-variable energy prices. See: So installiere ich EOS von Andreas Schmitz
Why not use AkkudoktorEOS?
AkkudoktorEOS does not control your home automation assets. It must be integrated into a home automation system. If you do not use a home automation system or you feel uncomfortable with the configuration effort needed for the integration you should better use other solutions.
Quick Start
Run EOS with Docker (access dashboard at http://localhost:8504):
docker run -d \
--name akkudoktoreos \
-p 8503:8503 \
-p 8504:8504 \
-e OPENBLAS_NUM_THREADS=1 \
-e OMP_NUM_THREADS=1 \
-e MKL_NUM_THREADS=1 \
-e EOS_SERVER__HOST=0.0.0.0 \
-e EOS_SERVER__EOSDASH_HOST=0.0.0.0 \
-e EOS_SERVER__EOSDASH_PORT=8504 \
--ulimit nproc=65535:65535 \
--ulimit nofile=65535:65535 \
--security-opt seccomp=unconfined \
akkudoktor/eos:latest
System Requirements
- Python: 3.11 or higher
- Architecture: amd64, aarch64 (armv8)
- OS: Linux, Windows, macOS
Note
: Other architectures (armv6, armv7) require manual compilation of dependencies with Rust and GCC.
Installation
Home Assistant add-on
To install the Akkudoktor-EOS add-on in Home Assistant:
-
Add the repository URL:
In Home Assistant, go to:
Settings → Add-ons → Add-on Store → ⋮ (top-right menu) → Repositoriesand enter the URL of this Git repository:
https://github.com/Akkudoktor-EOS/EOS -
Install the add-on:
After adding the repository, the add-on will appear in the Add-on Store. Click Install.
-
Start the add-on:
Once installed, click Start in the add-on panel.
-
Access the dashboard:
Click Open Web UI in the add-on panel.
-
Configure EOS (optional): In the dashboard, go to:
Config
Docker (Recommended)
docker pull akkudoktor/eos:latest
docker compose up -d
Access the API at http://localhost:8503 (docs at http://localhost:8503/docs)
From Source
git clone https://github.com/Akkudoktor-EOS/EOS.git
cd EOS
Linux:
python -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/pip install -e .
.venv/bin/python -m akkudoktoreos.server.eos
Windows:
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\pip install -e .
.venv\Scripts\python -m akkudoktoreos.server.eos
Configuration
EOS uses EOS.config.json for configuration. If the file doesn't exist, a default configuration is
created automatically.
Custom Configuration Directory
export EOS_DIR=/path/to/your/config
Configuration Methods
- EOSdash (Recommended) - Web interface at
http://localhost:8504 - Manual - Edit
EOS.config.jsondirectly - API - Use the Server API
See the documentation for all configuration options.
Port Configuration
Default ports: 8503 (API), 8504 (Dashboard)
If running on shared systems (e.g., Synology NAS), these ports may conflict with system services. Reconfigure port mappings as needed:
docker run -p 8505:8503 -p 8506:8504 ...
API Documentation
Interactive API docs available at:
- Swagger UI:
http://localhost:8503/docs - OpenAPI Spec: View Online
Resources
Contributing
We welcome contributions! See CONTRIBUTING for guidelines.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

