Skip to content

Protocol Hoymiles DTU (S‐series) vs. OpenDTU

OutdoorRob edited this page Aug 5, 2025 · 1 revision

Table of Content

Overview

This page documents differences in the messages send between the original Hoymiles DTU (S-series) and OpenDTU. Even if the commands send by OpenDTU obviously work fine controlling the inverters this page could be helpful for future bug fixes and enhancements.

Format of the documentation

  • It includes the type of the used Hoymiles DTU (Pro-S and WLite-S) and related firmware versions.
  • The first line contains the data send by the original Hoymiles DTU, the second line the data send by OpenDTU.
  • For easier reading the serial numbers of the inverter and the DTU have been replaced by ... since there aren't any differences in its handling.
  • Relevant differences are marked with ^.
  • If there are any known information about the data marked as different it is written below.
  • All data is in hex-format without any prefix for easier reading.

Commands

DevControlCommands (0x51 / 0x81)

ActivePowerControlCommand (0x0B)

tbd

PowerControlCommand (0x00, 0x01, 0x02)

tbd

MultiDataCommands (0x15 / 0x80)

AlarmDataCommand (0x11)

tbd

DevInfoAllCommand (0x01)

tbd

DevInfoSimpleCommand (0x00)

tbd

GridOnProFilePara (0x02)

tbd

RealTimeRunDataCommand (0x0B)

tbd

SystemConfigPara-Command (0x05)

WLite-S: v01.01.00
OpenDTU: v25.5.10

WLite-S: 15 ... 80 0500 688F 43F1 0500 0002 0000 0000 3D14 EB
OpenDTU: 15 ... 80 0500 688F 58C5 0000 0000 0000 0000 73BB 1D
                                  ^^^^ ^^^^
  • 0500 vs. 0000:
    • Seems to be always send as 0500 by Hoymiles DTUs (S-series).
    • It's always send as 0000 by OpenDTU.
    • It's documented as 'Gap' here.
    • No further information found.
  • 0002 vs. 0000
    • Contains the event log counter reported by the AlarmLog and RealTimeRunData-Response.
    • No further information available why the Hoymiles DTUs include this in there commands.
    • It's always send as 0000 by OpenDTU.
Clone this wiki locally