Commit Graph

50 Commits

Author SHA1 Message Date
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
J. Nick Koston
fde3489e86 Relocate BluetoothServiceInfo to helpers.service_info (#75195) 2022-07-14 11:36:54 -07:00
J. Nick Koston
c2fefe03b2 Add support for subscribing to bluetooth callbacks by address (#74773) 2022-07-11 08:14:00 -07:00
J. Nick Koston
a697672944 Add bluetooth integration (#74653)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-07-08 18:55:31 -05:00