Sensor - Count the installation (Mine is bigger than yours-sensor)

You lost 30 sensors. Did one of your zones attempt to proclaim its independence and many sensors were destroyed in the ensuing battle?

even worse!
Ive lost several Waze sensors, and Weatherbit integration:
at startup

after a while

the culprits:

hi!
not sure why you’d post that, but if your ‘pulling the data’ from this Roldy's Home Assistant - 190+ sensors - 440+ entities - 70+ automations - Floorplan you now should have noticed that could be done much better…

consider that code:

   count_automations:
     entity_id: sensor.date
     value_template: >
       {%- set domains = ['automation'] -%}
       {%- for domain in domains -%}
         {%- for item in states[domain] -%}
           {% if loop.first %}
             {{loop.length}}
           {% endif %}
         {%- endfor -%}
       {%- endfor -%}

and compare it to

{{states.automation|count}}

Hey @uiguy come here and blow their minds…

Template editor tool:

{%- for d in states | groupby('domain') %}
{{ d[0] }} - {{ states[d[0]] | count  }}
{%- endfor %}
1 Like

my code on @Mariusthvdb link above came initially from @Mariusthvdb i seem to remember… oh and sorry I did not credit you before… :slight_smile:

So, I threw this into the Template editor and it popped up a long list of domains as it should, but one in particular caught my eye -
sensor - 666
Thanks 2020!

1 Like

What would be the best way to display this in Lovelace? I tried a Markdown Card but the formatting was ugly, not having each domain on a new line. Is there a way for format the use of new lines in the Markdown Card?

I tried to put it in a table but failed. This is the best I can do.

type: markdown
content: |-
  {% for d in states|groupby('domain') %}
  **{{ d[0]|replace('_', ' ')|title }}**  {{ states[d[0]]|count  }}
  {%- endfor %}
title: Domain Counts

2 Likes

Much better than mine. Thanks
Crap:
image

Better:
image

how can one make the numbers to have at least 3 digits, ie 001 instead of 1
this way to have it nicely aligned

type: markdown
title: Domain Counts
content: |-
  {% for d in states|groupby('domain') %}
  {{ '{:03}'.format(states[d[0]]|count) }} **{{ d[0]|replace('_', ' ')|title }}**
  {%- endfor %}
2 Likes

thank you works great now, multi column would be nice instead one big list.

like this:

pure and simple more-info on a sensor…

Now Marius, where is the “Mark this post as : - Evil Bastard on the response options ?
:rofl:

1 Like

I did this:

      - type: markdown
        # title: Components
        content: >
          Domain | Count 
            :---|---:
          {% for d in states | groupby('domain') %}
          {{ d[0].replace('_', ' ') | title }} | {{ states[d[0]] | count  }}

          {% endfor %}

3 Likes

since we were counting before…

has anyone else noticed the state machine being flooded with so many new entities (probably because of the new design decisions to breakout attributes and use dedicated sensors?

Ive been weeding out my hand made template sensors, but can not fight this… ok, I wrote a few more scripts and automations, and added a few zones but the Hue integration alone adds about 200 scenes…


Hope this wont grow out of hand…or put differently, force some serious hardware step-ups

i’m not sure if this is really the best place to ask a question like this but…

is there a way you can use something similar to these but maybe more specific?

how about count just sensors?

and then only sensors that have a specific value in the friendly name? let’s say ‘birthday’

and then maybe on top of that? a numeric value less than 60?

there’s always a way :wink: check How to map state to correct type (|float) - #2 by Mariusthvdb and add a counter |count