Template Loop error

Hi folks, thanks in advance for your help.

I’m getting a template loop with a sensor I have that shows me unavailable (etc) Z-Wave entities.
Error from the logs below …

Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:353 
Integration: Template (documentation, issues) 
First occurred: 8:33:44 am (1 occurrences) 
Last logged: 8:33:44 am

Template loop detected while processing event: <Event state_changed[L]: entity_id=sensor.unavailable_entities, old_state=<state sensor.unavailable_entities=75; entities=75, unit_of_measurement=entities, icon=mdi:alert-circle, friendly_name=Unavailable Entities @ 2022-03-14T08:31:44.294853+00:00>, new_state=<state sensor.unavailable_entities=70; entities=70, unit_of_measurement=entities, icon=mdi:alert-circle, friendly_name=Unavailable Entities @ 2022-03-14T08:32:44.271324+00:00>>, skipping template render for Template[{{ states | selectattr('state','in',['unavailable','unknown','dead']) | rejectattr('entity_id','eq','sensor.unavailable_entities') | rejectattr('domain','eq','group') | rejectattr('entity_id','in',state_attr('group.ignored_entities','entity_id')) | list | count }}]

Initially, I assumed that it was because it was including itself in the list - sensor.unavailable_entities.

I tried to mitigate this by then excluding itself from the results as quickly as I could using …
rejectattr(‘entity_id’,‘eq’,‘sensor.unavailable_entities’)

# ===============================================================
# Z-Wave JS Summary
# ===============================================================

- platform: template
  sensors:
    unavailable_entities:
      friendly_name: Unavailable Entities
      unique_id: "99F668E9-73B3-4328-84CE-5FCAB224AE12"
      unit_of_measurement: entities
      icon_template: "{{ 'mdi:check-circle' if is_state('sensor.unavailable_entities','0') else 'mdi:alert-circle' }}"
      value_template: >
        {{ states | selectattr('state','in',['unavailable','unknown','dead']) | rejectattr('entity_id','eq','sensor.unavailable_entities') 
          | rejectattr('domain','eq','group') | rejectattr('entity_id','in',state_attr('group.ignored_entities','entity_id')) | list | count }}
      attribute_templates:
        entities: >
          {{ states | selectattr('state','in',['unavailable','unknown','dead']) | rejectattr('entity_id','eq','sensor.unavailable_entities') 
            | rejectattr('domain','eq','group') | rejectattr('entity_id','in',state_attr('group.ignored_entities','entity_id')) | list | count }}

# ===============================================================

But this hasn’t dont the trick, I still see the error.
What am I missing?

Thanks as always … :pray:t2:

Edit - I forgot to mention this when I originally posted - sorry!
sensor.unavailable_entities is also added to the ignored entities group.

 ignored_entities:
   name: "Ignored Entities"
   entities:
     - sensor.unavailable_entities
1 Like

Put the sensor into your ignore group.

Ah I’m sorry - I forgot to mention the group completely. :man_facepalming:t2:

It’s in the ignore group already. When that didn’t work, I added the rejectattr().

 ignored_entities:
   name: "Ignored Entities"
   entities:
     - sensor.unavailable_entities
     - ... etc

Ah, ok. What if you change the order? All rejectattr before selectattr

Honestly, I wouldn’t have thought you could exclude something when you hadn’t selected something in the first place, so I’d not really considered that one!

I’ll try it and let you know - thank you. :grinning:

# ===============================================================
# Z-Wave JS Summary
# ===============================================================

- platform: template
  sensors:
    unavailable_entities:
      friendly_name: Unavailable Entities
      unique_id: "99F668E9-73B3-4328-84CE-5FCAB224AE12"
      unit_of_measurement: entities
      icon_template: "{{ 'mdi:check-circle' if is_state('sensor.unavailable_entities','0') else 'mdi:alert-circle' }}"
      value_template: >
        {{ states | rejectattr('entity_id','eq','sensor.unavailable_entities') | rejectattr('entity_id','in',state_attr('group.ignored_entities','entity_id'))
          | rejectattr('domain','eq','group') | selectattr('state','in',['unavailable','unknown','dead']) | list | count }}
      attribute_templates:
        entities: >
          {{ states | rejectattr('entity_id','eq','sensor.unavailable_entities') | rejectattr('entity_id','in',state_attr('group.ignored_entities','entity_id'))
            | rejectattr('domain','eq','group') | selectattr('state','in',['unavailable','unknown','dead']) | list }}

# ===============================================================

On reboot, I immediately got a different error - included below, warning, it’s very long lol.

Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:353 
Integration: Template (documentation, issues) 
First occurred: 12:25:58 pm (1 occurrences) 
Last logged: 12:25:58 pm

