ESPHome 2025.6.3
Loading...
Searching...
No Matches
esphome::esp32_ble_tracker::ESP32BLETracker Class Reference

#include <esp32_ble_tracker.h>

Inheritance diagram for esphome::esp32_ble_tracker::ESP32BLETracker:
esphome::Component esphome::esp32_ble::GAPEventHandler esphome::esp32_ble::GAPScanEventHandler esphome::esp32_ble::GATTcEventHandler esphome::esp32_ble::BLEStatusEventHandler esphome::Parented< ESP32BLE >

Public Member Functions

void set_scan_duration (uint32_t scan_duration)
 
void set_scan_interval (uint32_t scan_interval)
 
void set_scan_window (uint32_t scan_window)
 
void set_scan_active (bool scan_active)
 
bool get_scan_active () const
 
void set_scan_continuous (bool scan_continuous)
 
void setup () override
 Setup the FreeRTOS task and the Bluetooth stack.
 
void dump_config () override
 
float get_setup_priority () const override
 
void loop () override
 
void register_listener (ESPBTDeviceListener *listener)
 
void register_client (ESPBTClient *client)
 
void recalculate_advertisement_parser_types ()
 
void print_bt_device_info (const ESPBTDevice &device)
 
void start_scan ()
 
void stop_scan ()
 
void gattc_event_handler (esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param) override
 
void gap_event_handler (esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) override
 
void gap_scan_event_handler (const BLEScanResult &scan_result) override
 
void ble_before_disabled_event_handler () override
 
void add_scanner_state_callback (std::function< void(ScannerState)> &&callback)
 
ScannerState get_scanner_state () const
 
- Public Member Functions inherited from esphome::Component
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop().
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
virtual bool teardown ()
 Called during teardown to allow component to gracefully finish operations.
 
virtual void on_powerdown ()
 Called after teardown is complete to power down hardware.
 
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.
 
virtual void mark_failed ()
 Mark this component as failed.
 
void mark_failed (const char *message)
 
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 (const char *message="unspecified")
 
void status_set_error (const char *message="unspecified")
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages.
 
const char * get_component_source () const
 Get the integration where this component was declared as a string.
 
bool should_warn_of_blocking (uint32_t blocking_time)
 
- Public Member Functions inherited from esphome::esp32_ble::GAPEventHandler
- Public Member Functions inherited from esphome::esp32_ble::GAPScanEventHandler
- Public Member Functions inherited from esphome::esp32_ble::GATTcEventHandler
- Public Member Functions inherited from esphome::esp32_ble::BLEStatusEventHandler
- Public Member Functions inherited from esphome::Parented< ESP32BLE >
 Parented ()
 
 Parented (ESP32BLE *parent)
 
ESP32BLE * get_parent () const
 Get the parent of this object.
 
void set_parent (ESP32BLE *parent)
 Set the parent of this object.
 

Protected Member Functions

void stop_scan_ ()
 
void start_scan_ (bool first)
 Start a single scan by setting up the parameters and doing some esp-idf calls.
 
void end_of_scan_ ()
 Called when a scan ends.
 
void gap_scan_result_ (const esp_ble_gap_cb_param_t::ble_scan_result_evt_param &param)
 Called when a ESP_GAP_BLE_SCAN_RESULT_EVT event is received.
 
void gap_scan_set_param_complete_ (const esp_ble_gap_cb_param_t::ble_scan_param_cmpl_evt_param &param)
 Called when a ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT event is received.
 
void gap_scan_start_complete_ (const esp_ble_gap_cb_param_t::ble_scan_start_cmpl_evt_param &param)
 Called when a ESP_GAP_BLE_SCAN_START_COMPLETE_EVT event is received.
 
void gap_scan_stop_complete_ (const esp_ble_gap_cb_param_t::ble_scan_stop_cmpl_evt_param &param)
 Called when a ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT event is received.
 
