Commit Graph

249 Commits

Author SHA1 Message Date
Marc Mueller
19ab3d6daf Add empty line after module docstring [helpers + other] (#112707) 2024-03-08 10:36:11 -05:00
J. Nick Koston
3877a56d23 Avoid creating tasks for automation and script validation (#111181)
These functions created tasks to run small validators, and the cost of
creating all the tasks was more expensive than running the validators
themselves. Since the code is unlikely to suspend its more efficient to
await them in series.
2024-02-23 13:41:36 -05:00
Marc Mueller
cd0ee98dba Use builtin TimeoutError [core + helpers] (#109684) 2024-02-05 12:09:54 +01:00
Erik Montnemery
3ce4e53b32 Sort script actions (#108247) 2024-01-31 20:41:53 +01:00
J. Nick Koston
f96f4d31f7 Convert referenced registry functions to use cached_property (#108895)
* Convert referenced registry functions to use cached_property

These already implemented caching, but now that we can use cached_property
because the lock problem is solved, we can make the code simplier and faster

* missed one

* make them the same
2024-01-26 23:02:42 -05:00
Erik Montnemery
909e58066d Fix changed_variables in automation and script traces (#108788) 2024-01-24 19:12:45 +01:00
Erik Montnemery
9bff039d17 Add set_conversation_response script action (#108233)
* Add set_conversation_response script action

* Update homeassistant/components/conversation/trigger.py

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

* Revert accidental change

* Add test

* Ignore mypy

* Remove incorrect callback decorator

* Update homeassistant/helpers/script.py

* Add test with templated set_conversation_response

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-01-23 09:13:42 -05:00
Marc Mueller
ec708811d0 Enable strict typing for trace (#107945) 2024-01-14 09:39:22 +01:00
Erik Montnemery
461dad3039 Fix changed_variables in automation traces (#106665) 2023-12-30 08:34:21 +01:00
Erik Montnemery
09ad1a9a36 Remove unnecessary block use of pylint disable in components p-z (#100192) 2023-09-12 20:47:48 +02:00
Allen Porter
7b1c0c2df2 Extend template entities with a script section (#96175)
* Extend template entities with a script section

This allows making a trigger entity that triggers a few times a day,
and allows collecting data from a service resopnse which can be
fed into a template entity.

The current alternatives are to publish and subscribe to events or to
store data in input entities.

* Make variables set in actions accessible to templates

* Format code

---------

Co-authored-by: Erik <erik@montnemery.com>
2023-09-02 16:19:45 -07:00
Marc Mueller
a9ade1f84d Use asyncio.timeout [core] (#98447) 2023-08-15 08:36:05 -05:00
Franck Nijhof
3e85a29b86 Move overlapping pylint rules to ruff, disable mypy overlap (#94359) 2023-06-27 17:42:46 +02:00
Erik Montnemery
cb22fb16f8 Allow returning a script variable from a script (#95346)
* Allow returning a script variable from a script

* Don't allow returning a template result

* Raise if response variable is undefined

* Add test

* Update homeassistant/helpers/script.py

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Format code

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-06-27 17:13:53 +02:00
Paulus Schoutsen
5f14cdf69d Allow stopping a script with a response value (#95284) 2023-06-27 08:24:22 +02:00
Allen Porter
1d9821efa2 Fix spelling mistake in script.py (#95210)
Update script.py
2023-06-25 21:00:50 -04:00
Allen Porter
528c206094 Add script specific error messages for response_variable (#95188) 2023-06-24 21:34:57 -07:00
Allen Porter
30e8f806c1 Improve service response data APIs (#94819)
* Improve service response data APIs

Make the API naming more consistent, and require registration that a
service supports response data so that we can better integrate with
the UI and avoid user confusion with better error messages.

* Improve test coverage

* Add an enum for registering response values

* Assign enum values

* Convert SupportsResponse to StrEnum

* Update service call test docstrings

* Add tiny missing full stop in comment

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-06-20 06:24:31 -07:00
Allen Porter
c4284c07b6 Allow scripts to capture service response data in variables (#94757)
* Allow scripts service actions to save return values

* Simplify script service response data

* Rename result_variable to response_variable based on feedback
2023-06-16 22:59:44 -04: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
epenet
913156b0e0 Avoid lingering timer on script shutdown (#89753) 2023-03-16 08:00:21 +01:00
Karlie Meads
e40a9822f5 Fix disabled condition within an automation action (#87213)
fixes undefined
2023-02-02 22:35:02 +01:00
Marc Mueller
8abce25948 Update Union typing (4) [Py310] (#86427) 2023-01-23 09:04:40 +01:00
Franck Nijhof
79b52a2b41 Stricter pylint message control (#86154) 2023-01-20 13:47:55 +01:00
Michaël Arnauts
7142b4ecac Fixes some grammar mistakes (#84283) 2022-12-20 11:10:31 +01:00
Erik Montnemery
18033532ca Fix search throwing on templated services (#79637) 2022-10-05 10:59:18 +03:00
epenet
d3be06906b Improve type hints in script helpers (#78364)
* Improve type hints in script helpers

* Import CONF_SERVICE_DATA from homeassistant.const

* Make data optional
2022-09-13 23:11:29 +02:00
Franck Nijhof
99360ad7f4 Indicate disabled steps in script trace (#71237) 2022-05-03 13:04:59 +02:00
Erik Montnemery
92f1855bcf Fix script conditions (#71235) 2022-05-03 11:28:08 +02:00
Erik Montnemery
1931600eac Isolate parallel subscripts (#71233) 2022-05-03 10:36:58 +02:00
Erik Montnemery
f6c2fb088c Stop script if sub-script stops or aborts (#71195) 2022-05-02 14:59:58 +02:00
Franck Nijhof
35687def02 Merge stop & error script actions (#70109) 2022-04-20 14:22:37 -07:00
Franck Nijhof
1b48d7eda1 Add for each item support to repeat action (#70093) 2022-04-15 19:10:25 +02:00
Franck Nijhof
e04fef3c2d Allow disabling specific triggers/actions/conditions (#70082) 2022-04-15 09:33:09 -07:00
Franck Nijhof
cdabcce83a Add ability to continue scripts/automations on error (#70004) 2022-04-14 13:43:14 -07:00
Franck Nijhof
d704d4f853 Add parallel automation/script actions (#69903) 2022-04-13 13:07:44 -07:00
Franck Nijhof
67b200a532 Add if/else automation/script action (#69811)
Co-authored-by: Erik <erik@montnemery.com>
2022-04-12 15:02:17 +02:00
Franck Nijhof
81d90b1bc7 Add stop/error script/automation action (#67340) 2022-04-11 14:22:22 -07:00
Erik Montnemery
46f27fdefd Don't prevent automations from triggering themselves (#68178) 2022-03-15 18:48:54 +01:00
Erik Montnemery
8ea31cea3a Fix deadlock when stopping queued script (#68175) 2022-03-15 08:29:04 -07:00
Erik Montnemery
1a27025793 Prevent spawning script runs when shutting down (#68170) 2022-03-15 12:46:58 +01:00
Erik Montnemery
65fbcfa0ba Prevent recursive script calls from deadlocking (#67861)
* Prevent recursive script calls from deadlocking

* Address review comments, improve tests

* Tweak comment
2022-03-10 19:28:00 +01:00
Paulus Schoutsen
c2e62e4d9f Re-org device automations (#67064)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-02-22 13:15:16 -08:00
mk-maddin
efb6fd1569 Fix script / automation repeat with count 0 fails (#65448)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-02-03 08:18:58 -08:00
Marc Mueller
d3b7bd25ef Update typing (1) (#63922) 2022-01-11 21:26:03 +01:00
Marc Mueller
40262c4763 Fix exception import locations (#63454) 2022-01-05 15:00:49 +01:00
Tobias Sauerwein
2c904c0974 Bump mypy to 0.930 (#62642)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2021-12-27 17:55:17 +01:00
Ruslan Sayfutdinov
55f4962c06 Fix pylint plugin which checks relative imports (#62693) 2021-12-23 11:14:47 -08:00
Erik Montnemery
e48f567176 Wrap shorthand template conditions during schema validation (#62485) 2021-12-21 17:20:15 +01:00
Ville Skyttä
334c6c5c02 Make device automation type an enum (#62354) 2021-12-20 19:16:30 +01:00