Template loop detected while processing event: <Event state_changed[L]: entity_id=sensor.unavailable_entities, old_state=<state sensor.unavailable_entities=74; entities=[<template TemplateState(<state button.annex_back_blind_ping=unknown; friendly_name=Annex Back Blind: Ping @ 2022-03-14T12:23:49.582939+00:00>)>, <template TemplateState(<state button.annex_front_blind_ping=unknown; friendly_name=Annex Front Blind: Ping @ 2022-03-14T12:23:49.588779+00:00>)>, <template TemplateState(<state button.annex_multisensor_1_ping=unknown; friendly_name=Annex Multisensor 1: Ping @ 2022-03-14T12:23:49.584772+00:00>)>, <template TemplateState(<state button.annex_multisensor_2_ping=unknown; friendly_name=Annex Multisensor 2: Ping @ 2022-03-14T12:23:49.579059+00:00>)>, <template TemplateState(<state button.annex_passage_multisensor_1_ping=unknown; friendly_name=Annex Passage Multisensor 1: Ping @ 2022-03-14T12:23:49.578031+00:00>)>, <template TemplateState(<state button.annex_passage_multisensor_2_ping=unknown; friendly_name=Annex Passage Multisensor 2: Ping @ 2022-03-14T12:23:49.578314+00:00>)>, <template TemplateState(<state button.annex_side_flood_light_ping=unknown; friendly_name=Annex Side Flood Light: Ping @ 2022-03-14T12:23:49.586413+00:00>)>, <template TemplateState(<state button.back_garden_flood_light_ping=unknown; friendly_name=Back Garden Flood Light: Ping @ 2022-03-14T12:23:49.586729+00:00>)>, <template TemplateState(<state button.bathroom_multisensor_ping=unknown; friendly_name=Bathroom Multisensor: Ping @ 2022-03-14T12:23:49.578563+00:00>)>, <template TemplateState(<state button.bathroom_range_extender_ping=unknown; friendly_name=Bathroom Range Extender: Ping @ 2022-03-14T12:23:49.582211+00:00>)>, <template TemplateState(<state button.bathroom_towel_rail_ping=unknown; friendly_name=Bathroom Towel Rail: Ping @ 2022-03-14T12:23:49.581430+00:00>)>, <template TemplateState(<state button.bedroom_1_blind_ping=unknown; friendly_name=Bedroom 1 Blind: Ping @ 2022-03-14T12:23:49.583542+00:00>)>, <template TemplateState(<state button.bedroom_1_multisensor_ping=unknown; friendly_name=Bedroom 1 Multisensor: Ping @ 2022-03-14T12:23:49.580916+00:00>)>, <template TemplateState(<state button.bedroom_2_multisensor_ping=unknown; friendly_name=Bedroom 2 Multisensor: Ping @ 2022-03-14T12:23:49.578806+00:00>)>, <template TemplateState(<state button.bedroom_3_multisensor_ping=unknown; friendly_name=Bedroom 3 Multisensor: Ping @ 2022-03-14T12:23:49.579319+00:00>)>, <template TemplateState(<state button.bedroom_4_multisensor_ping=unknown; friendly_name=Bedroom 4 Multisensor: Ping @ 2022-03-14T12:23:49.577771+00:00>)>, <template TemplateState(<state button.car_charger_1_ping=unknown; friendly_name=Car Charger 1: Ping @ 2022-03-14T12:23:49.580545+00:00>)>, <template TemplateState(<state button.car_charger_2_ping=unknown; friendly_name=Car Charger 2: Ping @ 2022-03-14T12:23:49.580639+00:00>)>, <template TemplateState(<state button.coat_cupboard_multisensor_ping=unknown; friendly_name=Coat Cupboard Multisensor: Ping @ 2022-03-14T12:23:49.572492+00:00>)>, <template TemplateState(<state button.dining_room_dimmer_ping=unknown; friendly_name=Dining Room Dimmer: Ping @ 2022-03-14T12:23:49.579566+00:00>)>, <template TemplateState(<state button.dining_room_multisensor_ping=unknown; friendly_name=Dining Room Multisensor: Ping @ 2022-03-14T12:23:49.576690+00:00>)>, <template TemplateState(<state button.dining_room_side_flood_light_ping=unknown; friendly_name=Dining Room Side Flood Light: Ping @ 2022-03-14T12:23:49.587050+00:00>)>, <template TemplateState(<state button.dining_room_side_lights_ping=unknown; friendly_name=Dining Room Side Lights: Ping @ 2022-03-14T12:23:49.570355+00:00>)>, <template TemplateState(<state button.driveway_flood_light_ping=unknown; friendly_name=Driveway Flood Light: Ping @ 2022-03-14T12:23:49.586090+00:00>)>, <template TemplateState(<state button.en_suite_multisensor_ping=unknown; friendly_name=En Suite Multisensor: Ping @ 2022-03-14T12:23:49.583653+00:00>)>, <template TemplateState(<state button.en_suite_towel_rail_ping=unknown; friendly_name=En Suite Towel Rail: Ping @ 2022-03-14T12:23:49.581674+00:00>)>, <template TemplateState(<state button.hallway_dimmer_ping=unknown; friendly_name=Hallway Dimmer: Ping @ 2022-03-14T12:23:49.579810+00:00>)>, <template TemplateState(<state button.hallway_multisensor_ping=unknown; friendly_name=Hallway Multisensor: Ping @ 2022-03-14T12:23:49.576423+00:00>)>, <template TemplateState(<state button.hallway_range_extender_ping=unknown; friendly_name=Hallway Range Extender: Ping @ 2022-03-14T12:23:49.581921+00:00>)>, <template TemplateState(<state button.kitchen_left_dishwasher_ping=unknown; friendly_name=Kitchen Left Dishwasher: Ping @ 2022-03-14T12:23:49.588074+00:00>)>, <template TemplateState(<state button.kitchen_multisensor_ping=unknown; friendly_name=Kitchen Multisensor: Ping @ 2022-03-14T12:23:49.584173+00:00>)>, <template TemplateState(<state button.kitchen_ovens_ping=unknown; friendly_name=Kitchen Ovens: Ping @ 2022-03-14T12:23:49.580732+00:00>)>, <template TemplateState(<state button.kitchen_quooker_ping=unknown; friendly_name=Kitchen Quooker: Ping @ 2022-03-14T12:23:49.580824+00:00>)>, <template TemplateState(<state button.kitchen_right_dishwasher_ping=unknown; friendly_name=Kitchen Right Dishwasher: Ping @ 2022-03-14T12:23:49.588200+00:00>)>, <template TemplateState(<state button.kitchenette_counter_lights_ping=unknown; friendly_name=Kitchenette Counter Lights: Ping @ 2022-03-14T12:23:49.582393+00:00>)>, <template TemplateState(<state button.kitchenette_fridge_freezer_ping=unknown; friendly_name=Kitchenette Fridge Freezer: Ping @ 2022-03-14T12:23:49.588658+00:00>)>, <template TemplateState(<state button.kitchenette_multisensor_ping=unknown; friendly_name=Kitchenette Multisensor: Ping @ 2022-03-14T12:23:49.588397+00:00>)>, <template TemplateState(<state button.kitchenette_range_extender_ping=unknown; friendly_name=Kitchenette Range Extender: Ping @ 2022-03-14T12:23:49.582019+00:00>)>, <template TemplateState(<state button.loft_hot_water_return_ping=unknown; friendly_name=Loft Hot Water Return: Ping @ 2022-03-14T12:23:49.581181+00:00>)>, <template TemplateState(<state button.loft_range_extender_1_ping=unknown; friendly_name=Loft Range Extender 1: Ping @ 2022-03-14T12:23:49.585485+00:00>)>, <template TemplateState(<state button.loft_range_extender_2_ping=unknown; friendly_name=Loft Range Extender 2: Ping @ 2022-03-14T12:23:49.585575+00:00>)>, <template TemplateState(<state button.lounge_multisensor_ping=unknown; friendly_name=Lounge Multisensor: Ping @ 2022-03-14T12:23:49.576938+00:00>)>, <template TemplateState(<state button.lounge_range_extender_ping=unknown; friendly_name=Lounge Range Extender: Ping @ 2022-03-14T12:23:49.588301+00:00>)>, <template TemplateState(<state button.lounge_side_motion_sensor_ping=unknown; friendly_name=Lounge Side Motion Sensor: Ping @ 2022-03-14T12:23:49.587406+00:00>)>, <template TemplateState(<state button.passage_air_curtain_ping=unknown; friendly_name=Passage Air Curtain: Ping @ 2022-03-14T12:23:49.572246+00:00>)>, <template TemplateState(<state button.passage_multisensor_1_ping=unknown; friendly_name=Passage Multisensor 1: Ping @ 2022-03-14T12:23:49.585020+00:00>)>, <template TemplateState(<state button.passage_multisensor_2_ping=unknown; friendly_name=Passage Multisensor 2: Ping @ 2022-03-14T12:23:49.571987+00:00>)>, <template TemplateState(<state button.server_rack_multisensor_ping=unknown; friendly_name=Server Rack Multisensor: Ping @ 2022-03-14T12:23:49.570468+00:00>)>, <template TemplateState(<state button.server_rack_smart_switch_ping=unknown; friendly_name=Server Rack Smart Switch: Ping @ 2022-03-14T12:23:49.569869+00:00>)>, <template TemplateState(<state button.shower_room_multisensor_ping=unknown; friendly_name=Shower Room Multisensor: Ping @ 2022-03-14T12:23:49.584523+00:00>)>, <template TemplateState(<state button.shower_room_range_extender_ping=unknown; friendly_name=Shower Room Range Extender: Ping @ 2022-03-14T12:23:49.582112+00:00>)>, <template TemplateState(<state button.shower_room_towell_rail_ping=unknown; friendly_name=Shower Room Towell Rail: Ping @ 2022-03-14T12:23:49.587724+00:00>)>, <template TemplateState(<state button.smart_meter_appliances_ping=unknown; friendly_name=Smart Meter Appliances: Ping @ 2022-03-14T12:23:49.580254+00:00>)>, <template TemplateState(<state button.smart_meter_ashp_ping=unknown; friendly_name=Smart Meter ASHP: Ping @ 2022-03-14T12:23:49.580351+00:00>)>, <template TemplateState(<state button.smart_meter_hob_ping=unknown; friendly_name=Smart Meter Hob: Ping @ 2022-03-14T12:23:49.580052+00:00>)>, <template TemplateState(<state button.smart_meter_mvhr_ping=unknown; friendly_name=Smart Meter MVHR: Ping @ 2022-03-14T12:23:49.580449+00:00>)>, <template TemplateState(<state button.smart_meter_server_rack_ping=unknown; friendly_name=Smart Meter Server Rack: Ping @ 2022-03-14T12:23:49.580157+00:00>)>, <template TemplateState(<state button.snug_amp_smart_switch_ping=unknown; friendly_name=Snug Amp Smart Switch: Ping @ 2022-03-14T12:23:49.585665+00:00>)>, <template TemplateState(<state button.snug_blind_ping=unknown; friendly_name=Snug Blind: Ping @ 2022-03-14T12:23:49.585389+00:00>)>, <template TemplateState(<state button.snug_multisensor_1_ping=unknown; friendly_name=Snug Multisensor 1: Ping @ 2022-03-14T12:23:49.577201+00:00>)>, <template TemplateState(<state button.snug_multisensor_2_ping=unknown; friendly_name=Snug Multisensor 2: Ping @ 2022-03-14T12:23:49.577517+00:00>)>, <template TemplateState(<state button.snug_range_extender_ping=unknown; friendly_name=Snug Range Extender: Ping @ 2022-03-14T12:23:49.582301+00:00>)>, <template TemplateState(<state button.snug_tv_smart_switch_ping=unknown; friendly_name=Snug TV Smart Switch: Ping @ 2022-03-14T12:23:49.584424+00:00>)>, <template TemplateState(<state button.utility_room_dryer_ping=unknown; friendly_name=Utility Room Dryer: Ping @ 2022-03-14T12:23:49.587973+00:00>)>, <template TemplateState(<state button.utility_room_multisensor_ping=unknown; friendly_name=Utility Room Multisensor: Ping @ 2022-03-14T12:23:49.583912+00:00>)>, <template TemplateState(<state button.utility_room_washing_machine_ping=unknown; friendly_name=Utility Room Washing Machine: Ping @ 2022-03-14T12:23:49.582734+00:00>)>, <template TemplateState(<state button.utility_room_water_main_ping=unknown; friendly_name=Utility Room Water Main: Ping @ 2022-03-14T12:23:49.582640+00:00>)>, <template TemplateState(<state light.hallway_range_extender=unknown; supported_color_modes=['hs'], friendly_name=Hallway Range Extender, supported_features=32 @ 2022-03-14T12:23:49.695107+00:00>)>, <template TemplateState(<state sensor.electric_consumption_today=unknown; state_class=total_increasing, icon=mdi:flash, friendly_name=Electric Consumption (Today) @ 2022-03-14T12:23:45.338753+00:00>)>, <template TemplateState(<state sensor.electric_consumption_year=unknown; state_class=total_increasing, icon=mdi:flash, friendly_name=Electric Consumption (Year) @ 2022-03-14T12:23:45.338929+00:00>)>, <template TemplateState(<state sensor.electric_consumption_year_cost=unknown; state_class=total, unit_of_measurement=GBP, device_class=monetary, friendly_name=sensor Cost @ 2022-03-14T12:23:45.094350+00:00>)>, <template TemplateState(<state sensor.electric_cost_today=unknown; state_class=total_increasing, icon=mdi:flash, friendly_name=Electric Cost (Today) @ 2022-03-14T12:23:45.339362+00:00>)>, <template TemplateState(<state sensor.electric_tariff_rate=unknown; state_class=measurement, unit_of_measurement=GBP/kWh, device_class=monetary, icon=mdi:cash, friendly_name=Electric Tariff Rate @ 2022-03-14T12:23:45.339229+00:00>)>, <template TemplateState(<state sensor.electric_tariff_standing=unknown; state_class=measurement, unit_of_measurement=GBP, device_class=monetary, icon=mdi:cash, friendly_name=Electric Tariff Standing @ 2022-03-14T12:23:45.339075+00:00>)>], unit_of_measurement=entities, icon=mdi:alert-circle, friendly_name=Unavailable Entities @ 2022-03-14T12:24:58.581297+00:00>, new_state=<state sensor.unavailable_entities=69; entities=[<template TemplateState(<state button.annex_back_blind_ping=unknown; friendly_name=Annex Back Blind: Ping @ 2022-03-14T12:23:49.582939+00:00>)>, <template TemplateState(<state button.annex_front_blind_ping=unknown; friendly_name=Annex Front Blind: Ping @ 2022-03-14T12:23:49.588779+00:00>)>, <template TemplateState(<state button.annex_multisensor_1_ping=unknown; friendly_name=Annex Multisensor 1: Ping @ 2022-03-14T12:23:49.584772+00:00>)>, <template TemplateState(<state button.annex_multisensor_2_ping=unknown; friendly_name=Annex Multisensor 2: Ping @ 2022-03-14T12:23:49.579059+00:00>)>, <template TemplateState(<state button.annex_passage_multisensor_1_ping=unknown; friendly_name=Annex Passage Multisensor 1: Ping @ 2022-03-14T12:23:49.578031+00:00>)>, <template TemplateState(<state button.annex_passage_multisensor_2_ping=unknown; friendly_name=Annex Passage Multisensor 2: Ping @ 2022-03-14T12:23:49.578314+00:00>)>, <template TemplateState(<state button.annex_side_flood_light_ping=unknown; friendly_name=Annex Side Flood Light: Ping @ 2022-03-14T12:23:49.586413+00:00>)>, <template TemplateState(<state button.back_garden_flood_light_ping=unknown; friendly_name=Back Garden Flood Light: Ping @ 2022-03-14T12:23:49.586729+00:00>)>, <template TemplateState(<state button.bathroom_multisensor_ping=unknown; friendly_name=Bathroom Multisensor: Ping @ 2022-03-14T12:23:49.578563+00:00>)>, <template TemplateState(<state button.bathroom_range_extender_ping=unknown; friendly_name=Bathroom Range Extender: Ping @ 2022-03-14T12:23:49.582211+00:00>)>, <template TemplateState(<state button.bathroom_towel_rail_ping=unknown; friendly_name=Bathroom Towel Rail: Ping @ 2022-03-14T12:23:49.581430+00:00>)>, <template TemplateState(<state button.bedroom_1_blind_ping=unknown; friendly_name=Bedroom 1 Blind: Ping @ 2022-03-14T12:23:49.583542+00:00>)>, <template TemplateState(<state button.bedroom_1_multisensor_ping=unknown; friendly_name=Bedroom 1 Multisensor: Ping @ 2022-03-14T12:23:49.580916+00:00>)>, <template TemplateState(<state button.bedroom_2_multisensor_ping=unknown; friendly_name=Bedroom 2 Multisensor: Ping @ 2022-03-14T12:23:49.578806+00:00>)>, <template TemplateState(<state button.bedroom_3_multisensor_ping=unknown; friendly_name=Bedroom 3 Multisensor: Ping @ 2022-03-14T12:23:49.579319+00:00>)>, <template TemplateState(<state button.bedroom_4_multisensor_ping=unknown; friendly_name=Bedroom 4 Multisensor: Ping @ 2022-03-14T12:23:49.577771+00:00>)>, <template TemplateState(<state button.car_charger_1_ping=unknown; friendly_name=Car Charger 1: Ping @ 2022-03-14T12:23:49.580545+00:00>)>, <template TemplateState(<state button.car_charger_2_ping=unknown; friendly_name=Car Charger 2: Ping @ 2022-03-14T12:23:49.580639+00:00>)>, <template TemplateState(<state button.coat_cupboard_multisensor_ping=unknown; friendly_name=Coat Cupboard Multisensor: Ping @ 2022-03-14T12:23:49.572492+00:00>)>, <template TemplateState(<state button.dining_room_dimmer_ping=unknown; friendly_name=Dining Room Dimmer: Ping @ 2022-03-14T12:23:49.579566+00:00>)>, <template TemplateState(<state button.dining_room_multisensor_ping=unknown; friendly_name=Dining Room Multisensor: Ping @ 2022-03-14T12:23:49.576690+00:00>)>, <template TemplateState(<state button.dining_room_side_flood_light_ping=unknown; friendly_name=Dining Room Side Flood Light: Ping @ 2022-03-14T12:23:49.587050+00:00>)>, <template TemplateState(<state button.dining_room_side_lights_ping=unknown; friendly_name=Dining Room Side Lights: Ping @ 2022-03-14T12:23:49.570355+00:00>)>, <template TemplateState(<state button.driveway_flood_light_ping=unknown; friendly_name=Driveway Flood Light: Ping @ 2022-03-14T12:23:49.586090+00:00>)>, <template TemplateState(<state button.en_suite_multisensor_ping=unknown; friendly_name=En Suite Multisensor: Ping @ 2022-03-14T12:23:49.583653+00:00>)>, <template TemplateState(<state button.en_suite_towel_rail_ping=unknown; friendly_name=En Suite Towel Rail: Ping @ 2022-03-14T12:23:49.581674+00:00>)>, <template TemplateState(<state button.hallway_dimmer_ping=unknown; friendly_name=Hallway Dimmer: Ping @ 2022-03-14T12:23:49.579810+00:00>)>, <template TemplateState(<state button.hallway_multisensor_ping=unknown; friendly_name=Hallway Multisensor: Ping @ 2022-03-14T12:23:49.576423+00:00>)>, <template TemplateState(<state button.hallway_range_extender_ping=unknown; friendly_name=Hallway Range Extender: Ping @ 2022-03-14T12:23:49.581921+00:00>)>, <template TemplateState(<state button.kitchen_left_dishwasher_ping=unknown; friendly_name=Kitchen Left Dishwasher: Ping @ 2022-03-14T12:23:49.588074+00:00>)>, <template TemplateState(<state button.kitchen_multisensor_ping=unknown; friendly_name=Kitchen Multisensor: Ping @ 2022-03-14T12:23:49.584173+00:00>)>, <template TemplateState(<state button.kitchen_ovens_ping=unknown; friendly_name=Kitchen Ovens: Ping @ 2022-03-14T12:23:49.580732+00:00>)>, <template TemplateState(<state button.kitchen_quooker_ping=unknown; friendly_name=Kitchen Quooker: Ping @ 2022-03-14T12:23:49.580824+00:00>)>, <template TemplateState(<state button.kitchen_right_dishwasher_ping=unknown; friendly_name=Kitchen Right Dishwasher: Ping @ 2022-03-14T12:23:49.588200+00:00>)>, <template TemplateState(<state button.kitchenette_counter_lights_ping=unknown; friendly_name=Kitchenette Counter Lights: Ping @ 2022-03-14T12:23:49.582393+00:00>)>, <template TemplateState(<state button.kitchenette_fridge_freezer_ping=unknown; friendly_name=Kitchenette Fridge Freezer: Ping @ 2022-03-14T12:23:49.588658+00:00>)>, <template TemplateState(<state button.kitchenette_multisensor_ping=unknown; friendly_name=Kitchenette Multisensor: Ping @ 2022-03-14T12:23:49.588397+00:00>)>, <template TemplateState(<state button.kitchenette_range_extender_ping=unknown; friendly_name=Kitchenette Range Extender: Ping @ 2022-03-14T12:23:49.582019+00:00>)>, <template TemplateState(<state button.loft_hot_water_return_ping=unknown; friendly_name=Loft Hot Water Return: Ping @ 2022-03-14T12:23:49.581181+00:00>)>, <template TemplateState(<state button.loft_range_extender_1_ping=unknown; friendly_name=Loft Range Extender 1: Ping @ 2022-03-14T12:23:49.585485+00:00>)>, <template TemplateState(<state button.loft_range_extender_2_ping=unknown; friendly_name=Loft Range Extender 2: Ping @ 2022-03-14T12:23:49.585575+00:00>)>, <template TemplateState(<state button.lounge_multisensor_ping=unknown; friendly_name=Lounge Multisensor: Ping @ 2022-03-14T12:23:49.576938+00:00>)>, <template TemplateState(<state button.lounge_range_extender_ping=unknown; friendly_name=Lounge Range Extender: Ping @ 2022-03-14T12:23:49.588301+00:00>)>, <template TemplateState(<state button.lounge_side_motion_sensor_ping=unknown; friendly_name=Lounge Side Motion Sensor: Ping @ 2022-03-14T12:23:49.587406+00:00>)>, <template TemplateState(<state button.passage_air_curtain_ping=unknown; friendly_name=Passage Air Curtain: Ping @ 2022-03-14T12:23:49.572246+00:00>)>, <template TemplateState(<state button.passage_multisensor_1_ping=unknown; friendly_name=Passage Multisensor 1: Ping @ 2022-03-14T12:23:49.585020+00:00>)>, <template TemplateState(<state button.passage_multisensor_2_ping=unknown; friendly_name=Passage Multisensor 2: Ping @ 2022-03-14T12:23:49.571987+00:00>)>, <template TemplateState(<state button.server_rack_multisensor_ping=unknown; friendly_name=Server Rack Multisensor: Ping @ 2022-03-14T12:23:49.570468+00:00>)>, <template TemplateState(<state button.server_rack_smart_switch_ping=unknown; friendly_name=Server Rack Smart Switch: Ping @ 2022-03-14T12:23:49.569869+00:00>)>, <template TemplateState(<state button.shower_room_multisensor_ping=unknown; friendly_name=Shower Room Multisensor: Ping @ 2022-03-14T12:23:49.584523+00:00>)>, <template TemplateState(<state button.shower_room_range_extender_ping=unknown; friendly_name=Shower Room Range Extender: Ping @ 2022-03-14T12:23:49.582112+00:00>)>, <template TemplateState(<state button.shower_room_towell_rail_ping=unknown; friendly_name=Shower Room Towell Rail: Ping @ 2022-03-14T12:23:49.587724+00:00>)>, <template TemplateState(<state button.smart_meter_appliances_ping=unknown; friendly_name=Smart Meter Appliances: Ping @ 2022-03-14T12:23:49.580254+00:00>)>, <template TemplateState(<state button.smart_meter_ashp_ping=unknown; friendly_name=Smart Meter ASHP: Ping @ 2022-03-14T12:23:49.580351+00:00>)>, <template TemplateState(<state button.smart_meter_hob_ping=unknown; friendly_name=Smart Meter Hob: Ping @ 2022-03-14T12:23:49.580052+00:00>)>, <template TemplateState(<state button.smart_meter_mvhr_ping=unknown; friendly_name=Smart Meter MVHR: Ping @ 2022-03-14T12:23:49.580449+00:00>)>, <template TemplateState(<state button.smart_meter_server_rack_ping=unknown; friendly_name=Smart Meter Server Rack: Ping @ 2022-03-14T12:23:49.580157+00:00>)>, <template TemplateState(<state button.snug_amp_smart_switch_ping=unknown; friendly_name=Snug Amp Smart Switch: Ping @ 2022-03-14T12:23:49.585665+00:00>)>, <template TemplateState(<state button.snug_blind_ping=unknown; friendly_name=Snug Blind: Ping @ 2022-03-14T12:23:49.585389+00:00>)>, <template TemplateState(<state button.snug_multisensor_1_ping=unknown; friendly_name=Snug Multisensor 1: Ping @ 2022-03-14T12:23:49.577201+00:00>)>, <template TemplateState(<state button.snug_multisensor_2_ping=unknown; friendly_name=Snug Multisensor 2: Ping @ 2022-03-14T12:23:49.577517+00:00>)>, <template TemplateState(<state button.snug_range_extender_ping=unknown; friendly_name=Snug Range Extender: Ping @ 2022-03-14T12:23:49.582301+00:00>)>, <template TemplateState(<state button.snug_tv_smart_switch_ping=unknown; friendly_name=Snug TV Smart Switch: Ping @ 2022-03-14T12:23:49.584424+00:00>)>, <template TemplateState(<state button.utility_room_dryer_ping=unknown; friendly_name=Utility Room Dryer: Ping @ 2022-03-14T12:23:49.587973+00:00>)>, <template TemplateState(<state button.utility_room_multisensor_ping=unknown; friendly_name=Utility Room Multisensor: Ping @ 2022-03-14T12:23:49.583912+00:00>)>, <template TemplateState(<state button.utility_room_washing_machine_ping=unknown; friendly_name=Utility Room Washing Machine: Ping @ 2022-03-14T12:23:49.582734+00:00>)>, <template TemplateState(<state button.utility_room_water_main_ping=unknown; friendly_name=Utility Room Water Main: Ping @ 2022-03-14T12:23:49.582640+00:00>)>, <template TemplateState(<state light.hallway_range_extender=unknown; supported_color_modes=['hs'], friendly_name=Hallway Range Extender, supported_features=32 @ 2022-03-14T12:23:49.695107+00:00>)>, <template TemplateState(<state sensor.electric_consumption_today=unknown; state_class=total_increasing, icon=mdi:flash, friendly_name=Electric Consumption (Today) @ 2022-03-14T12:23:45.338753+00:00>)>, <template TemplateState(<state sensor.electric_consumption_year=unknown; state_class=total_increasing, icon=mdi:flash, friendly_name=Electric Consumption (Year) @ 2022-03-14T12:23:45.338929+00:00>)>, <template TemplateState(<state sensor.electric_consumption_year_cost=unknown; state_class=total, unit_of_measurement=GBP, device_class=monetary, friendly_name=sensor Cost @ 2022-03-14T12:23:45.094350+00:00>)>, <template TemplateState(<state sensor.electric_cost_today=unknown; state_class=total_increasing, icon=mdi:flash, friendly_name=Electric Cost (Today) @ 2022-03-14T12:23:45.339362+00:00>)>, <template TemplateState(<state sensor.electric_tariff_rate=unknown; state_class=measurement, unit_of_measurement=GBP/kWh, device_class=monetary, icon=mdi:cash, friendly_name=Electric Tariff Rate @ 2022-03-14T12:23:45.339229+00:00>)>, <template TemplateState(<state sensor.electric_tariff_standing=unknown; state_class=measurement, unit_of_measurement=GBP, device_class=monetary, icon=mdi:cash, friendly_name=Electric Tariff Standing @ 2022-03-14T12:23:45.339075+00:00>)>], unit_of_measurement=entities, icon=mdi:alert-circle, friendly_name=Unavailable Entities @ 2022-03-14T12:25:58.622077+00:00>>, skipping template render for Template[{{ states | rejectattr('entity_id','eq','sensor.unavailable_entities') | rejectattr('entity_id','in',state_attr('group.ignored_entities','entity_id')) | rejectattr('domain','eq','group') | selectattr('state','in',['unavailable','unknown','dead']) | list }}]

