diff --git a/src/web/WebSettingsService.cpp b/src/web/WebSettingsService.cpp index 888c2e270..8d94ef5d9 100644 --- a/src/web/WebSettingsService.cpp +++ b/src/web/WebSettingsService.cpp @@ -257,26 +257,16 @@ StateUpdateResult WebSettings::update(JsonObject & root, WebSettings & settings) check_flag(prev, settings.enum_format, ChangeFlags::MQTT); } - // - // these may need mqtt restart to rebuild HA discovery topics - // - prev = settings.bool_format; - settings.bool_format = root["bool_format"] | EMSESP_DEFAULT_BOOL_FORMAT; - EMSESP::system_.bool_format(settings.bool_format); - if (Mqtt::ha_enabled()) - check_flag(prev, settings.bool_format, ChangeFlags::MQTT); - - prev = settings.enum_format; - settings.enum_format = root["enum_format"] | EMSESP_DEFAULT_ENUM_FORMAT; - EMSESP::system_.enum_format(settings.enum_format); - if (Mqtt::ha_enabled()) - check_flag(prev, settings.enum_format, ChangeFlags::MQTT); + String old_locale = settings.locale; + settings.locale = root["locale"] | EMSESP_DEFAULT_LOCALE; + EMSESP::system_.locale(settings.locale); + if (Mqtt::ha_enabled() && !old_locale.equals(settings.locale)) { + add_flags(ChangeFlags::MQTT); + } // // without checks or necessary restarts... // - settings.locale = root["locale"] | EMSESP_DEFAULT_LOCALE; - EMSESP::system_.locale(settings.locale); settings.trace_raw = root["trace_raw"] | EMSESP_DEFAULT_TRACELOG_RAW; EMSESP::trace_raw(settings.trace_raw);