Hi, I have an MultiPlus-II 48/3000/35-32 and set it up for ESS mode 3 (full external control loop). Firmware: 502 (latest)
I am able to drive charge/discharge using a python script running on my home automation RPi and communicating via ModbusTcp.
The manual (ESS mode 2 and 3 [Victron Energy] → p3.2a) states, I have to write register 37 at least once in every 60 seconds.
From my experience, I have to write this register at least once every 14-15s to get it working without fluctuations in the in/output.
Tried to work with (volatile) register 2700/2716 but that does not seem to work as expected as this register is ment for mode 2.
- Is there a volatile version of register 37 (just like 2716 for 2700) to avoid wearing out the flash?
- Can I somewhere decrease the write frequency needed to update register 37?
Thanks!
MikeD
(Mike )
2
Hi,
What UID are you using for #37 writes?
I can’t get that to work at all.
Also, what version for Venus firmware are you on?
Thanks.
UID 228,
You may find yours in console->settings->services->modbus tcp->available services
firmware 3.54
Relevant snippet from my code:
register = 37
unit_id = 228
def Sendline():
print('Setting AC GRID SetPoint to [W]: ', setpoint_value)
C = ModbusClient(host=‘192.168.3.2’, port=502)
try:
builder = BinaryPayloadBuilder(byteorder=Endian.BIG, wordorder=Endian.BIG)
builder.reset()
builder.add_16bit_int(2 * int(setpoint_value))
payload = builder.to_registers()
C.write_register(register, payload[0], unit_id)
time.sleep(11.5)
msg = C.read_holding_registers(register, 1, unit_id)
decoder = BinaryPayloadDecoder.fromRegisters(msg.registers, byteorder=Endian.BIG)
msg = decoder.decode_16bit_int()
print('Actual AC GRID Setpoint is [W]: ', msg)
C.close()
except:
print (‘Fatal error, cannot communicate with GX device’)
MikeD
(Mike )
4
Thanks, but no UID 228 on my system…
Just asking what is the service name that your GX gives for this id?