ESPHome 2026.10.0-dev
Loading...
Searching...
No Matches
esphome::bluetooth_proxy::BluetoothProxy Class Referencefinal

#include <bluetooth_proxy.h>

Inheritance diagram for esphome::bluetooth_proxy::BluetoothProxy:
esphome::Component

Public Member Functions

 BluetoothProxy ()
 
void set_ble_hub (ble_device_base::BLEHub *hub)
 
void dump_config () override
 
void setup () override
 
void loop () override
 
void register_connection (BluetoothConnection *connection)
 
float get_setup_priority () const override
 
void bluetooth_device_request (const api::BluetoothDeviceRequest &msg)
 
void bluetooth_gatt_read (const api::BluetoothGATTReadRequest &msg)
 
void bluetooth_gatt_write (const api::BluetoothGATTWriteRequest &msg)
 
void bluetooth_gatt_read_descriptor (const api::BluetoothGATTReadDescriptorRequest &msg)
 
void bluetooth_gatt_write_descriptor (const api::BluetoothGATTWriteDescriptorRequest &msg)
 
void bluetooth_gatt_send_services (const api::BluetoothGATTGetServicesRequest &msg)
 
void bluetooth_gatt_notify (const api::BluetoothGATTNotifyRequest &msg)
 
void bluetooth_set_connection_params (const api::BluetoothSetConnectionParamsRequest &msg)
 
void subscribe_api_connection (api::APIConnection *api_connection, uint32_t flags)
 
void unsubscribe_api_connection (api::APIConnection *api_connection)
 
api::APIConnectionget_api_connection ()
 
bool client_supports_efficient_uuids () const
 Whether the subscribed API client understands 16/32-bit UUID fields.
 
bool send_device_connection (uint64_t address, bool connected, uint16_t mtu=0, conn_err_t error=CONN_OK)
 False only when a subscriber refused the frame; true = delivered or nobody subscribed.
 
void send_connections_free ()
 
void send_connections_free (api::APIConnection *api_connection)
 
bool send_gatt_services_done (uint64_t address)
 Same convention as send_device_connection: false only on a refused frame.
 
bool send_gatt_error (uint64_t address, uint16_t handle, conn_err_t error)
 False only when the API refused the frame, so the reply is still owed.
 
void send_device_pairing (uint64_t address, bool paired, conn_err_t error=CONN_OK)
 
void send_device_unpairing (uint64_t address, bool success, conn_err_t error)
 No default error: the drain rebuilds success as (error == CONN_OK), so a caller that omitted it would have a reported failure resent as a success.
 
void send_device_clear_cache (uint64_t address, bool success, conn_err_t error=CONN_OK)
 
void bluetooth_scanner_set_mode (bool active)
 
void set_active (bool active)
 
bool has_active ()
 
uint32_t get_legacy_version () const
 
uint32_t get_feature_flags () const
 
void get_bluetooth_mac_address_pretty (std::span< char, MAC_ADDRESS_PRETTY_BUFFER_SIZE > output)
 
- 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.
 
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.
 
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)
 
void status_set_error ()
 
void status_set_error (const LogString *message)
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const char *name, uint32_t length=5000)
 Set warning status flag and automatically clear it after a timeout.
 
void status_momentary_error (const char *name, uint32_t length=5000)
 Set error status flag and automatically clear it after a timeout.
 
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

bool send_bluetooth_scanner_state_ (ble_device_base::ScannerState state)
 
void send_scanner_state_ (ble_device_base::ScannerState state)
 
void send_polled_scanner_state_ ()
 
void on_raw_advertisement_ (const ble_device_base::RawAdvertisement &raw)
 
void flush_pending_advertisements_ ()
 Caller must ensure api_connection_ is non-null and API server is connected.
 
void log_advertisement_flush_ (bool sent)
 
BluetoothConnectionget_connection_ (uint64_t address, bool reserve)
 
void log_connection_request_ignored_ (BluetoothConnection *connection, ClientState state)
 
void log_connection_info_ (BluetoothConnection *connection, const char *message)
 
void log_not_connected_gatt_ (const char *action, const char *type)
 
