Abílio Costa
4163ecd833
Improve typing for get_x_for_target commands ( #159279 )
2025-12-18 16:42:40 +00:00
Abílio Costa
7eecdc87fd
Add lookup caching to get_x_for_target ( #157888 )
2025-12-16 12:17:58 +00:00
Abílio Costa
d325f677df
Deprecate TargetSelectorData in favor of TargetSelection ( #158734 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-15 14:45:35 +00:00
Abílio Costa
c058810461
Cache flattened service descriptions in websocket api ( #157510 )
...
Co-authored-by: Erik Montnemery <erik@montnemery.com >
2025-12-04 16:05:49 +00:00
Abílio Costa
f758cfa82f
Add get_conditions_for_target websocket command ( #157344 )
...
Co-authored-by: Erik Montnemery <erik@montnemery.com >
2025-11-26 14:08:56 +00:00
Abílio Costa
c2b7a63dd9
Add get_services_for_target websocket command ( #157334 )
2025-11-26 12:30:51 +00:00
Abílio Costa
a6aab088fb
Add get_triggers_for_target websocket command ( #156778 )
2025-11-26 11:05:03 +01:00
Abílio Costa
57c3a5c349
Move imports to top level in websocket_api commands ( #156004 )
2025-11-07 14:10:19 +00:00
Artur Pragacz
b157afac13
Remove templates from schemas for service fields validation ( #150063 )
2025-10-30 18:46:43 +01:00
Abílio Costa
2abc197dcd
Add extract_from_target websocket command ( #150124 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com >
2025-10-14 16:16:00 +02:00
Erik Montnemery
d66da0c10d
Respect filtering of WS subscribe_entities when there are unserializalizable states ( #153262 )
2025-10-02 22:20:45 +02:00
Erik Montnemery
ec503618c3
Handle errors in WS manifest/list ( #153256 )
2025-09-30 15:12:41 +02:00
J. Nick Koston
671c4e1eab
Reduce log spam from unauthenticated websocket connections ( #151388 )
2025-09-01 10:35:22 +02:00
Erik Montnemery
510fd09163
Allow core integrations to describe their conditions ( #147529 )
...
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com >
2025-07-04 16:03:42 +02:00
Erik Montnemery
1fb587bf03
Allow core integrations to describe their triggers ( #147075 )
...
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com >
2025-06-25 17:35:15 +01:00
Marc Mueller
2c13c70e12
Update ruff to 0.12.0 ( #147106 )
2025-06-19 20:39:09 +02:00
Martin Hjelmare
f295d72cd9
Fix error stack trace for HomeAssistantError in websocket service call ( #145699 )
...
* Add test
* Fix error stack trace for HomeAssistantError in websocket service call
2025-05-27 12:54:57 +02:00
Erik Montnemery
0105332476
Add WS command integration/wait ( #142040 )
...
* Add WS command integration/wait
* Add test
* Update homeassistant/components/websocket_api/commands.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com >
* Use helper setup.async_wait_component
* Add onboarding view
* Revert "Add onboarding view"
This reverts commit df3a1a0580 .
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com >
2025-04-11 16:09:15 +02:00
J. Nick Koston
0abe57edaa
Avoid checking if debug logging is enabled on every WebSocket message ( #142258 )
...
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com >
2025-04-04 22:28:55 +02:00
J. Nick Koston
d6b48003b6
Improve performance of websocket_api _state_diff_event ( #141696 )
...
We can use last_updated_timestamp for the compare since its always
calculated when the state is created and comparing floats is
much faster than datetime objects
2025-03-28 19:58:12 -04:00
J. Nick Koston
fd9f002e9f
Increase websocket_api allowed peak time to 10s ( #141680 )
...
* Increase websocket_api allowed peak time to 10s
fixes #141624
During integration reload or startup, we can end up sending a message for
each entity being created for integrations that create them from an external
source (ie MQTT) because the messages come in one at a time. This can overload
the loop and/or client for more than 5s. While we have done significant work
to optimize for this path, we are at the limit at what we can expect clients
to be able to process in the time window, so increase the time window.
* adjust test
2025-03-28 20:32:00 +01:00
Abílio Costa
3fb70316da
Fix error messaging for cascading service calls ( #136966 )
2025-01-31 11:10:57 +01:00
J. Nick Koston
7cf20c95c2
Log the error when the WebSocket receives a error message ( #136492 )
...
* Log the error when the WebSocket receives a non-text message
related issue #126754
Right now we only log that it was a non-Text message
and silently swallow the exception
* coverage
2025-01-27 15:38:18 -05:00
Joost Lekkerkerker
ef8b8fbbaa
Enable RUF023 ( #135830 )
2025-01-17 12:28:27 +01:00
Joost Lekkerkerker
8a35261fd8
Remove unused noqas ( #135583 )
2025-01-15 10:02:18 +01:00
epenet
24c70caf33
Improve formatting in component files ( #135261 )
...
* Improve formatting in component files
* Apply suggestions from code review
2025-01-10 11:46:15 +01:00
J. Nick Koston
53c486ccd1
Bump aiohttp to 3.11.0b3 ( #129363 )
2024-11-06 15:59:31 -06:00
J. Nick Koston
7691991a93
Small cleanups to the websocket command phase ( #129712 )
...
* Small cleanups to the websocket command phase
- Remove unused argument
- Avoid multiple NamedTuple property lookups
* Update homeassistant/components/websocket_api/http.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com >
* Apply suggestions from code review
* touch ups
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com >
2024-11-04 15:33:15 +01:00
J. Nick Koston
4749af6e90
Convert WebSocket messages to bytes before passing them to send_message ( #129300 )
2024-10-28 12:21:12 +01:00
J. Nick Koston
c3f0f30910
Prepare websocket writer for aiohttp 3.11 ( #127043 )
2024-10-03 22:29:29 +02:00
Franck Nijhof
9dfabc3fb7
Adjust automation to plural triggers/conditions/actions keys ( #123823 )
...
* Adjust automation to plural triggers/conditions/actions keys
* Fix some tests
* Adjust websocket tests
* Fix search tests
* Convert blueprint and blueprint inputs to modern schema
* Pass schema when creating Blueprint object
* Update tests
* Adjust websocket api
---------
Co-authored-by: Joostlek <joostlek@outlook.com >
Co-authored-by: Erik <erik@montnemery.com >
2024-09-24 20:03:23 +02:00
J. Nick Koston
d8161c431f
Add support for using an entityfilter to subscribe_entities ( #124641 )
...
* Add support for using an entityfilter to subscribe_entities
* filter init
* fix
* coverage
2024-08-27 11:17:05 +02:00
J. Nick Koston
76ebb0df08
Improve performance of generate diffs of state change events ( #124601 )
...
dict comps are inlined in cpython 3.12+
2024-08-26 08:49:31 +02:00
J. Nick Koston
108a54a4a8
Handle WebSocket client disconnect during prepare ( #124173 )
2024-08-19 15:28:05 -05:00
J. Nick Koston
14c2ca85ec
Refactor websocket handler to reduce complexity ( #124174 )
2024-08-18 14:17:17 -05:00
epenet
0bb8c4832d
Enable raise-within-try (TRY301) rule in ruff ( #123351 )
2024-08-12 09:16:33 +02:00
Erik Montnemery
9b2118e556
Remove recorder from websocket_api after dependencies ( #122422 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2024-07-22 16:50:05 -05:00
Franck Nijhof
a9bf12f102
Rename Services to Actions in translation strings ( #121777 )
2024-07-15 21:19:25 +02:00
Marc Mueller
0e52d149e4
Update voluptuous to 0.15.2 ( #120631 )
...
* Update voluptuous to 0.15.1
* Fix typing issues
* Add type ignores for json result type
* Update voluptuous to 0.15.2
---------
Co-authored-by: J. Nick Koston <nick@koston.org >
2024-07-02 12:57:09 -07:00
Marc Mueller
b816fce976
Improve websocket_api schema typing ( #120411 )
2024-06-25 14:08:30 +02:00
epenet
960d1289ef
Avoid references to websocket_api.const in core and other components ( #119285 )
2024-06-10 13:49:44 +02:00
Erik Montnemery
8099ea8817
Improve WS command validate_config ( #118864 )
...
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com >
Co-authored-by: Robert Resch <robert@resch.dev >
2024-06-05 18:53:44 +02:00
J. Nick Koston
79bc179ce8
Improve websocket message coalescing to handle thundering herds better ( #118268 )
...
* Increase websocket peak messages to match max expected entities
During startup the websocket would frequently disconnect if more than
4096 entities were added back to back. Some MQTT setups will have more
than 10000 entities. Match the websocket peak value to the max expected
entities
* coalesce more
* delay more if the backlog gets large
* wait to send if the queue is building rapidly
* tweak
* tweak for chrome since it works great in firefox but chrome cannot handle it
* Revert "tweak for chrome since it works great in firefox but chrome cannot handle it"
This reverts commit 439e2d76b1 .
* adjust for chrome
* lower number
* remove code
* fixes
* fast path for bytes
* compact
* adjust test since we see the close right away now on overload
* simplify check
* reduce loop
* tweak
* handle ready right away
2024-05-28 23:14:06 -04:00
J. Nick Koston
caa65708fb
Collapse websocket_api _state_diff into _state_diff_event ( #118170 )
2024-05-26 16:04:34 +02:00
Marc Mueller
3b4b36a9fd
Fix partial typing ( #118022 )
2024-05-24 10:24:18 +02:00
J. Nick Koston
c5cc9801a6
Cache serialize of manifest for loaded integrations ( #117965 )
...
* Cache serialize of manifest for loaded integrations
The manifest/list and manifest/get websocket apis
are called frequently when moving around in the UI.
Since the manifest does not change we can make
the the serialized version a cached property
* reduce
* reduce
2024-05-23 10:52:05 -04:00
Sid
c2b3bf3fb9
Enable Ruff RET502 ( #115139 )
2024-05-21 22:19:33 +02:00
Marc Mueller
87bb7ced79
Use PEP 695 for simple type aliases ( #117633 )
2024-05-17 14:42:21 +02:00
Sid
2cc916db6d
Replace pylint broad-except with Ruff BLE001 ( #116250 )
2024-05-07 14:00:27 +02:00
Sid
b456d97e65
Replace pylint protected-access with Ruff SLF001 ( #115735 )
2024-05-06 20:33:26 +02:00