Virtual EVs in VRM?

Hi,

are virtual EVs supposed to show up in VRM? I can see the EV on the Cerbo just fine.

Public link: VRM Portal - Victron Energy

System Information:

  • Multi RS 6000 firmware v1.28 in 3 Phase configuration
  • Cerbo GX MK1 firmware v3.80~27
  • There is no Victron EVCS installed, EVCS is virtual through a Shelly Plug EM
  • The virtual EV gets the data via Nodered

Thanks and kind regards

Stefan

Yes, they are supposed to be showing. The thing is that you need to be updating the node with info regularly and there are some required paths to fill out. I have my 2 cats modeled as EV’s, updating their state as they enter or leave through the cat flap. I simulate them charging whenever they are at site and slowly draining the battery whenever they leave the house.

I update their state every minute:

msg.payload = {
    AtSite:        isInside ? 1 : 0,
    Soc:           rounded,
    ChargingState: chargingState,
    'Ac/Power':    isInside ? 2300 : 0,
    RangeToGo:     Math.round(rounded * 3)
};

And they are visible on VRM.

I think you are missing the ChargingState. Valid values are 0 for Not charging and 3 for Charged.

For the full flow, it is in the examples section of node-red-contrib-surepetcare. (Or directly at github: node-red-contrib-surepetcare/examples/cat-ev-tracker.json at main · dirkjanfaber/node-red-contrib-surepetcare · GitHub)

Hi,

thanks a lot for the help! My object now looks like this:

I still don’t see it in VRM or VRM Beta.

Not sure what I do wrong? Do you need a Victron EVCS for it to work?

Do you need a Victron EVCS for it to work?

No, it isn’t a requirement. Just checked with this flow:

[
    {
        "id": "2df07c261258c74a",
        "type": "victron-virtual",
        "z": "0183f1667bd210b0",
        "name": "",
        "outputs": 1,
        "device": "ev",
        "default_values": true,
        "acload_nrofphases": 1,
        "enable_s2support": false,
        "s2_measurement_type": "3_PHASE_SYMMETRIC",
        "battery_capacity": 25,
        "include_battery_temperature": false,
        "battery_voltage_preset": "24",
        "battery_voltage_custom": 24,
        "generator_type": "ac",
        "generator_nrofphases": 1,
        "include_engine_hours": false,
        "include_starter_voltage": false,
        "include_history_energy": false,
        "grid_nrofphases": 1,
        "energymeter_nrofphases": 1,
        "energymeter_role": "gridmeter",
        "include_motor_temp": false,
        "include_controller_temp": false,
        "include_coolant_temp": false,
        "include_motor_rpm": true,
        "include_motor_direction": true,
        "position": 0,
        "pvinverter_nrofphases": 1,
        "switch_1_type": 1,
        "switch_1_min": 0,
        "switch_1_max": "",
        "switch_1_initial": 0,
        "switch_1_label": "",
        "switch_1_unit": "",
        "switch_1_step": 1,
        "switch_1_customname": "",
        "switch_1_group": "",
        "switch_1_include_measurement": false,
        "switch_1_rgb_color_wheel": false,
        "switch_1_cct_wheel": false,
        "switch_1_rgb_white_dimmer": false,
        "switch_1_passthrough_mode": "auto_only",
        "fluid_type": 0,
        "include_tank_battery": false,
        "include_tank_temperature": false,
        "tank_battery_voltage": 3.3,
        "tank_capacity": 0.2,
        "auto_aggregate": false,
        "pulsemeter_multiplier": 0.001,
        "ev_vin": "",
        "ev_battery_capacity": "66",
        "temperature_type": 2,
        "include_humidity": false,
        "include_pressure": false,
        "include_temp_battery": false,
        "temp_battery_voltage": 3.3,
        "start_disconnected": false,
        "x": 660,
        "y": 560,
        "wires": [
            []
        ]
    },
    {
        "id": "2190da69fc853b94",
        "type": "interactive-inject",
        "z": "0183f1667bd210b0",
        "name": "",
        "topic": "",
        "outputProperty": "payload",
        "mode": "presets",
        "minValue": 0,
        "maxValue": 100,
        "step": 1,
        "defaultValue": 50,
        "currentValue": 50,
        "sliderBehaviour": "release",
        "injectOnRelease": true,
        "autoCollapse": false,
        "presets": [
            {
                "label": "",
                "value": "{\"Soc\":20,\"AtSite\":1,\"ChargingState\":3,\"TargetSoc\":85}",
                "valueType": "json"
            }
        ],
        "x": 400,
        "y": 560,
        "wires": [
            [
                "2df07c261258c74a"
            ]
        ]
    },
    {
        "id": "0bb2d4fb91755238",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.7.15",
            "node-red-contrib-interactive-inject": "1.2.0"
        }
    }
]

So I used a function to inject the data hardcoded and updated to 3.80-32.

msg.payload = {
    AtSite:        1,
    Soc:           88,
    ChargingState: 3,
    'Ac/Power':    2300,
    RangeToGo:     288
};
return msg;

The data shows fine on the Cerbo but not in VRM.

I did some more testing and just created a new electric vehicle in Nodered.

With the “Initialize with defaults” option set it creates the EV on the Cerbo but not in VRM.

It does need a VIN and a battery capacity at least.

The test-Kia still doesnt show up after adding both VIN and battery capacity.

I just took a look at your site and am a bit confused on how you are running Node-RED. At the moment your system is running the normal image, not the large one.

Fwiw, I just took the above example I’ve provided earlier and getting the test kia to show up on my test GX:

Nodered is running on an external server as it does a lot more than just the Victron stuff.
But that shouldn’t matter as long as it adds the right data to the Cerbo, right?

Both EVs are showing up there and I can even use the data in the VRMs Advanced monitoring.
So the data ends up in the VRM but is not shown in the main Dashboard.

Should I try it with the Large Image?

Not needed, though it might have helped if you mentioned that earlier. Anyway, I am suspecting you to be running an older node-red-contrib-victron. Your virtual EV isn’t updating the LastUpdated/ timestamps. The recent ones (above 1.7.13) update those automatically.

So can you make sure to be running a newer version and check again?

Ah, thats were the problem is. The last available version through Nodered is 1.7.12.
Manually injecting LastUpdated with that version does not work.

Do you know when you will release the palette in v1.7.13 ?

I just clicked “check for update”, so 1.7.16 should become available shortly. Issue is that this is still a manual thing to do after a new beta gets released. And that gets overlooked every now and then.

Hi @dfaber,

thanks a lot for your help!

Updating to 1.7.16 fixed it. The car is now showing up in VRM.