void handle_gatt_not_connected_ (uint64_t address, uint16_t handle, const char *action, const char *type)
 
void update_address_slot_ (uint64_t old_address, uint64_t new_address)
 Keep the pre-allocated connections-free message in step when a connection slot changes address (0 = free).
 
void replace_allocated_slot_ (uint64_t find_value, uint64_t set_value)
 
void log_slot_accounting_mismatch_ ()
 
void reset_connection_slot_ (BluetoothConnection *connection, conn_err_t reason)
 Free a connection slot after teardown: notify the API client and reset the streaming cursor.
 
void clear_pending_disconnection_ (uint64_t address)
 Drop any owed freed-slot notification for this address (client reconnected).
 
void send_device_disconnected_ (uint64_t address, conn_err_t error=CONN_OK)
 Send connected=false and pool it for the paced drain if refused.
 
void answer_device_disconnected_ (uint64_t address)
 Answer a request with connected=false.
 
void latch_pending_disconnection_ (uint64_t address, conn_err_t error)
 Pool a refused freed-slot notification for the paced drain.
 
void reset_owed_replies_ ()
 Drop everything the ending session was owed.
 
void log_reply_dropped_ (const char *what, uint64_t address)
 Report a reply we deliberately do not latch, so no drop is silent.
 
void log_reply_deferred_ (const char *what, uint64_t address)
 A latched reply's leading edge; the drain's re-refusals stay quiet.
 
void log_reply_displaced_ (const char *what, uint64_t owed, uint64_t address)
 A latched reply lost to a newer one for a different address.
 
- 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.
 
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_ ()
 

Protected Attributes

api::APIConnectionapi_connection_ {nullptr}
 
std::array< BluetoothConnection *, BLUETOOTH_PROXY_MAX_CONNECTIONS > connections_ {}
 
std::array< PendingReply, BLUETOOTH_PROXY_MAX_CONNECTIONS > pending_disconnections_ {}
 
PendingReply pending_unpairing_ {}
 
ble_device_base::BLEHubhub_ {nullptr}
 
uint32_t last_advertisement_flush_time_ {0}
 
api::BluetoothLERawAdvertisementsResponse response_
 
api::BluetoothConnectionsFreeResponse connections_free_response_
 
bool active_
 
bool connections_free_pending_ {false}
 
uint8_t connection_count_ {0}
 
bool configured_scan_active_ {false}
 
bool adv_flush_toggle_ {false}
 Wi-Fi only: flush on every other non-empty tick (~200 ms) so partial batches fill; an idle tick re-arms, so the first batch after a gap still ships on the next tick.
 
bool scanner_state_pending_ {false}
 
bool last_scan_running_ {false}
 
- Protected Attributes inherited from esphome::Component
uint8_t component_source_index_ {0}
 Index into component source PROGMEM lookup table (0 = not set)
 
uint8_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_CS}
 Warn threshold in centiseconds (max 2550ms)
 
uint8_t component_state_ {0x00}
 State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bit 5: Has overridden loop() (set at registration time) Bits 6-7: Unused - reserved for future expansion.
 
volatile bool pending_enable_loop_ {false}
 ISR-safe flag for enable_loop_soon_any_context.
 
ComponentRuntimeStats runtime_stats_
 

Detailed Description

Definition at line 100 of file bluetooth_proxy.h.

Constructor & Destructor Documentation

◆ BluetoothProxy()

esphome::bluetooth_proxy::BluetoothProxy::BluetoothProxy ( )

Definition at line 26 of file bluetooth_proxy.cpp.

Member Function Documentation

◆ answer_device_disconnected_()

void esphome::bluetooth_proxy::BluetoothProxy::answer_device_disconnected_ ( uint64_t address)
protected

Answer a request with connected=false.

Never pools: a refusal falls back to the client's request timeout, keeping the pool for the unsolicited notifications the client cannot recover on its own.

Definition at line 252 of file bluetooth_proxy.cpp.

◆ bluetooth_device_request()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_device_request ( const api::BluetoothDeviceRequest & msg)

Definition at line 318 of file bluetooth_proxy.cpp.

◆ bluetooth_gatt_notify()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_gatt_notify ( const api::BluetoothGATTNotifyRequest & msg)

