Only save when settings have changed

This commit is contained in:
fvanroie 2020-04-12 22:54:38 +02:00
parent 46dcc0b386
commit 70cc8a4f81

View File

@ -172,17 +172,28 @@ void configWriteConfig()
bool changed = false; bool changed = false;
JsonObject settings; JsonObject settings;
settings = doc.as<JsonObject>(); if(doc.as<JsonObject>().isNull()) {
settings = doc.to<JsonObject>();
} else {
settings = doc.as<JsonObject>();
}
if(settings[F("wifi")].as<JsonObject>().isNull()) settings.createNestedObject(F("wifi"));
if(settings[F("mqtt")].as<JsonObject>().isNull()) settings.createNestedObject(F("mqtt"));
if(settings[F("hasp")].as<JsonObject>().isNull()) settings.createNestedObject(F("hasp"));
if(settings[F("mdns")].as<JsonObject>().isNull()) settings.createNestedObject(F("mdns"));
if(settings[F("http")].as<JsonObject>().isNull()) settings.createNestedObject(F("http"));
if(settings[F("debug")].as<JsonObject>().isNull()) settings.createNestedObject(F("debug"));
if(settings[F("telnet")].as<JsonObject>().isNull()) settings.createNestedObject(F("telnet"));
if(settings[F("gui")].as<JsonObject>().isNull()) settings.createNestedObject(F("gui"));
#if HASP_USE_WIFI #if HASP_USE_WIFI
if(!settings[F("wifi")].is<JsonObject>()) settings[F("wifi")].to<JsonObject>(); changed = wifiGetConfig(settings[F("wifi")].as<JsonObject>());
changed = wifiGetConfig(settings[F("wifi")]);
if(changed) { if(changed) {
Log.verbose(F("WIFI: Settings changed")); Log.verbose(F("WIFI: Settings changed"));
writefile = true; writefile = true;
} }
#if HASP_USE_MQTT #if HASP_USE_MQTT
if(!settings[F("mqtt")].is<JsonObject>()) settings[F("mqtt")].to<JsonObject>();
changed = mqttGetConfig(settings[F("mqtt")]); changed = mqttGetConfig(settings[F("mqtt")]);
if(changed) { if(changed) {
Log.verbose(F("MQTT: Settings changed")); Log.verbose(F("MQTT: Settings changed"));
@ -191,7 +202,6 @@ void configWriteConfig()
} }
#endif #endif
#if HASP_USE_TELNET #if HASP_USE_TELNET
if(!settings[F("telnet")].is<JsonObject>()) settings[F("telnet")].to<JsonObject>();
changed = telnetGetConfig(settings[F("telnet")]); changed = telnetGetConfig(settings[F("telnet")]);
if(changed) { if(changed) {
Log.verbose(F("TELNET: Settings changed")); Log.verbose(F("TELNET: Settings changed"));
@ -200,7 +210,6 @@ void configWriteConfig()
} }
#endif #endif
#if HASP_USE_MDNS #if HASP_USE_MDNS
if(!settings[F("mdns")].is<JsonObject>()) settings[F("mdns")].to<JsonObject>();
changed = mdnsGetConfig(settings[F("mdns")]); changed = mdnsGetConfig(settings[F("mdns")]);
if(changed) { if(changed) {
Log.verbose(F("MDNS: Settings changed")); Log.verbose(F("MDNS: Settings changed"));
@ -208,8 +217,7 @@ void configWriteConfig()
} }
#endif #endif
#if HASP_USE_HTTP #if HASP_USE_HTTP
if(!settings[F("http")].is<JsonObject>()) settings[F("http")].to<JsonObject>(); changed = httpGetConfig(settings[F("http")]);
changed = httpGetConfig(settings[F("http")].as<JsonVariant>());
if(changed) { if(changed) {
Log.verbose(F("HTTP: Settings changed")); Log.verbose(F("HTTP: Settings changed"));
configOutput(settings[F("http")]); configOutput(settings[F("http")]);
@ -218,22 +226,19 @@ void configWriteConfig()
#endif #endif
#endif #endif
if(!settings[F("debug")].is<JsonObject>()) settings[F("debug")].to<JsonObject>(); changed = debugGetConfig(settings[F("debug")]);
changed = debugGetConfig(settings[F("debug")].as<JsonVariant>());
if(changed) { if(changed) {
Log.verbose(F("DEBUG: Settings changed")); Log.verbose(F("DEBUG: Settings changed"));
writefile = true; writefile = true;
} }
if(!settings[F("gui")].is<JsonObject>()) settings[F("gui")].to<JsonObject>(); changed = guiGetConfig(settings[F("gui")]);
changed = guiGetConfig(settings[F("gui")].as<JsonVariant>());
if(changed) { if(changed) {
Log.verbose(F("GUI: Settings changed")); Log.verbose(F("GUI: Settings changed"));
writefile = true; writefile = true;
} }
if(!settings[F("hasp")].is<JsonObject>()) settings[F("hasp")].to<JsonObject>(); changed = haspGetConfig(settings[F("hasp")]);
changed = haspGetConfig(settings[F("hasp")].as<JsonVariant>());
if(changed) { if(changed) {
Log.verbose(F("HASP: Settings changed")); Log.verbose(F("HASP: Settings changed"));
writefile = true; writefile = true;