Commit Graph

232 Commits (llm-task-pref)

Author SHA1 Message Date
Marc Mueller 10dfa91e54
Remove useless TypeVars (#117687) 2024-05-18 12:58:51 +02:00
J. Nick Koston 2b2b46c774
Bump habluetooth to 3.0.1 (#116663) 2024-05-03 12:15:51 +02:00
J. Nick Koston c07f02534b
Migrate bluetooth to use the singleton helper (#116629) 2024-05-02 19:35:16 -05:00
Erik Montnemery c9301850be
Reduce scope of bluetooth test fixtures (#116210) 2024-04-26 09:03:49 -05:00
J. Nick Koston bb2bd086bc
Add missing adapter data to Bluetooth config entry titles (#115930) 2024-04-23 21:52:55 +02:00
J. Nick Koston 1d6ae01baa
Handle Bluetooth adapters in a crashed state (#115790)
* Skip bluetooth discovery for Bluetooth adapters in a crashed state

* fixes

* fixes

* adjust

* coverage

* coverage

* fix race
2024-04-18 15:06:53 -05:00
J. Nick Koston 53c48537d7
Add bluetooth adapter model and manufacturer to config flow (#115780)
* Show bluetooth adapter model and manufacturer in config flow

If there are multiple adapters, it could be a bit difficult
to figure out which one is which

* Show bluetooth adapter model and manufacturer in config flow

If there are multiple adapters, it could be a bit difficult
to figure out which one is which

* reorder

* reorder

* names

* remove

* fix incomplete mocking

* more missing mocks
2024-04-18 10:39:32 -04:00
J. Nick Koston 98ed6e7fe5
Bump habluetooth to 2.7.0 (#115783) 2024-04-17 17:47:40 -05:00
J. Nick Koston 6dcfe861fd
Bump habluetooth to 2.5.2 (#115721) 2024-04-16 18:34:57 -05:00
Sid 5f055a64bb
Enable Ruff B017 (#115335) 2024-04-15 22:25:09 +02:00
Sid d61db732da
Enable Ruff SLOT rules (#115043) 2024-04-09 18:57:27 -10:00
epenet 0b01326f9f
Use is in ConfigEntryState enum comparison in tests (A-M) (#114925) 2024-04-05 17:16:55 +02:00
Joost Lekkerkerker 9b41e3d124
Use is in enum comparison in config flow tests A-E (#114669) 2024-04-02 11:22:05 -10:00
Joost Lekkerkerker 6bb4e7d62c
Bump ruff to 0.3.4 (#112690)
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-26 00:02:16 +01:00
Sid 27e844e3bf
Add ruff B005, B015, B032 and fix occurrences (#113543)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-15 17:48:37 -10:00
soonsouth cfc2f17f35
Remove repetitive words in comments and docstrings (#113529)
chore: remove repetitive words

Signed-off-by: soonsouth <cuibuwei@163.com>
2024-03-15 18:11:12 +01:00
J. Nick Koston c948392ebc
Make Bluetooth active coordinator debouncers run tasks in the background (#113129) 2024-03-12 07:43:43 -10:00
J. Nick Koston a2318c26c9
Run debouncer tasks eagerly to avoid scheduling on the event loop (#112789) 2024-03-10 08:37:10 -10:00
Marc Mueller aa16a9d707
Add empty line after module docstring (3) (#112750) 2024-03-08 20:38:34 +01:00
Marc Mueller 32f3f46542
Add empty line after module docstring (2) [tests.components] (#112737) 2024-03-08 19:16:21 +01:00
Marc Mueller 38adfbf1a3
Add empty line after module docstring [tests a-e] (#112708) 2024-03-08 08:50:25 -05:00
J. Nick Koston e25b097376
Import bluetooth in the executor to avoid blocking the event loop (#111596) 2024-02-27 07:05:39 -10:00
Marc Mueller 2ef2172b01
Convert test helpers to get hass instance to contextmanagers (#109990)
* Convert get_test_home_assistant helper to contextmanager

* Convert async_test_home_assistant helper to contextmanager

* Move timezone reset to async_test_home_assistant helper
2024-02-11 21:23:51 +01:00
Joost Lekkerkerker 6519b24319
Make bluetooth use naming from the entity description (#97401)
* Make bluetooth use the translation from the entity description

* Remove links to other platforms

* Remove links to other platforms

* Remove links to other platforms

* Add test

* Use is

* Fix test

* Update homeassistant/components/bluetooth/passive_update_processor.py

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

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-02-06 17:12:15 +01:00
Marc Mueller c82933175d
Use builtin TimeoutError [a-d] (#109678) 2024-02-05 11:31:33 +01:00
J. Nick Koston 8d4a1f475e
Bump habluetooth to 2.3.1 (#108628) 2024-01-21 18:39:17 -10:00
J. Nick Koston c399cab427
Small speed up to checking core state (#107845) 2024-01-18 08:41:32 -10:00
J. Nick Koston 07810926d0
Update habluetooth to 2.2.0 (#108000)
* Update habluetooth to 2.2.0

* fixes

* lib
2024-01-13 23:50:47 -05:00
J. Nick Koston ce11366b9c
Bump bluetooth deps (#107816) 2024-01-12 09:45:49 +01:00
J. Nick Koston efffbc08aa
Add support for bluetooth local name matchers shorter than 3 chars (#107411) 2024-01-07 18:25:56 -10:00
J. Nick Koston 0ccf8ffbc6
Bump habluetooth to 2.0.2 (#107097) 2024-01-04 02:45:47 -10:00
J. Nick Koston bfda3f1ba8
Bump habluetooth to 2.0.1 (#106750)
fixes switching scanners to quickly since the manager failed
to account for jitter in the auto discovered advertising interval

replaces and closes #96531

changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v2.0.0...v2.0.1
2023-12-31 06:44:55 -10:00
J. Nick Koston e50fe79911
Update habluetooth to 2.0.0 (#106145) 2023-12-20 20:37:39 -10:00
J. Nick Koston 5dbd0dede1
Refactor Bluetooth scanners to avoid the need to pass a callback (#105607) 2023-12-13 09:17:48 +01:00
J. Nick Koston f002a6a732
Refactor all Bluetooth scanners to inherit from BaseHaRemoteScanner (#105523) 2023-12-12 21:28:43 +01:00
J. Nick Koston e2abd3b8d0
Bump bluetooth libraries (#105522) 2023-12-12 08:31:23 +01:00
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 a528183556
Bump habluetooth to 0.8.0 (#105109) 2023-12-06 08:15:24 +01:00
J. Nick Koston 94d168e20e
Move Bluetooth advertisement tracker to habluetooth library (#105083) 2023-12-05 19:53:29 +01:00
J. Nick Koston b6245c834d
Move local bluetooth scanner code into habluetooth library (#104970) 2023-12-05 07:19:02 -10: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
Aarni Koskela 706add4a57
Switch formatting from black to ruff-format (#102893)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:38:59 +01:00
J. Nick Koston d3b4dd226b
Prevent Bluetooth reconnects from blocking shutdown (#104150) 2023-11-19 08:22:26 -06:00
Jan-Philipp Benecke 43915fbaf3
Add connections to PassiveBluetoothProcessorEntity (#102854) 2023-10-27 12:09:59 +02: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 b3bd34a024
Avoid dispatching same state to passive bluetooth entities (#102430) 2023-10-22 14:08:28 +02:00
J. Nick Koston f9dbddc884
Small cleanups to Bluetooth fallback intervals (#102440) 2023-10-21 10:06:49 -10:00
Raman Gupta 067b94899f
Move EVENT_LOGGING_CHANGED to constants (#100974)
* Move EVENT_LOGGING_CHANGED to constants

* fix test

* remove logger as dependency for bluetooth and fix test
2023-09-27 01:06:14 -04: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
Jc2k f0375eb97e
Expose bluetooth availability tracking interval controls to integrations (#100774) 2023-09-24 10:45:25 +02:00
J. Nick Koston 63273a307a
Fix Bluetooth passive update processor dispatching updates to unchanged entities (#99527)
* Fix passive update processor dispatching updates to unchanged entities

* adjust tests

* coverage

* fix

* Update homeassistant/components/bluetooth/update_coordinator.py
2023-09-04 20:42:05 -04:00
J. Nick Koston 3ebf96143a
Improve performance of bluetooth coordinators (#98997) 2023-08-25 10:31:43 +02:00
Erik Montnemery 045c327928
Move DeviceInfo from entity to device registry (#98149)
* Move DeviceInfo from entity to device registry

* Update integrations
2023-08-10 22:04:26 -04:00
J. Nick Koston 56257b7a38
Restore passive bluetooth entity data at startup (#97462) 2023-08-06 20:25:18 -10:00
J. Nick Koston 6ae79524bd
Add support for bleak 0.21 (#97212) 2023-07-25 19:30:54 +02:00
J. Nick Koston bc28d7f33e
Add slots to bluetooth manager (#95881) 2023-07-09 10:06:26 -10:00
Allen Porter 12129e9d21
Update service call return values and error handling (#94657)
* Update return signature of service calls

* Add timeout error handling in websocket api for service calls

* Update recorder tests to remove assertion on service call

* Remove timeout behavior and update callers that depend on it today

* Fix tests

* Add missing else

* await coro directly

* Fix more tests

* Update the intent task to use wait instead of timeout

* Remove script service call limits and limit constants

* Update tests that depend on service call limits

* Use wait instead of wait_for and add test

* Update homeassistant/helpers/intent.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-06-16 07:01:40 -07: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 17d1c0733d
Remove outdated HAOS check from bluetooth (#93809) 2023-05-30 19:41:51 +02:00
Marvin Wichmann 795ef075da
Restore original websocket commands for config entries (#93707)
Restore original websocket commands and add "config_entries/get_single"
2023-05-28 21:40:35 -04:00
Erik Montnemery b754f03eb1
Add WS command for getting a config entry (#93387)
* Add WS command for getting a config entry

* Update tests
2023-05-23 10:44:02 +02:00
J. Nick Koston f47f49c9a1
Reduce overhead to check bluetooth logging (#92512) 2023-05-07 01:30:54 +02: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
J. Nick Koston 90e92aa9d8
Add test case for matching the shelly button (#91642) 2023-04-19 11:26:21 -04:00
J. Nick Koston f8fa382ebc
Add test coverage for bluetooth devices being rediscoverable after they go unavailable (#91645)
* Fix bluetooth devices not being discovered after they go unavailable and reavailable

* Update homeassistant/components/bluetooth/manager.py
2023-04-19 11:25:38 -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 146a31163c
Use bluetooth address instead of uuid on MacOS (#89926) 2023-03-20 12:07:41 +01: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 1d1c553d9b
Avoid starting a bluetooth poll when Home Assistant is stopping (#88819)
* Avoid starting a bluetooth poll when Home Assistant is stopping

* tests
2023-02-26 22:02:52 -05:00
Franck Nijhof 6891eb7ed1
Add support for snapshot testing (#88323)
* Add support for snapshot testing

* Use snapshots in Elgato diagnostics test

* Use snapshots in Elgato sensor test

* Fix flake8 warning

* Slightly improve serialized output

* Remove snapshot naming in elgato sensor tests

* Improve snapshoting of via_device_id in device registry item

* Update pylint typehints plugin for snapshot fixture typing

* Use snapshots in Elgato configflow test

* Use snapshots in Bluetooth repair issue tests
2023-02-17 16:35:55 -05:00
J. Nick Koston 331102e592
Dismiss discoveries when the underlying device disappears (#88340)
* Implement discovery removals

Bluetooth, HomeKit, SSDP, and Zeroconf now implement
dismissing discoveries when the underlying discovered
device disappears

* cover

* add zeroconf test

* cover

* cover bluetooth

* fix rediscover
2023-02-17 15:51:19 -05:00
epenet a16e298599
Adjust json imports in tests (#88248) 2023-02-17 19:13:48 +01:00
epenet 1e352b60df
Add type hints to integration tests (part 11) (#87996) 2023-02-13 14:22:49 +01:00
J. Nick Koston 34e2751f14
Retrigger Bluetooth discovery when calling async_rediscover_address (#87884)
* Retrigger Bluetooth discovery when calling async_rediscover_address

* Retrigger Bluetooth discovery when calling async_rediscover_address

* tweak
2023-02-11 16:59:51 +01:00
epenet 0cf5e9fb4a
Add type hints to integration tests (part 2) (#87789)
* Add type hints to integration tests (part 2)

* typo

* Improve analytics

* Improve automation

* Imrpove bluetooth
2023-02-10 16:05:26 +01:00
J. Nick Koston 4cebc767b5
Give users a hint that their bluetooth adapter has been ignored (#87727) 2023-02-09 16:41:53 -06:00
epenet 807c69f621
Add type hints to integration tests (b-c) (#87698) 2023-02-08 18:08:43 +01:00
Franck Nijhof 5e81d28116
Update black to 23.1.0 (#87188) 2023-02-02 18:35:24 +01:00
Franck Nijhof 3b5fd4bd06
Enable Ruff TRY004 (#86811) 2023-01-30 14:06:52 +01:00
J. Nick Koston d0c7f42559
Fix Bluetooth discoveries missing between restarts (#86808)
* Fix Bluetooth discoveries missing between restarts

* do not load other integrations

* coverage
2023-01-27 22:16:16 -05:00
Marc Mueller 4f87c1f30f
Update pre-commit-config [Py310] (#86415) 2023-01-23 09:59:44 +01:00
Franck Nijhof 24fdd588fd
Code styling tweaks to the tests - Part 1 (#86192) 2023-01-20 13:52:46 +01:00
Aarni Koskela 40d39a15c9
Fix stray string literal in bluetooth test wrapper (#86228) 2023-01-19 14:53:43 +01:00
Michael 2850583085
Replace the usage of unit constants by enumerations in Tests [a-e] (#85932) 2023-01-15 14:44:01 +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
J. Nick Koston 8c70e5aaad
Try the next best adapter after a BLE connection fails (#84512)
* Try the next best adapter after a BLE connection fails

* add cover

* tweak

* tweak

* Update homeassistant/components/bluetooth/wrappers.py

* bump

* small tweak

* tweak logic
2022-12-23 20:48:47 -05: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 53363cf7e8
Implement an active update coordinator for polling ble devices that get data from both advertisements and active connections (#84207) 2022-12-19 16:09:29 -10:00
J. Nick Koston bb3feceb57
Fix connectable Bluetooth devices not going available after scanner recovers (#84172) 2022-12-19 13:37:29 +01:00
J. Nick Koston 9f10bd46ac
Rename Bluetooth active_update_coordinator to active_update_processor (#84115) 2022-12-16 22:25:43 -10: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
Erik Montnemery c4afc33fc5
Add abc.ABC to classes with abstract methods (#83546) 2022-12-08 17:50:36 +01:00
J. Nick Koston 955d4abf13
Fix missing services with esp32 proxies (#83192) 2022-12-03 13:50:59 -05:00
J. Nick Koston a28214caec
Fix bluetooth remote connections not picking the best path (#82957) 2022-11-29 19:56:31 -10: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 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