Skip to content

Releases: hbldh/bleak

v0.19.3

07 Nov 05:11
Compare
Choose a tag to compare

Fixed

  • Fixed TimeoutError when connecting to certain devices with WinRT backend. Fixes #604.

v0.19.2

06 Nov 21:18
Compare
Choose a tag to compare

Fixed

  • Fixed crash when getting services in WinRT backend in Python 3.11. Fixes #1112.
  • Fixed cache mode when retrying get services in WinRT backend. Merged #1102.
  • Fixed KeyError crash in BlueZ backend when removing non-existent property. Fixes #1107.

v0.19.1

29 Oct 14:59
Compare
Choose a tag to compare

Fixed

  • Fixed crash in Android backend introduced in v0.19.0. Fixes #1085.
  • Fixed service discovery blocking forever if device disconnects in BlueZ backend. Merged #1092.
  • Fixed AttributeError crash when scanning on Windows builds < 19041. Fixes #1094.

v0.19.0

14 Oct 17:47
Compare
Choose a tag to compare

Added

  • Added support for Python 3.11. Merged #990.
  • Added better error message for Bluetooth not authorized on macOS. Merged #1033.
  • Added BleakDeviceNotFoundError which should is raised if a device can not
    be found by connect, pair and unpair. Merged #1022.
  • Added rssi attribute to AdvertisementData. Merged #1047.
  • Added BleakScanner.discovered_devices_and_advertisement_data property. Merged #1047.
  • Added return_adv argument to BleakScanner.discover method. Merged #1047.
  • Added BleakClient.unpair() implementation for BlueZ backend. Merged #1067.

Changed

  • Changed AdvertisementData to a named tuple. Merged #1047.
  • A faster unpack_variants is now provided by dbus-fast. Merged #1055.

Fixed

  • On BlueZ, support creating additional instances running on a different event
    loops (i.e. multiple pytest-asyncio cases). Merged #1034.
  • Fixed unhandled exception in max_pdu_size_changed_handler in WinRT backend. Fixes #1039.
  • Fixed stale services in WinRT backend causing WinError -2147483629. Fixes #1061.

Removed

Removed bleak.__version__. Use importlib.metadata.version('bleak') instead.

v0.18.1

25 Sep 20:12
Compare
Choose a tag to compare

Fixed

  • Reverted unintentional breaking parameter name changes. Fixes #1028.

v0.18.0

23 Sep 17:07
Compare
Choose a tag to compare

Changed

  • Relaxed async-timeout dependency version to support different installations. Merged #1009.
  • BleakClient.unpair() in WinRT backend can be called without being connected first. Merged #1012.
  • Use relative imports internally. Merged #1007.
  • BleakScanner and BleakClient are now concrete classes. Fixes #582.
  • Deprecated BleakScanner.register_detection_callback().
  • Deprecated BleakScanner.set_scanning_filter().
  • Deprecated BleakClient.set_disconnected_callback().
  • Deprecated BleakClient.get_services().
  • Refactored common code in BleakClient.start_notify().
  • (BREAKING) Changed notification callback argument from int to BleakGattCharacteristic. Fixes #759.

Fixed

  • Fixed tx_power not included in AdvertisementData.__repr__ when 0. Merged #1017.

v0.17.0

12 Sep 20:25
Compare
Choose a tag to compare

Added

  • AdvertisementData class now has an attribute tx_power. Merged #987.

Changed

  • BleakClient methods now raise BleakError if called when not connected in WinRT backend. Merged #973.
  • Extended disconnect timeout to 120 seconds in WinRT backend. Fixes #807.
  • Changed version check for BlueZ battery workaround to exclude versions >= 5.55. Merged #976.
  • Use Poetry for build system and dependencies. Merged #978.
  • The BlueZ D-Bus backend implements a services cache between connections to significancy improve reconnect performance. Merged #923.
  • The BlueZ D-Bus backend now uses dbus-fast package instead of dbus-next which significantly improves performance. Merged #988.
  • The BlueZ D-Bus backend will not avoid trying to connect to devices that are already connected. Fixes #992.
  • Updated logging to lazy version and replaced format by f-string for BleakClientWinRT. #1000.
  • Added deprecation warning to discover() method. Merged #1005.
  • BlueZ adapter is chosen dynamically if not provided, instead of using hardcoded "hci0". Fixes #513.

