ESS Mode Modbus TCP Confusion

hi!

I am really confused regarding ESS Mode value.

In the Remote Console settings look like that:

grafik

According to the Modbus registers xls this meets dbus object path /Settings/Ess/Mode on com.victronenergy.multi:
0=self-consumption (battery-life);1=self-consumption;2=Keep charged;3=External control

But dbus -y com.victronenergy.multi returns “/” - so seems to be not existing.

If I change the ESS setting in the Remode Console, the dbus monitor shows

method call time=1727391418.806316 sender=:1.33 -> destination=:1.20 serial=2166 path=/Settings/CGwacs/Hub4Mode; interface=com.victronenergy.BusItem; member=SetValue
signal time=1727391418.814045 sender=:1.20 -> destination=(null destination) serial=1780304 path=/Settings/CGwacs/Hub4Mode; interface=com.victronenergy.BusItem; member=PropertiesChanged

But according to the Modbus registers xls /Settings/CGwacs/Hub4Mode has the values:
1=ESS with Phase Compensation;2=ESS without phase compensation;3=Disabled/External Control

Also dbus -y com.victronenergy.BusItem returns “/”.
/Settings/CGwacs/Hub4Mode appears with com.victronenergy.settings

I was not able to locate /Settings/Ess/Mode at all. I tried com.victronenergy.settings, I tried com.victronenergy.system, I tried the complete list delivered by dbuy-spy. Nowhere to be found.

According to it dbus · victronenergy/venus Wiki · GitHub it belongs to com.victronenergy.acsystem but this also returns only “/”…

Can somebody please help me out of my confusion?!

thank you & greetings!

For a correct list of services just use:
dbus -y

Then for the correct service, for example settings, use:
dbus -y com.victronenergy.settings / GetValue

com.victronenergy.BusItem is an interface member, I don’t believe it’s a real path…

/Settings/Ess/Mode is a specific path for any device that supports ESS.

Don’t believe that acsystem is fully implemented for all devices.

From what I’m remembering you have an MP2.
com.victronenergy.multi is specific for RS devices, like Multi RS.

1

Hi Alex! :slight_smile:

thank you! I tried…


there it is not.


there it isn’t, too

I tried dbus -y com.victronenergy.system / GetValue | grep Mode
→ nothing
I tried with com.victronenergy.hub4, with … .gui, with .fronius, with .adc, with .modbusclient.tcp, with .modbustcp, with .ble, wth .platform
→ all nothing.

any idea? somewhere the fu Remote Console must get the value from, or not? might it take from a combination of other object settings?

It’s the com.victronenergy.settings/Settings/CGwacs/Hub4Mode :smile:

but this has another meaning

I know… It’s confusing…
Try it.
After I’ve realized what you are trying to do, I’ve told you the key/path from the gui qml files.

I did:
grafik


Hub4Mode remains unchanged

?

sorry

I did

grafik

The Remote Console files are in the /opt/victronenergy/gui/qml folder.
Specifically what you want is in the PageSettingsHub4.qml file.
Look at it and see to which path it maps…

1 Like

I will. thank you!

Iirc, both “Optimized Modes” are setting the hub4mode to “1” (or any other, but the same) - so, switching between with and without battery life won’t show any changes there.

Battery life is a dedicated Flag, that is set along with the “Optimized Mode”. (Settings/Gwacs/BatteryLife)

what will be ‘keep battery charged’?

when they are taking about ESS Modes 2 and 3 ESS mode 2 and 3 [Victron Energy] which setting (parameter/object/register) are they referring to?

my confusion is almost perfect…

ok, at least I found what you are pointing me to, I think

Settings/Ess/Mode is existing only with acsystem and multi, both services do not appear with my setup (why not multi? I have a MultiPlus II ?!?)…

thanks again @ you both for your help!!

acsystem exists because of the Multi RS type devices.
Also multi identifier refers to Multi RS type devices.

MultiPlus, being an older device is characterized by the vebus identifier where most of the inverter/chargers are.

For sure you saw these:

And for sure worth a careful read, especially this:

ESS stuff

ESS mode (/Settings/CGwacs/Hub4Mode):

1: Optimized mode or 'keep batteries charged' and phase compensation enabled 
2: Optimized mode or 'keep batteries charged' and phase compensation disabled
3: External control

ESS state (/Settings/CGwacs/BatteryLife/State):

This path can both be read from, and written to.

For reading the ESS state:

0: No longer used.

Optimized mode with BatteryLife:
1: Value set by the GUI when BatteryLife is enabled. Hub4Control uses it to find the right BatteryLife state (values 2-7) based on system state
2: Self consumption
3: Self consumption, SoC exceeds 85%
4: Self consumption, SoC at 100%
5: SoC below BatteryLife dynamic SoC limit
6: SoC has been below SoC limit for more than 24 hours. Charging with battery with 5amps
7: Multi/Quattro is in sustain
8: Recharge, SOC dropped 5% or more below MinSOC.

Keep batteries charged mode:
9: 'Keep batteries charged' mode enabled

Optimized mode without BatteryLife:
10: Self consumption, SoC at or above minimum SoC
11: Self consumption, SoC is below minimum SoC
12: Recharge, SOC dropped 5% or more below minimum SoC

For changing the ESS state:

1:  Change the ESS mode to "Optimized (with BatteryLife)"
9:  Change the ESS mode to "Keep Batteries Charged"
10: Change the ESS mode to "Optimized (without BatteryLife)"

So to summarise:

To set the system to External Control:
- write 3 to /Settings/CGwacs/Hub4Mode

To set the system to Keep Batteries charged:
- write 1 or 2 to /Settings/CGwacs/Hub4Mode (1 enabled phase compensation; 2 disables it).
- write 9 to /Settings/CGwacs/BatteryLife/State

To set the system to Optimized
- write 1 or 2 to /Settings/CGwacs/Hub4Mode (1 enabled phase compensation; 2 disables it).
- write 1 or 10 to /Settings/CGwacs/BatteryLife/State (1 for BatteryLife, 10 for without).
1 Like