H3-15-Smart Modbus Export Control
Hi All,

I am the new owner of a H3-15-Smart inverter and Battery.
I am currently running a home assistant integration by "nathanmarlor" but there is not control for the export limit.
To change the export control I have to set the setting locally at the inverter control panel.
Is anyone able to educate me to what modbus address I might be able to control the export limit on?
I am currently getting charged to export to the grid during the day but need to change the export back to a higher number during the night.

Thanks All :D
Re: H3-15-Smart Modbus Export Control
You might have to do some test reads to see what the H3 Smart is using, the original specification used 41012, whereas the latest spec uses 46616
Re: H3-15-Smart Modbus Export Control
Thanks for pointing me in the right direction Dave 👍
I'll try modbus poll today and report back 😁
Re: H3-15-Smart Modbus Export Control
Unfortunately no luck on 41012 & 46616, I get illegal Data Address. I did try and scan a bunch of other addresses but dident see anything that resembled the export limit setting. :(
Re: H3-15-Smart Modbus Export Control
joshdhaf wrote: Sat Dec 06, 2025 2:59 am Unfortunately no luck on 41012 & 46616, I get illegal Data Address. I did try and scan a bunch of other addresses but dident see anything that resembled the export limit setting. :(
Make sure you try them as both input and holding addresses
Re: H3-15-Smart Modbus Export Control
Hhhhmmmmm, thanks Dave, I will have another go tomorrow 😀
Re: H3-15-Smart Modbus Export Control
So my export limit is set to 22kw and I have ran a scan from 00000 to 60000 on both the input registers and holding registers. I then saved the data to an spread sheet. I used this formula to conver the hex to ASCii "=CHAR(HEX2DEC(MID(D1,3,2))) & CHAR(HEX2DEC(MID(D1,5,2)))" and wasent able to find anything that looked like 22kw or 22000w. :(
I might try having a play with the DRM plug tommorow. Was thinking i could used a smart switch to trigger the different DRM settings.
Re: H3-15-Smart Modbus Export Control
Ok, so I also had a play with the DRM setting and plug but it looks like this fuctionality is not fully implemented.
If anyone has any suggestion for controlling the export limit remotely from home assistant im open to ideas. :)
Re: H3-15-Smart Modbus Export Control
I really would have expected you to find the export limit in one of the specified registers - for what it's worth, rather doing a port scan, instead use the Foxess modbus integration to read the registers for you as it will do any hex conversions for you.

In HA, Developer tools, click on 'Actions' tab, in the Action box, start typing foxess read and select the action it finds, set your inverter in the drop down list, enter 41012 in Start Address, leave it as Input and click 'Perform Action' - the response value will be decoded and shown below.

Repeat for register 46616 and if there is no response try 'holding' instead.
Re: H3-15-Smart Modbus Export Control
At my H3-10 its the 46617:
46617.png
Re: H3-15-Smart Modbus Export Control
markuspa14 wrote: Wed Dec 10, 2025 1:29 pm At my H3-10 its the 46617:
46617.png
Ok, thanks for confirming - it’s in the spec as a 32bit INT, starting at 46616 so if you read 46616 for 2 bytes you’ll see the full register ~ which is [0, 12000] in your case - as long as 46616 is zero you can read / write to 46617 the export limit value.
Re: H3-15-Smart Modbus Export Control
Hi Dave, now this is really great! Now i got the point.

Code: Select all

values:
  "46616": 0
  "46617": 12000
THIS will fix my problem ( other thread) with the throttling of the inverter.

Awesome job!
Re: H3-15-Smart Modbus Export Control
Hi All, sorry for the slow replay I have been on night shift, I can double confirm it is in the 46617 Register big thanks to Dave for the info.
I have successfully read and written to the address and can confirm the changes are reflected on the inverter localy.
I had quite a bit of trouble writing to the address so I though I'd share some info.
My understnading of modbus is fairly basic so im sure someone out there might be able to provide more reliable information.

Firstly I was able to read from address 46617 from modbus poll. I used the ip of the ModbusTCP/485 converter 192.168.3.43 and server port 502 under connection settings.
Under the read/write definitions I used slave ID 247, Function 03 Read Holding registers, address:46617 and quantity 1 and rows 10 and read the value 22000 from address 46617. Can confirm this also worked using the fox integratoin by "nathanmarlor".
To write a value to the inverter I used the modbus poll write single coil function, slave id 247, address 46617 and used function 15: Write Multiple Coils.
This worked good for me becuase I could test everything was working before trying to get it working in home assistant.

Using the fox integrtion by "nathanmarlor" I was not able to write to the address useing the write register function.
I was also not able to write to the address with the modbus home assistant integration.

It suspect this might be becuase of the difference between write register, and write registerS ??? Not sure
It might also have something to do with Function Code 16.

Anyways I ended up using nodeRed, both the addon and Hac's Node-RED Companion.
I used the home assistant node "events:state" at the start, this is used to trigger the nodered function from a home assistant integration. I actual used two of them, one gets turned on to write 22000W to the address and when the other gets turned on it writes 0W to the address.
These two then feed a function block which passes the address information, function code, slave id, and qantity to a node called "Modbus-Flex-Write Node"
The code in the function block is:
if (msg.payload === true) {
msg.payload = {
"value": [22000],
"fc": 16,
"unitid": 247,
"address": 46617,
"quantity": 1
};
return msg;
} else if (msg.payload === false) {
msg.payload = {
"value": [0],
"fc": 16,
"unitid": 247,
"address": 46617,
"quantity": 1
};
return msg;
}

return null; // do nothing if payload is not boolean

And I have attached some pictures, hopfull this is helpfull to someone :)
Thanks again Dave for the address information.
Attachments:
State_change 1.png
state change 2.png
modbus page 2.png
modbus page 1.png
function 1.png
Re: H3-15-Smart Modbus Export Control
Oh, this probably needs to be done first before creating nodes in nodered.
Add this code in configuration.yaml to creat the Trigger FoxESS Write entity in home assistant

input_boolean:
foxess_write_trigger:
name: "Trigger FoxESS Write"
initial: off


It will give you as shown in the attachment.
And then select the "trigger foxess write" from the dropdown box when you are configuring the "events:state" node.
Attachments:
foxtrigger.png
Post Reply