question

semlohnhoj avatar image
semlohnhoj asked

Feature Request: Write access to Multi RS Solar ESS Settings

I would like to request the ability to control the following via NodeRed/Modbus for the Multi RS Solar:


1) ESS Mode (Optimized with batterylife, Optimized without battery life, Keep batteries charged)

2) ESS Minimum discharge SOC


Both would be useful but either would do.


Charging batteries during cheap times is possible but requires fudges to make it work. I can use Generator rules to turn on the input relays at night and also if I have a large load. The downside is I end up charging the batteries during the day if I have a large load.

I currently have to use a Windows PC to automate clicking buttons in the VictronConnect App to set the ESS Mode!


Don't know if there is a formal method for asking for features but please accept this as one :)


Please Help.......

ESSNode-REDModbus TCPMulti RSmodifications
7 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Alex Pescaru avatar image Alex Pescaru commented ·

Hi @Semlohnhoj

A little bit late, but now I managed to find out more about system.

If you have access to the CAN network, you can configure these options of the Multi RS over CAN.

I know, it's not NodeRed or ModBus, but at least is configurable from outside.

So if you have an Ethernet (or anything else) to CAN adapter you can use the Multi RS's config VE registers to adjust almost anything.

Alex

0 Likes 0 ·
semlohnhoj avatar image semlohnhoj Alex Pescaru commented ·
My word that's interesting :)


Is that only if you aren't using a GX device to control the RS? or can you do both at the same time? More detail would be good.

0 Likes 0 ·
Alex Pescaru avatar image Alex Pescaru semlohnhoj commented ·

Hi @Semlohnhoj ,

Indeed, I have a Cerbo in my system and the CAN write command was sent through the 'cansend' utility inside the Linux system from Cerbo.

But the 'cansend' is just sending frames over specific CAN bus and those frames, I believe, can be sent by any other means.

In fact, in the VE.Can-registers-public.pdf file from Victron, they tell you how you can send commands over CAN network, using specific registers.

They don't supply however the entire list of available registers, but they can be obtained from VictronConnect application. An (almost) complete list of registers here: https://community.victronenergy.com/questions/262532/victron-energy-registers-description.html

The registers you need to write to are:

0xD050, VE_REG_MULTIC_ESS_MODE

0xD053, VE_REG_MULTIC_ESS_DISCHARGE_SOC

The CAN address of Multi RS can be found from Cerbo - Settings - Services - VE.Can port - Devices - Multi RS - Network Address. Usually is 64 (0x40).

As sender, I've used a 'fake' network address, 0x55 in my tests.

For example, for setting 40% for Discharge SOC, you send the command below.

See that the SOC is in 0.1% units, so 40% is 400, therefore 0x0190 in hex.

cansend can0 1CEF4055#669953D09001FFFF

So, I believe that one can make any script he wants to automate things, store them on Cerbo and from those scripts to read and write to almost any settings of the Multi RS.

The same way the batterylife, dvcc, etc are implemented, just that instead of reading/writing things through dbus, you read/write them through CAN bus, which any dbus setting will end up anyway to be transactioned. A more direct way if you know what you are doing.

Have fun! :-))

Alex

0 Likes 0 ·
semlohnhoj avatar image semlohnhoj Alex Pescaru commented ·
Brilliant, thanks for that.


The one thing I've always wanted is a way to control the ESS mode. I want use "keep batteries charged" to charge batteries at night with cheap electric and "optimised without battery life" during the day to just charge from solar.

I currently need to disconnect the AC input relays using NodeRed but this would allow me to keep the grid connected permanently which would help with another issue I have.

0 Likes 0 ·
Alex Pescaru avatar image Alex Pescaru semlohnhoj commented ·

Hi @Semlohnhoj

The ESS mode is the other register I've mentioned, with the values:

0x00 - Optimized with batterylife

0x01 - optimized without batterylife

0x02 - keep batteries charged

0x03 - external control

So for keeping the batteries charged:

cansend can0 1CEF4055#669950D00200FFFF

Alex

PS: Keep us posted if you managed to automate it as needed... :-))

0 Likes 0 ·
semlohnhoj avatar image semlohnhoj Alex Pescaru commented ·

Well, I did some testing in SSH as per your suggestion and can confirm it works as you say! Superb! I've also tested this in NodeRed using the Exec Node so you can use this method to set the ESS mode in a flow on the Multi RS which is what I've wanted to do for over a year now rather than using Relay logic and generator rules to control the input relays.


I'll give it a test run tonight and let you know how it goes. The other thing I can't get from the RS is the current state of the ESS mode but I'll look at the cansend protocol to see if I can do a status request for that. In the meantime as I'm setting the mode anyway I just keep a tab of what I last set it as.

nodered-charging-using-cansend.png

0 Likes 0 ·
Alex Pescaru avatar image Alex Pescaru semlohnhoj commented ·

Hi @Semlohnhoj

You can read the status by sending the read command by cansend, but you need to parse the response by candump.

But in a much better and easier way, for automating things, you can use another utility made available to us by Victron: /usr/bin/vreg.

From the same utility you can do both read and write.

You can read ESS mode:

vreg -c socketcan:can0 -n 0x40 -g 0xd050

You can set ESS mode:

vreg -c socketcan:can0 -n 0x40 -s 0xd050 0x02

Or you can read SOC:

vreg -c socketcan:can0 -n 0x40 -g 0xd053

Or set SOC:

vreg -c socketcan:can0 -n 0x40 -g 0xd053 0x90 0x01

Just a matter of building the command string and/or parsing back the console response output.

Have fun!

Alex

0 Likes 0 ·
3 Answers
Guy Stewart (Victron Community Manager) avatar image
Guy Stewart (Victron Community Manager) answered ·

Hi John,

This will come eventually. For now ESS is still not even officially supported on the Multi RS due to it lacking grid code control.

The RS engineering team is focused on parallel and 3 phase support right now.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

semlohnhoj avatar image
semlohnhoj answered ·

Hi @Guy Stewart (Victron Community Manager),


Is there somewhere I need to post this to request the feature?


Desperately want this as a feature.


Cheers,


John

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

semlohnhoj avatar image
semlohnhoj answered ·

Parallel support would be really useful, good to know that the product is being actively developed.


Is ESS/Grid code still being developed and will all of these be possible with the existing hardware?


2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.