void set_scanner_state_ (ScannerState state)
 Called to set the scanner state. Will also call callbacks to let listeners know when state is changed.
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_setup ()
 
virtual void call_dump_config ()
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name.
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function.
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name.
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function.
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name.
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function.
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty.
 

Protected Attributes

int app_id_ {0}
 
std::vector< uint64_t > already_discovered_
 Vector of addresses that have already been printed in print_bt_device_info.
 
std::vector< ESPBTDeviceListener * > listeners_
 
std::vector< ESPBTClient * > clients_
 Client parameters.
 
esp_ble_scan_params_t scan_params_
 A structure holding the ESP BLE scan parameters.
 
uint32_t scan_duration_
 The interval in seconds to perform scans.
 
uint32_t scan_interval_
 
uint32_t scan_window_
 
uint8_t scan_start_fail_count_ {0}
 
bool scan_continuous_
 
bool scan_active_
 
ScannerState scanner_state_ {ScannerState::IDLE}
 
CallbackManager< void(ScannerState)> scanner_state_callbacks_
 
bool ble_was_disabled_ {true}
 
bool raw_advertisements_ {false}
 
bool parse_advertisements_ {false}
 
BLEScanResult * scan_ring_buffer_
 
std::atomic< size_t > ring_write_index_ {0}
 
std::atomic< size_t > ring_read_index_ {0}
 
std::atomic< size_t > scan_results_dropped_ {0}
 
esp_bt_status_t scan_start_failed_ {ESP_BT_STATUS_SUCCESS}
 
esp_bt_status_t scan_set_param_failed_ {ESP_BT_STATUS_SUCCESS}
 
int connecting_ {0}
 
int discovered_ {0}
 
int searching_ {0}
 
int disconnecting_ {0}
 
bool coex_prefer_ble_ {false}
 
- Protected Attributes inherited from esphome::Component
uint8_t component_state_ {0x00}
 State of this component - each bit has a purpose: Bits 0-1: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED) Bit 2: STATUS_LED_WARNING Bit 3: STATUS_LED_ERROR Bits 4-7: Unused - reserved for future expansion (50% of the bits are free)
 
float setup_priority_override_ {NAN}
 
const char * component_source_ {nullptr}
 
uint16_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS}
 Warn if blocked for this many ms (max 65.5s)
 
std::string error_message_ {}
 
- Protected Attributes inherited from esphome::Parented< ESP32BLE >
ESP32BLE * parent_
 

Detailed Description

Definition at line 211 of file esp32_ble_tracker.h.

Member Function Documentation

◆ add_scanner_state_callback()

void esphome::esp32_ble_tracker::ESP32BLETracker::add_scanner_state_callback ( std::function< void(ScannerState)> && callback)
inline

Definition at line 247 of file esp32_ble_tracker.h.

◆ ble_before_disabled_event_handler()

void esphome::esp32_ble_tracker::ESP32BLETracker::ble_before_disabled_event_handler ( )
overridevirtual

Implements esphome::esp32_ble::BLEStatusEventHandler.

Definition at line 263 of file esp32_ble_tracker.cpp.

◆ dump_config()

void esphome::esp32_ble_tracker::ESP32BLETracker::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 762 of file esp32_ble_tracker.cpp.

◆ end_of_scan_()

void esphome::esp32_ble_tracker::ESP32BLETracker::end_of_scan_ ( )
protected

Called when a scan ends.

Definition at line 337 of file esp32_ble_tracker.cpp.

◆ gap_event_handler()

void esphome::esp32_ble_tracker::ESP32BLETracker::gap_event_handler ( esp_gap_ble_cb_event_t event,
esp_ble_gap_cb_param_t * param )
overridevirtual

Implements esphome::esp32_ble::GAPEventHandler.

Definition at line 383 of file esp32_ble_tracker.cpp.

◆ gap_scan_event_handler()

void esphome::esp32_ble_tracker::ESP32BLETracker::gap_scan_event_handler ( const BLEScanResult & scan_result)
overridevirtual

