using @petro 's template for a button-card, I am struggling to have it show/count the ‘off’ entities and find the correct template to show that on the button…
this is the template in its regular form:
count lights ‘on’:
counter_lights:
template: button_body
layout: icon_state
show_state: false
show_name: true
show_label: true
label: >
[[[
var i;
var status = entity.state;
var entities = entity.attributes.entity_id;
var count = 0;
for (i = 0; i < entities.length; i++) {
var state = states[entities[i]].state;
if (state === 'on') {
count += 1;
}
}
var phrase = (count === 1 ? ' light ' : ' lights ');
return (status === 'on' ? count.toString() + phrase + status : status);
]]]
so I thought to replace ‘on’ with ‘off’ would count my ‘off’ hubs,
label: >
[[[
var i;
var status = entity.state;
var entities = entity.attributes.entity_id;
var count = 0;
for (i = 0; i < entities.length; i++) {
var state = states[entities[i]].state;
if (state === 'off') {
count += 1;
}
}
var phrase = (count === 1 ? ' Hub ' : ' Hubs ');
return (status === 'off' ? count.toString() + phrase + status : status);
]]]
but then it won’t show 0 offline, instead it shows:
I’ve tried something like:
label: >
[[[
var i;
var status = entity.state;
var entities = entity.attributes.entity_id;
var count = 0;
for (i = 0; i < entities.length; i++) {
var state = states[entities[i]].state;
if (state === 'off') {
count += 1;
}
}
var phrase = (count === 1 ? ' hub ' : ' hubs ');
return (status === 'off' ? count.toString() + phrase + status : 'All hubs online');
]]]
and then I always see the else clause:
what am I doing wrong here?
thanks for having a look!