Changelog

v3.9.1 (2026-05-23)

Bug fixes

  • Narrow optional before dict.get lookups (91d6551)

v3.9.0 (2026-05-23)

Features

  • Add auto scanning mode support (eab513a)

v3.8.4 (2026-05-23)

Bug fixes

  • Defer loop-coupled state in apiconnectionmanager to start() (dbb3bf1)

Refactoring

  • Extract spurious-cancellation predicate to shared helper (af0c4b0)

v3.8.3 (2026-05-23)

Bug fixes

  • Harden esphomeclient.del against shutdown and leaks (#333) (fa24a97)

v3.8.2 (2026-05-23)

Documentation

  • Document on-demand active scan window (feature_state_and_mode) (916ad6b)

  • Add autodoc api reference for public package surface (f09d779)

Bug fixes

  • Preserve method metadata in api_error_as_bleak_error decorator (3d1a0fd)

v3.8.1 (2026-05-23)

Bug fixes

  • Parallelize cython build_ext and clean up redundant pass (61f2b14)

v3.8.0 (2026-05-23)

Features

  • Implement on-demand active scan window via proxy mode set (8b6725f)

Documentation

  • Correct stale connect() docstring (returns + find_device_by_address) (1fc998f)

  • Correct misleading docstrings on pair/cache/conn-params (ee69d1a)

  • Clarify _get_services and stop_notify behavior (98ad872)

  • Correct stale comment and thin docstrings on device/conn-mgr (8d5f221)

  • Document that callbacks are ignored in connect_scanner because they auto teardown on connect (e0a8e41)

v3.7.6 (2026-05-21)

Performance improvements

  • Hoist max_write_without_response callable above char loop (#334) (8df6144)

Bug fixes

  • Return mac strings from scanner.get_allocations (#330) (174371d)

Testing

  • Cover del leaked-subscription warning (cfdb8e9)

  • Cover cached-mtu skip in connection-state callback (86d9ed3)

  • Cover connect cancel edge branches (cd46643)

  • Assert public bleak_esphome package surface (f3a1785)

  • Dry up backend tests with shared fixtures and helpers (1d01b6e)

  • Cover client decorator, error, and notify branches (b149beb)

  • Cover scanner decoded path, _can_connect, and connect_scanner branches (de5b072)

Documentation

  • List all gated feature flags in architecture overview (3048d03)

  • Document low-level connect_scanner workflow (2a511fa)

  • Document esphomestartaborted in usage guide (0130633)

  • Add feature flag compatibility matrix to usage guide (f1dc52a)

  • Drop stale backend module references from claude.md (650d408)

v3.7.5 (2026-05-16)

Bug fixes

  • Clear scanner.current_mode when proxy is not running (7f25876)

  • Fire client_data.disconnect_callbacks on esp disconnect (a2c90ff)

Testing

  • Silence bledevice deprecation and asyncmock coroutine warnings (c2c443d)

  • Cover connection_manager on_connect/on_disconnect/stop paths (0c680fa)

  • Add direct coverage for esphomebluetoothcache (52f968e)

v3.7.4 (2026-05-14)

Bug fixes

  • Guard wait_for_ble_connections_free against late timer race (9ece701)

Documentation

  • Add claude.md with style and tooling guide (789088c)

  • Explain bluetooth proxy architecture and library scope (355cac6)

v3.7.3 (2026-04-11)

Bug fixes

  • Shield disconnect cleanup in connect cancel handler (a5675c1)

v3.7.2 (2026-04-11)

Bug fixes

  • Convert spurious cancellederror in connect to bleakerror (e3cc1c1)

  • Convert spurious cancellation in apiconnectionmanager.start to esphomestartaborted (9190d8c)

Documentation

  • Add extension methods documentation (4d10fca)

v3.7.1 (2026-03-07)

Bug fixes

  • Warn when esphome device does not support connection params (c07e620)

v3.7.0 (2026-03-07)

Features

  • Add ble connection parameters api (f40d54f)

v3.6.1 (2026-03-07)

Bug fixes

  • Update poetry marker for py 3.14 (9b7c344)

v3.6.0 (2026-01-27)

Features

  • Allow custom gatt read timeouts (8ebd2a3)

v3.5.0 (2026-01-27)

Features

  • Add support for bleak 2.1.1 (0d1e8f6)

v3.4.1 (2026-01-25)

Bug fixes

  • Make sure we wait for ccd write in start_notify (8ab893f)

v3.4.0 (2025-10-04)

Features

  • Add wheels for python 3.14 and bump habluetooth min version (cfde020)

v3.3.0 (2025-09-08)

Features

  • Implement get_allocations for esphomescanner for thundering heard problem (ecd0454)

v3.2.0 (2025-08-28)

Features

  • Use set_*_mode helpers instead of setting mode directly (baa0b4c)

v3.1.0 (2025-07-03)

Features

  • Add auto pair support for bleak 1.x (0d538e8)

v3.0.1 (2025-07-03)

Bug fixes

  • Use characteristic_properties (6bba94a)

v3.0.0 (2025-07-03)

Features

v2.16.0 (2025-06-03)

Features

  • Update scanner mode from callback (9c093b5)

v2.15.1 (2025-05-03)

Bug fixes

  • Revert to using python api for scanner (0cc7e99)

v2.15.0 (2025-04-29)

Features

  • Bump aioesphomeapi requirement to 30.1.0+ (4430f0c)

v2.14.0 (2025-04-27)

Features

  • Switch to using the _async_on_raw_advertisement api (eb62775)

v2.13.1 (2025-04-03)

Bug fixes

  • Disable 32bit wheels on linux to fix builds (4d922b8)

v2.13.0 (2025-04-03)

Features

  • Improve performance by cimporting base_scanner (a69de13)

  • Imporve performance by cimporting base_scanner (a69de13)

  • Imporve performance by cimporting base_scanner (a69de13)

v2.12.0 (2025-03-13)

Features

  • Only look up _async_on_advertisement once per advertisement group (f7a001d)

v2.11.0 (2025-03-05)

Features

v2.10.2 (2025-03-04)

Bug fixes

v2.10.1 (2025-03-04)

Bug fixes

  • Add missing permissions to upload wheels (12b396f)

  • Add missing permissions to upload wheels (12b396f)

v2.10.0 (2025-03-04)

Features

  • Add optional cython for scanner to improve performance (a4e0803)

v2.9.0 (2025-02-27)

Features

  • Use bluetooth_mac_address for the source if available (df7f72c)

v2.8.0 (2025-02-27)

Features

v2.7.1 (2025-02-04)

Bug fixes

v2.7.0 (2025-02-02)

Features

  • Avoid protobuf repeated container overhead (4a99c14)

v2.6.0 (2025-01-31)

Features

  • Update example to show how to use multiple devices (4a97019)

v2.5.0 (2025-01-31)

Features

  • Reduce boilerplate in examples (03f3ff8)

v2.4.0 (2025-01-31)

Features

  • Simplify examples when using new habluetooth (1b38b3e)

v2.3.0 (2025-01-31)

Features

  • Add example on connecting the scanner (b2d0eed)

v2.2.0 (2025-01-28)

Features

  • Add support for tracking bluetooth connection slot allocations (81fb130)

v2.1.1 (2025-01-22)

Bug fixes

  • Suppress duplicate connection changed callbacks (e3a5059)

v2.1.0 (2025-01-22)

Features

  • Update manager connection slot allocations on change (63045a7)

v2.0.0 (2025-01-03)

Bug fixes

Refactoring

  • Make wait_for_ble_connections_free require a timeout (72c0107)

v1.1.1 (2024-12-22)

Bug fixes

  • Bump aioesphomeapi requirement to 27.0.0+ (1ab71d8)

Unknown

v1.1.0 (2024-10-05)

Features

  • Add support for python 3.13 (c3f2575)

v1.0.0 (2024-02-18)

Features

  • Updates for aioesphomeapi 22 (c6a113a)

v0.4.1 (2024-01-01)

Performance improvements

  • Avoid recreating enums from feature flags (00beb54)

v0.4.0 (2023-12-17)

Features

  • Add connect scanner helper (c4b110a)

v0.3.0 (2023-12-14)

Features

  • Add available property to know when the esp device is connected (7732629)

v0.2.0 (2023-12-13)

Features

  • Move mac_to_int helper to bluetooth_data_tools (79ff7da)

v0.1.0 (2023-12-13)

Features

v0.0.0 (2023-12-06)