fix bootloop with missing version

This commit is contained in:
proddy
2024-07-28 09:26:02 +02:00
parent 0edb5c0fd9
commit f4781b91c2
3 changed files with 8 additions and 11 deletions

View File

@@ -1601,7 +1601,7 @@ void EMSESP::start() {
// start the file system // start the file system
#ifndef EMSESP_STANDALONE #ifndef EMSESP_STANDALONE
if (!LittleFS.begin(true)) { if (!LittleFS.begin(true)) {
Serial.println("LittleFS Mount Failed. Using default settings."); LOG_INFO("LittleFS Mount Failed. Using default settings.");
return; return;
} }
#endif #endif
@@ -1612,9 +1612,7 @@ void EMSESP::start() {
File root = LittleFS.open("/config"); File root = LittleFS.open("/config");
bool factory_settings = !root; bool factory_settings = !root;
if (!root) { if (!root) {
#if defined(EMSESP_DEBUG) LOG_INFO("No config found, assuming factory settings");
Serial.println("No config found, assuming factory settings");
#endif
} }
root.close(); root.close();
#else #else
@@ -1644,8 +1642,6 @@ void EMSESP::start() {
system_.system_restart(); system_.system_restart();
}; };
webSettingsService.begin(); // load EMS-ESP Application settings... webSettingsService.begin(); // load EMS-ESP Application settings...
// do any system upgrades // do any system upgrades

View File

@@ -1170,7 +1170,7 @@ bool System::check_upgrade(bool factory_settings) {
// see if we're missing a version, will be < 3.5.0b13 from Dec 23 2022 // see if we're missing a version, will be < 3.5.0b13 from Dec 23 2022
missing_version = (settingsVersion.empty() || (settingsVersion.length() < 5)); missing_version = (settingsVersion.empty() || (settingsVersion.length() < 5));
if (missing_version) { if (missing_version) {
LOG_WARNING("No version information found (%s)", settingsVersion.c_str()); LOG_WARNING("No version information found");
settingsVersion = "3.5.0"; // this was the last stable version without version info settingsVersion = "3.5.0"; // this was the last stable version without version info
} }
} }
@@ -1200,13 +1200,13 @@ bool System::check_upgrade(bool factory_settings) {
// if we're coming from 3.4.4 or 3.5.0b14 which had no version stored then we need to apply new settings // if we're coming from 3.4.4 or 3.5.0b14 which had no version stored then we need to apply new settings
if (missing_version) { if (missing_version) {
LOG_INFO("Setting MQTT Entity ID format to v3.4 format"); LOG_INFO("Upgrade: Setting MQTT Entity ID format to v3.4 format");
EMSESP::esp8266React.getMqttSettingsService()->update([&](MqttSettings & mqttSettings) { EMSESP::esp8266React.getMqttSettingsService()->update([&](MqttSettings & mqttSettings) {
mqttSettings.entity_format = 0; // use old Entity ID format from v3.4 mqttSettings.entity_format = 0; // use old Entity ID format from v3.4
return StateUpdateResult::CHANGED; return StateUpdateResult::CHANGED;
}); });
} else if (settings_version.major() == 3 && settings_version.minor() <= 6) { } else if (settings_version.major() == 3 && settings_version.minor() <= 6) {
LOG_INFO("Setting MQTT Entity ID format to v3.6 format"); LOG_INFO("Upgrade: Setting MQTT Entity ID format to v3.6 format");
EMSESP::esp8266React.getMqttSettingsService()->update([&](MqttSettings & mqttSettings) { EMSESP::esp8266React.getMqttSettingsService()->update([&](MqttSettings & mqttSettings) {
if (mqttSettings.entity_format == 1) { if (mqttSettings.entity_format == 1) {
mqttSettings.entity_format = 3; // use old Entity ID format from v3.6 mqttSettings.entity_format = 3; // use old Entity ID format from v3.6
@@ -1223,7 +1223,7 @@ bool System::check_upgrade(bool factory_settings) {
EMSESP::esp8266React.getNetworkSettingsService()->update([&](NetworkSettings & networkSettings) { EMSESP::esp8266React.getNetworkSettingsService()->update([&](NetworkSettings & networkSettings) {
if (networkSettings.tx_power == 20) { if (networkSettings.tx_power == 20) {
networkSettings.tx_power = WIFI_POWER_19_5dBm; // use 19.5 as we don't have 20 anymore networkSettings.tx_power = WIFI_POWER_19_5dBm; // use 19.5 as we don't have 20 anymore
LOG_INFO("Setting WiFi TX Power to Auto"); LOG_INFO("Upgrade: Setting WiFi TX Power to Auto");
return StateUpdateResult::CHANGED; return StateUpdateResult::CHANGED;
} }
return StateUpdateResult::UNCHANGED; return StateUpdateResult::UNCHANGED;
@@ -1237,7 +1237,7 @@ bool System::check_upgrade(bool factory_settings) {
save_version = false; save_version = false;
} }
// if we did a change, set the new version and reboot // if we did a change, set the new version and save it, then reboot
if (save_version) { if (save_version) {
EMSESP::webSettingsService.update([&](WebSettings & settings) { EMSESP::webSettingsService.update([&](WebSettings & settings) {
settings.version = EMSESP_APP_VERSION; settings.version = EMSESP_APP_VERSION;

View File

@@ -32,6 +32,7 @@ WebSettingsService::WebSettingsService(AsyncWebServer * server, FS * fs, Securit
} }
void WebSettings::read(WebSettings & settings, JsonObject root) { void WebSettings::read(WebSettings & settings, JsonObject root) {
root["version"] = settings.version;
root["locale"] = settings.locale; root["locale"] = settings.locale;
root["tx_mode"] = settings.tx_mode; root["tx_mode"] = settings.tx_mode;
root["ems_bus_id"] = settings.ems_bus_id; root["ems_bus_id"] = settings.ems_bus_id;