This project is a fork of OpenDTU-OnBattery,
extending the firmware with an additional DPL-Off limit feature:
- New WebUI toggle to choose the output limit (Minimum / Maximum) when disabling the Dynamic Power Limiter.
- Alternative version without toggle: always sets the output limit to Maximum when disabling the Dynamic Power Limiter.
- THIS VERSION: without toggle!
- Applies only to solar-powered inverters.
- Battery-powered inverters remain unchanged (original behavior).
- Original firmware: If you turn off DPL, the output limit is set to the minimum value.
- This patch: If you turn off DPL, the output limit is set to the maximum value instead.
- With the switchable version, you can select the behavior in the WebUI (minimum or maximum).
This is an unofficial extension.
For official releases without these modifications, please refer to the upstream projects listed below.
Precompiled .bin firmware files can be found in the Releases section.
- Flash them directly to your ESP32 without compiling yourself.
- The full modified source code is included in this repository.
This project, like the originals, is licensed under the GNU General Public License v2 (GPL-2.0).
- Free use, modification, and redistribution are allowed.
- Source code must be made available when distributing binaries.
- Original copyright and license notices must remain intact.
A copy of the license is provided in the file LICENSE
- Original development: tbnobody/OpenDTU
- Battery/DPL extension: hoylabs/OpenDTU-OnBattery
- Additional DPL-Off limit feature: maxclaudi
OpenDTU-OnBattery is a fork of OpenDTU, which adds support for battery chargers, battery management systems (BMS), and power meters on a single ESP32. Its Dynamic Power Limiter can adjust the power production of one or more solar- and/or battery-powered inverter(s) to the actual houshold consumption. In this way, it is possible to implement a zero export policy.
You are always welcome to select and use your own set of parts to run OpenDTU-OnBattery. Our documentation should give you the information you need. There are also case designs available for you to print yourself.
If you are interested in ready-to-use hardware available for sale, the OpenDTU-OnBattery project endorses the OpenDTU Fusion board.
OpenDTU Fusion boards and accessories (cases in particular) are available exclusively through:
Please note that we do not have any connections to hardware sold on platforms like eBay, Kleinanzeigen, or similar marketplaces. Items sold there may not meet the quality and compatibility standards expected by our community.
Buying from the trusted sources listed above ensures:
- Access to reliable, well-tested hardware that meets the project’s requirements.
- Support for suppliers who align with the values of the OpenDTU community.
To allow for a good overall experience, we encourage users to avoid unverified hardware sources.
We are aware that some sellers falsely advertise that purchasing their hardware supports the OpenDTU-OnBattery, OpenDTU, and/or AhoyDTU developers financially. This is not true. The OpenDTU-OnBattery project does not receive any financial benefit from the sale of hardware.
See the documentation to learn what hardware to acquire, how to initialize it with OpenDTU-OnBattery firmware, and how to configure OpenDTU-OnBattery for your hardware.
Generally speaking, OpenDTU-OnBattery and the upstream project are compatible with each other, because OpenDTU-OnBattery mostly only extends the upstream project. However, there are a few notable differences aside from the added functionality:
- OpenDTU-OnBattery, due to its code footprint, cannot offer support for over-the-air (OTA) updates on ESP32 with only 4MB of flash memory. Consult the documentation to learn more.
- Unlike in the upstream project, you must compile the web application yourself when attempting to build your own firmware blob. See the documentation for details.
The canonical documentation of OpenDTU-OnBattery is hosted at https://opendtu-onbattery.net.
You may find additional helpful information in the project's community-maintained Github Wiki.
To find out what's new or improved have a look at the releases.
OpenDTU-OnBattery is actively maintained. Please note that OpenDTU-OnBattery may change significantly during its development. Bug reports, comments, feature requests and pull requests are welcome!
The original OpenDTU project was started from a discussion on Mikrocontroller.net. The original ambition was to replace the original Hoymiles DTU (Telemetry Gateway) to avoid using Hoymile's cloud. With a lot of reverse engineering, the Hoymiles protocol was decrypted and analyzed.
In the summer of 2022 @helgeerbe bought a Victron MPPT charge controller, and didn't like the idea to set up a separate ESP32 to receive the charger's data. He decided to fork OpenDTU and extend it with battery charger support and a Dynamic Power Limiter.
In early October 2024, the project moved to the newly founded GitHub
organisation hoylabs
and is since maintained by multiple community members.
- Special thanks to Thomas Basler (@tbnobody), the author of the upstream project, for his continued effort!
- Thanks to @helgeerbe for starting
OpenDTU-OnBattery, for his dedication to the project, as well as for his
trust in the current maintainers of the project, which act as part of the
hoylabs
GitHub organisation. - We like to thank all contributors. With your ideas and enhancements, you have made OpenDTU-OnBattery much more than @helgeerbe originally had in mind.