Definition at line 511 of file bluetooth_proxy.cpp.

◆ bluetooth_gatt_read()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_gatt_read ( const api::BluetoothGATTReadRequest & msg)

Definition at line 421 of file bluetooth_proxy.cpp.

◆ bluetooth_gatt_read_descriptor()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_gatt_read_descriptor ( const api::BluetoothGATTReadDescriptorRequest & msg)

Definition at line 447 of file bluetooth_proxy.cpp.

◆ bluetooth_gatt_send_services()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_gatt_send_services ( const api::BluetoothGATTGetServicesRequest & msg)

Definition at line 473 of file bluetooth_proxy.cpp.

◆ bluetooth_gatt_write()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_gatt_write ( const api::BluetoothGATTWriteRequest & msg)

Definition at line 434 of file bluetooth_proxy.cpp.

◆ bluetooth_gatt_write_descriptor()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_gatt_write_descriptor ( const api::BluetoothGATTWriteDescriptorRequest & msg)

Definition at line 460 of file bluetooth_proxy.cpp.

◆ bluetooth_scanner_set_mode()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_scanner_set_mode ( bool active)

Definition at line 561 of file bluetooth_proxy.cpp.

◆ bluetooth_set_connection_params()

void esphome::bluetooth_proxy::BluetoothProxy::bluetooth_set_connection_params ( const api::BluetoothSetConnectionParamsRequest & msg)

Definition at line 524 of file bluetooth_proxy.cpp.

◆ clear_pending_disconnection_()

void esphome::bluetooth_proxy::BluetoothProxy::clear_pending_disconnection_ ( uint64_t address)
protected

Drop any owed freed-slot notification for this address (client reconnected).

Definition at line 241 of file bluetooth_proxy.cpp.

◆ client_supports_efficient_uuids()

bool esphome::bluetooth_proxy::BluetoothProxy::client_supports_efficient_uuids ( ) const
inline

Whether the subscribed API client understands 16/32-bit UUID fields.

Definition at line 138 of file bluetooth_proxy.h.

◆ dump_config()

void esphome::bluetooth_proxy::BluetoothProxy::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 163 of file bluetooth_proxy.cpp.

◆ flush_pending_advertisements_()

void esphome::bluetooth_proxy::BluetoothProxy::flush_pending_advertisements_ ( )
inlineprotected

Caller must ensure api_connection_ is non-null and API server is connected.

Definition at line 234 of file bluetooth_proxy.h.

◆ get_api_connection()

api::APIConnection * esphome::bluetooth_proxy::BluetoothProxy::get_api_connection ( )
inline

Definition at line 136 of file bluetooth_proxy.h.

◆ get_bluetooth_mac_address_pretty()

void esphome::bluetooth_proxy::BluetoothProxy::get_bluetooth_mac_address_pretty ( std::span< char, MAC_ADDRESS_PRETTY_BUFFER_SIZE > output)
inline

Definition at line 212 of file bluetooth_proxy.h.

◆ get_connection_()

BluetoothConnection * esphome::bluetooth_proxy::BluetoothProxy::get_connection_ ( uint64_t address,
bool reserve )
protected

Definition at line 285 of file bluetooth_proxy.cpp.

◆ get_feature_flags()

uint32_t esphome::bluetooth_proxy::BluetoothProxy::get_feature_flags ( ) const
inline

Definition at line 179 of file bluetooth_proxy.h.

◆ get_legacy_version()

uint32_t esphome::bluetooth_proxy::BluetoothProxy::get_legacy_version ( ) const
inline

Definition at line 165 of file bluetooth_proxy.h.

◆ get_setup_priority()

float esphome::bluetooth_proxy::BluetoothProxy::get_setup_priority ( ) const
inlineoverridevirtual

Reimplemented from esphome::Component.

Definition at line 120 of file bluetooth_proxy.h.

◆ handle_gatt_not_connected_()

void esphome::bluetooth_proxy::BluetoothProxy::handle_gatt_not_connected_ ( uint64_t address,
uint16_t handle,
const char * action,
const char * type )
protected

Definition at line 143 of file bluetooth_proxy.cpp.

