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)
See the code

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.
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.
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.
The community uses AkkudoktorEOS to minimize grid energy consumption and to maximize the revenue from grid energy feed in with their home automation system.
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.
The next release includes a substantial energy-planning update: 15-minute GENETIC plans, EV departure targets, flexible household loads, optional battery export, and better measurement and PV-forecast tools. These features are currently unreleased.
Existing Home Assistant automations, Node-RED flows and custom API clients may need changes.
Devices now use stable IDs, the new optimizer reads hardware settings from EOS configuration,
and incomplete forecasts or outdated battery measurements can stop a run. The legacy
POST /optimize remains available with GENETIC0; the new POST /v1/optimize has a different
request format. Back up your configuration and data before updating.
Read the upgrade guide and changelog before switching an existing installation.
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
Note: Other architectures (armv6, armv7) require manual compilation of dependencies with Rust and GCC.
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) → Repositories
and 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 pull akkudoktor/eos:latest
docker compose up -d
Access the API at http://localhost:8503 (docs at http://localhost:8503/docs)
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
EOS uses EOS.config.json for configuration. If the file doesn't exist, a default configuration is
created automatically.
export EOS_DIR=/path/to/your/config
http://localhost:8504EOS.config.json directlySee the documentation for all configuration options.
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 ...
Interactive API docs available at:
http://localhost:8503/docsWe welcome contributions! See CONTRIBUTING for guidelines.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
297 followers · starred Sep 2026
410 followers · starred Oct 2024
2,531 followers · starred Mar 2025
404 followers · starred Oct 2025
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)
See the code

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.
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.
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.
The community uses AkkudoktorEOS to minimize grid energy consumption and to maximize the revenue from grid energy feed in with their home automation system.
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.
The next release includes a substantial energy-planning update: 15-minute GENETIC plans, EV departure targets, flexible household loads, optional battery export, and better measurement and PV-forecast tools. These features are currently unreleased.
Existing Home Assistant automations, Node-RED flows and custom API clients may need changes.
Devices now use stable IDs, the new optimizer reads hardware settings from EOS configuration,
and incomplete forecasts or outdated battery measurements can stop a run. The legacy
POST /optimize remains available with GENETIC0; the new POST /v1/optimize has a different
request format. Back up your configuration and data before updating.
Read the upgrade guide and changelog before switching an existing installation.
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
Note: Other architectures (armv6, armv7) require manual compilation of dependencies with Rust and GCC.
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) → Repositories
and 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 pull akkudoktor/eos:latest
docker compose up -d
Access the API at http://localhost:8503 (docs at http://localhost:8503/docs)
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
EOS uses EOS.config.json for configuration. If the file doesn't exist, a default configuration is
created automatically.
export EOS_DIR=/path/to/your/config
http://localhost:8504EOS.config.json directlySee the documentation for all configuration options.
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 ...
Interactive API docs available at:
http://localhost:8503/docsWe welcome contributions! See CONTRIBUTING for guidelines.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
297 followers · starred Sep 2026
410 followers · starred Oct 2024
2,531 followers · starred Mar 2025
404 followers · starred Oct 2025