ESS Mode 3 setup problems

I’m trying to get the External control mode working, but not succeeding.

indicates that one should write to registers 37 - 39 (for a single phase system), with UID =242
This gives a Modbus error of Gateway path unavailable on the device trying to read these registers. Cerbo gives the error message:


Similarly, UID’s of 246 and 100 also don’t work. UID= 100 gives similar error message with device instance 0, 246 device instance is 257.
Cerbo’s Modbus server indicates that the following services are available:

So the immediate question is why UID=100 gives an unavailable error rather than illegal address? - if trying to read 2700 - 2705 with UID=100, this works.
The CCGX- Modbus register list indicates that registers 37 - 41 should translate to Hub4 d-bus paths, so the UID to access these should be 100?
However, this appears to have changed in the latest CCGX modbus list.
Amongst the changes are:
Add register 2716 for frequent setpoint updates, to be used instead of 2700 or 2703
Add register 2717 to modify the ESS grid metering point
however with the ESS in mode 3 (External control) writing -200 to 2700 or to 2716 does not produce the required state of exporting 200W.
Also yesterday, setting ESS mode 3 caused the max charge voltage of the MPPT and the inverter to be set to 0, today, however, that bug is not happening.
Cerbo firmware 3.60~25 large.
Question:
What has happened to registers 37 etc, as these can no longer be accessed?
Why won’t the system export power on command? It does export power from excess solar in other ess modes.
Why isn’t the inverter available as a modbus service? Acorrding to the ess document, this should be available as UID 246.

Moving to modifications as that is a better place for this subject as it is not necessarily beta specific, and you’re likely to get better answers.

1 Like

1st Answer: registers 37 - 39 are at UID 227. This is VEbus, not Hub 4.
on reading, with inverter in invert mode, power is set to 32766, i.e.unlimited draw from AC.
Writing -100 to this has no effect on the inverter.
There seems to be a problem with the new registers 2716 and 2717 introduced in revision 49 of the CC-GX-Modbus register list,
Add register 2716 for frequent setpoint updates, to be used instead of 2700 or 2703
Add register 2717 to modify the ESS grid metering point
2716 is given as “int 32”, which requires 2 modbus addresses (each is 16 bits). This means that 2717 is part of register 2716, so cant be used for Grid metering.

Writing to 2716 as 32 bit signed does produce the correct response in the dbus messages, however the inverter does not respond to this.
however, I had left the inverter in external control over night (with no driver running, so no power command), and noticed that the inverter was exporting a small amount of power, similar to that when operating in the normal ESS mode. With no command for power level, the inverter is meant to go to pass thru state,. It is beginning to look like the ESS is not switching into external control mode?

Several days later:
Having tried setting values through dbus-spy* with no effect, I got around to trying direct control of the ESS assistant with code running on a beaglebone, communicating through a Mk3 interface.
The ESS assistant was found to be the second in the RAM variables, with id 5 and 4 subsequent addresses. 2 are mentioned for the Hub4 assistant. with the ESS at 0x82, I could read and write to 0x83, 0x84 as these were assumed to be identical to the Hub4 addresses (backwards compatible?). Likewise, it was assumed that a value of 200 written to 0x83 would cause an export of 200W, but this did not happen.
I’ve also off loaded the ESS assistant, and loaded the depracted Hub4, which also appeared at 0x82 (0x32). again writing 200 to 0x83 caused no change in inverter output.
inverter LEDS: with the code running, both the inverter and mains green LEDS were on, with either the absorption or Bulk led’s also on at various times. This does not seem to align wiht the LED codes mentioned in the ESS manual.
07 ff 57 85 54 00 c3 5b ac // Ess VVV_M = 0x54
07 ff 57 85 64 00 61 5b fe //100 written to 0x83…
07 ff 57 85 00 00 c3 5b 00 // ess ram 2
07 ff 57 85 98 17 c3 5b 51 // ess ram 3, not sure what this value means??
07 ff 57 85 00 40 c3 5b c0 // ess ram 4
05 ff 57 87 00 00 1e << reply showing correct ram write to 0x83.

This is now resolved by changing the Grid code.
4777x.2020 codes do not allow dc power to be converted to ac for export.
@guystewart Please can you put a summary of the different grid codes together and release this as a technical download document or spread sheet? This will be of more technical interest to system designers, rather than general users.