Multi RS solar. Node-Red. UPS and Moderate generator load settings

Hello Victron Community and Developers,

I want to connect my single-phase inverter generator to a Multi RS Solar 48/6000/100-450/100 (PMR482602020) via the AC-in port.

According to the documentation, it is recommended to disable “UPS settings” and enable “Moderate generator load.”

I would like to configure these settings using Node-Red, but I can’t find a corresponding node for that in @victronenergy/node-red-contrib-victron (version 1.6.17).
Is this functionality implemented?

Thanks in advance!

You can’t find it probably because there is no dbus path to reflect that setting and the Node-Red nodes are depending on the dbus paths.

1 Like

May I ask you why you want to modify dynamically those parameters?
Generally those are “one shot” settings…

Hello @alexpescaru,
I’m lazy :smile: and want a single button to switch all the required settings for generator/grid usage.
Here’s my flow to switch to generator/grid settings:

Well, you can set the ones you initially asked for by using vreg utility and modify the 0xD067 register (VE_REG_MULTIC_ACIN1_CONTROL_BEHAVIOUR).
Of course, from inside the Node-Red. :slight_smile:

@alexpescaru,
That sounds like rocket science! :grinning_face_with_smiling_eyes:
Do you have a link to documentation or examples on how to use it?

I only found an old v20 (2015) VE.Can register document and reg-info file with register codes and names:
:link: VE.Can registers (2015)
:link: Reg-info file

Not so rocket science… :slightly_smiling_face:

The first PDF is the official info, i.e. what Victron wanted to share, the most used registers for the current hardware at that moment.

The second PDF is the list I’ve extracted and published here for all to use, after a little bit of reverse engineering on their binaries.
The information is a little bit more comprehensive, but, for starters, that PDF info is enough.

The complete info on that register is as follows:

0xD067, VE_REG_MULTIC_ACIN1_CONTROL_BEHAVIOUR,
bits_01: UPS function (0 = Not available, 1 = Yes, 2 = No)
bits_23: Moderated generator load changes (0 = Not available, 1= Yes, 2 = No)
bits_45: Weak AC input (0 = Not available, 1 = Yes, 2 = No)

1 Like

It looks like you’re right—it only seems complicated at first glance.

I reviewed all forum topics related to “vreg” and “vregd” utilities and reread the VE.Can registers public documentation.

Here are my vreg commands:
Reading the VE_REG_MULTIC_ACIN1_CONTROL_BEHAVIOUR register

root@cerbo-gx:~# vreg -c socketcan:can0 --get 0xD067 --nad 64 --verbose --dump
000.001 > 7.0.0.EF.40.FE| 0x66 0x99 0x01 0x00 0x67 0xD0 0xFF 0xFF
930.698 { 7.0.0.EF.40.FE| 0x66 0x99 0x01 0x00 0x67 0xD0 0xFF 0xFF
000.007 < 7.0.0.EF.FF.40| 0x66 0x99 0x67 0xD0 0x09 0x00 0x00 0x00
# NAD 0x40, reg=0xD067
0x09 0x00 0x00 0x00

Setting the state

  • 0 = Not available
  • 1 = Yes
  • 2 = No
vreg -c socketcan:can0 --set 0xD067 un16:1 --nad 64 --verbose --dump
vreg -c socketcan:can0 --set 0xD067 un16:2 --nad 64 --verbose --dump

Unfortunately, I couldn’t find a way to specify bit01 for “UPS settings” and bit23 for “Moderate generator load changes” in the vreg command.

Could you please assist with that?

All those settings are encoded on 2 bits.
For UPS function are used bits 0 and 1, for generator, bits 2 and 3 and for Weak AC, bits 4 and 5.
On 2 bits you can have only 4 values, e.g 0, 1, 2 and 3. That corresponds with 00, 01, 10 and 11 in binary form.
In decimal, 00 is 0, 01 is 1, 10 is 2 and 11 is 3.
Example:
You want:

  • UPS to be ON, you use 1 which is 01;
  • Generator off, you use 2 which is 10;
  • Weak AC to be ON, you use 1 which is 01.
    These, put side by side, are 01 (Weak AC) - 10 (Generator) - 01 (UPS) or, in binary, 011001, which is 0x19 hex or 25 decimal.
    So you send: vreg -c socketcan:can0 --set 0xD067 un16:25 --nad 64

BUT:
Weak AC on Multi RS is not available, so the example above, for the Weak AC you should use 00.
That becomes 001001, which is 9, the value you read.

If you want UPS to be off and generator off, you send 00 10 10, which is 0x0A hex, or 10 decimal.

Beware that if you use VictronConnect over VRM to confirm choices, it doesn’t know to update the values in real time, on screen.
You need to exit the program and launch it again, for reading again the configuration.

Hi @alexpescaru,
Many thanks for your clarification on command bits.

Unfortunately, both commands failed:

  1. Weak AC Not available (00); Generator ON (01); UPS OFF (10) → Binary: 000110 | Hex: 0x06 | Decimal: 6
root@cerbo-gx:~# vreg -c socketcan:can0 --set 0xD067 un16:6 --nad 64 -v -d
000.001 > 7.0.0.EF.40.FE| 0x66 0x99 0x67 0xD0 0x06 0x00 0x00 0x00
742.212 { 7.0.0.EF.40.FE| 0x66 0x99 0x67 0xD0 0x06 0x00 0x00 0x00
000.003 < 7.0.0.EF.FE.40| 0x66 0x99 0x02 0x00 0x67 0xD0 0x02 0x81
# ERROR NAD 0x40, reg=0xD067 code=0x8102
# register cannot be changed 8102
  1. Weak AC Not available (00); Generator OFF (10); UPS ON (01) → Binary: 001001 | Hex: 0x09 | Decimal: 9
root@cerbo-gx:~# vreg -c socketcan:can0 --set 0xD067 un16:9 --nad 64 -v -d
000.003 > 7.0.0.EF.40.FE| 0x66 0x99 0x67 0xD0 0x09 0x00 0x00 0x00
851.174 { 7.0.0.EF.40.FE| 0x66 0x99 0x67 0xD0 0x09 0x00 0x00 0x00
000.006 < 7.0.0.EF.FE.40| 0x66 0x99 0x02 0x00 0x67 0xD0 0x02 0x81
# ERROR NAD 0x40, reg=0xD067 code=0x8102
# register cannot be changed 8102

Do you have any idea what might be causing this issue?