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

This commit is contained in:
J. Nick Koston
2024-02-05 05:26:08 -06:00
committed by GitHub
parent 93e0810938
commit 40166ed51e
+5 -3
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