Implements esphome::esp32_ble::GAPScanEventHandler.

Definition at line 403 of file esp32_ble_tracker.cpp.

◆ gap_scan_result_()

void esphome::esp32_ble_tracker::ESP32BLETracker::gap_scan_result_ ( const esp_ble_gap_cb_param_t::ble_scan_result_evt_param & param)
protected

Called when a ESP_GAP_BLE_SCAN_RESULT_EVT event is received.

◆ gap_scan_set_param_complete_()

void esphome::esp32_ble_tracker::ESP32BLETracker::gap_scan_set_param_complete_ ( const esp_ble_gap_cb_param_t::ble_scan_param_cmpl_evt_param & param)
protected

Called when a ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT event is received.

Definition at line 448 of file esp32_ble_tracker.cpp.

◆ gap_scan_start_complete_()

void esphome::esp32_ble_tracker::ESP32BLETracker::gap_scan_start_complete_ ( const esp_ble_gap_cb_param_t::ble_scan_start_cmpl_evt_param & param)
protected

Called when a ESP_GAP_BLE_SCAN_START_COMPLETE_EVT event is received.

Definition at line 457 of file esp32_ble_tracker.cpp.

◆ gap_scan_stop_complete_()

void esphome::esp32_ble_tracker::ESP32BLETracker::gap_scan_stop_complete_ ( const esp_ble_gap_cb_param_t::ble_scan_stop_cmpl_evt_param & param)
protected

Called when a ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT event is received.

Definition at line 484 of file esp32_ble_tracker.cpp.

◆ gattc_event_handler()

void esphome::esp32_ble_tracker::ESP32BLETracker::gattc_event_handler ( esp_gattc_cb_event_t event,
esp_gatt_if_t gattc_if,
esp_ble_gattc_cb_param_t * param )
overridevirtual

Implements esphome::esp32_ble::GATTcEventHandler.

Definition at line 502 of file esp32_ble_tracker.cpp.

◆ get_scan_active()

bool esphome::esp32_ble_tracker::ESP32BLETracker::get_scan_active ( ) const
inline

Definition at line 222 of file esp32_ble_tracker.h.

◆ get_scanner_state()

ScannerState esphome::esp32_ble_tracker::ESP32BLETracker::get_scanner_state ( ) const
inline

Definition at line 250 of file esp32_ble_tracker.h.

◆ get_setup_priority()

float esphome::esp32_ble_tracker::ESP32BLETracker::get_setup_priority ( ) const
overridevirtual

Reimplemented from esphome::Component.

Definition at line 45 of file esp32_ble_tracker.cpp.

◆ loop()

void esphome::esp32_ble_tracker::ESP32BLETracker::loop ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 76 of file esp32_ble_tracker.cpp.

◆ print_bt_device_info()

void esphome::esp32_ble_tracker::ESP32BLETracker::print_bt_device_info ( const ESPBTDevice & device)

Definition at line 799 of file esp32_ble_tracker.cpp.

◆ recalculate_advertisement_parser_types()

void esphome::esp32_ble_tracker::ESP32BLETracker::recalculate_advertisement_parser_types ( )

Definition at line 364 of file esp32_ble_tracker.cpp.

◆ register_client()

void esphome::esp32_ble_tracker::ESP32BLETracker::register_client ( ESPBTClient * client)

Definition at line 352 of file esp32_ble_tracker.cpp.

◆ register_listener()

void esphome::esp32_ble_tracker::ESP32BLETracker::register_listener ( ESPBTDeviceListener * listener)

Definition at line 358 of file esp32_ble_tracker.cpp.

◆ set_scan_active()

void esphome::esp32_ble_tracker::ESP32BLETracker::set_scan_active ( bool scan_active)
inline

Definition at line 221 of file esp32_ble_tracker.h.

◆ set_scan_continuous()

void esphome::esp32_ble_tracker::ESP32BLETracker::set_scan_continuous ( bool scan_continuous)
inline

