Introduction
OpenDTU-OnBattery
Upstream Project
OpenDTU-OnBattery is a fork of OpenDTU by Thomas Basler (tbnobody).
Upstream Documentation
This documentation is not yet completely adjusted to OpenDTU-OnBattery. Feel free to help improving the documentation by proposing changes through pull requests.
Open Source software to talk to Hoymiles solar inverters and battery peripherals. It is an alternative to Hoymiles Data Transfer Units (DTUs), which sync data into the s-Miles cloud.
Note
You can only use one DTU for a specific inverter. You cannot query an inverter with two DTUs. Mixing up multiple DTUs may lead to unexpected behavior!
Key Features
- Dynamic Power Limiter to adjust inverter limits dynamically
- Power Meter interface to read the household power consumption
- Victron VE.Direct interface to communicate with Victron charge controllers
- Battery interface (JK BMS, Pylontech, Victron SmartShunt, and more) to know a battery's state
- AC charger interface to control a Huawei AC charger
Key Features inherited from the upstream project
- Read live data from inverter
- Show inverter's internal event log
- Show inverter information like firmware version, firmware build date, hardware revision and hardware version
- Show and set the current inverter limit
- Show the current grid profile settings
- Function to turn the inverter off and on
- Supports up to 10 inverters
- MQTT support (with TLS)
- Home Assistant MQTT Auto Discovery support
- Nice and fancy WebApp with visualization of current data
- Firmware upgrade using the web UI1
- Time zone support
- Ethernet support
- Prometheus API endpoint (/api/prometheus/metrics)
- English, German and French (partially translated) web interface (additional languages can be installed by uploading a language pack)
- Support for displays (SSD1306, SH1106, PCD8544)
- Support for status LEDs
- Configuration management (export / import configurations)
- Dark Theme
Features for developers
-
The microcontroller part
- Build with Arduino PlatformIO Framework for the ESP32
- Uses a fork of ESPAsyncWebserver and espMqttClient
-
The WebApp part
Background
The upstream project was started from a discussion on mikrocontroller.net. It's goal was to replace the original Hoymiles DTU (Telemetry Gateway), which uploads data to their cloud. With a lot of reverse engineering, the Hoymiles protocol was decrypted and analyzed.
Support
For support using OpenDTU-OnBattery you can find us on Github or Discord:
Github Discussions Discord Chat
Donate
The firmware is open-source and free to use!
If you like this project you can show your appreciation by making a small donation. This will help with offsetting the cost of hardware bought to develop and test features, or offsetting recurring costs like domain registrations.
-
Firmware over-the-air (OTA) updates are not supported on ESP32 with only 4MB of flash memory. ↩