OpenDTU

Background

This project was started from this discussion (Mikrocontroller.net). It was the goal to replace the original Hoymiles DTU (Telemetry Gateway) with their cloud access. With a lot of reverse engineering the Hoymiles protocol was decrypted and analyzed.

Features for end users

  • Uses ESP32 microcontroller and NRF24L01+
  • Multi-Inverter support
  • MQTT support
  • Nice and fancy WebApp with visualization of current data
  • Firmware upgrade using the web UI
  • Default source supports up to 10 inverters
  • Time zone support

Features for developers

Wiring up

Schematic

Schematic

Symbolic view

Symbolic

Flashing and starting up

  • Install Visual Studio Code
  • In Visual Studio Code, install the PlatformIO Extension
  • Download or clone this repository
  • In Visual Studio Code, choose File –> Open Folder and select the previously downloaded source code. (You have to select the folder which contains the “platformio.ini” file)
  • Adjust the COM port in the file “platformio.ini”. It occurs twice:
    • upload_port
    • monitor_port
  • Select the arrow button in the status bar (PlatformIO: Upload) to compile and upload the firmware. During the compilation, all required libraries are downloaded automatically.

First configuration

  • After the initial flashing of the microcontroller, a Access Point called “OpenDTU-*” is opened. The default password is “openDTU42”.
  • Use a web browser to open the address http://192.168.4.1
  • Navigate to Settings –> Network Settings and enter your WiFi credentials
  • Currently you have to look at your router to determine the IP of the newly connected device

Building

  • Building the WebApp

    • The WebApp can be build using yarn

    $ yarn install
    $ yarn build
    
    • The updated output is placed in the ‘data’ directory
  • Building the microcontroller firmware

    • Visual Studio Code with the PlatformIO Extension is required for building

GitHub

View Github