Releases: Dajwitt/template-entity-checker
Release list
v0.1.3
This update makes the optional Template Helper label exclusion easier to configure without changing the stored configuration format or scan behavior.
-
Searchable label selection
- The optional helper-label field now uses a searchable Home Assistant picker instead of a long non-searchable list.
- Custom values are blocked and at most one label can be saved. Selecting several labels shows a validation error instead of changing the configuration unexpectedly.
- A previously saved label that was later deleted remains visible so it can still be cleared safely.
-
Compatibility
- Existing configurations remain valid. The selected label continues to be stored as the same stable Home Assistant label ID, so no migration is required.
- Scan results and the integration's UI-created Template Helper scope are unchanged by this update.
-
Documentation
- The German and English documentation, generated documentation site, mobile navigation, search behavior, and release/version guidance have been reviewed and synchronized with v0.1.3.
-
What to expect after updating
- Restart Home Assistant after installing the update through HACS.
- Open the integration options and click the helper-label field to search the available Home Assistant labels.
-
Scope
- Template Entity Checker continues to scan UI-created Template Helpers only.
- Templates in
configuration.yaml,templates.yaml, packages, automations, scripts, scenes, dashboards, and blueprints remain out of scope.
v0.1.2
0.1.2
This release makes exclusions easier to manage, expands static has_value detection, and adds complete bilingual documentation.
Easier exclusions and settings
- Searchable exact ignore list: Existing and currently missing entity IDs can be selected from suggestions or entered freely. Wildcards remain intentionally unsupported.
- Optional helper label: One existing Home Assistant label can exclude complete UI-created Template Helpers from the active findings. The label is evaluated directly on the helper entity; device and area labels are not inherited.
- Transparent ignored findings: The sensor and diagnostics expose the selected label, ignored helper sources, and
ignored_matchesinstead of silently hiding them. - Native notification toggle: Persistent notifications now use Home Assistant's normal on/off selector.
- Existing exact ignore values remain compatible and continue to work alongside label-based exclusions.
Expanded template analysis
Static entity IDs are now detected in all supported has_value forms:
{{ has_value('sensor.example') }}
{{ 'sensor.example' | has_value }}
{{ 'sensor.example' is has_value }}Dynamic expressions are still never guessed or executed. Templates are parsed only and are never rendered, changed, or repaired.
Result behavior
- Scans remain serialized and never run in parallel.
- Notifications are updated only when the active structured missing findings change.
- The
template_entity_checker_result_changedevent follows the same active-finding comparison after the first complete scan establishes its baseline. - Exclusively ignored findings do not create a persistent notification.
Documentation
Complete German and English documentation is now available at:
https://dajwitt.github.io/template-entity-checker/
The Markdown sources live in the repository. GitHub Actions rebuilds and verifies the generated site and deploys it from main with least-privilege permissions.
Updating
- Minimum supported and verified Home Assistant version: 2026.7.3.
- No manual configuration migration is required.
- Update through HACS and restart Home Assistant.
Template Entity Checker continues to scan UI-created Template Helpers only. Templates from YAML files, packages, automations, scripts, dashboards, scenes, and blueprints are outside its scope.
v0.1.1
0.1.1
This update improves which missing entity references are detected in UI-created Template Helpers and reduces false findings from text that only looks like a real template reference.
-
Entity reference detection
has_value()calls are now checked: Home Assistant useshas_value('entity.id')to test whether an entity currently has a usable value. In v0.1.0, an entity ID used only in this function was not inspected. v0.1.1 checks a static ID such ashas_value('binary_sensor.garage_door')against both current states and the Entity Registry, so typos and deleted entities now appear inmissing_entities.- Static
expand()collections are checked individually:expand()turns entities and groups into a collection of entity states. In v0.1.0, literal lists were treated as fully dynamic and their individual IDs were skipped. v0.1.1 checks IDs passed as a single literal, multiple arguments, a list, or a tuple. For example, both entities inexpand(['media_player.kitchen', 'media_player.living_room'])are checked separately. - Mixed
expand()collections remain safe: Inexpand(['sensor.fixed_source', selected_entity]), the fixed entity is checked while the variable part is reported as dynamic. Template Entity Checker never guesses the value of a variable entity ID.
-
Template Helper coverage
- More actual template fields are scanned: Coverage now includes the confirmed template fields for all 17 UI-created Template Helper types in Home Assistant 2026.7.3.
- Templates outside the main state field are included: Depending on the helper type, this includes availability, position, version, weather, and device-tracker location templates.
- Unrelated settings stay excluded: Names, metadata, actions, service targets, ordinary dropdown values, and other non-template settings are not treated as templates. The Select Template Helper's templated
optionsfield remains included because Home Assistant defines it as a real template field.
-
Parser reliability
- Fewer false findings: Function-like text inside normal text, Jinja comments, quoted strings, Jinja
is/is nottests, and macro or filter-block names is ignored. Calls on other objects, such ashelper.expand(...), are not mistaken for Home Assistant's global template functions. - Scope-aware Jinja handling: Local names follow Jinja scope and execution order. Clear global calls before a same-scope binding and after a finished child scope are still checked, while locally resolved calls are ignored. Templates using Windows CRLF line endings retain correct line and column positions.
- No template execution: Templates are parsed only. They are never rendered or executed.
- Fewer false findings: Function-like text inside normal text, Jinja comments, quoted strings, Jinja
-
What to expect after updating
- The number reported by
sensor.template_entity_checkermay increase after the first v0.1.1 scan. This does not mean the update created new broken entities. It means references that v0.1.0 did not inspect can now be found. - No configuration migration or new option is required. Restart Home Assistant after installing the update through HACS.
- The number reported by
-
Scope
- Template Entity Checker still scans UI-created Template Helpers only.
- Templates in
configuration.yaml,templates.yaml, packages, automations, scripts, scenes, dashboards, and blueprints are not scanned. - The integration does not repair references and never guesses dynamic entity IDs.
Template Entity Checker v0.1.0
First public release of Template Entity Checker.
Highlights
- Scans all UI-created Template Helper types automatically.
- Finds missing static entity references and groups duplicate occurrences with their locations.
- Surfaces findings directly through
sensor.template_entity_checkerand an optional persistent notification. - Supports automatic interval scans and the manual
template_entity_checker.scan_nowaction. - Reports dynamic references separately instead of guessing entity IDs.
- Includes exact entity ignores, diagnostics, German and English translations, and a config-entry migration from the earlier type-selection options.
Scope
This release scans UI-created Template Helpers only. Templates defined in configuration.yaml, templates.yaml, packages, or other YAML includes are not scanned.
Template Entity Checker is a focused complement to Spook and Watchman, not a replacement for either project.