rlippmann
3a72054f93
Make dataclasses in HA core slotted ( #91208 )
2023-04-11 07:58:28 -10:00
Erik Montnemery
9384ec18f8
Add filters to climate and light service descriptions ( #86162 )
...
* Add filters to climate and light service descriptions
* Allow specifying enums directly
* Update service descriptions
* Adjust test
* Cache entity features
* Lint
* Improve error handling, add list of known base components
* Don't allow specifying an entity feature as int
2023-03-16 15:59:51 +01:00
J. Nick Koston
bea81d3f63
Fix lock services not removing entity fields ( #88805 )
2023-02-26 18:59:28 -05:00
Franck Nijhof
5e81d28116
Update black to 23.1.0 ( #87188 )
2023-02-02 18:35:24 +01:00
Marc Mueller
4f87c1f30f
Update pre-commit-config [Py310] ( #86415 )
2023-01-23 09:59:44 +01:00
Franck Nijhof
06a35fb7db
Code styling tweaks to core helpers ( #85441 )
2023-01-08 13:44:09 -10:00
Franck Nijhof
d4f69a3652
String formatting and max line length - Part 7 ( #84532 )
...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-12-27 11:18:56 +01:00
Marc Mueller
63d519c1a8
Spelling updates ( #82867 )
2022-11-28 16:51:43 +01:00
Aarni Koskela
8038485ca4
Use partition instead of split where possible in core ( #81806 )
2022-11-15 21:45:48 +01:00
Erik Montnemery
18033532ca
Fix search throwing on templated services ( #79637 )
2022-10-05 10:59:18 +03:00
epenet
8300f8234c
Make async_extract_entities generic ( #78490 )
2022-09-16 00:20:47 +02:00
J. Nick Koston
61cc9f5288
Consolidate executor jobs when loading integration manifests ( #75176 )
2022-07-14 13:06:08 -07:00
Paulus Schoutsen
d59258bd25
Revert "Add service entity context ( #71558 )" ( #72610 )
2022-05-27 10:30:40 -07:00
Franck Nijhof
69cc6ab5f1
Clean up accessing entity_registry.async_get_registry helper via hass ( #72005 )
2022-05-17 16:40:45 +02:00
Paulus Schoutsen
64636a4310
Add service entity context ( #71558 )
...
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2022-05-09 14:45:53 -07:00
Joakim Plate
2dbe910e31
Adjust warning for missing entites ( #71343 )
2022-05-09 12:37:24 +02:00
Erik Montnemery
eb068bc850
Fix targeting all or none entities in service calls ( #68513 )
...
* Fix targeting all or none entities in service calls
* Add test
2022-03-22 19:45:27 +02:00
Paulus Schoutsen
8bbbd1947d
Raise if referenced entity does not support service ( #68394 )
2022-03-20 16:01:58 -07:00
Erik Montnemery
34eb4aa2d0
Exclude hidden entities from targets ( #68149 )
2022-03-15 08:42:22 -07:00
Erik Montnemery
cd25769667
Rename async_resolve_entity_ids to async_validate_entity_ids ( #67603 )
2022-03-04 09:51:53 +01:00
Marc Mueller
bfb1abd3a2
Add type ignore error codes [helpers] ( #66776 )
2022-02-18 11:31:37 +01:00
epenet
3a09090a4b
Drop use of deprecated ENTITY_CATEGORIES ( #64607 )
...
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-24 13:36:42 +01:00
Erik Montnemery
fc2025509e
Teach call service script action about entity registry ids ( #61172 )
2022-01-07 08:42:47 -08:00
epenet
9971831b51
Improve typing in core service registration ( #63005 )
...
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-30 21:18:10 +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
a0a8b9db26
Add entity category 'system' ( #58595 )
...
* Add entity category 'hidden'
* Update cloud
* Update Google assistant
* Update Alexa
* Fix tests
* Add ENTITY_CATEGORIES constant
* Rename ENTITY_CATEGORY_HIDDEN to ENTITY_CATEGORY_SYSTEM
* Correct import in motioneye
2021-10-28 14:36:41 +02:00
Chris Browet
e961d92b5e
Allow service data template to return a dict ( #57105 )
2021-10-23 21:10:30 +02:00
Marc Mueller
238b488642
Use assignment expressions 03 ( #57710 )
2021-10-17 20:08:11 +02:00
Erik Montnemery
2b37943355
Don't add indirectly referenced config entities to service calls ( #57671 )
2021-10-15 08:46:43 -07:00
Marc Mueller
77ee72cbb9
Import Callable from collections.abc (1) ( #56775 )
2021-09-29 16:32:11 +02:00
Marc Mueller
f6b162bc39
Add pylint CodeStyle extension ( #53147 )
2021-07-19 06:57:06 -07:00
Erik Montnemery
abd6f739e8
Pylint fix ( #51083 )
2021-05-25 10:53:18 -07:00
Erik Montnemery
7b5e63132c
Prevent parallel reload of automations ( #50008 )
2021-05-25 08:50:50 -07:00
Ruslan Sayfutdinov
391b2f8ccd
Add missing return type in Core constructors ( #50884 )
2021-05-20 18:53:29 +03:00
Marc Mueller
c07646db5d
Update typing syntax ( #49480 )
...
* Update typing syntax
* Replace typing imports with ones from collections where possible
* Changes after review
2021-04-20 17:40:41 +02:00
Tobias Sauerwein
9d4ad1821e
Fix logic of entity id extraction ( #49164 )
...
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-04-14 14:12:26 +02:00
Franck Nijhof
4e3c12883e
Allow templatable service target to support scripts ( #48600 )
2021-04-01 13:10:01 -07:00
Franck Nijhof
38d14702fa
Remove HomeAssistantType alias from helpers ( #48400 )
2021-03-27 12:55:24 +01:00
Marc Mueller
4cb7718192
Update typing 16 ( #48087 )
2021-03-18 22:58:19 +01:00
J. Nick Koston
08db262972
Add a service to reload config entries that can easily be called though automations ( #46762 )
2021-03-17 21:27:21 -07:00
Marc Mueller
6fb2e63e49
Update typing 02 ( #48014 )
2021-03-17 18:34:19 +01:00
Ville Skyttä
dc880118a4
Lint suppression cleanups ( #47248 )
...
* Unused pylint suppression cleanups
* Remove outdated pylint bug references
* Add flake8-noqa config and note to run it every now and then
* Add codes to noqa's
* Unused noqa cleanups
2021-03-02 09:02:04 +01:00
Franck Nijhof
42fd3be0e8
Add template support to service targets ( #46977 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-02-23 22:46:00 -08:00
Bram Kragten
afa91e886b
Add description to tts and notify services ( #46764 )
...
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-02-23 14:29:57 +01:00
Franck Nijhof
c8ffac20b9
Add name to services ( #46905 )
2021-02-22 16:26:46 +01:00
Anders Melchiorsen
9f4874bb81
Explicitly create_task for asyncio.wait ( #46325 )
2021-02-20 19:57:46 +01:00
Bram Kragten
6986fa4eb6
Add target to services.yaml ( #46410 )
...
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-02-16 09:35:27 +01:00
Franck Nijhof
9b7c39d20b
Postponed evaluation of annotations in core ( #46434 )
...
* Postponed evaluation of annotations in core
* Remove unneeded future
2021-02-12 10:58:20 +01:00
Ville Skyttä
a6358430b4
Fix deprecated asyncio.wait use with coroutines ( #44981 )
...
https://docs.python.org/3/library/asyncio-task.html#asyncio-example-wait-coroutine
2021-02-10 14:16:58 +01:00
Bram Kragten
4b493c5ab9
Add target to service call API ( #45898 )
...
* Add target to service call API
* Fix _async_call_service_step
* CONF_SERVICE_ENTITY_ID overrules target
* Move merging up before processing schema
* Restore services.yaml
* Add test
2021-02-10 12:42:28 +01:00
tkdrob
c2302784c2
Use core constants for helpers ( #46240 )
2021-02-08 22:53:17 +01:00
Ville Skyttä
82607977ef
Various type hint improvements ( #46144 )
2021-02-08 11:59:46 +01:00
Ville Skyttä
1c8fbc7e6a
Upgrade codespell to 2.0.0 ( #44695 )
...
* Upgrade codespell to 2.0.0
* Fix newly found spelling errors
2020-12-31 19:14:07 +01:00
Paulus Schoutsen
cf5be049b3
Warn when referencing missing devices/areas ( #43787 )
2020-12-01 08:01:27 +01:00
Paulus Schoutsen
0de9e8e952
Allow specifying device_id as target ( #43767 )
2020-11-30 14:27:02 +01:00
Paulus Schoutsen
dd513147a5
Add a service target ( #43725 )
2020-11-28 23:33:32 +01:00
Paulus Schoutsen
d34753473d
Use run_job for service helper ( #43696 )
2020-11-27 16:12:39 +01:00
Erik Montnemery
a5e5c5c7e6
Exclude disabled entities from async_entries_for_device ( #43665 )
2020-11-27 09:03:44 +01:00
Paulus Schoutsen
edf70e9f06
Make input_datetime better handle timezones ( #43396 )
...
* Make input_datetime better handle timezones
* Improve test coverage
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Revert change to time format
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-11-26 20:20:10 +01:00
J. Nick Koston
94bf55e29b
Limit concurrency of async_get_integration to avoid creating extra threads ( #43085 )
...
* Limit concurrency of async_get_integration to avoid creating extra threads
Since async_get_integration is waiting on the disk most of the time
it would end up creating many new threads because the disk could
not deliver the data in time.
* pylint
2020-11-10 21:34:54 -10:00
Robert Svensson
e06c8009e1
Add area id to entity registry ( #42221 )
...
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2020-10-24 21:25:28 +02:00
J. Nick Koston
4a0d18ccd8
Avoid overloading the executor with service.yaml loads ( #42172 )
2020-10-21 22:24:50 +02:00
Ville Skyttä
167490b71c
Complete helpers.service type hints ( #40193 )
...
* Complete helpers.service type hints
* Update homeassistant/helpers/service.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Handle None entity.supported_features
2020-09-20 12:03:58 +03:00
Franck Nijhof
181709f3d2
Allow templates in data & service parameters (making data_template & service_template obsolete) ( #39210 )
2020-08-24 16:21:48 +02:00
Ville Skyttä
802c556e82
State and service related type hint improvements ( #38956 )
...
* Improve type hint of service_func to register
* Add named type for state values
* Narrow some unnecessarily broad state type hints
2020-08-17 15:02:43 -04:00
Franck Nijhof
53545c984b
Log lines do not end with a full stop ( #37527 )
2020-07-05 23:04:19 +02:00
Ville Skyttä
0c5ca3084e
Add and fix type hints ( #36501 )
...
* Fix exceptions.Unauthorized.permission type
* Use auth.permission consts more
* Auth typing improvements
* Helpers typing improvements
* Calculate self.state only once
2020-06-06 20:34:56 +02:00
Robert Chmielowiec
d21cfd869e
Fix service registration supported features check ( #35718 )
2020-05-23 18:11:51 +02:00
Paulus Schoutsen
87801d8aca
Minor helpers cleanup ( #34786 )
2020-04-28 14:31:25 -07:00
Paulus Schoutsen
26f78132ae
Fix circular import ( #34441 )
2020-04-19 14:41:52 -07:00
Ville Skyttä
267d98b5eb
Type hint improvements ( #33082 )
2020-04-17 11:33:58 -07:00
Phil Bruckner
5f5cb8bea8
Add support for simultaneous runs of Script helper - Part 2 ( #32442 )
...
* Add limit parameter to service call methods
* Break out prep part of async_call_from_config for use elsewhere
* Minor cleanup
* Fix improper use of asyncio.wait
* Fix state update
Call change listener immediately if its a callback
* Fix exception handling and logging
* Merge Script helper if_running/run_mode parameters into script_mode
- Remove background/blocking _ScriptRun subclasses which are no longer needed.
* Add queued script mode
* Disable timeout when making fully blocking script call
* Don't call change listener when restarting script
This makes restart mode behavior consistent with parallel & queue modes.
* Changes per review
- Call all script services (except script.turn_off) with no time limit.
- Fix handling of lock in _QueuedScriptRun and add comments to make it
clearer how this code works.
* Changes per review 2
- Move cancel shielding "up" from _ScriptRun.async_run to Script.async_run
(and apply to new style scripts only.) This makes sure Script class also
properly handles cancellation which it wasn't doing before.
- In _ScriptRun._async_call_service_step, instead of using script.turn_off
service, just cancel service call and let it handle the cancellation
accordingly.
* Fix bugs
- Add missing call to change listener in Script.async_run
in cancelled path.
- Cancel service task if ServiceRegistry.async_call cancelled.
* Revert last changes to ServiceRegistry.async_call
* Minor Script helper fixes & test improvements
- Don't log asyncio.CancelledError exceptions.
- Make change_listener a public attribute.
- Test overhaul
- Parametrize tests.
- Use common test functions.
- Mock timeout so tests don't need to wait for real time to elapse.
- Add common function for waiting for script action step.
2020-03-11 16:34:50 -07:00
Paulus Schoutsen
6a21afa2a8
Improve script validation ( #32461 )
2020-03-05 11:44:42 -08:00
Paulus Schoutsen
12de3f1e47
Clean up frontend services and events ( #31654 )
...
* Clean up frontend services and events
* Fix bug in core instead
* Add test that core works correctly with callback marked async funcs
2020-02-09 19:47:16 -08:00
Paulus Schoutsen
e970177eeb
Use entity.async_request_call in service helper ( #31454 )
...
* Use entity.async_request_call in service helper
* Clean up semaphore handling
* Address comments
* Simplify call entity service helper
* Fix stupid rflink test
2020-02-04 15:30:15 -08:00
Paulus Schoutsen
f41623ca64
Log warning when entities referenced in service call not found ( #31427 )
...
* Raise entities not found error
* Make it a warning, not an error
* Add support for MATCH_ENTITY_NONE
* Fix lint
* Fix tests
2020-02-04 14:42:07 -08:00
Paulus Schoutsen
7687ac8b91
Fix service annotations ( #31402 )
...
* Fix service annotations
* Filter area_id from service data
* Fix services not accepting entities
* Typo
2020-02-02 15:36:39 -08:00
Paulus Schoutsen
d405069406
Guard for callbacks in service helper ( #31339 )
2020-01-31 09:32:43 +01:00
Paulus Schoutsen
01dad31adc
Fix service helper not handling sync methods ( #31254 )
...
* Fix service helper not handling sync methods
* Add legacy support for returning coroutine objects
* Fix tests
* Fix tests
* Convert demo cover to async
2020-01-29 16:27:25 -08:00
Paulus Schoutsen
0c3ffbe282
Add foundation for integration services ( #30813 )
...
* Add foundation for integration services
* Fix tests
* Remove async_get_platform
* Migrate Sonos partially to EntityPlatform.async_register_entity_service
* Tweaks
* Move other Sonos services to media player domain
* Move other Sonos services to media player domain
* Address comments
* Remove lock
* Fix typos
* Use make_entity_service_schema
* Add area extraction to async_extract_entities
Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>
2020-01-19 17:55:18 -08:00
Ville Skyttä
fa4fa30461
Various string cleanups ( #30435 )
...
* Remove some unnecessary string concatenations
* Replace some simple str.formats with f-strings
* Replace some string concatenations with f-strings
2020-01-03 14:47:06 +01:00
Bas Nijholt
67c56c860d
Sort imports according to PEP8 for 'homeassistant' folder ( #29789 )
...
Components are already done
2019-12-09 16:42:10 +01:00
Paulus Schoutsen
02d9ed5e36
Do not select all entities when omitting entity ID in service call ( #29178 )
...
* Do not select all entities when omitting entity ID
* Address comments Matthew
* Require either area_id or entity_id
* Fix tests
* Fix test
2019-12-02 16:23:12 -08:00
Pascal Vizeli
c1851a2d94
Cleanup coroutine threadsafe ( #27080 )
...
* Cleanup coroutine threadsafe
* fix lint
* Fix typing
* Fix tests
* Fix black
2019-10-01 16:59:06 +02:00
Jeff Irion
7090970436
Add descriptive fields to script config ( #26056 )
...
* Add descriptive fields to script config
* Add script descriptions to hass.data["service_description_cache"]
* Import SERVICE_DESCRIPTION_CACHE
* Register script descriptions via async_set_service_schema
* Add scripts test for loading and reloading service descriptions
* Minor cleanup
* Clean up script schema
2019-08-21 14:08:46 -07:00
Ville Skyttä
aa508b5106
Complete some incomplete type hints in helpers ( #25953 )
2019-08-15 08:53:25 -07:00
Paulus Schoutsen
4de97abc3a
Black
2019-07-31 12:25:30 -07:00
Ville Skyttä
d64f1e767c
Type check all helpers ( #25373 )
...
* Type check all helpers, add inline exclusions for work in progress
* Remove unused Script._template_cache
* Add some missing type hints
* Remove unneeded type: ignore
* Type hint fixes
* Mypy assistance tweaks
* Don't look for None in deprecated config "at most once" check
* Avoid None name slugify attempt when generating entity id
* Avoid None state store attempt on entity remove
2019-07-21 09:59:02 -07:00
nierob
979f801488
Avoid creating temporary lists ( #25317 )
...
That gives nano performance improvements as *() is slightly faster
then *[].
2019-07-19 13:36:18 -07:00
Andrew Sayre
b5725f8f19
Fix supported features gates in media_player volume up/down services ( #23419 )
...
* Correct media player feature gates
* Fix failing test
* Lint...
2019-04-25 21:42:39 -07:00
Paulus Schoutsen
ce8ec3acb1
Don't warn for missing services ( #23182 )
2019-04-17 22:27:11 -07:00
Aaron Bach
46ee7d7b22
Fix test ( #23081 )
2019-04-13 14:32:07 -07:00
Aaron Bach
fc481133e7
Create decorator to check service permissions ( #22667 )
...
* Create decorator to check service permissions
* Typing
* Linting
* Member comments
* Linting
* Member comments
* Updated import
* Owner comments
* Linting
* Linting
* More work
* Fixed tests
* Removed service helper tests in RainMachine
* Linting
* Owner comments
* Linting
* Owner comments
Co-Authored-By: bachya <bachya1208@gmail.com>
2019-04-13 13:54:29 -06:00
Paulus Schoutsen
f7d4c48199
Convert service helper to use async_get_integration ( #23023 )
...
* Convert service helper to use async_get_integration
* Fix tests
2019-04-12 10:09:17 -07:00
Andrew Sayre
7624d0e79f
Check for supported features in media_player services ( #22878 )
...
* Add check for supported features
* Move logic to service helper
* Fix hacked in test for seek
* Test for service required features
2019-04-10 09:44:58 -07:00
Paulus Schoutsen
e00ae35e07
Admin service to automatically add empty schema ( #22637 )
...
* Admin service to automatically add empty schema
* Lint
2019-04-02 09:34:11 -07:00
Paulus Schoutsen
95a7077b41
Move core services.yaml file to Home Assistant integration ( #22489 )
...
* Move services.yaml to correct dir
* Remove special case for HA servicesgs
2019-03-29 20:48:45 -07:00
Paulus Schoutsen
c15f433c3e
Add a service require_admin wrapper ( #21953 )
...
* Add a service require_admin wrapper
* Allow it to be used as a decorator
* Lint
* Add comment
* Add docstring
* Update syntax
2019-03-12 22:09:50 -07:00
Paulus Schoutsen
8213016eaf
Allow targeting areas in service calls ( #21472 )
...
* Allow targeting areas in service calls
* Lint + Type
* Address comments
2019-03-04 09:51:12 -08:00