◆ has_active()

bool esphome::bluetooth_proxy::BluetoothProxy::has_active ( )
inline

Definition at line 163 of file bluetooth_proxy.h.

◆ latch_pending_disconnection_()

void esphome::bluetooth_proxy::BluetoothProxy::latch_pending_disconnection_ ( uint64_t address,
conn_err_t error )
protected

Pool a refused freed-slot notification for the paced drain.

Definition at line 218 of file bluetooth_proxy.cpp.

◆ log_advertisement_flush_()

void esphome::bluetooth_proxy::BluetoothProxy::log_advertisement_flush_ ( bool sent)
protected

Definition at line 153 of file bluetooth_proxy.cpp.

◆ log_connection_info_()

void esphome::bluetooth_proxy::BluetoothProxy::log_connection_info_ ( BluetoothConnection * connection,
const char * message )
protected

Definition at line 121 of file bluetooth_proxy.cpp.

◆ log_connection_request_ignored_()

void esphome::bluetooth_proxy::BluetoothProxy::log_connection_request_ignored_ ( BluetoothConnection * connection,
ClientState state )
protected

Definition at line 116 of file bluetooth_proxy.cpp.

◆ log_not_connected_gatt_()

void esphome::bluetooth_proxy::BluetoothProxy::log_not_connected_gatt_ ( const char * action,
const char * type )
protected

Definition at line 139 of file bluetooth_proxy.cpp.

◆ log_reply_deferred_()

void esphome::bluetooth_proxy::BluetoothProxy::log_reply_deferred_ ( const char * what,
uint64_t address )
protected

A latched reply's leading edge; the drain's re-refusals stay quiet.

Definition at line 131 of file bluetooth_proxy.cpp.

◆ log_reply_displaced_()

void esphome::bluetooth_proxy::BluetoothProxy::log_reply_displaced_ ( const char * what,
uint64_t owed,
uint64_t address )
protected

A latched reply lost to a newer one for a different address.

Definition at line 135 of file bluetooth_proxy.cpp.

◆ log_reply_dropped_()

void esphome::bluetooth_proxy::BluetoothProxy::log_reply_dropped_ ( const char * what,
uint64_t address )
protected

Report a reply we deliberately do not latch, so no drop is silent.

Definition at line 127 of file bluetooth_proxy.cpp.

◆ log_slot_accounting_mismatch_()

void esphome::bluetooth_proxy::BluetoothProxy::log_slot_accounting_mismatch_ ( )
protected

Definition at line 204 of file bluetooth_proxy.cpp.

◆ loop()

void esphome::bluetooth_proxy::BluetoothProxy::loop ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 599 of file bluetooth_proxy.cpp.

◆ on_raw_advertisement_()

void esphome::bluetooth_proxy::BluetoothProxy::on_raw_advertisement_ ( const ble_device_base::RawAdvertisement & raw)
protected

Definition at line 93 of file bluetooth_proxy.cpp.

◆ register_connection()

void esphome::bluetooth_proxy::BluetoothProxy::register_connection ( BluetoothConnection * connection)

Definition at line 191 of file bluetooth_proxy.cpp.

◆ replace_allocated_slot_()

void esphome::bluetooth_proxy::BluetoothProxy::replace_allocated_slot_ ( uint64_t find_value,
uint64_t set_value )
protected

Definition at line 206 of file bluetooth_proxy.cpp.

◆ reset_connection_slot_()

void esphome::bluetooth_proxy::BluetoothProxy::reset_connection_slot_ ( BluetoothConnection * connection,
conn_err_t reason )
protected

Free a connection slot after teardown: notify the API client and reset the streaming cursor.

Important: does NOT send send_gatt_services_done() when service streaming was interrupted – the client (aioesphomeapi) has a 30-second timeout (DEFAULT_BLE_TIMEOUT) to detect incomplete service discovery and retry, rather than being told a partial list is complete.

Definition at line 277 of file bluetooth_proxy.cpp.

◆ reset_owed_replies_()

void esphome::bluetooth_proxy::BluetoothProxy::reset_owed_replies_ ( )
protected

Drop everything the ending session was owed.

