Fix typo in configuration. Relates to #603

Also increase buffer size to read whole config
This commit is contained in:
Thomas Basler 2023-02-19 22:33:35 +01:00
parent 20a83fcc89
commit dc66a82695
2 changed files with 25 additions and 18 deletions

View File

@ -4,7 +4,7 @@
#include <Arduino.h>
#define CONFIG_FILENAME "/config.json"
#define CONFIG_VERSION 0x00011700 // 0.1.23 // make sure to clean all after change
#define CONFIG_VERSION 0x00011800 // 0.1.24 // make sure to clean all after change
#define WIFI_MAX_SSID_STRLEN 31
#define WIFI_MAX_PASSWORD_STRLEN 64
@ -29,7 +29,7 @@
#define DEV_MAX_MAPPING_NAME_STRLEN 63
#define JSON_BUFFER_SIZE 6144
#define JSON_BUFFER_SIZE 12288
struct CHANNEL_CONFIG_T {
uint16_t MaxChannelPower;

View File

@ -55,7 +55,7 @@ bool ConfigurationClass::write()
mqtt["password"] = config.Mqtt_Password;
mqtt["topic"] = config.Mqtt_Topic;
mqtt["retain"] = config.Mqtt_Retain;
mqtt["publish_invterval"] = config.Mqtt_PublishInterval;
mqtt["publish_interval"] = config.Mqtt_PublishInterval;
JsonObject mqtt_lwt = mqtt.createNestedObject("lwt");
mqtt_lwt["topic"] = config.Mqtt_LwtTopic;
@ -192,7 +192,7 @@ bool ConfigurationClass::read()
strlcpy(config.Mqtt_Password, mqtt["password"] | MQTT_PASSWORD, sizeof(config.Mqtt_Password));
strlcpy(config.Mqtt_Topic, mqtt["topic"] | MQTT_TOPIC, sizeof(config.Mqtt_Topic));
config.Mqtt_Retain = mqtt["retain"] | MQTT_RETAIN;
config.Mqtt_PublishInterval = mqtt["publish_invterval"] | MQTT_PUBLISH_INTERVAL;
config.Mqtt_PublishInterval = mqtt["publish_interval"] | MQTT_PUBLISH_INTERVAL;
JsonObject mqtt_lwt = mqtt["lwt"];
strlcpy(config.Mqtt_LwtTopic, mqtt_lwt["topic"] | MQTT_LWT_TOPIC, sizeof(config.Mqtt_LwtTopic));
@ -253,7 +253,6 @@ bool ConfigurationClass::read()
void ConfigurationClass::migrate()
{
if (config.Cfg_Version < 0x00011700) {
File f = LittleFS.open(CONFIG_FILENAME, "r", false);
if (!f) {
MessageOutput.println(F("Failed to open file, cancel migration"));
@ -264,10 +263,11 @@ void ConfigurationClass::migrate()
// Deserialize the JSON document
DeserializationError error = deserializeJson(doc, f);
if (error) {
MessageOutput.println(F("Failed to read file, cancel migration"));
MessageOutput.printf("Failed to read file, cancel migration: %s\r\n", error.c_str());
return;
}
if (config.Cfg_Version < 0x00011700) {
JsonArray inverters = doc["inverters"];
for (uint8_t i = 0; i < INV_MAX_COUNT; i++) {
JsonObject inv = inverters[i].as<JsonObject>();
@ -279,6 +279,13 @@ void ConfigurationClass::migrate()
}
}
if (config.Cfg_Version < 0x00011800) {
JsonObject mqtt = doc["mqtt"];
config.Mqtt_PublishInterval = mqtt["publish_invterval"];
}
f.close();
config.Cfg_Version = CONFIG_VERSION;
write();
read();