* Template domain blueprints
* Default blueprint for templates
* Some linting
* Template entity updates
* Load and use blueprints in config
* Added missing mapping methods for templates
* Linting
* Added tests
* Wrong schema type
* Hassfest errors
* More linting issues
* Refactor based on desired schema
In the [architecture discussion](https://github.com/home-assistant/architecture/discussions/1027), the template blueprint instance did not specify the platform (e.g. `binary_sensor`), but the initial implementation assumed that schema.
* Create default template blueprints on first run
* Moved TemplateConfig definition
This is to avoid circular references
* Corrected methods to find templates based on blueprints
* Corrected missing entity config information
* Added tests
* Don't use hass.data
Address comments https://github.com/home-assistant/core/pull/126971/#discussion_r1780097187
* Prevent creating blueprints during testing
* Combine 2 ifs
Address comment https://github.com/home-assistant/core/pull/126971/#discussion_r1780160870
* Improve test coverage
* Prevent template component from dirtying test env
* Remove useless hard-coded validation
* Improve code coverage to 100%
* Address review comments
* Moved helpers in helpers.py
As per comment https://github.com/home-assistant/core/pull/126971#discussion_r1786539889
* Fix blueprint source URL
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Make sure groups are initialized before template sensors
This way users may use the `expand` function in templates to expand
groups and have HA listen for changes to group members.
Fixes#35872
* Patch async_setup_platform instead of async_setup
* Cleanup
* Use an event to avoid sleep
* Update tests/components/template/test_sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Split async_update
* Use pytest parameters to avoid duplicate code
* Fix UnboundLocalError
* Test error rendering for template state
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>