mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Always save user wifi credentials if non in config (#4036)
This commit is contained in:
		| @@ -1,9 +1,8 @@ | |||||||
| import esphome.codegen as cg | import esphome.codegen as cg | ||||||
| import esphome.config_validation as cv | import esphome.config_validation as cv | ||||||
| import esphome.final_validate as fv |  | ||||||
| from esphome.components import web_server_base | from esphome.components import web_server_base | ||||||
| from esphome.components.web_server_base import CONF_WEB_SERVER_BASE_ID | from esphome.components.web_server_base import CONF_WEB_SERVER_BASE_ID | ||||||
| from esphome.const import CONF_ID, CONF_NETWORKS, CONF_PASSWORD, CONF_SSID, CONF_WIFI | from esphome.const import CONF_ID | ||||||
| from esphome.core import coroutine_with_priority, CORE | from esphome.core import coroutine_with_priority, CORE | ||||||
|  |  | ||||||
| AUTO_LOAD = ["web_server_base"] | AUTO_LOAD = ["web_server_base"] | ||||||
| @@ -13,7 +12,6 @@ CODEOWNERS = ["@OttoWinter"] | |||||||
| captive_portal_ns = cg.esphome_ns.namespace("captive_portal") | captive_portal_ns = cg.esphome_ns.namespace("captive_portal") | ||||||
| CaptivePortal = captive_portal_ns.class_("CaptivePortal", cg.Component) | CaptivePortal = captive_portal_ns.class_("CaptivePortal", cg.Component) | ||||||
|  |  | ||||||
| CONF_KEEP_USER_CREDENTIALS = "keep_user_credentials" |  | ||||||
| CONFIG_SCHEMA = cv.All( | CONFIG_SCHEMA = cv.All( | ||||||
|     cv.Schema( |     cv.Schema( | ||||||
|         { |         { | ||||||
| @@ -21,7 +19,6 @@ CONFIG_SCHEMA = cv.All( | |||||||
|             cv.GenerateID(CONF_WEB_SERVER_BASE_ID): cv.use_id( |             cv.GenerateID(CONF_WEB_SERVER_BASE_ID): cv.use_id( | ||||||
|                 web_server_base.WebServerBase |                 web_server_base.WebServerBase | ||||||
|             ), |             ), | ||||||
|             cv.Optional(CONF_KEEP_USER_CREDENTIALS, default=False): cv.boolean, |  | ||||||
|         } |         } | ||||||
|     ).extend(cv.COMPONENT_SCHEMA), |     ).extend(cv.COMPONENT_SCHEMA), | ||||||
|     cv.only_with_arduino, |     cv.only_with_arduino, | ||||||
| @@ -29,22 +26,6 @@ CONFIG_SCHEMA = cv.All( | |||||||
| ) | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| def validate_wifi(config): |  | ||||||
|     wifi_conf = fv.full_config.get()[CONF_WIFI] |  | ||||||
|     if config.get(CONF_KEEP_USER_CREDENTIALS, False) and ( |  | ||||||
|         CONF_SSID in wifi_conf |  | ||||||
|         or CONF_PASSWORD in wifi_conf |  | ||||||
|         or CONF_NETWORKS in wifi_conf |  | ||||||
|     ): |  | ||||||
|         raise cv.Invalid( |  | ||||||
|             f"WiFi credentials cannot be used together with {CONF_KEEP_USER_CREDENTIALS}" |  | ||||||
|         ) |  | ||||||
|     return config |  | ||||||
|  |  | ||||||
|  |  | ||||||
| FINAL_VALIDATE_SCHEMA = validate_wifi |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @coroutine_with_priority(64.0) | @coroutine_with_priority(64.0) | ||||||
| async def to_code(config): | async def to_code(config): | ||||||
|     paren = await cg.get_variable(config[CONF_WEB_SERVER_BASE_ID]) |     paren = await cg.get_variable(config[CONF_WEB_SERVER_BASE_ID]) | ||||||
| @@ -58,6 +39,3 @@ async def to_code(config): | |||||||
|         cg.add_library("WiFi", None) |         cg.add_library("WiFi", None) | ||||||
|     if CORE.is_esp8266: |     if CORE.is_esp8266: | ||||||
|         cg.add_library("DNSServer", None) |         cg.add_library("DNSServer", None) | ||||||
|  |  | ||||||
|     if config.get(CONF_KEEP_USER_CREDENTIALS, False): |  | ||||||
|         cg.add_define("USE_CAPTIVE_PORTAL_KEEP_USER_CREDENTIALS") |  | ||||||
|   | |||||||
| @@ -39,11 +39,8 @@ void WiFiComponent::setup() { | |||||||
|   this->last_connected_ = millis(); |   this->last_connected_ = millis(); | ||||||
|   this->wifi_pre_setup_(); |   this->wifi_pre_setup_(); | ||||||
|  |  | ||||||
| #ifndef USE_CAPTIVE_PORTAL_KEEP_USER_CREDENTIALS |   uint32_t hash = this->has_sta() ? fnv1_hash(App.get_compilation_time()) : 88491487UL; | ||||||
|   uint32_t hash = fnv1_hash(App.get_compilation_time()); |  | ||||||
| #else |  | ||||||
|   uint32_t hash = 88491487UL; |  | ||||||
| #endif |  | ||||||
|   this->pref_ = global_preferences->make_preference<wifi::SavedWifiSettings>(hash, true); |   this->pref_ = global_preferences->make_preference<wifi::SavedWifiSettings>(hash, true); | ||||||
|  |  | ||||||
|   SavedWifiSettings save{}; |   SavedWifiSettings save{}; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user