I do not need the API to patch config currently. If you give me a (harmless) json to inject I can test for you.
Back then I was testing isScheduleSocOn, scheduledSocGoal, scheduledSocTime that is a) not implemented and b) does require 0, null, null respectively. You know, the infamous b_goal_SoC and b_goal_hour port from Node-RED DESS that I am catching so much heat on for requesting it for over a year already, and what we now ‘emulate’ by setting virtual forecast adjustments.
EDIT: found the old flow in backup.
[
{
"id": "fb0f0fcc232bb2e2",
"type": "inject",
"z": "77e8033910d87d1a",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "false",
"payloadType": "bool",
"x": 150,
"y": 200,
"wires": [
[
"b52372cf24b3801d"
]
]
},
{
"id": "4f000daf47ccd578",
"type": "function",
"z": "77e8033910d87d1a",
"name": "mux",
"func": "return msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 470,
"y": 140,
"wires": [
[
"7b62b75e1a9eec6c"
]
]
},
{
"id": "7b62b75e1a9eec6c",
"type": "vrm-api",
"z": "77e8033910d87d1a",
"vrm": "cb2c784a33130f48",
"name": "",
"api_type": "installations",
"idUser": "",
"idSite": "{{flow.siteId}}",
"installations": "patch-dynamic-ess-settings",
"attribute": "dynamic_ess",
"stats_interval": "",
"show_instance": false,
"stats_start": "",
"stats_end": "",
"use_utc": false,
"gps_start": "",
"gps_end": "",
"widgets": "PVInverterStatus",
"instance": "",
"store_in_global_context": false,
"verbose": true,
"outputs": 1,
"x": 740,
"y": 140,
"wires": [
[]
]
},
{
"id": "cb1b34c53f6bde49",
"type": "change",
"z": "77e8033910d87d1a",
"name": "pfco on",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "{\"isPeriodicFullChargeOn\":true,\"periodicFullChargeDuration\":0,\"periodicFullChargeInterval\":1}",
"tot": "json"
},
{
"t": "set",
"p": "url",
"pt": "msg",
"to": "https://vrmapi.victronenergy.com/v2",
"tot": "str"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "pfco",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 460,
"y": 80,
"wires": [
[
"4f000daf47ccd578"
]
]
},
{
"id": "b92397935d861649",
"type": "change",
"z": "77e8033910d87d1a",
"name": "pfco off",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "{\"isPeriodicFullChargeOn\":false,\"periodicFullChargeDuration\":null,\"periodicFullChargeInterval\":null}",
"tot": "json"
},
{
"t": "set",
"p": "url",
"pt": "msg",
"to": "https://vrmapi.victronenergy.com/v2",
"tot": "str"
},
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "pfco",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 460,
"y": 200,
"wires": [
[
"4f000daf47ccd578"
]
]
},
{
"id": "401770634aebaf82",
"type": "switch",
"z": "77e8033910d87d1a",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "true"
},
{
"t": "false"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 270,
"y": 140,
"wires": [
[
"cb1b34c53f6bde49"
],
[
"b92397935d861649"
]
]
},
{
"id": "b52372cf24b3801d",
"type": "change",
"z": "77e8033910d87d1a",
"name": "pfco",
"rules": [
{
"t": "set",
"p": "topic",
"pt": "msg",
"to": "pfco",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 150,
"y": 140,
"wires": [
[
"401770634aebaf82"
]
]
},
{
"id": "d94c89a091d800fe",
"type": "inject",
"z": "77e8033910d87d1a",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "true",
"payloadType": "bool",
"x": 150,
"y": 80,
"wires": [
[
"b52372cf24b3801d"
]
]
},
{
"id": "53f8fc21dc0336f2",
"type": "global-config",
"env": [],
"modules": {
"victron-vrm-api": "0.4.1"
}
}
]
for on:
{
"isPeriodicFullChargeOn": true,
"periodicFullChargeDuration": 0,
"periodicFullChargeInterval": 1
}
for off:
{
"isPeriodicFullChargeOn": false,
"periodicFullChargeDuration": null,
"periodicFullChargeInterval": null
}
That worked worked fine to switch DESS into and out of ‘balancing’ mode on the hour for an hour.
But it would indeed default back to
isPeriodicFullChargeOn: false
periodicFullChargeDuration: 2
periodicFullChargeInterval: 14
...
isScheduledSocOn: 0
scheduledSocGoal: null
scheduledSocTime: null
...
fullChargeDuration: 2
fullChargeInterval: 14
in the return object.
So if this does not work anymore, you might be on to something.