CHANGELOG

v1.6.0 (2026-05-24)

Chores

Features

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

v1.5.3 (2025-09-13)

Bug Fixes

  • Bluetooth management socket communication on certain kernels (#107, 4e5e994)

Chores

  • pre-commit.ci: Pre-commit autoupdate (#94, 10815e0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

v1.5.2 (2025-05-21)

Bug Fixes

Chores

  • pre-commit.ci: Pre-commit autoupdate (#93, d8a9cc3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

v1.5.1 (2025-05-03)

Bug Fixes

  • Ensure public signature includes gone_silent (#92, 176502b)

v1.5.0 (2025-05-03)

Chores

  • Update dependabot.yml to include GHA (e942f61)

  • Update deps to fix CI (#91, 8d45f38)

  • deps: Bump jinja2 from 3.1.5 to 3.1.6 (#84, ef86b2e)

  • deps-ci: Bump the github-actions group with 8 updates (#90, 1c99b89)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: J. Nick Koston nick@koston.org

  • deps-dev: Bump pytest from 8.3.4 to 8.3.5 (#82, e4988e8)

Bumps pytest from 8.3.4 to 8.3.5. - Release notes - Changelog - Commits

— updated-dependencies: - dependency-name: pytest dependency-type: direct:development

update-type: version-update:semver-patch …

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps-dev: Bump pytest-asyncio from 0.25.3 to 0.26.0 (#85, a05b39a)

Bumps pytest-asyncio from 0.25.3 to 0.26.0. - Release notes - Commits

— updated-dependencies: - dependency-name: pytest-asyncio dependency-version: 0.26.0

dependency-type: direct:development

update-type: version-update:semver-minor …

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps-dev: Bump pytest-cov from 6.0.0 to 6.1.1 (#87, 26ddaf4)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#81, 5ba466a)

updates: - github.com/commitizen-tools/commitizen: v4.2.1 → v4.4.1 - github.com/PyCQA/isort: 6.0.0 → 6.0.1 - github.com/PyCQA/flake8: 7.1.2 → 7.2.0

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#86, c3f76f8)

updates: - github.com/commitizen-tools/commitizen: v4.4.1 → v4.5.0

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#88, c7a1de1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

Features

  • Try USB reset if the adapter has gone silent (#89, c615af1)

v1.4.5 (2025-03-13)

Bug Fixes

  • Downgrade power on success log message to debug (#83, da6ca83)

v1.4.4 (2025-02-19)

Bug Fixes

  • Handle case where adapter moves to index 0 after USB reset (#79, 34517d3)

v1.4.3 (2025-02-19)

Bug Fixes

  • Rfkill unblocking when adapter idx is 0 (#78, f6dbba0)

Chores

  • Create dependabot.yml (e412f97)

  • deps: Bump aiohttp from 3.9.5 to 3.10.11 (#67, 95b906e)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps: Bump async-timeout from 4.0.3 to 5.0.1 (#68, 7bd0f38)

  • deps: Bump certifi from 2024.6.2 to 2024.7.4 (#65, a9ba476)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps: Bump jinja2 from 3.1.4 to 3.1.5 (#64, 65f2b3d)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps: Bump myst-parser from 0.18.1 to 1.0.0 (#61, 8f2c913)

Bumps myst-parser from 0.18.1 to 1.0.0. - Release notes - Changelog - Commits

— updated-dependencies: - dependency-name: myst-parser dependency-type: direct:production

update-type: version-update:semver-major …

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps: Bump myst-parser from 1.0.0 to 3.0.1 (#72, 6dfd5ac)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps: Bump sphinx from 5.3.0 to 6.2.1 (#69, 7442426)

  • deps: Bump sphinx from 6.2.1 to 7.4.7 (#75, c34f36b)

  • deps: Bump sphinx-rtd-theme from 1.3.0 to 2.0.0 (#60, 9e29600)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps: Bump sphinx-rtd-theme from 2.0.0 to 3.0.2 (#71, 7678868)

  • deps-dev: Bump pytest from 7.4.4 to 8.3.4 (#59, caa4b28)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps-dev: Bump pytest-asyncio from 0.23.7 to 0.25.2 (#66, f06eb67)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • deps-dev: Bump pytest-asyncio from 0.25.2 to 0.25.3 (#74, b216503)

  • deps-dev: Bump pytest-cov from 3.0.0 to 6.0.0 (#63, 69ceaa5)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#47, e25b028)

  • chore(pre-commit.ci): pre-commit autoupdate

updates: - github.com/commitizen-tools/commitizen: v2.31.0 → v3.27.0 - github.com/pre-commit/pre-commit-hooks: v4.3.0 → v4.6.0 - github.com/pre-commit/mirrors-prettier: v2.7.1 → v4.0.0-alpha.8 - github.com/asottile/pyupgrade: v2.37.3 → v3.16.0 - github.com/PyCQA/isort: 5.12.0 → 5.13.2

  • chore(pre-commit.ci): auto fixes

  • fix: lint


Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

Co-authored-by: J. Nick Koston nick@koston.org

  • pre-commit.ci: Pre-commit autoupdate (#48, 15d2101)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#49, f54eccd)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#50, d04be3e)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#51, a0bbc33)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#52, 59ecbda)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#53, c9319c6)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

Co-authored-by: J. Nick Koston nick@koston.org

  • pre-commit.ci: Pre-commit autoupdate (#54, 2263e37)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#57, 0e9084a)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#58, b369f20)

  • pre-commit.ci: Pre-commit autoupdate (#70, eef87a0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#73, db65606)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#76, e0d8d14)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

  • pre-commit.ci: Pre-commit autoupdate (#77, d87450a)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

v1.4.2 (2024-04-25)

Bug Fixes

  • Ensure timeout does not raise cancellation (#46, 4575fdd)

v1.4.1 (2024-04-18)

Bug Fixes

v1.4.0 (2024-03-13)

Features

  • Only import recovery code the first time the recovery is called (#44, 39372f0)

v1.3.0 (2024-01-10)

Features

  • Ensure library can be loaded on windows (#43, dd234f8)

v1.2.3 (2023-09-09)

Bug Fixes

  • Add missing async keyword to send timeout (#42, 1097e44)

v1.2.2 (2023-09-07)

Bug Fixes

v1.2.1 (2023-07-12)

Bug Fixes

  • Make MGMTBluetoothCtl aware of down adapters (#38, 3c6bc12)

Chores

v1.2.0 (2023-05-10)

Features

  • Try to bounce the adapter if setting power state fails (#36, 11ec5e2)

v1.1.2 (2023-05-04)

Bug Fixes

  • Proceed with reset when getting power state times out (#34, aae8c84)

v1.1.1 (2023-05-03)

Bug Fixes

  • Pass on event types we do not know how to process (#33, 2bbca73)

v1.1.0 (2023-05-03)

Chores

Features

  • Do a down/up on the interface when resetting the adapter (#31, ae3f63b)

v1.0.3 (2022-12-15)

Bug Fixes

  • Handle the btsocket being closed out from under us (#29, 1e0d878)

Chores

v1.0.2 (2022-12-15)

Bug Fixes

  • Handle the case where a btsocket cannot be created (#28, 6e8e8e1)

v1.0.1 (2022-12-15)

Bug Fixes

  • Handle adapter moving to a new hci number after reset (#27, 662f710)

v1.0.0 (2022-12-12)

Features

  • Add support for being able to reset the adapter by mac address when the hci interface is lost (#26, 72d6114)

BREAKING CHANGE: The mac address must now be passed to recover_adapter

  • Do not check for the BTLE bit since it can be missing when failed: If the adapter was fully unresponsive the BTLE bit may be missing so we should still try to reset the adapter anyways since we already know they managed to set it up. - Try to lookup the adapter by mac address since the hci interface may have disappeared and we can’t reset an adapter we can no longer find.

Breaking Changes

  • The mac address must now be passed to recover_adapter

v0.5.5 (2022-12-09)

Bug Fixes

  • Handle BluetoothSocketError and fallback to usb reset (#25, 5d6d1c3)

v0.5.4 (2022-12-02)

Bug Fixes

  • Downgrade permission denied error logging when attempting usb reset (#24, 79cf457)

v0.5.3 (2022-11-29)

Bug Fixes

v0.5.2 (2022-11-27)

Bug Fixes

  • Ensure dbus wait always happens on success case (#22, df8e7e0)

v0.5.1 (2022-11-27)

Bug Fixes

v0.5.0 (2022-11-27)

Features

v0.4.0 (2022-11-16)

Features

  • Reduce overhead to find a response (#18, 219d3f7)

v0.3.6 (2022-10-19)

Bug Fixes

  • Soft_block and hard_block were unbound when rfkill fails (#15, 9d2aa1a)

v0.3.5 (2022-10-19)

Bug Fixes

  • Missing param in format string for rfkill timeout message (#13, 0022d8a)

v0.3.4 (2022-10-10)

Bug Fixes

  • Ensure management socket is closed on failure to prevent a leak (#12, 4ab673f)

I found this via dumb luck as I managed to knock a bluetooth adapter just out of the usb socket so it keeps disconnecting and reconnecting. Net results is a leak in python-btsocket which results in the bluetooth management socket not being closed if the stack doesn’t respond so it leaves it open when it tries to reset it and leaks. Worse is the leak builds up over time if it happens again and if you have a busy systems its processing all the data while waiting for a response.

Make BluetoothMGMTProtocol a context manger and an asyncio.Protocol to ensure if anything goes wrong the underlying bluetooth management socket gets closed.

v0.3.3 (2022-09-11)

Bug Fixes

  • Downgrade rfkill check logging to debug (#11, 80471e6)

v0.3.2 (2022-09-08)

Bug Fixes

  • Downgrade rfkill check logging to debug (#10, c7b9539)

v0.3.1 (2022-09-06)

Bug Fixes

  • Handle invalid data in rfkill (#9, 31c1480)

v0.3.0 (2022-08-30)

Features

  • Handle no permission to check rfkill (#8, fcda90d)

v0.2.2 (2022-08-20)

Bug Fixes

  • Give Dbus a bit more time to catch up if the adapter has been recovered (#7, 216ef1f)

v0.2.1 (2022-08-20)

Bug Fixes

  • Handle libc.so.6 missing (#6, 0d9f4cb)

  • Handle rfkill not being available in the container (#5, 7736c35)

v0.2.0 (2022-08-20)

Features

  • Give DBus some time to catch up to avoid spurious warnings (#4, 63188f6)

v0.1.0 (2022-08-19)

Chores

Features