--- layout: page title: "Components" description: "List of the built-in components of Home Assistant." date: 2014-12-21 13:35 sidebar: false comments: false sharing: true footer: true is_homepage: true hide_github_edit: true body_id: components-page regenerate: false --- {%- comment -%}Can't use where to count nil because of https://github.com/jekyll/jekyll/issues/6038{%- endcomment -%} {%- assign tot = 0 -%} {%- for comp in site.components -%} {%- if comp.ha_category -%} {%- if comp.ha_category.first -%} {%- assign tot = tot | plus: comp.ha_category.size -%} {%- else -%} {%- assign tot = tot | plus: 1 -%} {%- endif -%} {%- endif %} {%- endfor -%} {%- assign components = site.components | sort: 'title' -%} {%- assign components_by_version = site.components | group_by: 'ha_release' | semver_sort | reverse -%} {%- assign categories = components | map: 'ha_category' | join: ',' | join: ',' | split: ',' | uniq | sort -%} {%- capture current_version -%}{{ site.current_major_version }}.{{ site.current_minor_version }}{% endcapture -%} {%- assign added_one_ago_minor_version = site.current_minor_version|minus: 1 -%} {%- capture added_one_ago_version -%}{{ site.current_major_version }}.{{ added_one_ago_minor_version }}{% endcapture -%} {%- assign added_two_ago_minor_version = site.current_minor_version|minus: 2 -%} {%- capture added_two_ago_version -%}{{ site.current_major_version }}.{{ added_two_ago_minor_version }}{% endcapture -%} {%- assign current_version_components_count = site.components | where: 'ha_release', current_version | size -%} {%- assign one_ago_version_components_count = site.components | where: 'ha_release', added_one_ago_version | size -%} {%- assign two_ago_version_components_count = site.components | where: 'ha_release', added_two_ago_version | size -%}

Support for these components is provided by the Home Assistant community.

All ({{tot}}) Featured Added in {{ current_version }} ({{ current_version_components_count }}) Added in {{ added_one_ago_version }} ({{ one_ago_version_components_count }}) Added in {{ added_two_ago_version }} ({{ two_ago_version_components_count }}) Added in {%- for category in categories -%} {%- assign components_count = components | where: 'ha_category', category | size -%} {%- if category and category != 'Other' and components_count != 0 -%} {{ category }} ({{ components_count }}) {%- endif -%} {%- endfor -%} Other ({{ components | where: 'ha_category', 'Other' | size }})
{% comment %} ## Pages without categories {%- for component in components -%} {% unless component.ha_category %}

{{ component.title }}

{% endunless %} {%- endfor -%} {% endcomment %} {% raw %} {% endraw %}