Commit Graph

180 Commits

Author SHA1 Message Date
J. Nick Koston e7d27e307e
Refactor client class to split callback conversion functions into their own module (#675) 2023-11-23 11:23:51 -06:00
J. Nick Koston 174fb8284b
Refactor state and service response converter to prepare to relocate code (#674) 2023-11-23 11:06:42 -06:00
J. Nick Koston 0347302222
Add coverage for bluetooth connection free responses (#673) 2023-11-23 10:49:24 -06:00
J. Nick Koston 96781616b8
Fix unbound variable in bluetooth logging when connection fails (#672) 2023-11-23 10:38:35 -06:00
J. Nick Koston 250f786c38
Add benchmarks for calling back bluetooth packets (#671) 2023-11-23 10:34:11 -06:00
J. Nick Koston 33966938f2
Add coverage for bluetooth advertising (#670) 2023-11-23 10:20:56 -06:00
J. Nick Koston 1cc6b3ed52
Fix missed GATT notify if the device responds immediately after subscribe (#669) 2023-11-23 09:46:56 -06:00
J. Nick Koston 70a670f2b2
Rename internal client connection get function to _get_connection (#661) 2023-11-22 22:32:22 +01:00
J. Nick Koston ac43747196
Refactor connection checks to return APIConnection to avoid many asserts (#660) 2023-11-22 22:22:10 +01:00
J. Nick Koston 77a7c5eaf4
Guard client connection asserts with if TYPE_CHECKING (#659) 2023-11-22 21:54:01 +01:00
J. Nick Koston d8cace0b26
Reduce duplication in bluetooth gatt read code (#657) 2023-11-21 23:24:54 +01:00
J. Nick Koston 298aa01b00
Small cleanups to connection (#648) 2023-11-21 13:08:48 +01:00
J. Nick Koston b12903e2e7
Refactor zeroconf code to avoid creating instances when one is unneeded (#643) 2023-11-17 13:11:36 -06:00
J. Nick Koston c1a0500ecb
Update some legacy python code to python 3.9 (#635) 2023-11-11 14:19:04 -06:00
J. Nick Koston b227f79dad
Refactor bluetooth client functions to reduce duplicate code (#629) 2023-11-10 17:14:00 -06:00
J. Nick Koston a15b96c76b
Send hello and login asynchronously to speed up connecting (#628) 2023-11-09 19:17:53 -06:00
J. Nick Koston ef9f9bf136
Ensure an empty noise_psk or expected_name is treated as None (#623) 2023-11-08 18:00:28 -06:00
J. Nick Koston 7ac7742c91
Ensure passed params are always a str (#622) 2023-11-08 17:26:51 -06:00
Daniel Dunn 5a8c0d8e23
Updated fork of PR for Text input components (#532)
Co-authored-by: Maurits <maurits@vloop.nl>
Co-authored-by: Daniel Dunn <dannydunn@eternityforest.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-10-25 15:35:04 +13:00
J. Nick Koston f34bfb5d1c
Simplify raw ble advertisements callbacks (#594) 2023-10-20 17:34:05 -10:00
J. Nick Koston d950d90245
Improve consistency of name logging (#577) 2023-10-14 17:04:27 -10:00
J. Nick Koston b7449d4ded
Split connection process to enable faster reconnects (#576) 2023-10-14 16:03:12 -10:00
Jesse Hills a17dc3c380
Add voice assistant audio settings (#556) 2023-09-27 08:34:07 +13:00
J. Nick Koston 11a19438cb
Avoid a few calls to fetch loop time (#533) 2023-09-04 12:56:23 -05:00
J. Nick Koston 4c992365e0
Increase default bluetooth disconnect timeout to 20s (#528) 2023-09-03 08:28:39 -05:00
J. Nick Koston eebc7d99f2
Make entity info and state mappings constants (#523) 2023-08-15 22:19:46 -05:00
Jesse Hills 2c7b2ed1a0
Add wake word capability to voice assistant (#519) 2023-08-10 16:03:15 +12:00
J. Nick Koston 90cb44224a
Reduce memory churn by avoiding reprocessing BluetoothLERawAdvertisement (#507) 2023-07-27 08:17:40 -05:00
J. Nick Koston 3432477c20
Avoid some data Bluetooth data conversions (#501) 2023-07-21 03:33:07 -05:00
J. Nick Koston 82ab7e489d
Add messages to all task cancels (#497) 2023-07-19 15:37:59 -05:00
J. Nick Koston d63b9bbf5d
Upgrade python code to 3.9 (#496) 2023-07-19 15:33:28 -05:00
J. Nick Koston 2d89b9e267
Cleanup bluetooth connection failure code (#495) 2023-07-19 14:25:32 -05:00
J. Nick Koston 541ce059c0
Add slots to all models when using py3.10 or later (#459) 2023-07-18 17:23:07 -05:00
J. Nick Koston 8060c3c99d
Small speed up to bluetooth message wrapper (#490) 2023-07-18 14:11:06 -05:00
J. Nick Koston 92ec96469d
Remove memoryview wrapping for cameras (#484) 2023-07-17 09:47:06 -10:00
J. Nick Koston 6aeea79884
Speed up BLE connections (#482) 2023-07-15 11:16:44 -10:00
J. Nick Koston ed0a611994
Improve error reporting for authenticated vs non-authenticated requests (#481) 2023-07-15 10:34:46 -10:00
J. Nick Koston 9112a68bf9
Guard a few frequently called instance checks with if TYPE_CHECKING (#469) 2023-07-15 07:55:07 -10:00
J. Nick Koston 8ac62a321f
Improve performance of converting raw BLE advertisements (#462) 2023-07-09 13:06:06 -10:00
J. Nick Koston d53ab5d5bb
Use memoryview for camera images (#456) 2023-07-03 18:26:52 -05:00
J. Nick Koston 34f6badcde
Use slots for APIConnection and APIClient (#453) 2023-07-01 16:31:58 -05:00
Graham Brown a79da42aaf
Add support for alarm_control_panel entities (#427) 2023-06-12 10:39:49 +12:00
Jesse Hills 44f0b8027d
Add raw ble advertisements support (#439)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-06-07 00:42:57 -05:00
Jesse Hills 8340d2a6b8
Add use_vad flag to VA start request (#438) 2023-05-30 14:17:55 +12:00
Jesse Hills b1bfabacc7
Add conversation_id to VA start request (#437) 2023-05-30 11:18:28 +12:00
J. Nick Koston 7b8ed9fd03
Fix BLE connection timing out on failure instead of raising (#429) 2023-05-07 09:05:51 -05:00
J. Nick Koston de9b7266f1
Refactor reconnect logic to reduce complexity (#426) 2023-04-25 16:11:40 -04:00
J. Nick Koston 3f29ac92ad
Hold strong references to voice assistant tasks (#424) 2023-04-20 14:30:28 -10:00
Jesse Hills 15846c5896
Add initial voice assistant support (#412) 2023-04-11 15:57:35 +12:00
Jesse Hills d7ae431c59
Disable pylint too-many-lines (#413) 2023-04-03 16:53:43 +12:00
J. Nick Koston d6fd9b6cfd
Add the ability to clear the cache to the API (#410)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-03-27 10:47:21 +13:00
richardhopton 4bb8fbbed1
feat: Unsubscribe from BLE advertisements fully on unsub (#409) 2023-03-27 09:35:11 +13:00
Fredrik Gustafsson 2041d747cb
add pairing methods (#390) 2023-03-07 07:07:58 +13:00
J. Nick Koston 0327f75414
Adjust ping timeout to prevent premature disconnections (#395) 2023-03-05 18:56:22 -10:00
J. Nick Koston 51d581dd9c
Cooldown before reconnecting on expected disconnect (#397) 2023-03-05 18:54:54 -10:00
Fredrik Gustafsson 3e60332a71
Fix bluetooth_device_connect returning prematurely from a disconnect (#391) 2023-02-24 08:31:24 -06:00
J. Nick Koston f99db3577c
Remove useless on_msg function in subscribe_logs (#380) 2023-02-13 11:42:14 +13:00
J. Nick Koston 284b767d8d
Refactor cleanup to be a normal function (#355) 2023-01-06 21:42:39 -05:00
J. Nick Koston 2886d361f0
Simplify connection flow with an asyncio.Protocol (#352) 2023-01-05 23:24:10 -05:00
J. Nick Koston 049dc8bb56
Speed up parsing/conversion of BluetoothLEAdvertisement (#353) 2023-01-05 21:23:40 -05:00
J. Nick Koston b34664e44c
Fix failure to reconnect when the process task raises an exception during decoding a protobuf message (#339) 2022-12-13 10:31:12 -10:00
J. Nick Koston 577868a84c
Add method to cancel bluetooth_gatt_start_notify upon ble device disconnect (#329) 2022-12-02 09:51:03 -10:00
J. Nick Koston de5cdfa230
Callback messages to listeners by type (#328) 2022-12-02 09:36:58 -10:00
J. Nick Koston 4f7a1faddd
Fix bluetooth write without response (#326) 2022-12-01 11:36:58 +13:00
J. Nick Koston a937d9d85a
Add address_type to BluetoothLEAdvertisementResponse and BluetoothDeviceRequest (#320) 2022-11-29 17:00:27 +13:00
J. Nick Koston e3094db6ad
Active BLE connection v3 (#317) 2022-11-29 15:06:13 +13:00
Jesse Hills c3d610e45a
Increase timeout while waiting for ListEntities to be done (#318) 2022-11-28 23:07:58 +13:00
J. Nick Koston ac303e8986
Fix connection subscription leak on cancelation (#316) 2022-11-28 23:06:06 +13:00
J. Nick Koston 14a2e30ec3
Wait for BLE disconnect when connecting timeouts (#310) 2022-11-23 07:32:04 +13:00
J. Nick Koston dbfff4397e
Fix BLE writes timing out (#298) 2022-11-07 08:32:32 +13:00
J. Nick Koston c6e824e778
Improve bluetooth error reporting (#297)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-11-01 09:32:40 +13:00
Jesse Hills c7edc2e601
Raise GATT errors on read and write etc (#272)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-31 11:38:24 +13:00
J. Nick Koston cb6b1595b7
Fix race while disconnecting after connect timeout (#295) 2022-10-31 11:26:09 +13:00
J. Nick Koston 56cceea672
Disconnect ble device if connect attempt fails to recover slot (#293) 2022-10-31 09:09:01 +13:00
J. Nick Koston 745e0b688e
Adjust ble timeouts to be longer than bleak timeouts (#287) 2022-10-25 16:12:52 +13:00
Jesse Hills a6f18ae9df
Only try remove callbacks when not None (#268) 2022-10-03 12:32:13 +13:00
Jesse Hills 45d727cc03
A few fixes for BLE GATT (#261) 2022-09-30 07:25:18 +13:00
Jesse Hills 6a82766553
Add Bluetooth GATT calls (#259) 2022-09-28 12:50:37 -04:00
Jesse Hills 1273d689f1
Implement Bluetooth LE advertisement receiving (#246) 2022-08-22 15:27:46 +12:00
Suryandaru Triandana 5831eb5f2a
Increase ListEntitiesRequest timeout to 30 seconds (#234) 2022-07-07 11:39:01 +12:00
Jesse Hills fcd529bb32
Add media player entities (#214) 2022-05-18 13:28:40 +12:00
Otto Winter 9964034f18
Expect a name for connections (#122)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-01-20 12:03:36 +01:00
Keilin Bickar d0d1e526f5
Add lock entity (#158) 2022-01-11 14:29:19 +13:00
Jesse Hills dcad9cdcb7
Add support for Button entities (#143) 2021-11-29 13:59:23 +13:00
Otto Winter ca3a14b1bc
Fix connect login 2 (#128) 2021-10-21 19:24:03 +02:00
Otto Winter 3b8b2d9d66
Fix login error cleanup (#126) 2021-10-21 19:20:05 +02:00
Otto Winter f3aaf0391d
Remove eventloop parameter (#110) 2021-10-13 10:15:30 +02:00
Otto Winter 5b99d5c1dd
Refactor connection class to resolve connect issues (#108) 2021-10-04 12:12:43 +02:00
Otto Winter 5c9e7acbce
Emit different Exception types to differentiate between connection errors (#102)
* Emit different Exception types to differentiate between connection errors

* Import in init
2021-09-14 12:44:52 +02:00
Jesse Hills 2350ac78b7
Add support for siren entities (#97) 2021-09-09 13:11:51 +12:00
Otto Winter 015e9c8d5e
Add noise API transport support (#100) 2021-09-09 09:12:07 +12:00
Otto Winter 6f131f4bf6
Switch light colormode to be bitfields instead of enums (#95) 2021-08-25 13:45:28 +02:00
Oxan van Leeuwen 32d2df8e24
Color mode implementation (#74)
Co-authored-by: Otto Winter <otto@otto-winter.com>
2021-07-29 19:16:25 +02:00
Jesse Hills 551a1acd0d
Add select entities (#75) 2021-07-27 06:51:12 +12:00
Otto Winter 3a7a47f649
Add pytest unit testing (#64) 2021-07-12 20:09:17 +02:00
Otto Winter 33e49a19b5
Fix camera not merging packets (#63) 2021-07-09 09:19:39 +02:00
Otto Winter ff10a20bce
Add reconnect logic class (#54) 2021-06-30 17:10:30 +02:00
Otto Winter 0ac14489c8
Implement PEP561 typing support (#55) 2021-06-30 17:05:44 +02:00
Otto Winter 2629e8d86c
Update host_resolve for zeroconf 0.32.0 (#52) 2021-06-30 17:00:22 +02:00
Otto Winter 872c643058
Switch from attrs to dataclasses (#36) 2021-06-29 15:36:14 +02:00