
- platform: template
  sensors:
    low_battery:
      friendly_name: 'Low Battery'
      value_template: >
        {%- set threshold = 15 -%}
        {%- set domains = ['light', 'switch', 'sensor', 'zwave', 'lock', 'binary_sensor'] -%}
        {%- for domain in domains -%}
          {%- for item in states[domain] if ((item.attributes.battery_level is defined and item.attributes['battery_level'] | int < threshold) or ("battery" in item.name | lower and ((item.state | int < threshold and item.state|int != 0) or item.state | lower == "low" or item.state | lower == "unknown"))) -%}
            {{ item.attributes.friendly_name }} (
            {%- if item.attributes.battery_level is defined -%}
              {{ item.attributes.battery_level}}
            {%- else -%}
              {{item.state}}
            {%- endif -%}%)
            {%- if not loop.last -%}
              {{', '}}
            {%- endif -%}
          {%- endfor -%}
        {%- endfor -%}