I’m working on cleaning up my different yaml files (removing template sensors from sensors.yaml and binary_sensors.yaml) and in doing so I’ve been monitoring my logs to make sure I didn’t cause any issues. I have most of it cleaned up but have two remaining errors I can’t seem to get rid of on a restart of HA.
The this template sensor looks at my four AC Air Filter Life sensors (also templated) and gives me the lowest of them i.e. which one needs changed the soonest. Here is the current snippet of that sensor from my templates.yaml file.
##################################################################################
### AC Air Filter Lowest Days Remaining Template Sensor ###
##################################################################################
- sensor:
- name: "Lowest Air Filter Life Remaining"
unique_id: lowest_air_filter_life_remaining
unit_of_measurement: "days"
state: >
{% set sensors = [
states('sensor.basement_air_filter_life_remaining'),
states('sensor.furnace_air_filter_life_remaining'),
states('sensor.master_bedroom_air_filter_life_remaining'),
states('sensor.hallway_air_filter_life_remaining')
] %}
{% set values = sensors
| map('regex_findall', '([0-9.]+)')
| map('first')
| reject('none')
| map('float')
| list %}
{{ values | min if values else '999' }}
It gives me the lowest of the four sensors, but on start up it throws an error.
Logger: homeassistant.helpers.event
Source: helpers/template.py:646
First occurred: 4:57:57 PM (1 occurrence)
Last logged: 4:57:57 PM
Error while processing template: Template<template=({% set sensors = [ states('sensor.basement_air_filter_life_remaining'), states('sensor.furnace_air_filter_life_remaining'), states('sensor.master_bedroom_air_filter_life_remaining'), states('sensor.hallway_air_filter_life_remaining') ] %} {% set values = sensors | map('regex_findall', '([0-9.]+)') | map('first') | reject('none') | map('float') | list %} {{ values | min if values else '999' }}) renders=2>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 644, in async_render
render_result = _render_with_context(self.template, compiled, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2969, in _render_with_context
return template.render(**kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
self.environment.handle_exception()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
raise rewrite_traceback_stack(source=source)
File "<template>", line 6, in top-level template code
File "/usr/local/lib/python3.13/site-packages/jinja2/async_utils.py", line 48, in wrapper
return normal_func(*args, **kwargs)
File "/usr/local/lib/python3.13/site-packages/jinja2/filters.py", line 1365, in sync_do_list
return list(value)
File "/usr/local/lib/python3.13/site-packages/jinja2/filters.py", line 1503, in sync_do_map
yield func(item)
~~~~^^^^^^
File "/usr/local/lib/python3.13/site-packages/jinja2/filters.py", line 1745, in func
return context.environment.call_filter(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
name, item, args, kwargs, context=context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/site-packages/jinja2/environment.py", line 569, in call_filter
return self._filter_test_common(
~~~~~~~~~~~~~~~~~~~~~~~~^
name, value, args, kwargs, context, eval_ctx, True
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.13/site-packages/jinja2/environment.py", line 550, in _filter_test_common
return func(*args, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2443, in forgiving_float_filter
return float(value)
jinja2.exceptions.UndefinedError: No first item, sequence was empty.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 761, in async_render_to_info
render_info._result = self.async_render( # noqa: SLF001
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
variables, strict=strict, log_fn=log_fn, **kwargs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 646, in async_render
raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: No first item, sequence was empty.
Followed by this error.
Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:215
integration: Template (documentation, issues)
First occurred: 4:57:57 PM (1 occurrence)
Last logged: 4:57:57 PM
TemplateError('UndefinedError: No first item, sequence was empty.') while processing template 'Template<template=({% set sensors = [ states('sensor.basement_air_filter_life_remaining'), states('sensor.furnace_air_filter_life_remaining'), states('sensor.master_bedroom_air_filter_life_remaining'), states('sensor.hallway_air_filter_life_remaining') ] %} {% set values = sensors | map('regex_findall', '([0-9.]+)') | map('first') | reject('none') | map('float') | list %} {{ values | min if values else '999' }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.lowest_air_filter_life_remaining'
ChatGPT seems to think the sensors are loaded when HA starts which results in unavailable but the template is looking for a number instead of string. But every version of update to the template sensor it has tried either still gives the same error or make the sensor go unavailable.
Any ideas? I’m way out of my depth on this on.
Thanks!!!