Commit Graph

353 Commits

Author SHA1 Message Date
J. Nick Koston
223eb23c05
Increase expected disconnect cooldown to 5.0 seconds (#540) 2023-09-05 19:22:13 -05:00
J. Nick Koston
e0c4530dd8
Add additional connection logging (#539) 2023-09-05 19:21:55 -05:00
J. Nick Koston
ca254f150c
Fix zeroconf listener being removed from zeroconf callback (#538) 2023-09-05 18:22:00 -05: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
fee26d5387
Speed up zeroconf reconnect logic (#531) 2023-08-29 08:02:53 -05:00
Jesse Hills
55d112c89e
Add new VA event types (#529) 2023-08-28 09:35:18 +12:00
J. Nick Koston
81dad013d5
Cache uuid conversions (#524) 2023-08-16 00:10:11 -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
3bb2c085e6
Increase SO_RCVBUF to 2MiB to reduce chance of ESP32 cam disconnects (#515) 2023-07-27 08:47:01 -05:00
J. Nick Koston
8acefd1d05
Fix BadNameAPIError to include the expected name (#514) 2023-07-27 08:37:31 -05:00
J. Nick Koston
b9ec1d0bc5
Remove impossible check in send_message_await_response (#513) 2023-07-27 08:32:30 -05:00
J. Nick Koston
48b56ad25c
Fix not trying to disconnect cleanly on forced disconnect (#512) 2023-07-27 08:28:14 -05:00
J. Nick Koston
762d00faff
Fix failed disconnect requests not being logged (#511) 2023-07-27 08:25:46 -05:00
J. Nick Koston
90cb44224a
Reduce memory churn by avoiding reprocessing BluetoothLERawAdvertisement (#507) 2023-07-27 08:17:40 -05:00
J. Nick Koston
2df4effef3
Reduce overhead to process packets (#503) 2023-07-21 04:37:17 -05:00
J. Nick Koston
3432477c20
Avoid some data Bluetooth data conversions (#501) 2023-07-21 03:33:07 -05:00
J. Nick Koston
49d86f940e
Refactor frame helpers to share more code (#500) 2023-07-21 03:11:04 -05:00
J. Nick Koston
589235c79d
Fix api calls not raising until timeout when the ESPHome device disconnects while waiting for a response (#498) 2023-07-20 12:01:57 -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
65e659e4a5
Split _frame_helper into plain_text and noise (#491) 2023-07-18 14:28:56 -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
7b215038f7
Cleanup connection send_message from earlier refactoring (#488) 2023-07-18 13:15:56 -05:00
J. Nick Koston
401ff3b61a
Reduce ChaCha20CipherReuseable overhead (#489) 2023-07-18 13:06:19 -05:00
J. Nick Koston
7196ca6ee8
Speed up encrypted handshake (#487) 2023-07-17 14:51:47 -10:00
J. Nick Koston
ab3c096c9b
Speed up noise handshake (#486) 2023-07-17 14:13:58 -10:00
J. Nick Koston
0c1f710869
Cleanups to connect process (#485) 2023-07-17 10:11:34 -10:00
J. Nick Koston
92ec96469d
Remove memoryview wrapping for cameras (#484) 2023-07-17 09:47:06 -10:00
J. Nick Koston
e909891ebe
Fix pong timer warning when pending ping is skipped (#483) 2023-07-17 09:27:59 -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
24cddc22a8
Reduce overhead to send and process a complex message (#480) 2023-07-15 10:12:29 -10:00
J. Nick Koston
f8ffa6ae83
Reduce overhead to send messages that need to wait for responses (#479) 2023-07-15 09:58:45 -10:00
J. Nick Koston
bbfa761aa0
Speed up timeout implementation in send_message_await_response_complex (#478) 2023-07-15 09:28:06 -10:00
J. Nick Koston
5dd12169f1
Speed up formatting the cipher nonce (#477) 2023-07-15 09:12:33 -10:00
J. Nick Koston
8306058703
Improve performance of processing incoming packets (#475) 2023-07-15 08:48:47 -10:00
J. Nick Koston
0dbab1ebac
Make do_append and do_stop optional in send_message_await_response_complex (#474) 2023-07-15 08:31:37 -10:00
J. Nick Koston
0a0172fa89
Reduce latancy when sending complex messages (#473) 2023-07-15 08:24:03 -10:00
J. Nick Koston
ce07e11e93
Reduce overhead to handle read exceptions (#472) 2023-07-15 08:18:31 -10:00
J. Nick Koston
0dfaa58f07
Simplify logic in send_message_callback_response (#471) 2023-07-15 08:00:33 -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
5f82e90b70
Reduce lookups for noise in the frame helper (#465) 2023-07-10 21:49:34 -10:00
J. Nick Koston
7a80e3529b
Improve error reporting when encryption is disabled on device but client requests it (#464) 2023-07-10 21:15:14 -10:00
J. Nick Koston
6b0d84110e
Avoid sending pings when we have traffic (#463) 2023-07-10 21:00:24 -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
b81fe760ba
Improve performance reassembling fragmented packets (#461) 2023-07-09 12:10:33 -10:00
J. Nick Koston
69b4c42cf3
Add checks for debug logging in the write path (#458) 2023-07-03 19:54:22 -05:00
J. Nick Koston
d53ab5d5bb
Use memoryview for camera images (#456) 2023-07-03 18:26:52 -05:00
J. Nick Koston
f3f5bd6b55
Reduce protocol overhead (#454) 2023-07-03 11:57:04 -05:00
J. Nick Koston
974b8e3ac1
Check if debug is enabled once per packet (#455) 2023-07-02 16:55:36 -05:00
J. Nick Koston
34f6badcde
Use slots for APIConnection and APIClient (#453) 2023-07-01 16:31:58 -05:00
J. Nick Koston
59a66ba870
Include the server name in the exception for invalid encryption key (#452) 2023-07-01 11:12:38 -05:00
J. Nick Koston
a8e7d40874
Speed up noise by using chacha20poly1305-reuseable (#451) 2023-06-30 09:04:26 -05:00
J. Nick Koston
4fe46f5aa0
Propagate if disconnect was expected to disconnect callback (#448) 2023-06-25 21:45:36 -05:00
J. Nick Koston
eaa5e295cf
Fix more cases where incorrect encryption keys were not detected (#447) 2023-06-24 10:47:24 -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
8a661bb673
Reduce overhead to process bluetooth advertisements (#435) 2023-05-15 12:59:33 -05:00
J. Nick Koston
6b32b7c5a3
Avoid one dict lookup when processing packets (#431) 2023-05-08 10:07:51 -05: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
8261700bdd
Fix disconnecting while handshake is in process (#428) 2023-05-04 12:47:03 -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
J. Nick Koston
032e921cb3
Use sloted dataclass for BluetoothLEAdvertisement (#422) 2023-04-19 20:50:10 -10:00
J. Nick Koston
a539a6e950
Improve data throughput (#421) 2023-04-19 20:47:38 -10:00
J. Nick Koston
d1951ebd90
Remove _convert_bluetooth_le_name as it did not need to be its own function (#423) 2023-04-19 20:47:26 -10:00
Jesse Hills
15846c5896
Add initial voice assistant support (#412) 2023-04-11 15:57:35 +12:00
J. Nick Koston
48792681f2
Reduce uuid conversion overhead (#417) 2023-04-04 16:21:52 -10: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
J. Nick Koston
b188803f46
Remove unused lock from frame helper (#406) 2023-03-17 12:09:34 -10:00
J. Nick Koston
eacf758900
Allow any message from the remote to cancel the pong timer (#401) 2023-03-13 09:56:36 -10: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
J. Nick Koston
81f6e67038
Fix disconnect message not being sent when disconnecting during hello phase (#396) 2023-03-05 18:52:55 -10:00
Fredrik Gustafsson
3e60332a71
Fix bluetooth_device_connect returning prematurely from a disconnect (#391) 2023-02-24 08:31:24 -06:00
Jesse Hills
4860af1edf
Add current_temp step (#384) 2023-02-20 13:17:47 +13:00
J. Nick Koston
0656b65ca1
Ensure we hold strong references to tasks (#382) 2023-02-13 14:11:58 +13:00
J. Nick Koston
f99db3577c
Remove useless on_msg function in subscribe_logs (#380) 2023-02-13 11:42:14 +13:00
Alexander Momchilov
c62a0eff3b
Add supports_stop to CoverInfo (#276)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-02-13 11:41:21 +13:00
dependabot[bot]
422f25f776
Bump pylint from 2.15.10 to 2.16.1 (#374)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-02-09 12:03:38 +13:00
Michael Muré
79190d02bd
climate: add support for quiet fan mode (#232)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-02-09 11:50:38 +13:00
Jesse Hills
acf594d4c7
Add friendly_name to device info api (#362) 2023-01-16 12:10:04 +13:00
J. Nick Koston
a83838d025
Fix Invalid protobuf message: expected bytes, bytearray found and add coverage (#359) 2023-01-07 14:24:24 -10:00
J. Nick Koston
025376852b
Clear on_stop after calling instead of using a separate _on_stop_called bool (#357) 2023-01-07 14:16:34 -10: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
15edff86a3
Log the packet type when we get an invalid protobuf message (#343) 2023-01-03 17:40:17 -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
Alex Yao
3e99cd3177
Only start task if existing one is done (#337) 2022-12-12 20:18:35 -10:00
J. Nick Koston
6d4b9df969
Small speed up to parsing LE advertisement data (#330) 2022-12-04 17:21:19 -05:00
J. Nick Koston
9d9d19a2c1
Fix leak if send_message_callback_response raises (#334) 2022-12-04 17:20:12 -05:00
J. Nick Koston
e588e84e17
Handle socket reset errors while reading (#333) 2022-12-04 17:18:38 -05: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
3692478455
Optimize throughput of api to decrease latency (#327) 2022-12-02 14:12:19 -05:00
J. Nick Koston
6273f785f4
Reduce number of calls to readexactly (#324) 2022-12-01 11:47:26 +13:00
J. Nick Koston
a452e738ff
Move message parsing out of the read loop (#323) 2022-12-01 11:42:15 +13:00
J. Nick Koston
585d4cb569
Small speed ups to the bluetooth advertisement converts (#325) 2022-12-01 11:38:09 +13: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
Jesse Hills
c2ed072c88
Protobuf version upgrades (#307) 2022-11-23 07:20:23 +13:00
Franck Nijhof
d9791d1874
Add device class support to number (#309) 2022-11-18 08:00:02 +13:00
Jesse Hills
356e4fbd8f
Catch error when task is stopped (#306) 2022-11-15 20:26:11 +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
J. Nick Koston
6ea1da7620
Add a mapping for ESP_GATT_ERROR (#296) 2022-10-31 13:39:01 +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
d4c44a3ccf
Add esp ble error code mappings (#292) 2022-10-29 22:43:55 +13:00
Jesse Hills
978c523e09
Get manufacturer name string from device (#290) 2022-10-25 17:00:07 +13:00
J. Nick Koston
745e0b688e
Adjust ble timeouts to be longer than bleak timeouts (#287) 2022-10-25 16:12:52 +13:00
Alex Yao
b550b294c7
Fix permanent disconnect issue (#273) 2022-10-24 07:11:16 -05:00
Jesse Hills
712f23d2b2
Fix process_task not ending correctly (#271)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-10-07 09:37:47 +13:00
Jesse Hills
a6f18ae9df
Only try remove callbacks when not None (#268) 2022-10-03 12:32:13 +13:00
J. Nick Koston
4a1715536f
Increase underlying socket receive buffer (#267) 2022-10-03 11:32:26 +13:00
Jesse Hills
527420464d
Change has_bluetooth_proxy to a version (#264) 2022-09-29 21:51:03 -04:00
Jesse Hills
2103a7467a
Process messages in a separate task loop (#263) 2022-09-30 10:59:40 +13:00
Jesse Hills
c5779b3e17
Change BLE advertisement data to bytes (#262) 2022-09-30 09:12:49 +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
4426a94638
Add has_bluetooth_proxy flag to device info (#247) 2022-08-22 15:50:43 +12:00
Jesse Hills
1273d689f1
Implement Bluetooth LE advertisement receiving (#246) 2022-08-22 15:27:46 +12:00
J. Nick Koston
1ffe252f6f
Change out asyncio.wait_for with async_timeout (#243) 2022-08-22 15:26:53 +12:00
Peter Galantha
7dc2a0d072
state class TOTAL added (#229) 2022-07-07 11:41:22 +12:00
Suryandaru Triandana
5831eb5f2a
Increase ListEntitiesRequest timeout to 30 seconds (#234) 2022-07-07 11:39:01 +12:00
Jesse Hills
c502231194
Assume volume (and therefore mute) is always supported (#215) 2022-05-18 21:50:06 +12:00
dependabot[bot]
6b6828043b
Bump mypy from 0.942 to 0.950 (#204)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-05-18 15:39:03 +12:00
Jesse Hills
fcd529bb32
Add media player entities (#214) 2022-05-18 13:28:40 +12:00
Otto Winter
3752b8280e
Fix no timeout for handshake (#176) 2022-02-09 16:29:50 +01:00
dependabot[bot]
1eebbfc1e0
Bump black from 21.12b0 to 22.1.0 (#169)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Otto winter <otto@otto-winter.com>
2022-01-31 17:38:57 +01:00
Otto Winter
23467210b1
Export BadNameAPIError in main module (#166) 2022-01-23 20:23:13 +01: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
dependabot[bot]
014d81350a
Bump mypy from 0.910 to 0.930 (#156)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Otto winter <otto@otto-winter.com>
2022-01-08 13:57:56 +01:00
david reid
8fcb3a58dd
Catch conn reset (#159) 2022-01-05 08:30:22 +13:00