|
ESPHome 2026.11.0-dev
|
This component is responsible for managing the ESP WiFi interface. More...
#include <wifi_component.h>
Public Member Functions | |
| WiFiComponent () | |
| Construct a WiFiComponent. | |
| void | set_sta (const WiFiAP &ap) |
| WiFiAP | get_sta () const |
| void | init_sta (size_t count) |
| void | add_sta (const WiFiAP &ap) |
| void | clear_sta () |
| void | set_ap (const WiFiAP &ap) |
| Setup an Access Point that should be created if no connection to a station can be made. | |
| WiFiAP | get_ap () |
| void | set_ap_timeout (uint32_t ap_timeout) |
| void | set_dpp_key (const char *key) |
| void | set_dpp_device_info (const char *info) |
| void | set_dpp_channels (const char *channels) |
| void | set_dpp_timeout (uint32_t timeout) |
| template<typename F > | |
| void | add_on_dpp_uri_callback (F &&callback) |
| const char * | get_dpp_uri () const |
| The Easy Connect URI to show as a QR code, nullptr until the supplicant has generated it. | |
| void | enable () |
| void | disable () |
| bool | is_disabled () |
| void | start_scanning () |
| void | check_scanning_finished () |
| void | start_connecting (const WiFiAP &ap) |
| void | start_connecting (const WiFiAP &ap, bool) |
| void | check_connecting_finished (uint32_t now) |
| void | retry_connect () |
| void | set_reboot_timeout (uint32_t reboot_timeout) |
| bool | is_connected () const |
| bool | is_roaming_scan_active () const |
| True while a post-connect roaming scan holds the radio off-channel. | |
| bool | is_roaming () const |
| True while a post-connect roam is in progress (scanning off-channel, reassociating, or recovering from a failed roam). | |
| esp_netif_t * | get_esp_netif_sta () |
| esp_netif handle of the station interface, used by network for default-route arbitration. | |
| void | set_power_save_mode (WiFiPowerSaveMode power_save) |
| void | set_min_auth_mode (WifiMinAuthMode min_auth_mode) |
| void | set_output_power (float output_power) |
| void | set_band_mode (wifi_band_mode_t band_mode) |
| void | set_phy_mode (WiFi8266PhyMode phy_mode) |
| void | set_passive_scan (bool passive) |
| void | save_wifi_sta (const std::string &ssid, const std::string &password) |
| void | save_wifi_sta (const char *ssid, const char *password) |
| void | save_wifi_sta (StringRef ssid, StringRef password) |
| void | setup () override |
| Setup WiFi interface. | |
| void | on_powerdown () override |
| void | start () |
| void | dump_config () override |
| void | restart_adapter () |
| float | get_setup_priority () const override |
| WIFI setup_priority. | |
| void | loop () override |
| Reconnect WiFi if required. | |
| bool | has_sta () const |
| bool | has_ap () const |
| bool | is_ap_active () const |
| void | set_btm (bool btm) |
| void | set_rrm (bool rrm) |
| network::IPAddress | get_dns_address (int num) |
| network::IPAddresses | get_ip_addresses () |
| const char * | get_use_address () const |
| Returns nullptr when no explicit use_address is configured and the address is derived at runtime from the device name (see network::get_use_address_to()). | |
| void | set_use_address (const char *use_address) |
| const wifi_scan_vector_t< WiFiScanResult > & | get_scan_result () const |
| Main-loop callers may read this directly. | |
| network::IPAddress | wifi_soft_ap_ip () |
| bool | has_sta_priority (const bssid_t &bssid) |
| int8_t | get_sta_priority (const bssid_t bssid) |
| void | set_sta_priority (bssid_t bssid, int8_t priority) |
| network::IPAddresses | wifi_sta_ip_addresses () |
| const char * | wifi_ssid_to (std::span< char, SSID_BUFFER_SIZE > buffer) |
| Write SSID to buffer without heap allocation. | |
| bssid_t | wifi_bssid () |
| int8_t | wifi_rssi () |
| void | set_enable_on_boot (bool enable_on_boot) |
| void | set_lease_cache_max_age (uint32_t seconds) |
| void | set_keep_scan_results (bool keep_scan_results) |
| void | set_post_connect_roaming (bool enabled) |
| void | force_roam_check () |
| Force an immediate post-connect roaming check, bypassing the periodic interval and the per-connection attempt limit. | |
| Trigger * | get_connect_trigger () |
| Trigger * | get_disconnect_trigger () |
| int32_t | get_wifi_channel () |
| void | add_ip_state_listener (WiFiIPStateListener *listener) |
| Add a listener for IP state changes. | |
| void | add_scan_results_listener (WiFiScanResultsListener *listener) |
| Add a listener for WiFi scan results. | |
| void | add_connect_state_listener (WiFiConnectStateListener *listener) |
| Add a listener for WiFi connection state changes. | |
| void | add_power_save_listener (WiFiPowerSaveListener *listener) |
| Add a listener for WiFi power save mode changes. | |
| bool | request_high_performance () |
| Request high-performance mode (no power saving) for improved WiFi latency. | |
| bool | release_high_performance () |
| Release a high-performance mode request. | |
| void | request_roaming_suppression () |
| Request that post-connect roaming scans be suppressed. | |
| void | release_roaming_suppression () |
| Release a roaming suppression request. | |
Public Member Functions inherited from esphome::Component | |
| float | get_actual_setup_priority () const |
| void | set_setup_priority (float priority) |
| void | call () |
| virtual void | on_shutdown () |
| virtual void | on_safe_shutdown () |
| virtual bool | teardown () |
| Called during teardown to allow component to gracefully finish operations. | |
| uint8_t | get_component_state () const |
| void | reset_to_construction_state () |
| Reset this component back to the construction state to allow setup to run again. | |
| bool | is_in_loop_state () const |
| Check if this component has completed setup and is in the loop state. | |
| bool | is_idle () const |
| Check if this component is idle. | |
| void | mark_failed () |
| Mark this component as failed. | |
| void | mark_failed (const LogString *message) |
| void | disable_loop () |
| Disable this component's loop. | |
| void | enable_loop () |
| Enable this component's loop. | |
| void | enable_loop_soon_any_context () |
| Thread and ISR-safe version of enable_loop() that can be called from any context. | |
| bool | is_failed () const |
| bool | is_ready () const |
| virtual bool | can_proceed () |
| bool | status_has_warning () const |
| bool | status_has_error () const |
| void | status_set_warning () |
| void | status_set_warning (const char *message) |
| void | status_set_warning (const LogString *message) |
| bool | status_comm_result (bool ok) |
Clears the warning when ok, else sets it with message (default "Communication failed"); returns ok. | |
| bool | status_comm_result (bool ok, const LogString *message) |
| void | status_set_error () |
| void | status_set_error (const LogString *message) |
| void | status_clear_warning () |
| void | status_clear_error () |
| ESPDEPRECATED ("Use status_momentary_warning() without a name. Removed in 2027.5.0", "2026.11.0") void status_momentary_warning(const char *name | |
| void | status_momentary_warning (uint32_t length=5000) |
Set warning status flag and clear it after length ms. | |
| void | status_momentary_warning (const LogString *message, uint32_t length=5000) |
| ESPDEPRECATED ("Use status_momentary_error() without a name. Removed in 2027.5.0", "2026.11.0") void status_momentary_error(const char *name | |
| void | status_momentary_error (uint32_t length=5000) |
Set error status flag and clear it after length ms. | |
| void | status_momentary_error (const LogString *message, uint32_t length=5000) |
| bool | has_overridden_loop () const |
| const LogString * | get_component_log_str () const ESPHOME_ALWAYS_INLINE |
| Get the integration where this component was declared as a LogString for logging. | |
| bool | should_warn_of_blocking (uint32_t blocking_time, uint32_t &threshold_ms_out) |
Protected Member Functions | |
| void | setup_ap_config_ () |
| void | disable_ap_ () |
| End the portals and turn the AP off. | |
| void | pause_exclusive_ap_ () |
| Drop the fallback AP so the networks can be tried; it comes back after ap_timeout. | |
| bool | ap_dns_known_ () |
| Whether there is an IPv4 resolver to offer AP clients: a configured one, or the station's. | |
| bool | write_ap_dns_ () |
| Hand the AP DHCP server its resolvers; false when one could not be set. | |
| void | fail_bridge_ () |
| Take the bridge down so loop() runs its setup again after ap_timeout. | |
| void | apply_ap_dns_ () |
| Pass the station's resolvers on to AP clients when they changed. | |
| void | print_connect_params_ () |
| WiFiAP | build_params_for_current_phase_ () |
| WiFiRetryPhase | determine_next_phase_ () |
| Determine next retry phase based on current state and failure conditions. | |
| bool | transition_to_phase_ (WiFiRetryPhase new_phase) |
| Transition to a new retry phase with logging Returns true if a scan was started (caller should wait), false otherwise. | |
| bool | needs_scan_results_ () const |
| Check if we need valid scan results for the current phase but don't have any Returns true if the phase requires scan results but they're missing or don't match. | |
| bool | went_through_explicit_hidden_phase_ () const |
| Check if we went through EXPLICIT_HIDDEN phase (first network is marked hidden) Used in RETRY_HIDDEN to determine whether to skip explicitly hidden networks. | |
| int8_t | find_first_non_hidden_index_ () const |
| Find the index of the first non-hidden network Returns where EXPLICIT_HIDDEN phase would have stopped, or -1 if all networks are hidden. | |
| bool | ssid_was_seen_in_scan_ (const CompactString &ssid) const |
| Check if an SSID was seen in the most recent scan results Used to skip hidden mode for SSIDs we know are visible. | |
| bool | needs_full_scan_results_ () const |
| Check if full scan results are needed (captive portal active, improv, listeners) | |
| bool | matches_configured_network_ (const char *ssid, const uint8_t *bssid) const |
| Check if network matches any configured network (for scan result filtering) Matches by SSID when configured, or by BSSID for BSSID-only configs. | |
| void | log_discarded_scan_result_ (const char *ssid, const uint8_t *bssid, int8_t rssi, uint8_t channel) |
| Log a discarded scan result at VERBOSE level (skipped during roaming scans to avoid log overflow) | |
| int8_t | find_next_hidden_sta_ (int8_t start_index) |
| Find next SSID that wasn't in scan results (might be hidden) Returns index of next potentially hidden SSID, or -1 if none found. | |
| void | log_and_adjust_priority_for_failed_connect_ () |
| Log failed connection and decrease BSSID priority to avoid repeated attempts. | |
| void | clear_all_bssid_priorities_ () |
| Clear all BSSID priority penalties after successful connection (stale after disconnect) | |
| void | clear_priorities_if_all_min_ () |
| Clear BSSID priority tracking if all priorities are at minimum (saves memory) | |
| void | advance_to_next_target_or_increment_retry_ () |
| Advance to next target (AP/SSID) within current phase, or increment retry counter Called when staying in the same phase after a failed connection attempt. | |
| void | start_initial_connection_ () |
| Start initial connection - either scan or connect directly to hidden networks. | |
| const WiFiAP * | get_selected_sta_ () const |
| void | reset_selected_ap_to_first_if_invalid_ () |
| bool | all_networks_hidden_ () const |
| bool | wifi_loop_ () |
| void | process_pending_callbacks_ () |
| bool | wifi_mode_ (optional< bool > sta, optional< bool > ap) |
| bool | wifi_sta_pre_setup_ () |
| bool | wifi_apply_output_power_ (float output_power) |
| bool | wifi_apply_power_save_ () |
| bool | wifi_apply_band_mode_ () |
| bool | wifi_apply_phy_mode_ () |
| bool | wifi_sta_ip_config_ (const optional< ManualIP > &manual_ip) |
| bool | wifi_apply_hostname_ () |
| bool | wifi_sta_connect_ (const WiFiAP &ap) |
| void | wifi_pre_setup_ () |
| void | wifi_lazy_init_ () |
| WiFiSTAConnectStatus | wifi_sta_connect_status_ () const |
| bool | is_connected_ () const |
| void | update_connected_state_ () |
| bool | wifi_scan_start_ (bool passive) |
| bool | wifi_ap_ip_config_ (const optional< ManualIP > &manual_ip) |
| bool | wifi_start_ap_ (const WiFiAP &ap) |
| bool | wifi_disconnect_ () |
| network::IPAddress | wifi_subnet_mask_ () |
| network::IPAddress | wifi_gateway_ip_ () |
| network::IPAddress | wifi_dns_ip_ (int num) |
| void | start_dpp_listen_ (uint32_t now) |
| void | stop_dpp_listen_ () |
| void | start_cooldown_ () |
| Wait before the next attempt; while a configurator is waited for, the wait is its listen window. | |
| void | wifi_dpp_init_ () |
| bool | wifi_dpp_start_listen_ () |
| void | wifi_dpp_stop_listen_ () |
| bool | is_dpp_active_ () |
| bool | is_provisioning_active_ () |
| A portal, improv or DPP is waiting for credentials, so the retry machine must not disturb the radio. | |
| bool | is_provisioning_closed_ () |
| The provisioning window has closed, so no new provisioning surface may start. | |
| bool | is_captive_portal_active_ () |
| bool | is_ap_portal_active_ () |
| captive_portal or the web_server AP mode is serving a user on the access point | |
| void | start_ap_portal_ () |
| void | end_ap_portal_ () |
| bool | is_improv_ble_active_ () |
| bool | load_fast_connect_settings_ (WiFiAP ¶ms) |
| void | save_fast_connect_settings_ (const bssid_t &bssid, uint8_t channel) |
| void | load_lease_settings_ () |
| void | save_lease_settings_ () |
| void | clear_lease_settings_ () |
| bool | lease_valid_for_apply_ () const |
| void | renew_cached_lease_ () |
| void | check_roaming_ (uint32_t now) |
| void | process_roaming_scan_ () |
| void | clear_roaming_state_ () |
| void | handle_driver_roam_ (const bssid_t &bssid, uint8_t channel) |
| Redo post-connect bookkeeping after a driver-initiated roam (e.g. | |
| bool | roaming_suppressed_ () const |
| Returns true if a component has requested that roaming scans be suppressed (e.g. during audio playback). | |
| void | release_scan_results_ () |
| Free scan results memory unless a component needs them. | |
| void | notify_connect_state_listeners_ () |
| Notify connect state listeners (called after state machine reaches STA_CONNECTED) | |
| void | notify_disconnect_state_listeners_ () |
| Notify connect state listeners of disconnection. | |
| void | notify_ip_state_listeners_ () |
| Notify IP state listeners with current addresses. | |
| void | notify_scan_results_listeners_ () |
| Notify scan results listeners with current scan results. | |
| void | wifi_scan_done_callback_ (void *arg, STATUS status) |
| void | wifi_process_event_ (IDFWiFiEvent *data) |
| void | wifi_scan_result_ (void *env, const cyw43_ev_scan_result_t *result) |
| friend | void::__wrap_cyw43_cb_process_async_event (void *cb_data, const cyw43_async_event_t *ev) |
| void | wifi_event_callback_ (arduino_event_id_t event, arduino_event_info_t info) |
| void | wifi_process_event_ (LTWiFiEvent *event) |
| void | wifi_scan_done_callback_ () |
| void | set_last_connected_ (uint32_t now) |
| bool | is_scan_driver_filtered_ () const |
| constexpr bool | is_scan_driver_filtered_ () const |
Protected Member Functions inherited from esphome::Component | |
| friend | void::setup () |
| friend | void::original_setup () |
| void | set_component_source_ (uint8_t index) |
| Set where this component was loaded from for some debug messages. | |
| virtual void | call_setup () |
| void | call_dump_config_ () |
| void | enable_loop_slow_path_ () |
| void | set_component_state_ (uint8_t state) |
| Helper to set component state (clears state bits and sets new state) | |
| bool | set_status_flag_ (uint8_t flag) |
| Helper to set a status LED flag on both this component and the app. | |
| bool | set_error_flag_ (const LogString *message) |
| Set the error flag and log it; true when it was not set before. | |
| void | set_interval (const char *name, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a const char* name. | |
| void | set_interval (uint32_t id, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a numeric ID (zero heap allocation). | |
| void | set_interval (InternalSchedulerID id, uint32_t interval, std::function< void()> &&f) |
| void | set_interval (uint32_t interval, std::function< void()> &&f) |
| bool | cancel_interval (const char *name) |
| Cancel an interval function. | |
| bool | cancel_interval (uint32_t id) |
| bool | cancel_interval (InternalSchedulerID id) |
| void | set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a const char* name. | |
| void | set_timeout (uint32_t id, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a numeric ID (zero heap allocation). | |
| void | set_timeout (InternalSchedulerID id, uint32_t timeout, std::function< void()> &&f) |
| void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
| bool | cancel_timeout (const char *name) |
| Cancel a timeout function. | |
| bool | cancel_timeout (uint32_t id) |
| bool | cancel_timeout (InternalSchedulerID id) |
| void | defer (const char *name, std::function< void()> &&f) |
| Defer a callback to the next loop() call with a const char* name. | |
| void | defer (std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| void | defer (uint32_t id, std::function< void()> &&f) |
| Defer a callback with a numeric ID (zero heap allocation) | |
| bool | cancel_defer (const char *name) |
| Cancel a defer callback using the specified name, name must not be empty. | |
| bool | cancel_defer (uint32_t id) |
| void | status_clear_warning_slow_path_ () |
| void | status_clear_error_slow_path_ () |
Static Protected Member Functions | |
| static void | wifi_event_callback (System_Event_t *event) |
| static void | s_wifi_scan_done_callback (void *arg, STATUS status) |
| static int | s_wifi_scan_result (void *env, const cyw43_ev_scan_result_t *result) |
Static Protected Attributes | |
| static constexpr uint8_t | FIRST_5GHZ_CHANNEL = 36 |
| static constexpr uint32_t | ROAMING_CHECK_INTERVAL = 5 * 60 * 1000 |
| static constexpr int8_t | ROAMING_MIN_IMPROVEMENT = 10 |
| static constexpr int8_t | ROAMING_GOOD_RSSI = -49 |
| static constexpr uint8_t | ROAMING_MAX_ATTEMPTS = 3 |
| static constexpr uint32_t | ROAMING_SCAN_GRACE_PERIOD = 30 * 1000 |
| static constexpr uint8_t | LT_EVENT_QUEUE_SIZE = 16 |
Additional Inherited Members | |
Data Fields inherited from esphome::Component | |
| uint32_t | length = 5000) |
This component is responsible for managing the ESP WiFi interface.
Definition at line 465 of file wifi_component.h.
| esphome::wifi::WiFiComponent::WiFiComponent | ( | ) |
Construct a WiFiComponent.
Definition at line 1050 of file wifi_component.cpp.
|
inline |
Add a listener for WiFi connection state changes.
Listener receives: SSID, BSSID
Definition at line 652 of file wifi_component.h.
|
inline |
Add a listener for IP state changes.
Listener receives: IP addresses, DNS address 1, DNS address 2
Definition at line 640 of file wifi_component.h.
|
inline |
Definition at line 498 of file wifi_component.h.
|
inline |
Add a listener for WiFi power save mode changes.
Listener receives: WiFiPowerSaveMode
Definition at line 660 of file wifi_component.h.
|
inline |
Add a listener for WiFi scan results.
Definition at line 644 of file wifi_component.h.
| void esphome::wifi::WiFiComponent::add_sta | ( | const WiFiAP & | ap | ) |
Definition at line 1181 of file wifi_component.cpp.
|
protected |
Advance to next target (AP/SSID) within current phase, or increment retry counter Called when staying in the same phase after a failed connection attempt.
Handle target advancement or retry counter increment when staying in the same phase This function is called when a connection attempt fails and determine_next_phase_() indicates we should stay in the current phase.
It decides whether to:
Phase-specific behavior:
Definition at line 2283 of file wifi_component.cpp.
|
inlineprotected |
Definition at line 816 of file wifi_component.h.
|
protected |
Whether there is an IPv4 resolver to offer AP clients: a configured one, or the station's.
|
protected |
Pass the station's resolvers on to AP clients when they changed.
|
protected |
Definition at line 1201 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::check_connecting_finished | ( | uint32_t | now | ) |
Definition at line 1790 of file wifi_component.cpp.
|
protected |
Definition at line 2746 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::check_scanning_finished | ( | ) |
Definition at line 1661 of file wifi_component.cpp.
|
protected |
Clear all BSSID priority penalties after successful connection (stale after disconnect)
Definition at line 2173 of file wifi_component.cpp.
|
protected |
Definition at line 2601 of file wifi_component.cpp.
|
protected |
Clear BSSID priority tracking if all priorities are at minimum (saves memory)
Clear BSSID priority tracking if all priorities are at minimum (saves memory) At minimum priority, all BSSIDs are equally bad, so priority tracking is useless Called after failed connection attempts.
Definition at line 2182 of file wifi_component.cpp.
|
protected |
Definition at line 2657 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::clear_sta | ( | ) |
Definition at line 1182 of file wifi_component.cpp.
|
protected |
Determine next retry phase based on current state and failure conditions.
Determine the next retry phase based on current state and failure conditions This function examines the current retry phase, number of retries, and failure reasons to decide what phase to move to next.
It does not modify any state - it only returns the recommended next phase.
Definition at line 1937 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::disable | ( | ) |
Definition at line 1493 of file wifi_component.cpp.
|
protected |
End the portals and turn the AP off.
Definition at line 1164 of file wifi_component.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 1749 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::enable | ( | ) |
Definition at line 1479 of file wifi_component.cpp.
|
protected |
Definition at line 2457 of file wifi_component.cpp.
|
protected |
Take the bridge down so loop() runs its setup again after ap_timeout.
Definition at line 1157 of file wifi_component.cpp.
|
protected |
Find the index of the first non-hidden network Returns where EXPLICIT_HIDDEN phase would have stopped, or -1 if all networks are hidden.
Definition at line 359 of file wifi_component.cpp.
|
protected |
Find next SSID that wasn't in scan results (might be hidden) Returns index of next potentially hidden SSID, or -1 if none found.
| start_index | Start searching from index after this (-1 to start from beginning) |
Definition at line 566 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::force_roam_check | ( | ) |
Force an immediate post-connect roaming check, bypassing the periodic interval and the per-connection attempt limit.
Does nothing (besides a debug log) if not connected, if a roam scan or connect is already in progress, or if roaming is currently suppressed.
Definition at line 2735 of file wifi_component.cpp.
|
inline |
Definition at line 487 of file wifi_component.h.
|
inline |
Definition at line 628 of file wifi_component.h.
|
inline |
Definition at line 631 of file wifi_component.h.
| network::IPAddress esphome::wifi::WiFiComponent::get_dns_address | ( | int | num | ) |
Definition at line 1063 of file wifi_component.cpp.
|
inline |
The Easy Connect URI to show as a QR code, nullptr until the supplicant has generated it.
Definition at line 503 of file wifi_component.h.
| esp_netif_t * esphome::wifi::WiFiComponent::get_esp_netif_sta | ( | ) |
esp_netif handle of the station interface, used by network for default-route arbitration.
nullptr until wifi_lazy_init_() has run.
| network::IPAddresses esphome::wifi::WiFiComponent::get_ip_addresses | ( | ) |
Definition at line 1052 of file wifi_component.cpp.
|
inline |
Main-loop callers may read this directly.
Callers on any other task must hold a ScanResultsLock for the whole iteration and must call wifi.request_wifi_scan_results_lock() from their code generation.
Definition at line 586 of file wifi_component.h.
|
inlineprotected |
Definition at line 803 of file wifi_component.h.
|
inlineoverridevirtual |
WIFI setup_priority.
Reimplemented from esphome::Component.
Definition at line 563 of file wifi_component.h.
| WiFiAP esphome::wifi::WiFiComponent::get_sta | ( | ) | const |
Definition at line 1244 of file wifi_component.cpp.
|
inline |
Definition at line 597 of file wifi_component.h.
|
inline |
Returns nullptr when no explicit use_address is configured and the address is derived at runtime from the device name (see network::get_use_address_to()).
Definition at line 580 of file wifi_component.h.
| int32_t esphome::wifi::WiFiComponent::get_wifi_channel | ( | ) |
Definition at line 969 of file wifi_component_esp8266.cpp.
|
protected |
Redo post-connect bookkeeping after a driver-initiated roam (e.g.
802.11v BTM)
| bssid | The new AP's BSSID, taken from the connected event |
| channel | The new AP's channel, taken from the connected event |
Definition at line 2666 of file wifi_component.cpp.
|
inline |
Definition at line 568 of file wifi_component.h.
|
inline |
Definition at line 567 of file wifi_component.h.
|
inline |
Definition at line 590 of file wifi_component.h.
| void esphome::wifi::WiFiComponent::init_sta | ( | size_t | count | ) |
Definition at line 1180 of file wifi_component.cpp.
|
inline |
Definition at line 569 of file wifi_component.h.
|
protected |
captive_portal or the web_server AP mode is serving a user on the access point
Definition at line 2432 of file wifi_component.cpp.
|
protected |
Definition at line 2424 of file wifi_component.cpp.
|
inline |
Definition at line 521 of file wifi_component.h.
|
inlineprotected |
Definition at line 846 of file wifi_component.h.
|
inline |
Definition at line 508 of file wifi_component.h.
|
protected |
Definition at line 2412 of file wifi_component.cpp.
|
protected |
Definition at line 2466 of file wifi_component.cpp.
|
protected |
A portal, improv or DPP is waiting for credentials, so the retry machine must not disturb the radio.
Definition at line 2474 of file wifi_component.cpp.
|
protected |
The provisioning window has closed, so no new provisioning surface may start.
Definition at line 2478 of file wifi_component.cpp.
|
inline |
True while a post-connect roam is in progress (scanning off-channel, reassociating, or recovering from a failed roam).
Definition at line 528 of file wifi_component.h.
|
inline |
True while a post-connect roaming scan holds the radio off-channel.
Definition at line 524 of file wifi_component.h.
|
inlineprotected |
Definition at line 1087 of file wifi_component.h.
|
inlineconstexprprotected |
Definition at line 1089 of file wifi_component.h.
|
protected |
|
protected |
Definition at line 2528 of file wifi_component.cpp.
|
protected |
Definition at line 2591 of file wifi_component.cpp.
|
protected |
Log failed connection and decrease BSSID priority to avoid repeated attempts.
Log failed connection attempt and decrease BSSID priority to avoid repeated failures This function identifies which BSSID was attempted (from scan results or config), decreases its priority by 1.0 to discourage future attempts, and logs the change.
The priority degradation system ensures that failed BSSIDs are automatically sorted lower in subsequent scans, naturally cycling through different APs without explicit BSSID tracking within a scan cycle.
Priority sources:
If no BSSID is available (SSID-only connection), priority adjustment is skipped.
IMPORTANT: Priority is only decreased on the LAST attempt for a BSSID in SCAN_CONNECTING phase. This prevents false positives from transient WiFi stack state issues after scanning. Single failures don't necessarily mean the AP is bad - two genuine failures provide higher confidence before degrading priority and skipping the BSSID in future scans.
Definition at line 2224 of file wifi_component.cpp.
|
protected |
Log a discarded scan result at VERBOSE level (skipped during roaming scans to avoid log overflow)
Definition at line 553 of file wifi_component.cpp.
|
overridevirtual |
Reconnect WiFi if required.
Reimplemented from esphome::Component.
Definition at line 824 of file wifi_component.cpp.
|
protected |
Check if network matches any configured network (for scan result filtering) Matches by SSID when configured, or by BSSID for BSSID-only configs.
Definition at line 515 of file wifi_component.cpp.
|
protected |
Check if full scan results are needed (captive portal active, improv, listeners)
Definition at line 484 of file wifi_component.cpp.
|
protected |
Check if we need valid scan results for the current phase but don't have any Returns true if the phase requires scan results but they're missing or don't match.
Definition at line 457 of file wifi_component.cpp.
|
protected |
Notify connect state listeners (called after state machine reaches STA_CONNECTED)
Definition at line 2698 of file wifi_component.cpp.
|
protected |
Notify connect state listeners of disconnection.
Definition at line 2711 of file wifi_component.cpp.
|
protected |
Notify IP state listeners with current addresses.
Definition at line 2720 of file wifi_component.cpp.
|
protected |
Notify scan results listeners with current scan results.
Definition at line 2728 of file wifi_component.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 816 of file wifi_component_libretiny.cpp.
|
protected |
Drop the fallback AP so the networks can be tried; it comes back after ap_timeout.
Definition at line 1143 of file wifi_component.cpp.
|
protected |
Definition at line 1432 of file wifi_component.cpp.
|
protected |
Definition at line 986 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 2774 of file wifi_component.cpp.
| bool esphome::wifi::WiFiComponent::release_high_performance | ( | ) |
Release a high-performance mode request.
Should be called when a component no longer needs maximum WiFi latency. When all requests are released (semaphore count reaches zero), WiFi power saving is restored to the YAML-configured mode.
Note: Only supported on ESP32.
Definition at line 2511 of file wifi_component.cpp.
|
inline |
Release a roaming suppression request.
Must be paired with a prior request_roaming_suppression() call. When all requests are released (count reaches zero), post-connect roaming resumes. A release with no outstanding request is ignored rather than underflowing the counter.
Thread-safe: may be called from any task.
Definition at line 727 of file wifi_component.h.
|
protected |
Free scan results memory unless a component needs them.
Definition at line 2684 of file wifi_component.cpp.
|
protected |
| bool esphome::wifi::WiFiComponent::request_high_performance | ( | ) |
Request high-performance mode (no power saving) for improved WiFi latency.
Components that need maximum WiFi performance (e.g., audio streaming, large data transfers) can call this method to temporarily disable WiFi power saving. Multiple components can request high performance simultaneously using a counting semaphore.
Power saving will be restored to the YAML-configured mode when all components have called release_high_performance().
Note: Only supported on ESP32.
Definition at line 2488 of file wifi_component.cpp.
|
inline |
Request that post-connect roaming scans be suppressed.
Components that are disrupted by the radio briefly going off-channel during a scan (e.g., audio playback) can call this to pause periodic roaming scans while active. Multiple components can request suppression simultaneously; roaming resumes once every requester has called release_roaming_suppression().
A roaming scan already in progress is allowed to finish; this only prevents new roaming scans from starting. The roaming interval timer is not reset, so roaming resumes on the next loop once suppression is released (and the interval elapsed).
Note: Only supported on ESP32.
Thread-safe: may be called from any task.
Definition at line 710 of file wifi_component.h.
|
inlineprotected |
Definition at line 810 of file wifi_component.h.
| void esphome::wifi::WiFiComponent::restart_adapter | ( | ) |
Definition at line 813 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::retry_connect | ( | ) |
Definition at line 2340 of file wifi_component.cpp.
|
inlineprotected |
Returns true if a component has requested that roaming scans be suppressed (e.g. during audio playback).
Definition at line 914 of file wifi_component.h.
|
staticprotected |
Definition at line 751 of file wifi_component_esp8266.cpp.
|
staticprotected |
Definition at line 174 of file wifi_component_pico_w.cpp.
|
protected |
Definition at line 2567 of file wifi_component.cpp.
|
protected |
| void esphome::wifi::WiFiComponent::save_wifi_sta | ( | const char * | ssid, |
| const char * | password ) |
Definition at line 1251 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::save_wifi_sta | ( | const std::string & | ssid, |
| const std::string & | password ) |
Definition at line 1248 of file wifi_component.cpp.
Definition at line 550 of file wifi_component.h.
| void esphome::wifi::WiFiComponent::set_ap | ( | const WiFiAP & | ap | ) |
Setup an Access Point that should be created if no connection to a station can be made.
This can also be used without set_sta(). Then the AP will always be active.
If both STA and AP are defined, then both will be enabled at startup, but if a connection to a station can be made, the AP will be turned off again.
Definition at line 1174 of file wifi_component.cpp.
|
inline |
Definition at line 488 of file wifi_component.h.
|
inline |
Definition at line 540 of file wifi_component.h.
|
inline |
Definition at line 572 of file wifi_component.h.
|
inline |
Definition at line 495 of file wifi_component.h.
|
inline |
Definition at line 494 of file wifi_component.h.
|
inline |
Definition at line 493 of file wifi_component.h.
|
inline |
Definition at line 496 of file wifi_component.h.
|
inline |
Definition at line 614 of file wifi_component.h.
|
inline |
Definition at line 618 of file wifi_component.h.
|
inlineprotected |
Definition at line 1022 of file wifi_component.h.
|
inline |
Definition at line 616 of file wifi_component.h.
|
inline |
Definition at line 537 of file wifi_component.h.
|
inline |
Definition at line 538 of file wifi_component.h.
|
inline |
Definition at line 546 of file wifi_component.h.
|
inline |
Definition at line 543 of file wifi_component.h.
|
inline |
Definition at line 619 of file wifi_component.h.
| void esphome::wifi::WiFiComponent::set_power_save_mode | ( | WiFiPowerSaveMode | power_save | ) |
Definition at line 2391 of file wifi_component.cpp.
|
inline |
Definition at line 519 of file wifi_component.h.
|
inline |
Definition at line 573 of file wifi_component.h.
| void esphome::wifi::WiFiComponent::set_sta | ( | const WiFiAP & | ap | ) |
Definition at line 1188 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::set_sta_priority | ( | bssid_t | bssid, |
| int8_t | priority ) |
|
inline |
Definition at line 581 of file wifi_component.h.
|
overridevirtual |
Setup WiFi interface.
Reimplemented from esphome::Component.
Definition at line 645 of file wifi_component.cpp.
|
protected |
Definition at line 1070 of file wifi_component.cpp.
|
protected |
Check if an SSID was seen in the most recent scan results Used to skip hidden mode for SSIDs we know are visible.
Definition at line 466 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::start | ( | ) |
Definition at line 699 of file wifi_component.cpp.
|
protected |
Definition at line 2442 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::start_connecting | ( | const WiFiAP & | ap | ) |
Definition at line 1276 of file wifi_component.cpp.
|
inline |
Definition at line 513 of file wifi_component.h.
|
protected |
Wait before the next attempt; while a configurator is waited for, the wait is its listen window.
Definition at line 1379 of file wifi_component.cpp.
|
protected |
Definition at line 2399 of file wifi_component.cpp.
|
protected |
Start initial connection - either scan or connect directly to hidden networks.
Definition at line 612 of file wifi_component.cpp.
| void esphome::wifi::WiFiComponent::start_scanning | ( | ) |
Definition at line 1518 of file wifi_component.cpp.
|
protected |
Definition at line 2404 of file wifi_component.cpp.
|
protected |
Transition to a new retry phase with logging Returns true if a scan was started (caller should wait), false otherwise.
Transition from current retry phase to a new phase with logging and phase-specific setup This function handles the actual state change, including:
| new_phase | The phase we're transitioning TO |
Definition at line 2076 of file wifi_component.cpp.
|
inlineprotected |
Definition at line 850 of file wifi_component.h.
|
protected |
|
protected |
Check if we went through EXPLICIT_HIDDEN phase (first network is marked hidden) Used in RETRY_HIDDEN to determine whether to skip explicitly hidden networks.
Definition at line 353 of file wifi_component.cpp.
|
protected |
Definition at line 809 of file wifi_component_esp8266.cpp.
|
protected |
|
protected |
Definition at line 245 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 632 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 662 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 95 of file wifi_component_esp8266.cpp.
| bssid_t esphome::wifi::WiFiComponent::wifi_bssid | ( | ) |
Definition at line 942 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 735 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 980 of file wifi_component_esp8266.cpp.
|
protected |
|
protected |
|
protected |
|
staticprotected |
Definition at line 501 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 390 of file wifi_component_libretiny.cpp.
|
protected |
Definition at line 975 of file wifi_component_esp8266.cpp.
|
protected |
|
protected |
Definition at line 981 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 54 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 670 of file wifi_component_esp8266.cpp.
|
protected |
|
protected |
Definition at line 472 of file wifi_component_libretiny.cpp.
| int8_t esphome::wifi::WiFiComponent::wifi_rssi | ( | ) |
Definition at line 962 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 714 of file wifi_component_libretiny.cpp.
|
protected |
Definition at line 755 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 179 of file wifi_component_pico_w.cpp.
|
protected |
Definition at line 694 of file wifi_component_esp8266.cpp.
| network::IPAddress esphome::wifi::WiFiComponent::wifi_soft_ap_ip | ( | ) |
Definition at line 935 of file wifi_component_esp8266.cpp.
| const char * esphome::wifi::WiFiComponent::wifi_ssid_to | ( | std::span< char, SSID_BUFFER_SIZE > | buffer | ) |
Write SSID to buffer without heap allocation.
Returns pointer to buffer, or empty string if not connected.
Definition at line 950 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 267 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 677 of file wifi_component_esp8266.cpp.
| network::IPAddresses esphome::wifi::WiFiComponent::wifi_sta_ip_addresses | ( | ) |
Definition at line 225 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 154 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 637 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 882 of file wifi_component_esp8266.cpp.
|
protected |
Definition at line 970 of file wifi_component_esp8266.cpp.
|
protected |
Hand the AP DHCP server its resolvers; false when one could not be set.
|
protected |
Definition at line 1031 of file wifi_component.h.
|
protected |
Definition at line 1043 of file wifi_component.h.
|
protected |
Definition at line 1034 of file wifi_component.h.
|
protected |
Definition at line 1147 of file wifi_component.h.
|
protected |
Definition at line 1137 of file wifi_component.h.
|
protected |
Definition at line 1150 of file wifi_component.h.
|
protected |
Definition at line 1138 of file wifi_component.h.
|
protected |
Definition at line 1040 of file wifi_component.h.
|
protected |
Definition at line 997 of file wifi_component.h.
|
protected |
Definition at line 1061 of file wifi_component.h.
|
protected |
Definition at line 1156 of file wifi_component.h.
|
protected |
Definition at line 995 of file wifi_component.h.
|
protected |
Definition at line 1109 of file wifi_component.h.
| bool esphome::wifi::WiFiComponent::connect_state |
Definition at line 1119 of file wifi_component.h.
|
protected |
Definition at line 984 of file wifi_component.h.
|
protected |
Definition at line 1001 of file wifi_component.h.
|
protected |
Definition at line 1171 of file wifi_component.h.
| bool esphome::wifi::WiFiComponent::disconnect |
Definition at line 1122 of file wifi_component.h.
|
protected |
Definition at line 1004 of file wifi_component.h.
|
protected |
Definition at line 1048 of file wifi_component.h.
|
protected |
Definition at line 1047 of file wifi_component.h.
|
protected |
Definition at line 1046 of file wifi_component.h.
|
protected |
Definition at line 1054 of file wifi_component.h.
|
protected |
Definition at line 1140 of file wifi_component.h.
|
protected |
Definition at line 1053 of file wifi_component.h.
|
protected |
Definition at line 1049 of file wifi_component.h.
|
protected |
Definition at line 1051 of file wifi_component.h.
|
protected |
Definition at line 1159 of file wifi_component.h.
|
protected |
Definition at line 1084 of file wifi_component.h.
|
protected |
Definition at line 1181 of file wifi_component.h.
|
protected |
Definition at line 1191 of file wifi_component.h.
|
protected |
Definition at line 1193 of file wifi_component.h.
|
protected |
Definition at line 991 of file wifi_component.h.
|
staticconstexprprotected |
Definition at line 1010 of file wifi_component.h.
| bool esphome::wifi::WiFiComponent::got_ip |
Definition at line 1126 of file wifi_component.h.
|
protected |
Definition at line 1166 of file wifi_component.h.
|
protected |
Definition at line 1134 of file wifi_component.h.
|
protected |
Definition at line 1132 of file wifi_component.h.
|
protected |
Definition at line 1168 of file wifi_component.h.
|
protected |
Definition at line 1154 of file wifi_component.h.
|
protected |
Definition at line 1007 of file wifi_component.h.
|
protected |
Definition at line 978 of file wifi_component.h.
|
protected |
Definition at line 1174 of file wifi_component.h.
|
protected |
Definition at line 1167 of file wifi_component.h.
|
protected |
Definition at line 1032 of file wifi_component.h.
|
protected |
Definition at line 998 of file wifi_component.h.
|
protected |
Definition at line 994 of file wifi_component.h.
|
staticconstexprprotected |
Definition at line 1188 of file wifi_component.h.
|
protected |
Definition at line 1100 of file wifi_component.h.
|
protected |
Definition at line 1103 of file wifi_component.h.
|
protected |
Definition at line 1066 of file wifi_component.h.
|
protected |
Definition at line 1082 of file wifi_component.h.
|
protected |
Definition at line 1068 of file wifi_component.h.
|
protected |
Definition at line 1030 of file wifi_component.h.
|
protected |
Definition at line 1153 of file wifi_component.h.
| struct { ... } esphome::wifi::WiFiComponent::pending_ |
|
protected |
Definition at line 1064 of file wifi_component.h.
|
protected |
Definition at line 1172 of file wifi_component.h.
|
protected |
Definition at line 1059 of file wifi_component.h.
|
protected |
Definition at line 987 of file wifi_component.h.
|
protected |
Definition at line 989 of file wifi_component.h.
|
protected |
Definition at line 1036 of file wifi_component.h.
|
protected |
Definition at line 1105 of file wifi_component.h.
|
protected |
Definition at line 1067 of file wifi_component.h.
|
protected |
Definition at line 1073 of file wifi_component.h.
|
staticconstexprprotected |
Definition at line 1013 of file wifi_component.h.
|
staticconstexprprotected |
Definition at line 1015 of file wifi_component.h.
|
protected |
Definition at line 1037 of file wifi_component.h.
|
staticconstexprprotected |
Definition at line 1016 of file wifi_component.h.
|
staticconstexprprotected |
Definition at line 1014 of file wifi_component.h.
|
protected |
Definition at line 1038 of file wifi_component.h.
|
staticconstexprprotected |
Definition at line 1020 of file wifi_component.h.
|
protected |
Definition at line 1106 of file wifi_component.h.
|
protected |
Definition at line 1079 of file wifi_component.h.
|
protected |
Definition at line 1107 of file wifi_component.h.
|
protected |
Definition at line 1157 of file wifi_component.h.
| bool esphome::wifi::WiFiComponent::scan_complete |
Definition at line 1129 of file wifi_component.h.
|
protected |
Definition at line 1136 of file wifi_component.h.
|
protected |
Definition at line 1086 of file wifi_component.h.
|
protected |
Definition at line 973 of file wifi_component.h.
|
protected |
Definition at line 975 of file wifi_component.h.
|
protected |
Definition at line 981 of file wifi_component.h.
|
protected |
Definition at line 1072 of file wifi_component.h.
|
protected |
Definition at line 1170 of file wifi_component.h.
|
protected |
Definition at line 970 of file wifi_component.h.
|
protected |
Definition at line 971 of file wifi_component.h.
|
protected |
Definition at line 1095 of file wifi_component.h.
|
protected |
Definition at line 1058 of file wifi_component.h.
|
protected |
Definition at line 1164 of file wifi_component.h.