[APP][Pro] SolarEdge + Growatt TCP modbus

Thanks Edwin, your patience and contribution to this app is epic! Not sure it’s useful but in the FusionSolar app, there’s a parameter which basically hands over control to a third party - this is what it looks like in the app and it’s desirable to be able to check the value of the parameter and if it’s set to third-party dispatch, allow a flow or a javascript to alter the parameter.

Unfortunately I have no further details how it’s managed in the inverter or dongle in this case. Let me know if there’s any other information I could provide.

yes, i think it is for some EMS and I think it works on their cloud.

maybe you check home assistant impl. no clue if you get more control than what we already have.
my app is only doing modbus so you need another app which can do http calls.

Thanks for the hint to have a look at HA (if anyone else is interested, it’s the HACS + Huawei integration) and as it’s using modbus as well, the configuration options are the same so it seems one would need access cloud API to manage the EMS fully but haven’t found much relevant information on that topic so it might be a dead end.

Regardless, still think your app is superb and will continue to use it - so many thanks for that!

So, took the plunge and ordered the Waveshare RS485 to PoE Ethernet Module and had some time today to hook it up and configure it.

I connected both my Growatt 3000TL3-S inverters to the module and after some fiddling on the Inverters (Giving each a unique ID) and in the module’s settings I got it working!

Here the settings that work for me:

I made the following changes that differ with de module’s default settings:

Network Settings

  • Device Port, set it to 502
  • IP Mode, switched it to DHCP (Obviously made a reservation in my router)

Multi-Host Settings

  • Protocol, switched it to Modbus TCP to RTU
  • Enable Multi-host, switched to Yes
  • Instruction Time out, was automatically set to 256 after saving the Protocol and Enable Multi-host settings.

It seems not all information from my inverters is handled correctly, I’ll monitor that and make a separate post for that.

1 Like

nice , hope you can also verify the test app for export limit. but it seems growatt is an awesome device for enabling modbus and do it so cheap basically everything works

I will, that functionality is the main reason I wanted to setup the modbus connection and use your app! :+1:

Tested the flow cards for my Growatt, they’re not working :frowning:

These are the values read from the inverter, seeing some weird values there:

I found a document online Growatt Inverter Modbus RTU Protocol_II V1.05 2018-04-19 and used that in combination with the Modbus app by Ronny Winkler ([APP][Pro] Modbus) to retrieve some values but I can’t say I get something useful/readable (But that’s probably me not familiar with the Modbus protocol)

I can read register 3, that returns 100 and register 4 which returns 255

Register 9,10 and 11 return 17483, 12950 and 12333

Register 88 returns 0

This is one of the flows:

I’m wondering if my inverter is using the Protocol_II or maybe an older version…
No idea how to proceed from here, any tips or things you need me to check @Edwin_Biemond?

can you send me a report and what is your inverter version?

Hi Danee,

some details…

  • Modbus manufacturers can start counting from 0 (then it’s Modbus address) or from 1 (then it’s Modbus register - in fact just address + 1)
  • the data type int(16 bit) could also be an unsigned integer (UINT16). Perhaps that’s defined in the manual.
  • data type ASCII is not clear enough. You can use STRING in the flow card, but you need to know, how many registers should be read.

For further questions, you can use the app thread.

Hi, just interested in the setting multihost. The product info says:

  • Support multi-host function: In the query mode of one question and one answer, the support network port allows multiple computers to access the same serial device at the same time.

But there is only one ‘computer’ and that should be homey. Any thoughts of switching this back to default? The MOD bus data seems corrupted unless the app readings by edwin are way off.

The Modbus protocol v2 2018 you refer to is rather old, I image your inverters both are more recent, so (my guess is) not to worry to much about modbus versions.

report: 3b0b471e-1d0b-4128-92c6-0af74d2045e3
The inverter is a Growatt 3000TL3-S.
The reported firmwar in the shine app is DK1.0/dkaa0607
I’ll see if I can also retrieve the firmware from the inverter itself, will get back to you.

Thanks for the info!
Can’t believe I overlooked INT16 and UINT16 (which it has to be) adjusted it, but it returns the same values :exploding_head:

need to check this , your temp is way of and daily and total PV is not ok.

1 Like

looks like it is old or not being supported with the latest doc

TL-X/TL-XH/TL-XH US (MIN Type)
TL3-X(MAX、MID、MAC Type)
MOD TL3-XH
Storage(SPA Type)
Storage(SPH Type)

I found this doc https://www.amosplanet.org/growatt-tl3-s-modbus-protocol-type/ from 2016
and see changes on these for sure

   temperature: [93, 1, 'UINT16', 'Temperature', -1],

    todayEnergy: [53, 2, 'UINT32', 'Today Energy', -1],
    totalEnergy: [55, 2, 'UINT32', 'Total Energy', -1],
1 Like

When setting it ip I tried this with multi-host set to no, but no information is retrieved. Also, see this note:

Just now, I set it to no again and information stopped coming in. I switched it back to yes and dataflow for both inverters started again.

I’m not sure about the age of my inverters, from what I can find they were placed in 2022 but may have been manufactured earlier.

Great, I will see if I can get some data with information from that document.I’ll let you know

Made some test flows using the information from the pdf you found:

This is the output:

Which closely matches the information in the Shine app (which is retrieved over the API, I guess every 5 minutes and averaged out):

So this seems to confirm my inverter type uses different Modbus protocol specs than the one used for the newer inverters.

How to proceed from here?

can you do energy today and total , both are UINT32 and have 2 registers. 26 with UINT32 and 28 with UNIT32

and temp , register 32 as UINT16

Sure, thanks for helping out!

Flows:

Result:

In the Shine App:

The Shine app appears to not show the inverter temperature, but 35 C seems quite ok to me.

Edit:

Made one more flow:

Result:

Shine App:


(Yeah, I know, living on the edge :wink: )

1 Like

can you check which other values are weird so I can make a different device.