diff --git a/source/_docs/configuration/entities_domains.markdown b/source/_docs/configuration/entities_domains.markdown new file mode 100644 index 00000000000..4cf328c284d --- /dev/null +++ b/source/_docs/configuration/entities_domains.markdown @@ -0,0 +1,51 @@ +--- +title: "Entities and domains" +description: "Describes what entities and domains are in Home Assistant." +related: + - docs: /docs/configuration/state_object/ + title: State object, entity state +--- + +Your {% term devices %} are represented in Home Assistant as entities. Entities are the basic building blocks to hold data in Home Assistant. An entity represents a {% term sensor %}, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a {% term device %} or a {% term service %}. Entities have [states](/docs/configuration/state_object/) and [attributes](#entity-attributes). + +All your entities are listed in the entities table, under {% my entities title="**Settings** > **Devices & services** > **Entities**" %}. + +

Screenshot showing the Entities tableScreenshot of the Entities table. Each line represents an entity.

+ +## Entity attributes + +Many entities have attributes. There are a few attributes that are available on all entities, such as `friendly_name` and `icon`. In addition to those, each integration has its own attributes to represent extra state data about the entity. For example, the light integration has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state. The list of available attributes depends on the {% term device %}. + +

+ Screenshot showing three lights with different states and attributes + Example showing three lights with differents states and different attributes. +

+ +For more information on entity attributes, refer to the [attributes](/docs/configuration/state_object/#attributes) section on the state objects page. + +## Domains + +Each integration in Home Assistant has a unique identifier: a domain. All entities and actions available in Home Assistant are provided by integrations and thus belong to such a domain. The first part of the entity or action, before the `.` shows the domain they belong to. For example, `light.bed_light` is an entity in the light domain. `bed_light` is the ID of the entity. + +The domain provides entities, services, and other functionality that other integrations can use. For example, IKEA and Philips Hue both use functionalities provided by the light integration. This is why the look and feel and behavior is similar in Home Assistant. + +There are different types of domains: integration domains and entity domains: + +- Integration domains provide functionality primarily for itself: examples are Hue, Matter, or Zigbee. +- Entity domains don't use their own functionality as such. But they provide it for other integrations to use. + +The integrations listed below are used as entity domains. They are also referred to as *building block integrations* or *entity integrations*: + + diff --git a/source/_docs/configuration/state_object.markdown b/source/_docs/configuration/state_object.markdown index 4736c0da719..5930f4c9af2 100644 --- a/source/_docs/configuration/state_object.markdown +++ b/source/_docs/configuration/state_object.markdown @@ -1,6 +1,9 @@ --- title: "State objects" description: "Describes all there is to know about state objects in Home Assistant." +related: + - docs: /docs/configuration/entities_domains/ + title: Entities and domains --- Your {% term devices %} are represented in Home Assistant as entities. The {% term entities %} will write their current {% term state %} to the state machine for other entities/templates/frontend to access. States are a current representation of the {% term entity %}. @@ -24,7 +27,7 @@ All states will always have an entity id, a state and a timestamp when last upda ## Attributes -The attributes of an {% term entity %} are optional. There are a few attributes that are used by Home Assistant for representing the entity in a specific way. Each integration will also have its own attributes to represent extra state data about the entity. For example, the light integration has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state. +The attributes of an {% term entity %} are optional.There are a few attributes that are available on all entities, such as `friendly_name` and `icon`. In addition to those, each integration has its own attributes to represent extra state data about the entity. For example, the light integration has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state. When using templates, attributes will be available by their name. For example `state.attributes.assumed_state`. diff --git a/source/_includes/asides/docs_sitemap.html b/source/_includes/asides/docs_sitemap.html index 7fe45d1e8fb..402a1e2683c 100644 --- a/source/_includes/asides/docs_sitemap.html +++ b/source/_includes/asides/docs_sitemap.html @@ -209,6 +209,7 @@
  • {% active_link /docs/configuration/secrets/ Storing secrets %}
  • {% active_link /docs/configuration/events/ Events %}
  • {% active_link /docs/configuration/state_object/ State objects %}
  • +
  • {% active_link /docs/configuration/entities_domains/ Entities and domains %}
  • {% active_link /docs/configuration/templating/ Templating %}
  • {% active_link /docs/configuration/platform_options/ Entity component platform options %}