Testing in the HA -> Developer tools -> Template.
There is a list:
{%- set Z = expand('group.battery_sensors')|map(attribute='state') %}
{{Z|list}}
This gives this output - seems to be correct:
['100', '100', '26', '76', '37', '12', '100', '47', '90', '42', '6', '100']
Now if I try to get a count, I stuck.
Here is a full code:
{%- set Z = expand('group.battery_sensors')|map(attribute='state') %}
{{Z|list}}
{{Z|list|count}}
{{Z|list}}
The output:
['100', '100', '26', '76', '37', '12', '100', '47', '90', '42', '6', '100']
0
[]
I do not get it:
- Why the 1st count is 0 ?
- Why the 2nd list is empty?
OK, letās consider that I can use some variable (for example, āZā) for one template only - i.e. this is wrong:
{%- set Z = expand('group.battery_sensors')|map(attribute='state') %}
{{Z|list}}
{{Z|list|count}}
{{Z|list}}
it should be this:
{%- set Z = expand('group.battery_sensors')|map(attribute='state') %}
{{Z|list}}
{%- set Z = expand('group.battery_sensors')|map(attribute='state') %}
{{Z|list|count}}
{%- set Z = expand('group.battery_sensors')|map(attribute='state') %}
{{Z|list}}
And yes - this does work.
But for the same logic the following code should not work:
A0:
{%- set A0 = expand('group.battery_sensors')
|selectattr('state','eq','100')
|sort(reverse=false,attribute='name') %}
{{A0|list}}
{{A0|list|count}}
{{A0|list|count}}
But it DOES work:
A0:
[<template TemplateState(<state sensor.battery_life360_zemfira=100; unit_of_measurement=%, friendly_name=iPhone 5S (ŠŠµŠ¼ŃŠøŃŠ°), icon=, device_class=battery @ 2021-03-16T23:49:53.166839+03:00>)>, <template TemplateState(<state sensor.battery_life360_mama=100; unit_of_measurement=%, friendly_name=Redmi 7A (мама), icon=, device_class=battery @ 2021-03-17T02:30:37.428513+03:00>)>, <template TemplateState(<state sensor.battery_cleargrass_1=100; unit_of_measurement=%, friendly_name=Xiaomi CG-1, icon=, device_class=battery @ 2021-03-16T16:15:56.819572+03:00>)>, <template TemplateState(<state sensor.battery_cleargrass_2=100; unit_of_measurement=%, friendly_name=Xiaomi CG-2, icon=, device_class=battery @ 2021-03-16T16:15:56.862384+03:00>)>]
4
4
Why do I get such different results?