TonyM1958 / HA-FoxESS-Modbus

Home Assistant integration code for Fox ESS H1, H1-G2, H3 and KH inverters
24 stars 2 forks source link

Add H3 register values #7

Open TonyM1958 opened 1 year ago

TonyM1958 commented 1 year ago

Plenty of reference data around for H2 holding registers. Should modbusH3 file be added?

TonyM1958 commented 1 year ago

Added modbusH3.yaml and spread sheet tab - needs to be tested by someone with H3 inverter. Modified generic template.yaml so it works with both single phase and three phase inverters.

cosmico89 commented 1 year ago

HI! I own a H3.10kw, if you need to test something I can try! 😄

TonyM1958 commented 1 year ago

Thanks @cosmico89. What's your current setup in terms of home assistant and monitoring? Don't want to disrupt stuff too much, so any context will help. There are definitely some registers and behaviours I'm not certain about.

TonyM1958 commented 1 year ago

Bit more info... I've basically taken the known register set for H3 and added in new registers we found on H1 and KH but these have not been tested. So one thing would be to load up the sensors and check for illegal address errors in the HA log where modbus cannot read what we have. As part of this, review all the sensor values and confirm they read OK, including decodes and model id for inverter, bms and batteries.

Another area is we have 8 x fault registers on H1 but only 3 on H1. With no fault, they read 0 so are hard to detect unless the addresses flag as illegal. So, add some more and see if they read OK.

Final area, after whatever gets flagged above is how Load Power is calculated. This needs to be validated against Fox cloud data.

Ideally, we would also check load power results with a second solar inverter connected via meter 2 but that's not easy or common so I'm not expecting to be able to do that.

TonyM1958 commented 1 year ago

holding

input

A scan of H1 inverter gives the following active address blocks:

Holding Registers

Input Registers

The same scans on H3 give the same range of Holding Registers. There are NO active Input Registers.

Rescanning H1 shows the holding registers at 41000 mirror the input registers at 41000 BUT you cannot read the Time Period registers (41001 TO 41006) individually. Also, there is no holding register 41016 (Ground Enable).

TonyM1958 commented 1 year ago

31041 registers

Scanning 31000 range, registers are as expected up to 31040. Then:

That's the end of that block of registers

TonyM1958 commented 1 year ago

41000 registers

Scanning 41000 range, the holding registers are:

TonyM1958 commented 1 year ago

44000 registers

This is what we see scanning holding registers from 44000. Looks like:

Others TBC - this block may be related to input registers 11026 - 11033 on H1?

TonyM1958 commented 1 year ago

30000 registers

Expected Inverter Model, and Firmware versions at holding register block 30000. Model number has leading and trailing spaces.

TonyM1958 commented 1 year ago

Power calculations: meters are combined from raw data and not split by phase, Template calculations updated to reflect this and now appear to agree with Fox Cloud data.