An application to read Hoymiles Gateway Solar Data using direct communication with Hoymiles DTU
I have done this addon to integrate my solar system data with our Home Assistant instance.
- data update interval 1 minute instead of default 15 minutes on global.hoymiles.com
- detailed info from separate inverters (ex.: reactive power, power factor) and each panel individually
- tested only on DTU-Pro (see notice below)
Add-on sets connection with Hoymiles DTU unit and starts listening for incoming data. When new data is received add-on will transform it and push to mqtt broker.
On start add-on changes server send time configuration on dtu from 15 minutes (dtu default) to 1 minute. After that data is refreshed every minute in Home Assistant and native Hoymiles dashboard also.
- Hoymiles DTU (currently tested only on DTU-Pro)
- Home Assistant with Mosquitto Add-on installed (MQTT)
DTU must be connected to your local network by WIFI (not by LAN).
Only on WIFI interface DTU can be accessed on port 10081
- Copy this repository url https://github.com/banny310/hoymiles-dtu-homeassistant-addon
- Add as new repository in Home Assistant add-on store
- Install add-on
- Set DTU ip address and port in config tab
dtu:
host: 192.168.88.129
port: 10081
- Start add-on
An add-on full, default configuration is showed bellow
You may override that in home assistant yaml addon config (make sure you match structure)
dtu = {
host = 192.168.1.1
port = 10081
watchdog_timeout = 300 # Restart connection to DTU when nothing is received from DTU in period of time (seconds)
# Useable in passive mode because sometimes communication stalls
}
mqtt = {
host = 192.168.1.2
port = 1883
username = xxx
password = xxx-password
}
app = {
store_messages_in_excel = false # used to save received messages in excel format for debug purposes
mode = passive # add-on work strategy, values: [active, passive]
# active - addon continously pool DTU for statistics.
# Default every 1 minute
# passive - addon changes time interval with DTU send statistics to
hoymiles.com and starts passive listenting to outgoing communication
}
app_mode_active = {
pull_interval = 60 # time in seconds between each metrics request from DTU
}
app_mode_passive = {
set_server_send_time = true # change DTU configuration of report statistics time interval
server_send_time = 1 # report statistics to hoymiles.com time interval in minutes (dtu default: 15 minutes)
}
Example override of watchdog_timeout in yaml:
dtu:
host: 192.168.88.129
port: 10081
watchdog_timeout: 600
- DTU only send stats when micros are producing energy. During night inverters are completely off. So if you installed add-on in the eventing, wait until tomorrow.
- DTU must be connected by wifi (not by LAN). Only on Wifi interface port 10081 is open.
- DTU must have AP network active (mode AP+STA). You must see network with SSID DTUP-12345678 and be able to connect to it.
- Some of DTUs (with never software) does not send statistics over 10081.
To check that you can login to DTU with telnettelnet <dtu-ip-address> 10081
and see communication.
Every minute there should something appear. If it is not, add-on won`t work.
Currently, tested only with DTU-Pro:
- hw: H09.01.02
- sw: V00.02.08, V00.02.10, V00.02.15 (V00.02.0F)
If you have a version other than those listed above, run it at your own risk!
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.