mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 06:33:51 +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_SOURCE): cv.string_strict, | ||||
|             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, | ||||
| @@ -494,6 +501,9 @@ async def to_code(config): | ||||
|     conf = config[CONF_FRAMEWORK] | ||||
|     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( | ||||
|         "post", | ||||
|         "post_build.py", | ||||
| @@ -540,8 +550,6 @@ async def to_code(config): | ||||
|         for name, value in conf[CONF_SDKCONFIG_OPTIONS].items(): | ||||
|             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): | ||||
|             add_idf_sdkconfig_option("CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR", True) | ||||
|             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) | ||||
|  | ||||
| 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); | ||||
|   WiFi.onEvent(f); | ||||
|   WiFi.persistent(false); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user