diff --git a/tasmota/settings.ino b/tasmota/settings.ino index 8e96e8459..acaf40598 100644 --- a/tasmota/settings.ino +++ b/tasmota/settings.ino @@ -1201,11 +1201,61 @@ void SettingsDelta(void) // SettingsUpdateText(SET_FRIENDLYNAME3, Settings.ex_friendlyname[2]); // SettingsUpdateText(SET_FRIENDLYNAME4, Settings.ex_friendlyname[3]); } -#else // UPGRADE_V8_MIN +#else // UPGRADE_V8_MIN if (Settings.version < 0x08000000) { +#ifdef UPGRADE_V8_MIN_KEEP_WIFI + // Save SSIDs and Passwords + char temp31[strlen(Settings.ex_sta_ssid[0]) +1]; + strncpy(temp31, Settings.ex_sta_ssid[0], sizeof(temp31)); + char temp32[strlen(Settings.ex_sta_ssid[1]) +1]; + strncpy(temp32, Settings.ex_sta_ssid[1], sizeof(temp32)); + char temp41[strlen(Settings.ex_sta_pwd[0]) +1]; + strncpy(temp41, Settings.ex_sta_pwd[0], sizeof(temp41)); + char temp42[strlen(Settings.ex_sta_pwd[1]) +1]; + strncpy(temp42, Settings.ex_sta_pwd[1], sizeof(temp42)); +#endif // UPGRADE_V8_MIN_KEEP_WIFI + +#ifdef UPGRADE_V8_MIN_KEEP_MQTT + char temp7[strlen(Settings.ex_mqtt_host) +1]; + strncpy(temp7, Settings.ex_mqtt_host, sizeof(temp7)); + char temp9[strlen(Settings.ex_mqtt_user) +1]; + strncpy(temp9, Settings.ex_mqtt_user, sizeof(temp9)); + char temp10[strlen(Settings.ex_mqtt_pwd) +1]; + strncpy(temp10, Settings.ex_mqtt_pwd, sizeof(temp10)); + char temp11[strlen(Settings.ex_mqtt_topic) +1]; + strncpy(temp11, Settings.ex_mqtt_topic, sizeof(temp11)); +#endif // UPGRADE_V8_MIN_KEEP_MQTT + SettingsDefault(); + +#ifdef UPGRADE_V8_MIN_KEEP_WIFI + // Restore current SSIDs and Passwords + SettingsUpdateText(SET_STASSID1, temp31); + SettingsUpdateText(SET_STASSID2, temp32); + SettingsUpdateText(SET_STAPWD1, temp41); + SettingsUpdateText(SET_STAPWD2, temp42); +#endif // UPGRADE_V8_MIN_KEEP_WIFI + +#ifdef UPGRADE_V8_MIN_KEEP_MQTT +#if defined(USE_MQTT_TLS) && defined(USE_MQTT_AWS_IOT) + if (!strlen(Settings.ex_mqtt_user)) { + SettingsUpdateText(SET_MQTT_HOST, temp7); + SettingsUpdateText(SET_MQTT_USER, temp9); + } else { + char aws_mqtt_host[66]; + snprintf_P(aws_mqtt_host, sizeof(aws_mqtt_host), PSTR("%s%s"), temp9, temp7); + SettingsUpdateText(SET_MQTT_HOST, aws_mqtt_host); + SettingsUpdateText(SET_MQTT_USER, ""); + } +#else // No USE_MQTT_TLS and USE_MQTT_AWS_IOT + SettingsUpdateText(SET_MQTT_HOST, temp7); + SettingsUpdateText(SET_MQTT_USER, temp9); +#endif // USE_MQTT_TLS and USE_MQTT_AWS_IOT + SettingsUpdateText(SET_MQTT_PWD, temp10); + SettingsUpdateText(SET_MQTT_TOPIC, temp11); +#endif // UPGRADE_V8_MIN_KEEP_MQTT } -#endif // UPGRADE_V8_MIN +#endif // UPGRADE_V8_MIN if (Settings.version < 0x08020003) { SettingsUpdateText(SET_TEMPLATE_NAME, Settings.user_template_name); Settings.zb_channel = 0; // set channel to zero to force reinit of zigbee parameters