[APP][Pro] SolarEdge + Growatt TCP modbus

checking 1.24, also checked those 3000 registers and little bit more.

Storage SPHType

:03 register range:0~124,1000~1124;04 registerrange:0~124,1000~1124,1125~1249

new register 1125~1249

I’m sure I am wrong stating that the function Discharge SOC is for all modes the same, the only exception here (not being able to SET this SOC in load first modus) is the load first modus. What if this parameter (since it has no address in the list) simply uses the Mod code of one of the other, 1071 or 1091?

Would be to Chinese I agree, and you should have been able to see the change while monitoring…

Hmm… just thinking out load here…

yep 10 and 100% did not change to 14 or 15%

prioritychange 0 0 Priority
gridfirststopsoc 10 0 GridFirst stop SOC
batfirststopsoc 100 0 BatFirst stop SOC

https://github.com/evcc-io/evcc/files/10957121/New-Modbus.RS485.RTU.Protocal.Latest.Ver.pdf

Thanks, stored the v1.24, checked that as you did the same, nothing so far.

One other thing, you test on a system with batteries installed? Not that this changes the fact not having a MOD variable, but it could prevent detecting any change (inverter does not forward this as command since there is no connected battery)

yes with batt with load 1st

Here is the info when selecting the load 1st modus;

There is something mentioned as ‘The Load Priority Prohibition Mode’ …

I try to understand what this tells us.

I have another angle to work with;

Grid first
Priority: Load > Grid > Battery

The difference of LOAD first and grid first is a matter of priority. As you see the grid first does not change the 1st prio, the second is the one we need to manipulate to have better control of the battery, the last prio.

We can manipulate that since we are able to maximize the amount of injection to the grid (as you implemented with the update). That being said, if we set the modus to Grid first AND (what we do anyway regardless of the modus!) set the Export limit to a lower value, we define with that a lower percentage of the total to the grid, meaning the remaining % will be available for the next priority, the batteries.

Now we need to know, with grid first as modus, if the value (assume #1071) changes. If so, we have a final solution. Remark has to be made that if export limit is set to 0, the prio list will take out export, etc etc.

EDIT: with 100% guarantee that the export limit as implemented is not modus related. As far as I can see #123 is NOT modus dependent, which is perfect, but please confirm that.

was reading the same :laughing: Guidance for Operation Modes of the SPH Series Inverter

was also thinking about batt 1st, set to 100% (don’t reach 100% ) and disable AC charge. .

The battery first modus has no DIScharge stop SOC, only Charge Stopped Soc.

The only remainder is grid first, but no problem with that modus at all.

have this link bookmarked since it explains the mode variants with pictures… easier for me…

  1. Priority: Battery > Load > Grid
  2. How it works?

When the solar is sufficient, solar will charge the battery at top priority, and the surplus solar power will support the loads with the grid.

When the solar is insufficient, the solar will charge the battery at top priority, while the load will be powered by the grid. If you enable the AC Charge function, the grid will not only support the load but also charge the battery together with solar power until battery reaches “Charge Stopped SOC”

correct CHARGE stop soc… which is not the o so wanted DISCHARGE stop soc…

the goal is never to reach this, don’t charge from grid , and load will use grid because it is not reached yet.

also let me check again. this load 1st soc.

I understand. Load will use grid but in the reversed event, delimiting the battery is still not possible.

The theory behind my suggestion using the grid mode has only one reason, set the absolute minimum (deep unload) of the battery, as protection and to extend technical lifespan and logically to play with the value above the minimum for other reasons. This value can only be set in grid first mode or load first mode.

Now I’m off-line here, I tried to change the modus from load first to grid first (using shinelink) and no way possible, keep giving me errors.

Will try some times more and give it a rest 24hours.

EDIT: Must have something to do with me opening the China-Gate again and the server not able to (re)connect, however other settings are accepted. Will keep the SHina Gate open 24hours and see.

EDIT: still no luck with this. As soon as I want to set the timeslot to ON, it fails to set. I have no idea, will keep on checking this. For sure I was able to set grid mode with a timeslot. I know that all other timeslots (so all modes and all timeslots) need to be set to OFF to avoid overlapping, even when another particular mode is not activated.

Meanwhile:

Status still the same with 1 difference, grid mode is NOT selectable, not even when the time tables are OFF. It gave me some time to read and read again the explanation of

and raised more questions than clearity, Regardless if Grid first or battery first has been selected, if it meets the parameters set with SOC (discharge (grid) or charge SOC (battery), the dynamics of the growatt will automatically switch to load first. 2 things:

If the user is able to select grid mode AND discharge SOC with some time slot, this will be the ultimate, it allows us (when implemented) the control of the discharge SOC, the thing we want.

If we stuck with the grid first option not available (am I the only one here?) than there is nothing to do and we need the shinelink interface to set the discharge SOC.

I see no advantages selecting the battery first at all, discharge SOC setting is missing there.

EDIT:
If we find a way to SET the 3 different modes by APP and include the subsetting for all the modes, like they did here for batt first:

We might be able to see if it works and second, why my SPH does not allow the grid first setting at all.

yes that is doable, all register are there and know. let me do that.

Do you still need me to do anything?