[WIP] Big, big refactor of the Bluetooth integration.

- Merged together Bluetooth legacy and BLE plugins and scanners.
- Introduced Theengs as a dependency to infer BLE device types and
  create sub-entities appropriately.
- Using `BluetoothDevice` and `BluetoothService` entities as the bread
  and butter for all the Bluetooth plugin's components.
- Using a shared cache of devices and services between the legacy and
  BLE integrations, with merging/coalescing logic included.
- Extended list of discoverable services to include all those officially
  supported by the Bluetooth specs.
- Instantiate a separate pool of workers to discover services.
- Refactor of the Bluetooth events - all of them are now instantiated
  from a single `BluetoothDevice` object.
This commit is contained in:
Fabio Manganiello 2023-03-13 02:31:21 +01:00
parent 4bc61133c5
commit 2411b961e8
Signed by untrusted user: blacklight
GPG key ID: D90FBA7F76362774
46 changed files with 2762 additions and 1672 deletions

View file

@ -177,8 +177,9 @@ setup(
'bluetooth': [
'bleak',
'bluetooth-numbers',
'pybluez',
'pyobex @ https://github.com/BlackLight/PyOBEX/tarball/master',
'pybluez @ https://github.com/pybluez/pybluez/tarball/master',
'PyOBEX @ https://github.com/BlackLight/PyOBEX/tarball/master',
'TheengsGateway @ https://github.com/theengs/gateway/tarball/development',
],
# Support for TP-Link devices
'tplink': ['pyHS100'],