The following has been adapted from Jazzyisj which is working flawlessly:


template:
  - sensor:
      - unique_id: nicht_erreichbare_entitaeten
        name: nicht erreichbare Entitäten
        icon: "{{ 'mdi:alert-circle' if states('sensor.nicht_erreichbare_entitaten')|int(0) > 0 else 'mdi:check-circle' }}"
        # mdi:lan-disconnect
        state: |
          {% if state_attr('sensor.nicht_erreichbare_entitaten','entity_id') != none %}
          {{ state_attr('sensor.nicht_erreichbare_entitaten','entity_id')|count }}
          {% endif %}
        attributes:
          entity_id: |
            {% if state_attr('group.nicht_erreichbare_entitaten','entity_id') != none %}
              {% set ignore_seconds = 0 %}
              {% set ignore_time = (now().timestamp() - ignore_seconds)|as_datetime %}
              {% set entities = states
                |rejectattr('domain','in',['button','group','scene'])
                |rejectattr('entity_id','search', 'battery_level|openweathermap')
                |selectattr('state','in',['unavailable','unknown','none'])
                |list %}
              {% set others = states
                |selectattr('domain','in',['button','group','scene'])
                |selectattr('state','eq','unavailable')
                |list %}
              {{ (entities + others)
                |rejectattr('entity_id','in',state_attr('group.nicht_erreichbare_entitaten','entity_id'))
                |rejectattr('last_changed','ge',ignore_time)
                |map(attribute='entity_id')
                |list }}
            {% endif %}
          unavailable: |
              {{ states
                |rejectattr('entity_id','in', state_attr('group.nicht_erreichbare_entitaten', 'entity_id'))
                |selectattr('state', 'eq', 'unavailable') 
                |map(attribute='entity_id')
                |join('\n')
              }}
          unknown: |
              {{ states
                |rejectattr('domain','in',['button','group','scene'])
                |rejectattr('entity_id','in', state_attr('group.nicht_erreichbare_entitaten', 'entity_id'))
                |selectattr('state', 'eq', 'unknown') 
                |map(attribute='entity_id')
                |join('\n')
              }}
          none: |
              {{ states
                |rejectattr('domain','in',['button','group','scene'])
                |rejectattr('entity_id','in', state_attr('group.nicht_erreichbare_entitaten', 'entity_id'))
                |selectattr('state', 'eq', 'none') 
                |map(attribute='entity_id')
                |join('\n')
              }}

