Skip to main content
The homeassistant.helpers.entity_registry module provides a registry to track entities and their metadata, uniquely identified by their domain, platform, and unique ID.

EntityRegistry Class

The main class for managing entity registration and lookup.

Key Methods

async_get

Get entity entry by entity_id or entity entry id (UUID).
str
required
Entity ID or entity registry entry ID
RegistryEntry | None
Entity entry or None if not found

async_get_entity_id

Get entity_id from domain, platform, and unique_id.
str
required
Entity domain (e.g., “light”, “switch”)
str
required
Platform name (e.g., “hue”, “mqtt”)
str
required
Unique identifier from platform
str | None
Entity ID or None if not found

async_get_or_create

Get entity or create if it doesn’t exist.
str
required
Entity domain
str
required
Platform name
str
required
Unique identifier
str | None | UndefinedType
default:"UNDEFINED"
Suggested object ID for entity_id generation
str | None | UndefinedType
default:"UNDEFINED"
Base for object ID (used with has_entity_name)
ConfigEntry | None | UndefinedType
default:"UNDEFINED"
Config entry this entity belongs to
str | None | UndefinedType
default:"UNDEFINED"
Config subentry ID
str | None | UndefinedType
default:"UNDEFINED"
Device ID this entity belongs to
RegistryEntryDisabler | None
default:"None"
What disabled the entity (if creating)
RegistryEntryHider | None
default:"None"
What hid the entity (if creating)
bool | UndefinedType
default:"UNDEFINED"
Whether entity name describes only the entity itself
EntityCategory | UndefinedType | None
default:"UNDEFINED"
Category of entity (CONFIG, DIAGNOSTIC)
str | None | UndefinedType
default:"UNDEFINED"
Original name as set by integration
str | None | UndefinedType
default:"UNDEFINED"
Original icon as set by integration
str | None | UndefinedType
default:"UNDEFINED"
Original device class as set by integration
int | None | UndefinedType
default:"UNDEFINED"
Supported features bitfield
Mapping[str, Any] | None | UndefinedType
default:"UNDEFINED"
Entity capabilities
str | None | UndefinedType
default:"UNDEFINED"
Unit of measurement
str | None | UndefinedType
default:"UNDEFINED"
Translation key for entity name
RegistryEntry
Entity entry (created or existing)

async_remove

Remove an entity from registry.
str
required
Entity ID to remove

async_update_entity

Update entity attributes.
str
required
Entity ID to update
str | None | UndefinedType
default:"UNDEFINED"
New name (user-customized)
str | None | UndefinedType
default:"UNDEFINED"
New icon
str | None | UndefinedType
default:"UNDEFINED"
New area ID
RegistryEntryDisabler | None | UndefinedType
default:"UNDEFINED"
What disabled the entity
RegistryEntryHider | None | UndefinedType
default:"UNDEFINED"
What hid the entity
set[str] | UndefinedType
default:"UNDEFINED"
Entity labels
RegistryEntry
Updated entity entry

async_get_available_entity_id

Get next available entity ID.
str
required
Entity domain
str
required
Suggested object ID
str | None
default:"None"
Current entity ID (if renaming)
set[str] | None
default:"None"
Additional IDs to avoid
str
Available entity ID

RegistryEntry

Frozen dataclass representing an entity registry entry.

Properties

str
Entity ID (format: domain.object_id)
str
Unique identifier from platform
str
Platform name
str
Entity domain
str
Unique entry ID (UUID)
str | None
Config entry ID
str | None
Config subentry ID
str | None
Device ID
str | None
Area ID
set[str]
Entity labels
str | None
User-customized name
str | None
Original name from integration
str | None
User-customized icon
str | None
Original icon from integration
str | None
User-customized device class
str | None
Original device class from integration
RegistryEntryDisabler | None
What disabled the entity (USER, DEVICE, INTEGRATION, CONFIG_ENTRY, HASS)
RegistryEntryHider | None
What hid the entity (USER, INTEGRATION)
EntityCategory | None
Category of entity (CONFIG, DIAGNOSTIC)
bool
Whether name describes only the entity itself
str | None
Translation key for entity name
int
Supported features bitfield
Mapping[str, Any] | None
Entity capabilities
str | None
Unit of measurement
ReadOnlyEntityOptionsType
Entity-specific options
set[str]
Alternative names for the entity
dict[str, str]
Categories per scope
datetime
When entity was created
datetime
When entity was last modified

Methods

bool
Whether the entity is disabled
bool
Whether the entity is hidden

Events

EVENT_ENTITY_REGISTRY_UPDATED

Fired when an entity is created, updated, or removed.

Helper Functions

async_get_full_entity_name

Get full entity name including device name if appropriate.
HomeAssistant
required
Home Assistant instance
RegistryEntry
required
Entity entry
str | None | UndefinedType
default:"UNDEFINED"
Override for original_name
str
Full entity name

Enums

RegistryEntryDisabler

What disabled a registry entry.
  • CONFIG_ENTRY - Disabled by config entry
  • DEVICE - Disabled because device is disabled
  • HASS - Disabled by Home Assistant
  • INTEGRATION - Disabled by integration
  • USER - Disabled by user

RegistryEntryHider

What hid a registry entry.
  • INTEGRATION - Hidden by integration
  • USER - Hidden by user