Hi
I have a Fox ESS H1-3.7-E-G2 inverter and am having issues retrieving its internal information via modbus.
In order to see what might be going wrong, I have connected a PC and USB to RS485 converter to the inverter's RS485 port and am using modpoll.
I seem to be able to get the registers controlling SOH, max currents etc. from the region starting at 41000 using either holding registers or input registers,
but a virtually identical command requesting registers showing voltages, currents, powers etc. starting at 11000 gives an error response - see below:
C:\>modpoll -a247 -r41001 -c10 -t4 -b9600 -1 -pnone COM4
modpoll 3.15 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2024 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 247, start reference = 41001, count = 10
Communication.........: COM4, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, holding register table
-- Polling slave...
[41001]: 0
[41002]: 0
[41003]: 0
[41004]: 0
[41005]: 0
[41006]: 0
[41007]: 0
[41008]: 400
[41009]: 400
[41010]: 10
C:\>modpoll -a247 -r41001 -c10 -t3 -b9600 -1 -pnone COM4
modpoll 3.15 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2024 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC4
Slave configuration...: address = 247, start reference = 41001, count = 10
Communication.........: COM4, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, input register table
-- Polling slave...
[41001]: 0
[41002]: 0
[41003]: 0
[41004]: 0
[41005]: 0
[41006]: 0
[41007]: 0
[41008]: 400
[41009]: 400
[41010]: 10
C:\>modpoll -a247 -r11001 -c10 -t3 -b9600 -1 -pnone COM4
modpoll 3.15 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2024 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC4
Slave configuration...: address = 247, start reference = 11001, count = 10
Communication.........: COM4, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, input register table
-- Polling slave...
Illegal Data Address exception response!
C:\>modpoll -a247 -r11001 -c10 -t4 -b9600 -1 -pnone COM4
modpoll 3.15 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2024 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.
Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 247, start reference = 11001, count = 10
Communication.........: COM4, 9600, 8, 1, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 16-bit register, holding register table
-- Polling slave...
Illegal Data Address exception response!
C:\>
The iPhone FoxCloud 2.0 app reports the following:
Version_master 1.14
Version_Slave 1.02
Version_ARM 1.17
If relevant, I have an ECS2900 cube comprising one master and two slaves attached. They say:
Version_BMS 1.011
Does anyone have any idea what might be causing this?
Kind regards
Mike Robins
I don't know if it will help you but all the working addresses are used in this project
https://github.com/nathanmarlor/foxess_modbus
https://github.com/nathanmarlor/foxess_modbus
Community Admin / FoxESS Elite Professional
Buy me a coffee or Book a zoom meeting for remote consultancy
FoxESS Tri Inverter Installation
2 x KH & 1 x H1
24 x HV2600 (62.4kWh)
32 x 490w across 4 arrays
Dual Tesla Household
Heatpump & Low Carbon Housebuild
Buy me a coffee or Book a zoom meeting for remote consultancy
FoxESS Tri Inverter Installation
2 x KH & 1 x H1
24 x HV2600 (62.4kWh)
32 x 490w across 4 arrays
Dual Tesla Household
Heatpump & Low Carbon Housebuild
Thanks for the quick reply.
I am not planning on using Home Assistant.
I garnered the modbus addresses from https://github.com/nathanmarlor/foxess_ ... -Documents, Fox.-.AIO.H1.modbus.-.2023.pdf, on which I guess nathan based his Home Assistant integration.
Kind Regards
Mike Robins
I am not planning on using Home Assistant.
I garnered the modbus addresses from https://github.com/nathanmarlor/foxess_ ... -Documents, Fox.-.AIO.H1.modbus.-.2023.pdf, on which I guess nathan based his Home Assistant integration.
Kind Regards
Mike Robins
depending on firmware version of the inverter the modbus addresses changed in recent firmware.
Community Admin / FoxESS Elite Professional
Buy me a coffee or Book a zoom meeting for remote consultancy
FoxESS Tri Inverter Installation
2 x KH & 1 x H1
24 x HV2600 (62.4kWh)
32 x 490w across 4 arrays
Dual Tesla Household
Heatpump & Low Carbon Housebuild
Buy me a coffee or Book a zoom meeting for remote consultancy
FoxESS Tri Inverter Installation
2 x KH & 1 x H1
24 x HV2600 (62.4kWh)
32 x 490w across 4 arrays
Dual Tesla Household
Heatpump & Low Carbon Housebuild
Hi Will
Do you know if they are different in version(s)?
Or should I get the firmware updated to the latest?
If so, is this something I can do myself (reasonably confident electronics and software engineer) or should I get my installer to do so?
By the way, the numbers displayed by the FoxCloud 2.0 app don't seem to add up. Could this be related to the out of date firmware versions?
Kind regards
Mike Robins
Do you know if they are different in version(s)?
Or should I get the firmware updated to the latest?
If so, is this something I can do myself (reasonably confident electronics and software engineer) or should I get my installer to do so?
By the way, the numbers displayed by the FoxCloud 2.0 app don't seem to add up. Could this be related to the out of date firmware versions?
Kind regards
Mike Robins
Yes the firmware changes the register maps quite dramatically - get yourself on the latest version of Master/Manager firmware, the versions you have posted are really old and so any work you do now may become obsolete when you are updated.Mike Robins wrote: ↑Sat Mar 22, 2025 7:42 pm Hi Will
Do you know if they are different in version(s)?
Or should I get the firmware updated to the latest?
If so, is this something I can do myself (reasonably confident electronics and software engineer) or should I get my installer to do so?
By the way, the numbers displayed by the FoxCloud 2.0 app don't seem to add up. Could this be related to the out of date firmware versions?
Kind regards
Mike Robins
I shall get the installer to update the firmware. But I don't know how long that will take. I will update this topic when that is complete.
Mike
Mike
I have finally persuaded Fox Ess UK support to update the inverter and batteries. They say that they don't support the Modbus interface!!
Now for the inverter I have versions master:1.33, slave:1.02 and ARM 1.49.
Batteries: master:1.011, slaves1.14.
I have consulted a document titled "Fox Hybrid/AC Modbus Protocol", no version, which I downloaded from Nathan Marlor's excellent site: https://github.com/nathanmarlor. However this doesn't seem to represent the up to date Modbus map.
I also managed to find a document on scribd, titled "FOX commercial inverter
Modbus interface definition description", which seems to be version V1.02.00.00, marked up in Chinese to show the correct fields. This appears to show a better approximation to my Modbus map. Unfortunately, I can't read Chinese.
Does any have an up to date Modbus map for the H1-3.7-E-G2?
Thanks
Mike
Now for the inverter I have versions master:1.33, slave:1.02 and ARM 1.49.
Batteries: master:1.011, slaves1.14.
I have consulted a document titled "Fox Hybrid/AC Modbus Protocol", no version, which I downloaded from Nathan Marlor's excellent site: https://github.com/nathanmarlor. However this doesn't seem to represent the up to date Modbus map.
I also managed to find a document on scribd, titled "FOX commercial inverter
Modbus interface definition description", which seems to be version V1.02.00.00, marked up in Chinese to show the correct fields. This appears to show a better approximation to my Modbus map. Unfortunately, I can't read Chinese.
Does any have an up to date Modbus map for the H1-3.7-E-G2?
Thanks
Mike
Fox are correct in that they do not officially support modbus implementations but they do try and maintain the status quo and work with us on the integration to get as close as possible to a model implementation.
The H1 (G1) was the original single phase inverter, there was no officially published spec for this but as you have found on the integration wiki pages there have been a number of iterations of spec that have got us close, plus the work done by Nathan, Antony and a handful of others to map all available registers.
The latest spec is as close to an official spec as you can get, the problem is that it is different from earlier iterations and supports many more features than were originally there; but the latest spec was only implemented recently, and only on the latest generation of inverters namely the H3 Pro, H3 Smart (and anything new).
The H1 (G2) was based on the G1 (as was the KH) and so when it was first released the modbus register maps were very similar but as these inverters are relatively new and still the main single phase product line, when the products have evolved so too has the register map which is now a Hybrid between the original H1(G1) and latest spec.
The only way for us to deal with this is to have version specific register maps as there are several just for the H1 (G2) depending on the Manager(ARM) version - we have done a considerable amount of testing and take new iterations very slowly so as not to break older inverters that are not running the latest firmware.
As such there is no official document that shows what the H1(G2), KH inverters are working to as it differs depending on their age and firmware - but if you look at this file https://github.com/nathanmarlor/foxess_ ... iptions.py which defines the inverter version register maps any reference to H1_G2(_SET, or _144) will have an entity defined along with the modbus register (any scale, rounding, unit of measurement etc.. will be defined close by).
This is a close as you will get to a specification for the G2 as it has been tested and verified in operation, there may be some new features not supported by the integration (peak shaving soc, power limit for example) but these are specified in the latest spec and so with some testing you will be able to produce whatever functionality you need.
The H1 (G1) was the original single phase inverter, there was no officially published spec for this but as you have found on the integration wiki pages there have been a number of iterations of spec that have got us close, plus the work done by Nathan, Antony and a handful of others to map all available registers.
The latest spec is as close to an official spec as you can get, the problem is that it is different from earlier iterations and supports many more features than were originally there; but the latest spec was only implemented recently, and only on the latest generation of inverters namely the H3 Pro, H3 Smart (and anything new).
The H1 (G2) was based on the G1 (as was the KH) and so when it was first released the modbus register maps were very similar but as these inverters are relatively new and still the main single phase product line, when the products have evolved so too has the register map which is now a Hybrid between the original H1(G1) and latest spec.
The only way for us to deal with this is to have version specific register maps as there are several just for the H1 (G2) depending on the Manager(ARM) version - we have done a considerable amount of testing and take new iterations very slowly so as not to break older inverters that are not running the latest firmware.
As such there is no official document that shows what the H1(G2), KH inverters are working to as it differs depending on their age and firmware - but if you look at this file https://github.com/nathanmarlor/foxess_ ... iptions.py which defines the inverter version register maps any reference to H1_G2(_SET, or _144) will have an entity defined along with the modbus register (any scale, rounding, unit of measurement etc.. will be defined close by).
This is a close as you will get to a specification for the G2 as it has been tested and verified in operation, there may be some new features not supported by the integration (peak shaving soc, power limit for example) but these are specified in the latest spec and so with some testing you will be able to produce whatever functionality you need.
Thanks for that Sorry for the tardy response - I have had a busy week!
The information in the link you posted looks to be exactly what I need.
I had not looked at the Python sources as I am writing in C/C++.
I still find it difficult to understand that Fox ESS do not support Modbus access, even though it is part of their products, but whatever.
Thanks again for your help
Kind regards
Mike Robins
The information in the link you posted looks to be exactly what I need.
I had not looked at the Python sources as I am writing in C/C++.
I still find it difficult to understand that Fox ESS do not support Modbus access, even though it is part of their products, but whatever.
Thanks again for your help
Kind regards
Mike Robins