Entities and domains

Your devices are represented in Home Assistant as entities. Entities are the basic building blocks to hold data in Home Assistant. An entity represents a sensorSensors return information about a thing, for instance the level of water in a tank. [Learn more], 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 deviceA device is a model representing a physical or logical unit that contains entities. or a serviceThe term “service” in Home Assistant is used in the sense of an information service. For example, the municipal waste management service that provides entities for organic, paper, and packaging waste. In terms of functionality, the information service is like a device. It is called service to avoid confusion, as it does not come with a piece of hardware. [Learn more]. Entities have states and state attributes.

All your entities are listed in the entities table, under Settings > Devices & services > Entities.

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

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: