# ESS Mode 3 setup problems

**URL:** <https://community.victronenergy.com/t/ess-mode-3-setup-problems/24829>\
**Category:** Modifications\
**Tags:** cerbo\_gx\
**Created:** [10 March 2025 22:04 UTC](https://community.victronenergy.com/t/ess-mode-3-setup-problems/24829 "2025-03-10T22:04:35Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![MikeD](https://dub1.discourse-cdn.com/victron/user_avatar/community.victronenergy.com/miked/32/1522_2.png) [@MikeD](https://community.victronenergy.com/u/MikeD)\
**Post date:** [10 March 2025 22:04 UTC](https://community.victronenergy.com/t/ess-mode-3-setup-problems/24829/1 "2025-03-10T22:04:35Z")

</div>

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

> **[ESS mode 2 and 3 \[Victron Energy\]](https://www.victronenergy.com/live/ess:ess_mode_2_and_3)**

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:

 ![image](https://europe1.discourse-cdn.com/victron/original/3X/a/c/ace2f802562fafbe4383054e531cd55c100b1077.png)  
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:  
 ![image](https://europe1.discourse-cdn.com/victron/original/3X/9/c/9c681780c884c848962831632f92a7e2566f59f9.png)  
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.

---

<div class="post-metadata">

**Author:** ![nickdb](https://dub1.discourse-cdn.com/victron/user_avatar/community.victronenergy.com/nickdb/32/51440_2.png) [@nickdb](https://community.victronenergy.com/u/nickdb)\
**Post date:** [11 March 2025 04:49 UTC](https://community.victronenergy.com/t/ess-mode-3-setup-problems/24829/2 "2025-03-11T04:49:02Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![MikeD](https://dub1.discourse-cdn.com/victron/user_avatar/community.victronenergy.com/miked/32/1522_2.png) [@MikeD](https://community.victronenergy.com/u/MikeD)\
**Post date:** [11 March 2025 22:36 UTC](https://community.victronenergy.com/t/ess-mode-3-setup-problems/24829/3 "2025-03-11T22:36:16Z")

</div>

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.

- Conclusion from the dbus-spy test was that trying to write some code to interface wiht the dbus service running on the cerbo probably would not work, and would also take longer than writing code to use the hex protocol - which I find a LOT simpler to understand than the dbus code!!
- [GitHub - MikeD2-mnb/Victron-Interfaces-code: Reads multiple MPPT & Shunt over VE-direct , loads data to modbus server](https://github.com/MikeD2-mnb/Victron-Interfaces-code)
-

---

<div class="post-metadata">

**Author:** ![MikeD](https://dub1.discourse-cdn.com/victron/user_avatar/community.victronenergy.com/miked/32/1522_2.png) [@MikeD](https://community.victronenergy.com/u/MikeD)\
**Post date:** [26 March 2025 22:48 UTC](https://community.victronenergy.com/t/ess-mode-3-setup-problems/24829/4 "2025-03-26T22:48:39Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![system](https://europe1.discourse-cdn.com/victron/original/1X/21a9a7b5db7c6339715f993568736a7053199995.png) [@system](https://community.victronenergy.com/u/system)\
**Post date:** [9 April 2025 22:48 UTC](https://community.victronenergy.com/t/ess-mode-3-setup-problems/24829/5 "2025-04-09T22:48:59Z")

</div>

Closed on 9 April 2025 22:48 UTC

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
