Avoid linear search of device registry when no areas are referenced in service calls (#109669)

pull/109699/head
J. Nick Koston 2024-02-05 05:26:08 -06:00 committed by GitHub
parent 93e0810938
commit 40166ed51e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 5 additions and 3 deletions

View File

@ -487,9 +487,11 @@ def async_extract_referenced_entity_ids(
# Find devices for targeted areas
selected.referenced_devices.update(selector.device_ids)
for device_entry in dev_reg.devices.values():
if device_entry.area_id in selector.area_ids:
selected.referenced_devices.add(device_entry.id)
if selector.area_ids:
for device_entry in dev_reg.devices.values():
if device_entry.area_id in selector.area_ids:
selected.referenced_devices.add(device_entry.id)
if not selector.area_ids and not selected.referenced_devices:
return selected