One list, so a new latch is one edit rather than two call sites where an omission looks deliberate. Drops state only, never sends: api_connection_ is the departing subscriber on subscribe and nullptr on unsubscribe.

Definition at line 700 of file bluetooth_proxy.cpp.

◆ send_bluetooth_scanner_state_()

bool esphome::bluetooth_proxy::BluetoothProxy::send_bluetooth_scanner_state_ ( ble_device_base::ScannerState state)
protected

Definition at line 41 of file bluetooth_proxy.cpp.

◆ send_connections_free() [1/2]

void esphome::bluetooth_proxy::BluetoothProxy::send_connections_free ( )

Definition at line 765 of file bluetooth_proxy.cpp.

◆ send_connections_free() [2/2]

void esphome::bluetooth_proxy::BluetoothProxy::send_connections_free ( api::APIConnection * api_connection)

Definition at line 771 of file bluetooth_proxy.cpp.

◆ send_device_clear_cache()

void esphome::bluetooth_proxy::BluetoothProxy::send_device_clear_cache ( uint64_t address,
bool success,
conn_err_t error = CONN_OK )

Definition at line 858 of file bluetooth_proxy.cpp.

◆ send_device_connection()

bool esphome::bluetooth_proxy::BluetoothProxy::send_device_connection ( uint64_t address,
bool connected,
uint16_t mtu = 0,
conn_err_t error = CONN_OK )

False only when a subscriber refused the frame; true = delivered or nobody subscribed.

Refusals latch in send_device_disconnected_() and send_connected_reply_(); other callers report via log_reply_dropped_().

Definition at line 781 of file bluetooth_proxy.cpp.

◆ send_device_disconnected_()

void esphome::bluetooth_proxy::BluetoothProxy::send_device_disconnected_ ( uint64_t address,
conn_err_t error = CONN_OK )
protected

Send connected=false and pool it for the paced drain if refused.

A dropped disconnect desynchronises the proxy: the client keeps a link it believes is live and every operation on it times out. Unsolicited and drained notifications only; request answers use the variant below.

Definition at line 264 of file bluetooth_proxy.cpp.

◆ send_device_pairing()

void esphome::bluetooth_proxy::BluetoothProxy::send_device_pairing ( uint64_t address,
bool paired,
conn_err_t error = CONN_OK )

Definition at line 810 of file bluetooth_proxy.cpp.

◆ send_device_unpairing()

void esphome::bluetooth_proxy::BluetoothProxy::send_device_unpairing ( uint64_t address,
bool success,
conn_err_t error )

No default error: the drain rebuilds success as (error == CONN_OK), so a caller that omitted it would have a reported failure resent as a success.

Definition at line 825 of file bluetooth_proxy.cpp.

◆ send_gatt_error()

bool esphome::bluetooth_proxy::BluetoothProxy::send_gatt_error ( uint64_t address,
uint16_t handle,
conn_err_t error )

False only when the API refused the frame, so the reply is still owed.

Definition at line 800 of file bluetooth_proxy.cpp.

◆ send_gatt_services_done()

bool esphome::bluetooth_proxy::BluetoothProxy::send_gatt_services_done ( uint64_t address)

Same convention as send_device_connection: false only on a refused frame.

Definition at line 792 of file bluetooth_proxy.cpp.

◆ send_polled_scanner_state_()

void esphome::bluetooth_proxy::BluetoothProxy::send_polled_scanner_state_ ( )
protected

Definition at line 60 of file bluetooth_proxy.cpp.

◆ send_scanner_state_()

void esphome::bluetooth_proxy::BluetoothProxy::send_scanner_state_ ( ble_device_base::ScannerState state)
protected

Definition at line 55 of file bluetooth_proxy.cpp.

◆ set_active()

void esphome::bluetooth_proxy::BluetoothProxy::set_active ( bool active)
inline

Definition at line 162 of file bluetooth_proxy.h.

◆ set_ble_hub()

void esphome::bluetooth_proxy::BluetoothProxy::set_ble_hub ( ble_device_base::BLEHub * hub)
inline

Definition at line 107 of file bluetooth_proxy.h.

◆ setup()

void esphome::bluetooth_proxy::BluetoothProxy::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 72 of file bluetooth_proxy.cpp.

◆ subscribe_api_connection()

void esphome::bluetooth_proxy::BluetoothProxy::subscribe_api_connection ( api::APIConnection * api_connection,
uint32_t flags )

Definition at line 728 of file bluetooth_proxy.cpp.

◆ unsubscribe_api_connection()

void esphome::bluetooth_proxy::BluetoothProxy::unsubscribe_api_connection ( api::APIConnection * api_connection)

Definition at line 755 of file bluetooth_proxy.cpp.

◆ update_address_slot_()

void esphome::bluetooth_proxy::BluetoothProxy::update_address_slot_ ( uint64_t old_address,
uint64_t new_address )
inlineprotected

Keep the pre-allocated connections-free message in step when a connection slot changes address (0 = free).

Called from the connection classes' set_address().

Definition at line 257 of file bluetooth_proxy.h.

Field Documentation

◆ active_

bool esphome::bluetooth_proxy::BluetoothProxy::active_
protected

Definition at line 342 of file bluetooth_proxy.h.

◆ adv_flush_toggle_

bool esphome::bluetooth_proxy::BluetoothProxy::adv_flush_toggle_ {false}
protected

Wi-Fi only: flush on every other non-empty tick (~200 ms) so partial batches fill; an idle tick re-arms, so the first batch after a gap still ships on the next tick.

See loop().

Definition at line 355 of file bluetooth_proxy.h.

◆ api_connection_

api::APIConnection* esphome::bluetooth_proxy::BluetoothProxy::api_connection_ {nullptr}
protected

Definition at line 314 of file bluetooth_proxy.h.

◆ configured_scan_active_

bool esphome::bluetooth_proxy::BluetoothProxy::configured_scan_active_ {false}
protected

Definition at line 350 of file bluetooth_proxy.h.

◆ connection_count_

uint8_t esphome::bluetooth_proxy::BluetoothProxy::connection_count_ {0}
protected

Definition at line 348 of file bluetooth_proxy.h.

◆ connections_

std::array<BluetoothConnection *, BLUETOOTH_PROXY_MAX_CONNECTIONS> esphome::bluetooth_proxy::BluetoothProxy::connections_ {}
protected

Definition at line 318 of file bluetooth_proxy.h.

◆ connections_free_pending_

bool esphome::bluetooth_proxy::BluetoothProxy::connections_free_pending_ {false}
protected

Definition at line 347 of file bluetooth_proxy.h.

◆ connections_free_response_

api::BluetoothConnectionsFreeResponse esphome::bluetooth_proxy::BluetoothProxy::connections_free_response_
protected

Definition at line 338 of file bluetooth_proxy.h.

◆ hub_

ble_device_base::BLEHub* esphome::bluetooth_proxy::BluetoothProxy::hub_ {nullptr}
protected

Definition at line 328 of file bluetooth_proxy.h.

◆ last_advertisement_flush_time_

uint32_t esphome::bluetooth_proxy::BluetoothProxy::last_advertisement_flush_time_ {0}
protected

Definition at line 331 of file bluetooth_proxy.h.

◆ last_scan_running_

bool esphome::bluetooth_proxy::BluetoothProxy::last_scan_running_ {false}
protected

Definition at line 362 of file bluetooth_proxy.h.

◆ pending_disconnections_

std::array<PendingReply, BLUETOOTH_PROXY_MAX_CONNECTIONS> esphome::bluetooth_proxy::BluetoothProxy::pending_disconnections_ {}
protected

Definition at line 322 of file bluetooth_proxy.h.

◆ pending_unpairing_

PendingReply esphome::bluetooth_proxy::BluetoothProxy::pending_unpairing_ {}
protected

Definition at line 326 of file bluetooth_proxy.h.

◆ response_

api::BluetoothLERawAdvertisementsResponse esphome::bluetooth_proxy::BluetoothProxy::response_
protected

Definition at line 334 of file bluetooth_proxy.h.

◆ scanner_state_pending_

bool esphome::bluetooth_proxy::BluetoothProxy::scanner_state_pending_ {false}
protected

Definition at line 360 of file bluetooth_proxy.h.


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