mirror of
https://github.com/esphome/esphome.git
synced 2024-11-21 22:48:10 +01:00
[wifi] Support custom MAC on Arduino, too (#7644)
This commit is contained in:
parent
10791db82e
commit
748256b3ee
2 changed files with 15 additions and 2 deletions
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue