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)

README.md

AkkudoktorEOS
AkkudoktorEOS

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:

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.

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

  1. EOSdash (Recommended) - Web interface at http://localhost:8504
  2. Manual - Edit EOS.config.json directly
  3. 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.

Contributors

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


Owner metadata


GitHub Events

Total
Last Year

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 Email 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:


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

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/akkudoktor-eos/eos

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

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

requirements.txt pypi
  • 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
.github/workflows/docker-build.yml actions
  • 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
.github/workflows/pre-commit.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pre-commit/action v3.0.1 composite
.github/workflows/pytest.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v5 composite
Dockerfile docker
  • python ${PYTHON_VERSION}-slim build
pyproject.toml pypi
requirements-dev.txt pypi
  • 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
.github/workflows/stale.yml actions
  • actions/stale 5bef64f19d7facfb25b37b414482c7164d639639 composite

Score: -Infinity