Is the ESS assistant required to use the ac setpoint registers such as register 37 or 2700? Otherwise the device just behaves like a UPS and doesn’t respond to controls?
If that is the case, is it feasible to use in the USA given that I have to define a grid code to install the ESS assistant?
Venus appears to work by translating Modbus registers directly to or from the d-bus signals, it does not maintain a direct/duplicate register set.
register 37 is directed to the VE-bus service, 2700 is directed to the ESS (settings service).
Use of register 37 for controlling power is generally depracted,
Before you can get a multi or Quatro to feed power into a grid, the grid code has to be defined. Once this is done, it cannot be changed without a password.
So the ESS assistant is required to control a multi/quatro to feed into a grid.
Thanks for the response. On a related note, if I wish to use Mode 3 for the ESS Assistant should I write to ESS Mode (register 4921) as ‘3’? The modbus map describes this register in the following way, do 1 and 2 correspond to Modes 1 and 2 as well?
| 1=ESS with Phase Compensation;2=ESS without phase compensation;3=Disabled/External Control
|
|----|
could be the UID number that you are using.
During the brief trial that I set up, I used the ESS in mode 1, and just changed the import / export target.
I am using UID 100. Turns out I can read and write from 2700 but the command isn’t executing. Tried to set the ESS Mode to just “optimized without battery life” which I’m assuming is mode 1? But that didn’t work, but I did confirm the setpoint changes in the Cerbo settings. I also noticed that com.victronenergy.settings is not listed in the modbus tcp server available services, but it must be just hidden if I can read/write without problems? I must be missing a register that needs to be enabled to use 2700 over 37. 37 works like a gem.
Try using 2706 with UID 100. SSH into the Cerbo or GX device, use dbus-spy to check the dbus values are updating, as well as looking at the normal GUI. Several ssh windows can be open at one time, so you can watch the different services interact.
Register 2706 is reading as -1 which to me indicates it is unset, so there is no limit. Confirmed this under ESS→Grid feed in settings where the limit is disabled. I can try the SSH method, but what role would 2706 have in this issue if it is unset?
According to my information, this register can be -32kW to +32kW (see above for exact numbers.
Setting of -1 might indicate that it has not been written to, or that it is export 10mW!!
ssh and dbus-spy will give you a display that looks like:
so you should see writes to 2700 affecting the value in Settings/CGwacs/AcPowerSetPoint
and 2706 : /Settings/Cgwacs/MaxFeedInPower
I’ll try and get a modbus connection to this device…
so if you want to export power, 2706 must be set to -xxx*100 W, and then the 2700 register allows you to vary the power up to this limit. Note that this is also subject to grid code: some grid codes won’t allow you to feed in energy from DC battery or DC pv, regardless of other settings.
Note you may also have plc offset on your register address that will offset it by 1:
For my system as shown above:
2700 >> 400
2701 >> 20
2702 >> 100
2703 >> 4
2704 >> 100
2705 >> -1
2706 >> 5
Note that the system is not currently in ESS mode: Assistant has been unloaded.
Gotcha thanks, I may look into this but may not have to. I noticed that after changing Grid metering from external meter to inverter/charger the setpoint command executes. I don’t have an external meter connected anyways. It does not seem like 2700 times out in Mode 1/2 (which I assume are respectively Optimized without battery life and optimized with battery life) like register 37 (needs to be written every 10s in external control mode).