Fixed

  • Fixed wrong error message for BlueZ "Operation failed with ATT error". Merged #975.
  • Fixed possible AttributeError when enabling notifications for battery service in BlueZ backend. Merged #976.
  • Fixed use of wrong enum in unpair function of WinRT backend. Merged #986.
  • Fixed inconsistent return types for properties and descriptors properties of BleakGATTCharacteristic. Merged #989.
  • Handle device being removed before GetManagedObjects returns in BlueZ backend. Fixes #996.
  • Fixed crash in max_pdu_size_changed_handler in WinRT backend. Fixes #998.
  • Fixes a race in the BlueZ D-Bus backend where the disconnect monitor would be removed before it could be awaited. Merged #999.

Removed

  • Removed BLEDeviceCoreBluetooth type from CoreBluetooth backend. Merged #977.

v0.16.0

31 Aug 21:28
Compare
Choose a tag to compare

Added

  • Added BleakGattCharacteristic.max_write_without_response_size property. Fixes #738.

Fixed

  • Fixed regression in v0.15 where devices removed from BlueZ while scanning
    were still listed in BleakScanner.discovered_devices. Fixes #942.
  • Fixed possible bad connection state in BlueZ backend. Fixes #951.

Changed

  • Made BlueZ D-Bus signal callback logging lazy to improve performance. Merged #912.
  • Switch to using async_timeout instead of asyncio.wait_for for performance. Merged #916.
  • Improved performance of BlueZManager.get_services(). Fixes #927.

Removed

  • Removed explicit inheritance from object in class declarations. Merged #922.
  • Removed first seen filter in BleakScanner detection callbacks on BlueZ backend. Merged #964.

v0.15.1

03 Aug 16:18
ac17549
Compare
Choose a tag to compare

Fixed

  • The global BlueZ manager now disconnects correctly on exception. Merged #918.
  • Handle the race in the BlueZ D-Bus backend where the device disconnects during
    the connection process which presented as Failed to cancel connection. Merged #919.
  • Ensure the BlueZ D-Bus scanner can reconnect after DBus disconnection. Merged #920.

v0.15.0

29 Jul 16:53
Compare
Choose a tag to compare

Added

  • Added new assigned_numbers module and AdvertisementDataType enum.
  • Added new bluez kwarg to BleakScanner in BlueZ backend.
  • Added support for passive scanning in the BlueZ backend. Fixes #606.
  • Added option to use cached services, characteristics and descriptors in WinRT backend. Fixes #686.
  • Added PendingDeprecationWarning to use of address_type as keyword argument. It will be moved into the
    winrt keyword instead according to #623.
  • Added better error message when adapter is not present in BlueZ backend. Fixes #889.

Changed

  • Add py.typed file so mypy discovers Bleak's type annotations.
  • UUID descriptions updated to 2022-03-16 assigned numbers document.
  • Replace use of deprecated asyncio.get_event_loop() in Android backend.
  • Adjust default timeout for read_gatt_char() with CoreBluetooth to 10s. Merged #891.
  • BleakScanner() args detection_callback and service_uuids are no longer keyword-only.
  • BleakScanner() arg scanning_mode is no longer Windows-only and is no longer keyword-only.
  • All BleakScanner() instances in BlueZ backend now use common D-Bus object manager.
  • Deprecated filters kwarg in BleakScanner in BlueZ backend.
  • BlueZ version is now checked on first connection instead of import to avoid import side effects. Merged #907.

Fixed

  • Documentation fixes.
  • On empty characteristic description from WinRT, use the lookup table instead of returning empty string.
  • Fixed detection of first advertisement in BlueZ backend. Merged #903.
  • Fixed performance issues in BlueZ backend caused by calling "GetManagedObjects" each time a
    BleakScanner scans or BleakClient is connected. Fixes #500.
  • Fixed not handling "InterfacesRemoved" in BleakClient in BlueZ backend. Fixes #882.
  • Fixed leaking D-Bus socket file descriptors in BlueZ backend. Fixes #805.