1 Like

and another solution if you just want to know if there are issues with your zwavejs devices.

go to the device config for your zwavejs devices and ensure the “node status” entity is enabled for each node.

then you can use this:

sensor:
  - platform: template
    sensors:
      zwave_failed_nodes:
        friendly_name: "ZwaveJS Failed Nodes"
        value_template: >
          {% set dead_count = states | selectattr("entity_id", "search", "node_status") |
             selectattr('state', 'in', 'dead, unavailable, unknown') |
             map(attribute='entity_id') | list | count %}
          {% set total = states | selectattr("entity_id", "search", "node_status") |
            map(attribute='entity_id') | list | count %}
          {{ dead_count }}/{{ total }}
        attribute_templates: 
          dead nodes: >
            {% set dead_list = states | selectattr("entity_id", "search", "node_status") |
               selectattr('state', 'in', 'dead, unavailable, unknown') |
               map(attribute='name') | list %}
            {{ dead_list }}

Thanks @finity - I actually use this one too for something else and haven’t had any issues.
I’d not considered adapting this one to help me out, but its got me thinking - thank you!

Thanks for your help @pedolsky.
I’d not see this before, and actually hadn’t used packages either. It’s a great idea.
I had a crack and it works perfectly; I’ve even been able to adapt it to do exactly what I was after.

Thanks again. :grinning: