Commit Graph

53 Commits (9cd48b4999deffdf143452dcbb9fa662a576c128)

Author SHA1 Message Date
David Buezas 112b2c22f7
Expose async_scanner_devices_by_address from the bluetooth api (#83733)
Co-authored-by: J. Nick Koston <nick@koston.org>
fixes undefined
2023-01-08 14:06:32 -10:00
J. Nick Koston 070aa714a0
Switch to a different local Bluetooth adapter when one runs out of connection slots (#84331) 2022-12-23 08:58:33 -10:00
J. Nick Koston 9008006ac8
Restore remote discovered devices between remote scanner restarts (#83699) 2022-12-11 09:02:55 -10:00
J. Nick Koston d6e287f47a
Add manufacturer and model to bluetooth adapter device (#82769)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2022-11-27 15:44:44 -05:00
J. Nick Koston a7caa038be
Accept advertisements from alternate scanners when a scanner stops scanning (#82448) 2022-11-21 21:23:07 -05:00
J. Nick Koston 3f5649092e
Break out bluetooth apis into api.py (#82416)
* Break out bluetooth apis into api.py

Like #82291 this is not a functional change.

* cleanups
2022-11-20 12:33:03 -05:00
J. Nick Koston 7801cd96de
Split bluetooth models into base_scanner and wrappers (#82291) 2022-11-20 08:44:28 -06:00
J. Nick Koston 47c66dbed4
Offload platform specific bluetooth code to bluetooth-adapters (#82196)
* Offload platform specific bluetooth code to bluetooth-adapters

* adjust

* fix some more patch targets

* more test fixes

* almost there

* may not be setup yet

* more fixes

* fixes

* fix test

* fix merge
2022-11-17 14:34:19 -05:00
J. Nick Koston f584efa0c2
Move bluetooth remote scanner implementation into a base class (#82012) 2022-11-13 14:18:36 -06:00
J. Nick Koston 89959e7cda
Reduce complexity of bluetooth scanners for local adapters (#81940)
This is a small refactor to align the bluetooth scanner class
to the same design used in the esphome scanner to pass the
callback for new service infos in the constructor.

The original thinking was that multiple callbacks would
be needed to send the service infos to different paths,
however with the creation of a central manager, this
designed turned out to not be needed and can be
simplified
2022-11-11 14:59:06 +01:00
J. Nick Koston 78180b2ad8
Fix bluetooth adapters with missing firmware patch files not being discovered (#81926) 2022-11-10 14:14:37 -06:00
J. Nick Koston 0c76e3a97e
Automatically determine the advertising interval for bluetooth devices (#79669) 2022-10-14 14:39:18 -04:00
J. Nick Koston 2768b2445a
Remove call to deprecated bleak register_detection_callback (#79558) 2022-10-03 21:15:09 -04:00
J. Nick Koston 1b144c0e4d
Update to bleak 0.18.0 (#79008) 2022-09-23 15:09:28 -10:00
J. Nick Koston 12856dea05
Create an issue when Bluetooth is active on old HAOS (#78430)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-09-19 21:02:13 -04:00
J. Nick Koston 18eef5da1f
Restore history from bluetooth stack at startup (#78612) 2022-09-17 16:58:19 -05:00
J. Nick Koston 085abc74ee
Reduce overhead to update passive bluetooth devices (#78545) 2022-09-16 12:24:20 +02:00
J. Nick Koston 40e8979951
Add bluetooth api to get the count of connectable and non-connectable scanners (#77427) 2022-08-29 10:21:30 -04:00
J. Nick Koston 61d5ed1dcf
Index bluetooth matchers to resolve performance concerns with many adapters/remotes (#77372) 2022-08-26 23:07:51 -04:00
J. Nick Koston d1486d04d9
Add support for bleak passive scanning on linux (#75542) 2022-08-24 12:17:28 -05:00
J. Nick Koston c76dec138a
Discover new bluetooth adapters when they are plugged in (#77006) 2022-08-22 15:45:08 -10:00
J. Nick Koston 3938015c93
Add support for scanners that do not provide connectable devices (#77132) 2022-08-22 14:02:26 -04:00
J. Nick Koston ced8278e32
Auto recover when the Bluetooth adapter stops responding (#77043) 2022-08-20 11:58:14 -10:00
J. Nick Koston 18246bb8c8
Improve bluetooth logging when there are multiple adapters (#77007) 2022-08-20 13:22:42 -04:00
J. Nick Koston cd59d3ab81
Add support for multiple Bluetooth adapters (#76963) 2022-08-18 21:41:07 -04:00
J. Nick Koston 3bcc274dfa
Rework bluetooth to support scans from multiple sources (#76900) 2022-08-17 10:51:56 -10:00
J. Nick Koston 6f3cdb6db1
Reorganize bluetooth integration to prepare for remote and multi-adapter support (#76883) 2022-08-16 14:52:53 -10:00
J. Nick Koston 4890785299
Fix bluetooth callback registration not surviving a reload (#76817) 2022-08-15 10:19:37 -10:00
J. Nick Koston eeb9a9f058
Make sure all discovery flows are using the helper (#76641) 2022-08-12 09:25:23 -04:00
J. Nick Koston 1fe44d0997
Ensure bluetooth recovers if Dbus gets restarted (#76249) 2022-08-07 11:03:56 -04:00
Joakim Plate cdde4f9925
Add bluetooth API to allow rediscovery of address (#76005)
* Add API to allow rediscovery of domains

* Switch to clearing per device

* Drop unneded change
2022-08-05 14:49:34 +02:00
J. Nick Koston 5d7cef6416
Fix race in bluetooth async_process_advertisements (#76176) 2022-08-04 17:58:15 +02:00
J. Nick Koston bf931f1225
Handle additional bluetooth start exceptions (#76096) 2022-08-02 13:46:43 -10:00
J. Nick Koston 56050e9fbe
Lower bluetooth startup timeout to 9s to avoid warning (#76050) 2022-08-02 08:46:22 +02:00
Franck Nijhof fc399f21e9
Guard imports for type hinting in Bluetooth (#75984) 2022-08-01 17:54:06 +02:00
J. Nick Koston 80a9659524
Update to bleak 0.15 (#75941) 2022-07-29 17:53:33 -07:00
J. Nick Koston 702cef3fc7
Add startup timeout to bluetooth (#75848)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-07-28 11:14:13 -10:00
Jc2k 10356b9379
Fix Xiaomi BLE not detecting encryption for some devices (#75851) 2022-07-28 19:10:37 +01:00
J. Nick Koston a813cf987b
Add bluetooth options flow to pick the adapter (#75701) 2022-07-25 16:52:35 +02:00
J. Nick Koston 22ca28b93d
Ensure bluetooth can be reloaded when hot plugging a bluetooth adapter (#75699) 2022-07-24 19:23:23 -05:00
J. Nick Koston bbb9443b00
Fix bluetooth integration matching with service_data_uuids and service_uuids (#75687)
* Fix bluetooth integration with service_data and service_uuids

We would only dispatch a new flow when the address was seen for
the first time or the manufacturer_data appeared in a followup
advertisement. Its also possible for the service_data and
service_uuids to appear in a followup advertisement so we
need to track these as well

* improve logging to avoid overly large messages

* improve logging to avoid overly large messages

* adjust

* adjsut

* split

* coverage

* coverage

* coverage

* coverage

* fix matcher

* more coverage

* more coverage

* more coverage

* revert switchbot changes and move to seperate PR
2022-07-24 16:39:53 -05:00
J. Nick Koston 240bbfa080
Retry later if bluetooth fails to start (#75647) 2022-07-23 12:00:34 -05:00
J. Nick Koston 326e05dcf1
Fix async_get_scanner to return the correct bluetooth scanner (#75637) 2022-07-22 18:12:08 -05:00
J. Nick Koston 38bccadaa6
Add support for setting up and removing bluetooth in the UI (#75600)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-07-22 13:19:53 -05:00
J. Nick Koston 90ca3fe350
Improve availability tracking and coordinator setup in bluetooth (#75582) 2022-07-21 19:16:45 -05:00
Marc Mueller 51ed9ee59d
Fix bluetooth service_info typing (#75477)
* Fix bluetooth service_info typing

* Remove additional type ignores

* Remove pylint disable
2022-07-20 05:46:18 +02:00
J. Nick Koston 0f81d1d14a
Drop RSSI update workaround from bluetooth on linux (#75467)
It turns out we do not need these are we can check the discovered
device list to see if bluez is still seeing the device
2022-07-20 04:14:31 +02:00
J. Nick Koston 41e4b38c3a
Add device and advertisement to BluetoothServiceInfoBleak (#75381) 2022-07-18 17:58:08 -05:00
J. Nick Koston 91f2550bc3
Change manufacturer_data_first_byte to manufacturer_data_start (#75379) 2022-07-17 17:25:45 -05:00
J. Nick Koston ecc219fbc1
Include the source in the bluetooth service info (#75112) 2022-07-16 11:02:08 -05:00