mirror of
https://github.com/home-assistant/frontend.git
synced 2026-08-16 10:02:41 +01:00
* Add child devices to the device registry Child devices arrive over the WebSocket as stripped entries in the flat config/device_registry/list response (discriminated by the absence of full-device fields). Resolve them into complete DeviceRegistryEntry objects at ingestion so hass.devices only ever holds full entries and the ~200 downstream consumers stay unchanged: - config-entry association comes from the child's own config_entry_id, so children still appear under their integration; - hardware/display fields are inherited from the parent device; - connections/via_device_id are not inherited. Adds parent_device_id and the new "device" disabled_by value to the types. Frontend data layer for home-assistant/core#178666. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Resolve child device effective area in the UI A child device without an area of its own inherits its parent's area, mirroring core's async_get_effective_area_id. getDeviceArea now takes the devices map and falls back to the parent, so children show in the parent's area everywhere a normal device would: the device dashboard (area column, grouping and filtering via computeDeviceAreaLabel) and the device page header. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Address review on child devices data layer - Discriminate stripped child entries on `connections` (present on every full device, never on a stripped child) instead of the deprecated `config_entries` compatibility field that core plans to remove. - Make getDeviceArea's `devices` argument required and update all callers, so a child device's effective (inherited) area is resolved consistently everywhere, including the device picker's selected-value renderer and the integration device rows. - Lock the enable switch in the device settings dialog when a device is disabled by its parent (disabled_by "device"); core ignores enabling a child while its parent is disabled. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Inherit the parent device area when resolving entity areas Extract getDeviceAreaId so an entity on a child device resolves to the child's effective area (the parent's area when the child has none), matching core's entity area resolution. Applies to both getEntityAreaId and getEntityEntryContext, which previously read device.area_id directly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>