Energy System Simulation and Optimization
An open-source energy optimization system that integrates renewable energy sources, such as photovoltaic (PV) systems, battery storage, and smart load management solutions.
https://github.com/akkudoktor-eos/eos
Category: Energy Systems
Sub Category: Energy System Modeling Frameworks
Keywords from Contributors
transforms optimizers charting alerting profiles file-uploader measurements tokenization certification autograd
Last synced: about 21 hours ago
JSON representation
Repository metadata
This repository features an Energy Optimization System (EOS) that optimizes energy distribution, usage for batteries, heat pumps& household devices. It includes predictive models for electricity prices (planned), load forecasting& dynamic optimization to maximize energy efficiency & minimize costs. Founder Dr. Andreas Schmitz (YouTube @akkudoktor)
- Host: GitHub
- URL: https://github.com/akkudoktor-eos/eos
- Owner: Akkudoktor-EOS
- License: other
- Created: 2024-02-16T11:13:56.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-12-20T20:54:18.000Z (6 days ago)
- Last Synced: 2025-12-21T06:55:10.970Z (6 days ago)
- Language: Python
- Homepage: https://akkudoktor.net/c/der-akkudoktor/eos/
- Size: 29.9 MB
- Stars: 1,488
- Watchers: 66
- Forks: 118
- Open Issues: 33
- Releases: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Notice: NOTICE
README.md


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
cummunity.
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
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.
Owner metadata
- Name: Akkudoktor-EOS
- Login: Akkudoktor-EOS
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/157137710?v=4
- Repositories: 1
- Last ynced at: 2024-05-16T15:01:38.559Z
- Profile URL: https://github.com/Akkudoktor-EOS
GitHub Events
Total
- Fork event: 86
- Create event: 232
- Release event: 1
- Issues event: 240
- Watch event: 1190
- Delete event: 239
- Member event: 8
- Issue comment event: 689
- Push event: 665
- Gollum event: 31
- Pull request event: 679
- Pull request review comment event: 329
- Pull request review event: 376
Last Year
- Fork event: 73
- Create event: 226
- Release event: 1
- Issues event: 230
- Watch event: 1011
- Delete event: 236
- Member event: 5
- Issue comment event: 574
- Push event: 641
- Gollum event: 31
- Pull request review event: 336
- Pull request review comment event: 276
- Pull request event: 640
Committers metadata
Last synced: 1 day ago
Total Commits: 731
Total Committers: 33
Avg Commits per committer: 22.152
Development Distribution Score (DDS): 0.655
Commits in past year: 415
Committers in past year: 21
Avg Commits per committer in past year: 19.762
Development Distribution Score (DDS) in past year: 0.477
| Name | Commits | |
|---|---|---|
| dependabot[bot] | 4****] | 252 |
| Andreas | d****e@g****e | 166 |
| Normann | g****b@k****m | 92 |
| Bobby Noelte | b****e@g****m | 69 |
| Dominique Lasserre | l****d@g****m | 65 |
| Dominik Siebel | d****l@t****m | 16 |
| Daniel Molkentin | d****l@m****e | 10 |
| Michael Osthege | m****e@o****m | 10 |
| 7tobias | tw@w****u | 4 |
| Dennis | 7****X | 4 |
| redmoon2711 | 1****1 | 4 |
| rompic | r****n@p****u | 4 |
| celle1234 | 6****4 | 3 |
| Fortrieb | d****v@f****g | 3 |
| Christian Heinrich Hohlfeld | c****d@g****m | 3 |
| Chris | 4****h | 2 |
| Chris | g****t@n****e | 2 |
| Eric | 1****h | 2 |
| Georg Z. | g****z@g****e | 2 |
| Ikko Eltociear Ashimine | e****r@g****m | 2 |
| Theo Weiss | t****o@m****g | 2 |
| Yunus AYDIN | a****s@g****m | 2 |
| thiloms | 1****s | 2 |
| wenzul | w****l | 1 |
| Sebastian Struß | c****e@x****e | 1 |
| boerni | b****z@g****m | 1 |
| Your Name | y****u@e****m | 1 |
| SchaafAlexander | 8****r | 1 |
| Marco | 9****1 | 1 |
| Jürgen Eckel | e****j | 1 |
| and 3 more... | ||
Committer domains:
- code4energy.de: 1
- x2d2.de: 1
- m1theo.org: 1
- garnix.de: 1
- nootch.de: 1
- fortrieb.org: 1
- pickl.eu: 1
- wiznet.eu: 1
- molkentin.de: 1
- trivago.com: 1
- koldrack.com: 1
- gmx.de: 1
Issue and Pull Request metadata
Last synced: 4 days ago
Total issues: 178
Total pull requests: 842
Average time to close issues: 20 days
Average time to close pull requests: 4 days
Total issue authors: 60
Total pull request authors: 32
Average comments per issue: 2.24
Average comments per pull request: 0.99
Merged pull request: 616
Bot issues: 0
Bot pull requests: 315
Past year issues: 98
Past year pull requests: 520
Past year average time to close issues: 23 days
Past year average time to close pull requests: 2 days
Past year issue authors: 43
Past year pull request authors: 22
Past year average comments per issue: 2.01
Past year average comments per pull request: 0.6
Past year merged pull request: 393
Past year bot issues: 0
Past year bot pull requests: 251
Top Issue Authors
- drbacke (56)
- b0661 (14)
- NormannK (14)
- RobertHerter (10)
- njoerd114 (6)
- andig (5)
- XHalamaX (4)
- danimo (3)
- Isengo1989 (3)
- celle1234 (3)
- SamLue (2)
- SchaafAlexander (2)
- redmoon2711 (2)
- aydinnyunus (2)
- briearn (2)
Top Pull Request Authors
- dependabot[bot] (315)
- NormannK (177)
- b0661 (105)
- Lasall (96)
- drbacke (42)
- michaelosthege (12)
- rompic (9)
- redmoon2711 (9)
- noootch (9)
- fortrieb (7)
- niklasbeinghaus (6)
- ChristianHohlfeld (5)
- 7tobias (5)
- e-hirsch (4)
- BerndCzech (4)
Top Issue Labels
- bug (78)
- enhancement (30)
- stale (12)
- simulation (6)
- good first issue (4)
- optimization (3)
- Stale (3)
- prediction (2)
- refactoring / maintenance (2)
- docker (2)
- documentation (2)
- help wanted (2)
- feature request (2)
- wontfix (1)
- hacktoberfest (1)
- windows (1)
- question (1)
- eos (1)
Top Pull Request Labels
- dependencies (316)
- python (200)
- refactoring / maintenance (8)
- optimization (3)
- in progess (3)
- enhancement (2)
- eos (2)
- stale (1)
- bug (1)
- documentation (1)
- EOSdash (1)
- simulation (1)
- docker (1)
Package metadata
- Total packages: 2
- Total downloads: unknown
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 6
proxy.golang.org: github.com/akkudoktor-eos/eos
- Homepage:
- Documentation: https://pkg.go.dev/github.com/akkudoktor-eos/eos#section-documentation
- Licenses: other
- Latest release: v0.2.0 (published about 2 months ago)
- Last Synced: 2025-12-19T23:06:10.813Z (7 days ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.158%
- Average: 5.331%
- Dependent repos count: 5.504%
proxy.golang.org: github.com/Akkudoktor-EOS/EOS
- Homepage:
- Documentation: https://pkg.go.dev/github.com/Akkudoktor-EOS/EOS#section-documentation
- Licenses: other
- Latest release: v0.2.0 (published about 2 months ago)
- Last Synced: 2025-12-19T23:06:10.453Z (7 days ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.158%
- Average: 5.331%
- Dependent repos count: 5.504%
Dependencies
- Flask ==3.0.3
- Jinja2 ==3.1.4
- Mako ==1.3.5
- Markdown ==3.7
- MarkupSafe ==2.1.5
- Pygments ==2.18.0
- Werkzeug ==3.0.4
- absl-py ==2.1.0
- astunparse ==1.6.3
- blinker ==1.8.2
- certifi ==2024.8.30
- charset-normalizer ==3.3.2
- click ==8.1.7
- contourpy ==1.3.0
- cycler ==0.12.1
- deap ==1.4.1
- flatbuffers ==24.3.25
- fonttools ==4.53.1
- gast ==0.6.0
- google-pasta ==0.2.0
- grpcio ==1.66.1
- h5py ==3.11.0
- idna ==3.8
- itsdangerous ==2.2.0
- joblib ==1.4.2
- keras ==3.5.0
- kiwisolver ==1.4.7
- libclang ==18.1.1
- mariadb ==1.1.10
- markdown-it-py ==3.0.0
- matplotlib ==3.9.2
- mdurl ==0.1.2
- ml-dtypes ==0.4.0
- namex ==0.0.8
- numpy ==1.26.4
- opt-einsum ==3.3.0
- optree ==0.12.1
- packaging ==24.1
- pandas ==2.2.2
- pdoc3 ==0.11.1
- pillow ==10.4.0
- protobuf ==4.25.4
- pyparsing ==3.1.4
- python-dateutil ==2.9.0.post0
- pytz ==2024.1
- requests ==2.32.3
- rich ==13.8.1
- scikit-learn ==1.5.1
- scipy ==1.14.1
- setuptools ==74.1.2
- six ==1.16.0
- tensorboard ==2.17.1
- tensorboard-data-server ==0.7.2
- tensorflow ==2.17.0
- termcolor ==2.4.0
- threadpoolctl ==3.5.0
- typing_extensions ==4.12.2
- tzdata ==2024.1
- urllib3 ==2.2.2
- wheel ==0.44.0
- wrapt ==1.16.0
- actions/attest-build-provenance v1 composite
- actions/download-artifact v4 composite
- actions/github-script v6 composite
- actions/upload-artifact v4 composite
- docker/build-push-action v6 composite
- docker/login-action v3 composite
- docker/metadata-action v5 composite
- docker/setup-buildx-action v3 composite
- docker/setup-qemu-action v3 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pre-commit/action v3.0.1 composite
- actions/checkout v2 composite
- actions/setup-python v5 composite
- python ${PYTHON_VERSION}-slim build
- myst-parser ==4.0.0 development
- pre-commit * development
- pytest ==8.3.3 development
- pytest-cov ==5.0.0 development
- pytest-xprocess ==1.0.2 development
- sphinx ==8.0.2 development
- sphinx_rtd_theme ==3.0.1 development
- actions/stale 5bef64f19d7facfb25b37b414482c7164d639639 composite
Score: -Infinity