Entity Architecture

Architecture Overview of Home Assistant

Configuration

Configuration is provided by the configuration.yaml file or by a Config Entry.

Component

Examples of components: light, switch.

The component is responsible for defining the Abstract Entity Class and services to control the entities.

Entity Component

The Entity Component is responsible for:

  • Distributing the configuration to the platforms
  • Forward config entries and discoveries
  • Collect entities for service calls
  • Optionally maintain a group of all entities

Entity Platform

The Entity Platform manages all entities for the platform and polls them for updates if necessary.

When adding entities, the Entity Platform will query the Entity Registry to make sure that the entities to be added have the correct entity IDs.

Entity Registry

The Entity Registry will track entities and allows users to store extra settings for an entity.

Platform

Examples of platforms: light.hue, switch.wemo.

Platform uses configuration to query the external device/service and add entities to the entity platform.