mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	[wifi] Support custom MAC on Arduino, too (#7644)
This commit is contained in:
		| @@ -395,6 +395,13 @@ ARDUINO_FRAMEWORK_SCHEMA = cv.All( | |||||||
|             cv.Optional(CONF_VERSION, default="recommended"): cv.string_strict, |             cv.Optional(CONF_VERSION, default="recommended"): cv.string_strict, | ||||||
|             cv.Optional(CONF_SOURCE): cv.string_strict, |             cv.Optional(CONF_SOURCE): cv.string_strict, | ||||||
|             cv.Optional(CONF_PLATFORM_VERSION): _parse_platform_version, |             cv.Optional(CONF_PLATFORM_VERSION): _parse_platform_version, | ||||||
|  |             cv.Optional(CONF_ADVANCED, default={}): cv.Schema( | ||||||
|  |                 { | ||||||
|  |                     cv.Optional( | ||||||
|  |                         CONF_IGNORE_EFUSE_CUSTOM_MAC, default=False | ||||||
|  |                     ): cv.boolean, | ||||||
|  |                 } | ||||||
|  |             ), | ||||||
|         } |         } | ||||||
|     ), |     ), | ||||||
|     _arduino_check_versions, |     _arduino_check_versions, | ||||||
| @@ -494,6 +501,9 @@ async def to_code(config): | |||||||
|     conf = config[CONF_FRAMEWORK] |     conf = config[CONF_FRAMEWORK] | ||||||
|     cg.add_platformio_option("platform", conf[CONF_PLATFORM_VERSION]) |     cg.add_platformio_option("platform", conf[CONF_PLATFORM_VERSION]) | ||||||
|  |  | ||||||
|  |     if CONF_ADVANCED in conf and conf[CONF_ADVANCED][CONF_IGNORE_EFUSE_CUSTOM_MAC]: | ||||||
|  |         cg.add_define("USE_ESP32_IGNORE_EFUSE_CUSTOM_MAC") | ||||||
|  |  | ||||||
|     add_extra_script( |     add_extra_script( | ||||||
|         "post", |         "post", | ||||||
|         "post_build.py", |         "post_build.py", | ||||||
| @@ -540,8 +550,6 @@ async def to_code(config): | |||||||
|         for name, value in conf[CONF_SDKCONFIG_OPTIONS].items(): |         for name, value in conf[CONF_SDKCONFIG_OPTIONS].items(): | ||||||
|             add_idf_sdkconfig_option(name, RawSdkconfigValue(value)) |             add_idf_sdkconfig_option(name, RawSdkconfigValue(value)) | ||||||
|  |  | ||||||
|         if conf[CONF_ADVANCED][CONF_IGNORE_EFUSE_CUSTOM_MAC]: |  | ||||||
|             cg.add_define("USE_ESP32_IGNORE_EFUSE_CUSTOM_MAC") |  | ||||||
|         if conf[CONF_ADVANCED].get(CONF_IGNORE_EFUSE_MAC_CRC): |         if conf[CONF_ADVANCED].get(CONF_IGNORE_EFUSE_MAC_CRC): | ||||||
|             add_idf_sdkconfig_option("CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR", True) |             add_idf_sdkconfig_option("CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR", True) | ||||||
|             if (framework_ver.major, framework_ver.minor) >= (4, 4): |             if (framework_ver.major, framework_ver.minor) >= (4, 4): | ||||||
|   | |||||||
| @@ -34,6 +34,11 @@ static esp_netif_t *s_ap_netif = nullptr;  // NOLINT(cppcoreguidelines-avoid-non | |||||||
| static bool s_sta_connecting = false;  // NOLINT(cppcoreguidelines-avoid-non-const-global-variables) | static bool s_sta_connecting = false;  // NOLINT(cppcoreguidelines-avoid-non-const-global-variables) | ||||||
|  |  | ||||||
| void WiFiComponent::wifi_pre_setup_() { | void WiFiComponent::wifi_pre_setup_() { | ||||||
|  |   uint8_t mac[6]; | ||||||
|  |   if (has_custom_mac_address()) { | ||||||
|  |     get_mac_address_raw(mac); | ||||||
|  |     set_mac_address(mac); | ||||||
|  |   } | ||||||
|   auto f = std::bind(&WiFiComponent::wifi_event_callback_, this, std::placeholders::_1, std::placeholders::_2); |   auto f = std::bind(&WiFiComponent::wifi_event_callback_, this, std::placeholders::_1, std::placeholders::_2); | ||||||
|   WiFi.onEvent(f); |   WiFi.onEvent(f); | ||||||
|   WiFi.persistent(false); |   WiFi.persistent(false); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user