Definition at line 223 of file esp32_ble_tracker.h.

◆ set_scan_duration()

void esphome::esp32_ble_tracker::ESP32BLETracker::set_scan_duration ( uint32_t scan_duration)
inline

Definition at line 218 of file esp32_ble_tracker.h.

◆ set_scan_interval()

void esphome::esp32_ble_tracker::ESP32BLETracker::set_scan_interval ( uint32_t scan_interval)
inline

Definition at line 219 of file esp32_ble_tracker.h.

◆ set_scan_window()

void esphome::esp32_ble_tracker::ESP32BLETracker::set_scan_window ( uint32_t scan_window)
inline

Definition at line 220 of file esp32_ble_tracker.h.

◆ set_scanner_state_()

void esphome::esp32_ble_tracker::ESP32BLETracker::set_scanner_state_ ( ScannerState state)
protected

Called to set the scanner state. Will also call callbacks to let listeners know when state is changed.

Definition at line 509 of file esp32_ble_tracker.cpp.

◆ setup()

void esphome::esp32_ble_tracker::ESP32BLETracker::setup ( )
overridevirtual

Setup the FreeRTOS task and the Bluetooth stack.

Reimplemented from esphome::Component.

Definition at line 47 of file esp32_ble_tracker.cpp.

◆ start_scan()

void esphome::esp32_ble_tracker::ESP32BLETracker::start_scan ( )

Definition at line 255 of file esp32_ble_tracker.cpp.

◆ start_scan_()

void esphome::esp32_ble_tracker::ESP32BLETracker::start_scan_ ( bool first)
protected

Start a single scan by setting up the parameters and doing some esp-idf calls.

Definition at line 287 of file esp32_ble_tracker.cpp.

◆ stop_scan()

void esphome::esp32_ble_tracker::ESP32BLETracker::stop_scan ( )

Definition at line 257 of file esp32_ble_tracker.cpp.

◆ stop_scan_()

void esphome::esp32_ble_tracker::ESP32BLETracker::stop_scan_ ( )
protected

Definition at line 265 of file esp32_ble_tracker.cpp.

Field Documentation

◆ already_discovered_

std::vector<uint64_t> esphome::esp32_ble_tracker::ESP32BLETracker::already_discovered_
protected

Vector of addresses that have already been printed in print_bt_device_info.

Definition at line 272 of file esp32_ble_tracker.h.

◆ app_id_

int esphome::esp32_ble_tracker::ESP32BLETracker::app_id_ {0}
protected

Definition at line 269 of file esp32_ble_tracker.h.

◆ ble_was_disabled_

bool esphome::esp32_ble_tracker::ESP32BLETracker::ble_was_disabled_ {true}
protected

Definition at line 287 of file esp32_ble_tracker.h.

◆ clients_

std::vector<ESPBTClient *> esphome::esp32_ble_tracker::ESP32BLETracker::clients_
protected

Client parameters.

Definition at line 275 of file esp32_ble_tracker.h.

◆ coex_prefer_ble_

bool esphome::esp32_ble_tracker::ESP32BLETracker::coex_prefer_ble_ {false}
protected

Definition at line 307 of file esp32_ble_tracker.h.

◆ connecting_

int esphome::esp32_ble_tracker::ESP32BLETracker::connecting_ {0}
protected

Definition at line 302 of file esp32_ble_tracker.h.

◆ disconnecting_

int esphome::esp32_ble_tracker::ESP32BLETracker::disconnecting_ {0}
protected

Definition at line 305 of file esp32_ble_tracker.h.

◆ discovered_

int esphome::esp32_ble_tracker::ESP32BLETracker::discovered_ {0}
protected

Definition at line 303 of file esp32_ble_tracker.h.

◆ listeners_

std::vector<ESPBTDeviceListener *> esphome::esp32_ble_tracker::ESP32BLETracker::listeners_
protected

