How much entities do you have in Homeassistant?

I believe my hobby of home automation is getting a bit out of control :rofl:. To check how bad my addiction is I would like to understand how many devices/automations/sensors other people have integrated into Homeassistant. Figuring this out is easy: just go to to the developer tools -> Template and put the below code in there. Sum the total and use that in the poll (feel free to copy paste the result in the comments :-))

Sensors: {{ states.sensor | count }}
Lights: {{ states.light | count }}
Switches: {{ states.switch | count }}
Binary sensors: {{ states.binary_sensor | count }}
Automations: {{ states.automation | count }}
  • 0-20
  • 21-75
  • 76-100
  • 101-200
  • 201-300
  • 301-400
  • 400+

0 voters

Sensors: 538
Lights: 90
Switches: 22
Binary sensors: 87
Automations: 3

Sensors: 248
Lights: 35
Switches: 23
Binary sensors: 17
Automations: 75

Sensors: 184
Lights: 11
Switches: 6
Binary sensors: 32
Automations: 34

Sensors: 783
Lights: 51
Switches: 68
Binary sensors: 85
Automations: 77

I just started with Home Assistant 2 month ago. So the automations aren’t all finished yet. With the System I had used before HA I had roundabout 500 Automations.

Sensors: 587
Lights: 14
Switches: 55
Binary sensors: 78
Automations: 184

fan: 1
Calendar: 3
Climate: 1
Device_tracker: 42
Input_Boolean: 8
Input_select: 7
Input_Text: 1
Zone: 16
Media_player: 8
Script: 11
Sensors: 550
Lights: 43
Switches: 84
Binary sensors: 67
Automations: 89

Automations: 126
Binary sensors: 145
Device Tracker: 58
Climate: 18
Fans: 5
input_boolean: 55
input_select: 4
input_text: 25
Lights: 148
Script: 19
Sensors: 858
Switches: 89

Automations: {{ states.automation | count }}
Binary sensors: {{ states.binary_sensor | count }}
Device Tracker: {{ states.device_tracker | count }}
Climate: {{ states.climate | count }}
Fans: {{ states.fan | count }}
input_boolean: {{ states.input_boolean | count }}
input_select: {{ states.input_select | count }}
input_text: {{ states.input_text | count }}
Lights: {{ states.light | count }}
Script: {{ states.script | count }}
Sensors: {{ states.sensor | count }}
Switches: {{ states.switch | count }}
{%- for d in states | groupby('domain') %}
{{ d[0] }}: {{ states[d[0]] | count  }}
{%- endfor %}

output:

automation: 114
binary_sensor: 122
climate: 1
device_tracker: 142
fan: 1
group: 24
input_boolean: 18
input_datetime: 6
input_number: 2
input_select: 49
input_text: 25
light: 53
media_player: 18
person: 2
remote: 2
script: 16
sensor: 620
sun: 1
switch: 81
timer: 1
weather: 1
zone: 18
1 Like

Since last August my instance grew a bit…

automation: 78
binary_sensor: 33
climate: 5
counter: 7
cover: 2
device_tracker: 8
group: 1
input_text: 2
light: 46
media_player: 5
person: 2
plant: 1
script: 13
sensor: 341
sun: 1
switch: 15
utility_meter: 33
weather: 2
zone: 4

alarm_control_panel: 1
alert: 11
automation: 60
binary_sensor: 113
calendar: 1
camera: 5
climate: 23
cover: 30
device_tracker: 7
group: 4
homematic: 1
input_boolean: 28
input_datetime: 2
input_number: 5
input_select: 1
light: 57
media_player: 33
person: 3
script: 23
sensor: 393
sun: 1
switch: 116
vacuum: 2
weather: 1
zone: 2

Is there an easy way to count # of integrations and # of devices as well?

automation: 28
binary_sensor: 27
camera: 3
climate: 6
device_tracker: 4
fan: 2
group: 10
input_boolean: 1
light: 15
media_player: 14
person: 3
remote: 1
scene: 1
sensor: 210
sun: 1
switch: 9
weather: 1
zone: 4

And some more automation in NodeRed😋

After a big cleanup this is new result :slight_smile:

automation: 116
binary_sensor: 123
calendar: 4
camera: 1
climate: 1
device_tracker: 36
fan: 1
group: 17
input_boolean: 15
input_datetime: 8
input_number: 1
input_select: 16
input_text: 1
light: 44
media_player: 9
person: 2
proximity: 2
remote: 2
scene: 1
script: 14
select: 1
sensor: 700
sun: 1
switch: 74
timer: 1
weather: 1
zone: 18

automation: 83
binary_sensor: 79
calendar: 2
camera: 3
climate: 1
device_tracker: 1
hangouts: 1
input_boolean: 4
input_number: 1
input_select: 1
input_text: 3
light: 36
lock: 1
media_player: 2
number: 8
person: 1
script: 28
select: 10
sensor: 447
sun: 1
switch: 78
timer: 3
weather: 1
zone: 1

alarm_control_panel: 1
automation: 142
binary_sensor: 68
camera: 1
climate: 8
counter: 2
device_tracker: 128
group: 14
input_boolean: 47
input_datetime: 60
input_number: 53
input_select: 13
input_text: 16
media_player: 1
persistent_notification: 1
person: 5
proximity: 2
scene: 2
script: 21
sensor: 528
sun: 1
switch: 46
timer: 21
water_heater: 1
weather: 4
zone: 3

for sure my automations can be rewritten more efficiently … goal for the future

I want to ask this again. Any ideas, to get the count?

1 Like

Automations: 111
Binary sensors: 95
Device Tracker: 7
Climate: 1
Fans: 0
input_boolean: 2
input_select: 2
input_text: 4
Lights: 20
Script: 38
Sensors: 416
Switches: 90
alarm_control_panel: 5
automation: 111
binary_sensor: 95
camera: 20
climate: 1
cover: 1
device_tracker: 7
govee: 1
group: 10
humidifier: 1
input_boolean: 2
input_select: 2
input_text: 4
light: 20
media_player: 28
persistent_notification: 1
person: 2
remote: 1
scene: 4
script: 38
sensor: 416
sun: 1
switch: 90
weather: 5
zone: 4

Very cool!

That’s one of my open questions in Metrics: how to access integration, Supervisor and HA internal information? where I’m looking for some “more advanced statistics”.

Update: number of integrations still no idea, for number of devices see my implementation at Metrics: how to access integration, Supervisor and HA internal information? - #6 by e-raser

Mine with note that I have 90% of my automation in node red. Thats some 25 flows approximately.

alarm_control_panel: 1
automation: 7
binary_sensor: 207
button: 8
calendar: 3
camera: 23
climate: 7
cover: 3
device_tracker: 7
fan: 1
group: 11
input_boolean: 27
input_number: 2
input_select: 2
input_text: 1
light: 59
lock: 1
media_player: 12
number: 4
person: 2
remote: 3
scene: 62
select: 12
sensor: 571
sun: 1
switch: 50
weather: 2
zone: 9

I want to do something when there‘s a new domain containing one or more entities for the first time.

How can I detect that, e. g. as trigger definition for an automation?

At least something like „if output of * has at least one more lines than the last time checking *“

  • =
{%- for d in states | groupby('domain') %}
{{ d[0] }}: {{ states[d[0]] | count  }}
{%- endfor %}

Ideally identifying the specific new domain(s).

Ideas? Even working code snippets?