VRM widget MPPT operation mode

Hi All,

I am using a Victron solar charger node in Node-red which outputs the MPP operation mode, either “Tracker active” (normal operation) or “Voltage or current limited” (which corresponds to the MPPT “throttling” back when the battery is almost charged).
Anyway, I would like to know is there a way to be able to see the mode as a widget on VRM advanced ?

Thanks,

I’ve just been looking into this and I don’t think there’s a direct way from the settings on VRM…it might be possible to set it up to be tracked though if you look into the options under virtual devices in Node Red and could set one up for it and could copy through the values from the real parameter to the virtual device via a custom control node - just a thought though, I haven’t worked with a virtual device yet and am not sure whether one of the device types could be hijacked to serve this purpose…I’m considering trying it in which case I’ll return with the results of that effort if I remember to.

I would be interested to hear how you get on.

Well I’ve just done this now…I put a virtual device and tried to pick something relatively innocuous so I went for the temperature sensor device type with a generic temperature type, I converted the output of a solar charger’s MPP operation mode parameter through a change node with a Jsonata expression set to {“/Temperature”:payload} and passed it into the virtual device (the extra injects were to force the changes of data necessary to create the spike in the following chart).

Then setup a custom widget in the Advanced page with device being my new virtual device and parameter being temperature. Unfortunately temperature is set up for continuous values as you can see but it’s working.

Also showing up nicely in dbus-spy:

Good ! I will try this with mine.

Can you share the node or the flow ? I can’t find the right one.

The following flow includes the basics…note I’ve got a couple of other features of the virtual device turned on because I’m using it to track other values not included in this flow.

I suspect when copying and pasting you may need to replace my solar charger node with your own fresh local one and there may be similar issues with the virtual device but see what happens.

[
    {
        "id": "9c0cc40bbd23f598",
        "type": "victron-input-solarcharger",
        "z": "aa940e18d5486a09",
        "service": "com.victronenergy.solarcharger/0",
        "path": "/MppOperationMode",
        "serviceObj": {
            "service": "com.victronenergy.solarcharger/0",
            "name": "120 Solar Charger 1",
            "communityTag": "solarcharger"
        },
        "pathObj": {
            "path": "/MppOperationMode",
            "type": "enum",
            "name": "MPP operation mode",
            "enum": {
                "0": "Off",
                "1": "Voltage or current limited",
                "2": "MPPT Tracker active",
                "255": "Not available"
            }
        },
        "initial": "",
        "name": "SCC MPP Mode",
        "onlyChanges": true,
        "outputs": 1,
        "conditionalMode": false,
        "outputTrue": "",
        "outputFalse": "",
        "debounce": "",
        "x": 1560,
        "y": 180,
        "wires": [
            [
                "728741c6a4e93418"
            ]
        ]
    },
    {
        "id": "728741c6a4e93418",
        "type": "change",
        "z": "aa940e18d5486a09",
        "name": "RecordRawMPPMode",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"/Temperature\":payload}",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1220,
        "y": 360,
        "wires": [
            [
                "65b440d3c5f85adb"
            ]
        ]
    },
    {
        "id": "65b440d3c5f85adb",
        "type": "victron-virtual",
        "z": "aa940e18d5486a09",
        "name": "MPPMode",
        "outputs": 1,
        "device": "temperature",
        "default_values": true,
        "acload_nrofphases": 1,
        "enable_s2support": false,
        "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,
        "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,
        "fluid_type": 0,
        "include_tank_battery": false,
        "include_tank_temperature": false,
        "tank_battery_voltage": 3.3,
        "tank_capacity": 0.2,
        "temperature_type": 2,
        "include_humidity": true,
        "include_pressure": true,
        "include_temp_battery": false,
        "temp_battery_voltage": 3.3,
        "x": 1450,
        "y": 400,
        "wires": [
            [
                "6463c35b177a3ff2"
            ]
        ]
    },
    {
        "id": "6463c35b177a3ff2",
        "type": "debug",
        "z": "aa940e18d5486a09",
        "name": "debugMPPMode",
        "active": true,
        "tosidebar": false,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1690,
        "y": 380,
        "wires": []
    },
    {
        "id": "dbbbaacc8926f599",
        "type": "global-config",
        "env": [],
        "modules": {
            "@victronenergy/node-red-contrib-victron": "1.6.64"
        }
    }
]

Thanks for that. However, on my Node-red it shows as “unknown - victron virtual”

Would this be the same as the scc going from absorb to float? In which case you could just enable the widget for mppt state?

No, what I want to track is basically when it throttles back generally due to battery being nearly charged. The MPPT widget will track the periods of “off” or “bulk” or “ext.control” etc. but not “voltage or current limited”, the node does track this but I don’t know how to turn the node output into a widget.