We use a custom Tracker one firmware and custom config-schema.
Now we added more config parameters ConfigObject("tempRed" to a custom group we had already and also updated the config-schema.json
It seems the tracker is crashing while loading the last local settings from EEPROM.
Is it possible to clear the locally stored parameter settings so the new structured config gets fetched from the cloud after the device is online?
If I comment out the added config part in the firmware the device is working fine again.
below the simplified code section:
setup()
static ConfigObject chargeDesc("charge", {
ConfigBool("pause", &PauseCharging),
ConfigBool("stop", &StopCharging),
ConfigInt("dcLimit", &UserDcFastChargeCurrentLimit, 0, 65535),
// this part is added
ConfigObject("tempRed", {
ConfigBool("tempRedEn", &TempReductionEnable),
ConfigInt("reduceTemp", &ReduceTemp, 0, 100)
})
});
ConfigService::instance().registerModule(chargeDesc);
config-schema.json
"charge": {
"$id": "#/properties/charge",
"type": "object",
"title": "Charge",
"description": "Charging control",
"default": {},
"minimumFirmwareVersion": 120,
"deviceLevelOnly": true,
"properties": {
"pause": {
...
},
// this part is added
"tempRed": {
"$id": "#/properties/charge/tempRed",
"type": "object",
"title": "Temperature dependent reduction",
"description": "Reduce charging speed when battery gets hot.",
"default": {},
"properties": {
"tempRedEn": {
"$id": "#/properties/charge/tempRed/tempRedEn",
"type": "boolean",
"title": "Enable",
"description": "...",
"default": false,
"examples": [
true
]
},
"reduceTemp": {
"$id": "#/properties/charge/tempRed/reduceTemp",
"type": "number",
"title": "Reduction temperature",
"description": "blablabla.",
"default": 45,
"examples": [
50
],
"minimum": 0,
"maximum": 100
}
}