Definition at line 273 of file esp32_ble_tracker.h.

◆ parse_advertisements_

bool esphome::esp32_ble_tracker::ESP32BLETracker::parse_advertisements_ {false}
protected

Definition at line 289 of file esp32_ble_tracker.h.

◆ raw_advertisements_

bool esphome::esp32_ble_tracker::ESP32BLETracker::raw_advertisements_ {false}
protected

Definition at line 288 of file esp32_ble_tracker.h.

◆ ring_read_index_

std::atomic<size_t> esphome::esp32_ble_tracker::ESP32BLETracker::ring_read_index_ {0}
protected

Definition at line 297 of file esp32_ble_tracker.h.

◆ ring_write_index_

std::atomic<size_t> esphome::esp32_ble_tracker::ESP32BLETracker::ring_write_index_ {0}
protected

Definition at line 296 of file esp32_ble_tracker.h.

◆ scan_active_

bool esphome::esp32_ble_tracker::ESP32BLETracker::scan_active_
protected

Definition at line 284 of file esp32_ble_tracker.h.

◆ scan_continuous_

bool esphome::esp32_ble_tracker::ESP32BLETracker::scan_continuous_
protected

Definition at line 283 of file esp32_ble_tracker.h.

◆ scan_duration_

uint32_t esphome::esp32_ble_tracker::ESP32BLETracker::scan_duration_
protected

The interval in seconds to perform scans.

Definition at line 279 of file esp32_ble_tracker.h.

◆ scan_interval_

uint32_t esphome::esp32_ble_tracker::ESP32BLETracker::scan_interval_
protected

Definition at line 280 of file esp32_ble_tracker.h.

◆ scan_params_

esp_ble_scan_params_t esphome::esp32_ble_tracker::ESP32BLETracker::scan_params_
protected

A structure holding the ESP BLE scan parameters.

Definition at line 277 of file esp32_ble_tracker.h.

◆ scan_results_dropped_

std::atomic<size_t> esphome::esp32_ble_tracker::ESP32BLETracker::scan_results_dropped_ {0}
protected

Definition at line 298 of file esp32_ble_tracker.h.

◆ scan_ring_buffer_

BLEScanResult* esphome::esp32_ble_tracker::ESP32BLETracker::scan_ring_buffer_
protected

Definition at line 295 of file esp32_ble_tracker.h.

◆ scan_set_param_failed_

esp_bt_status_t esphome::esp32_ble_tracker::ESP32BLETracker::scan_set_param_failed_ {ESP_BT_STATUS_SUCCESS}
protected

Definition at line 301 of file esp32_ble_tracker.h.

◆ scan_start_fail_count_

uint8_t esphome::esp32_ble_tracker::ESP32BLETracker::scan_start_fail_count_ {0}
protected

Definition at line 282 of file esp32_ble_tracker.h.

◆ scan_start_failed_

esp_bt_status_t esphome::esp32_ble_tracker::ESP32BLETracker::scan_start_failed_ {ESP_BT_STATUS_SUCCESS}
protected

Definition at line 300 of file esp32_ble_tracker.h.

◆ scan_window_

uint32_t esphome::esp32_ble_tracker::ESP32BLETracker::scan_window_
protected

Definition at line 281 of file esp32_ble_tracker.h.

◆ scanner_state_

ScannerState esphome::esp32_ble_tracker::ESP32BLETracker::scanner_state_ {ScannerState::IDLE}
protected

Definition at line 285 of file esp32_ble_tracker.h.

◆ scanner_state_callbacks_

CallbackManager<void(ScannerState)> esphome::esp32_ble_tracker::ESP32BLETracker::scanner_state_callbacks_
protected

Definition at line 286 of file esp32_ble_tracker.h.

◆ searching_

int esphome::esp32_ble_tracker::ESP32BLETracker::searching_ {0}
protected

Definition at line 304 of file esp32_ble_tracker.h.


The documentation for this class was generated from the following files: