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 register
S ??? 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.