Commit graph

33 commits

Author SHA1 Message Date
J. Nick Koston
e890671192
Relocate Bluetooth manager to habluetooth library (#105110)
* Relocate Bluetooth manager to habluetooth library

* Relocate Bluetooth manager to habluetooth library

* Relocate Bluetooth manager to habluetooth library

* fixes

* fix patching time

* fix more tests

* fix more tests

* split

* Bump habluetooth to 0.7.0

changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v0.6.1...v0.7.0

This is the big change that will move the manager so the HA
PR that will follow this will be a bit larger than the rest of them
since the manager is connected to everything

* fix types

* fix types

* fix types

* fix patch targets

* fix flakey logbook tests (will need another PR)

* mock shutdown

* bump again

* value can be a float now

* Revert "value can be a float now"

This reverts commit b7e7127143.

* float
2023-12-11 15:42:00 -05:00
J. Nick Koston
28584ad240
Relocate base Bluetooth scanner code into an external library (#104930) 2023-12-03 10:00:11 -10:00
J. Nick Koston
dd9c22672a
Refactor bluetooth scanners for better seperation of concerns (#104909) 2023-12-02 13:20:06 -10:00
J. Nick Koston
a3dd2b8ea9
Migrate to using faster monotonic_time_coarse from bluetooth-data-tools (#104882) 2023-12-01 10:57:09 -10:00
J. Nick Koston
e7cec9b148
Small speed up to constructing Bluetooth service_uuids (#104193) 2023-11-19 08:14:55 -06:00
Erik Montnemery
64f0ea60d1
Correct logic for picking bluetooth local name (#102823)
* Correct logic for picking bluetooth local name

* make test more robust

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-10-25 18:08:31 -05:00
J. Nick Koston
667f4b1ca8
Mark Bluetooth scanner as not scanning when watchdog timeout is reached (#100738) 2023-09-26 05:29:46 -05:00
J. Nick Koston
e8397063d3
Optimize bluetooth base scanners for python3.11+ (#96165) 2023-07-09 12:56:33 -10:00
J. Nick Koston
2a5ffa9a5b
Fix timestamps for bluetooth scanners that bundle advertisements (#94511)
#94138 added support for raw/bundled advertisements. We should use the
same monotonic time for all advertisements in the bundle if not time
is passed, or calculate the timestamp and pass it if its known
2023-06-14 21:47:00 -04:00
J. Nick Koston
6b931b208f
Small cleanups to bluetooth internals (#92045)
* Small cleanups to bluetooth internals

Improve the performance of _async_on_advertisement

Fixes

```
tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available
tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
  /Users/bdraco/home-assistant/homeassistant/components/bluetooth/wrappers.py:226: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead.
    self._backend.set_disconnected_callback(

tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
  /Users/bdraco/home-assistant/tests/components/bluetooth/test_models.py:506: FutureWarning: BLEDevice.metadata is deprecated and will be removed in a future version of Bleak, use AdvertisementData instead
    switchbot_proxy_device_no_connection_slot.metadata["delegate"] = 0

tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
  /Users/bdraco/home-assistant/tests/components/bluetooth/test_models.py:521: FutureWarning: BLEDevice.metadata is deprecated and will be removed in a future version of Bleak, use AdvertisementData instead
    switchbot_proxy_device_has_connection_slot.metadata["delegate"] = 0

tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
  /Users/bdraco/home-assistant/tests/components/bluetooth/test_models.py:535: FutureWarning: BLEDevice.metadata is deprecated and will be removed in a future version of Bleak, use AdvertisementData instead
    switchbot_device.metadata["delegate"] = 0

```

* put back kwargs
2023-04-26 11:16:34 +02:00
rlippmann
f5911bcad6
Add slots to dataclasses in default_config (#91410)
* add dataclass slots to default config items

* remove slots from sun mixing
2023-04-14 14:22:39 -04:00
epenet
c01b1eb013
Adjust async_track_time_interval name argument (#90838)
Adjust async_track_time_interval naming
2023-04-05 10:58:02 -04:00
J. Nick Koston
7cf1926081
Fix BLEDevice not getting updated when details change for remote scanners (#90815) 2023-04-05 12:19:37 +02:00
J. Nick Koston
02ef7d445d
Allow passing an optional name to async_track_time_interval (#90244)
* Allow passing an optional name to async_track_time_interval

This is the same idea as passing a name to asyncio.create_task which
makes it easier to track down bugs

* more

* short

* still cannot find it

* add a few more

* test
2023-03-25 10:11:14 -04:00
J. Nick Koston
c3043fb0ee
Bump bluetooth deps for bleak 0.20 (#89925)
Co-authored-by: K <z@kwi.li>
2023-03-20 12:06:15 +01:00
J. Nick Koston
5374c70c97
Fix bluetooth history and device expire running in the executor (#89342) 2023-03-08 15:27:34 +01:00
Felix T
42a4dd98f1
Use fallback advertising interval for non-connectable Bluetooth devices (#85701)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-01-11 12:11:25 -10:00
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
Franck Nijhof
487782a6d1
Code styling tweaks to Bluetooth (#85448)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-01-08 11:20:02 -10:00
J. Nick Koston
1fbdb80430
Avoid some data merges in the bluetooth remote scanners when nothing has changed (#85270) 2023-01-05 15:22:14 -10:00
Aarni Koskela
7440c34901
Allow None connector for BaseHaRemoteScanner (#84847) 2022-12-30 06:49:37 -10:00
J. Nick Koston
94d1375be3
Avoid creating a task in the bluetooth watchdog when everything is OK (#84669) 2022-12-27 16:00:24 -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
Franck Nijhof
b0cee0bc46
String formatting and max line length - Part 1 (#84390)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-12-22 10:12:50 +01:00
J. Nick Koston
0e2ebfe5c4
Move bluetooth watchdog into the scanner base class (#83888) 2022-12-13 11:57:40 -10:00
J. Nick Koston
80a8d5443d
Improve remote bluetooth scanner diagnostics and add missing test cover (#83796) 2022-12-11 21:33:30 -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
09f9bb05dc
Add bluetooth diagnostics to shelly (#83438)
* Add bluetooth diagnostics to shelly

* Add tests

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-12-09 10:55:10 -05:00
Erik Montnemery
c4afc33fc5
Add abc.ABC to classes with abstract methods (#83546) 2022-12-08 17:50:36 +01:00
J. Nick Koston
46b18367f7
Send back BLE address type when connecting via esphome proxies (#82890) 2022-11-28 18:54:53 -10:00
J. Nick Koston
f0ae1cc6ce
Add bluetooth diagnostics to esphome (#82761) 2022-11-27 14:59:37 -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
7801cd96de
Split bluetooth models into base_scanner and wrappers (#82291) 2022-11-20 08:44:28 -06:00