From f37db94f23756478ea9eac975bc53092f76a2a64 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 4 Feb 2024 14:22:12 -0600 Subject: [PATCH] Avoid linear search of entity registry in async_get_device_automations (#109633) --- homeassistant/components/device_automation/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/device_automation/__init__.py b/homeassistant/components/device_automation/__init__.py index 68d05c19f67..979c82acfe2 100644 --- a/homeassistant/components/device_automation/__init__.py +++ b/homeassistant/components/device_automation/__init__.py @@ -247,9 +247,10 @@ async def async_get_device_automations( match_device_ids = set(device_ids or device_registry.devices) combined_results: dict[str, list[dict[str, Any]]] = {} - for entry in entity_registry.entities.values(): - if not entry.disabled_by and entry.device_id in match_device_ids: - device_entities_domains.setdefault(entry.device_id, set()).add(entry.domain) + for device_id in match_device_ids: + for entry in entity_registry.entities.get_entries_for_device_id(device_id): + if not entry.disabled_by: + device_entities_domains.setdefault(device_id, set()).add(entry.domain) for device_id in match_device_ids: combined_results[device_id] = []