From 8544d1ebec6a7d04e567dfba3e65159862f0724e Mon Sep 17 00:00:00 2001 From: Norbert Rittel Date: Wed, 27 Aug 2025 23:57:32 +0200 Subject: [PATCH 1/2] Fix broken translation key for "update_percentage" in `template` (#151272) --- homeassistant/components/template/strings.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/template/strings.json b/homeassistant/components/template/strings.json index 5b62f6bc8e848..e273933de54f7 100644 --- a/homeassistant/components/template/strings.json +++ b/homeassistant/components/template/strings.json @@ -439,7 +439,7 @@ "title": "[%key:component::update::entity_component::_::state_attributes::title::name%]", "backup": "Backup", "specific_version": "Specific version", - "update_percent": "Update percentage" + "update_percentage": "Update percentage" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", @@ -452,7 +452,7 @@ "title": "Defines a template to get the update title.", "backup": "Enable or disable the `automatic backup before update` option in the update repair. When disabled, the `backup` variable will always provide `False` during the `install` action and it will not accept the `backup` option.", "specific_version": "Enable or disable using the `version` variable with the `install` action. When disabled, the `specific_version` variable will always provide `None` in the `install` actions", - "update_percent": "Defines a template to get the update completion percentage." + "update_percentage": "Defines a template to get the update completion percentage." }, "sections": { "advanced_options": { @@ -910,7 +910,7 @@ "title": "[%key:component::update::entity_component::_::state_attributes::title::name%]", "backup": "[%key:component::template::config::step::update::data::backup%]", "specific_version": "[%key:component::template::config::step::update::data::specific_version%]", - "update_percent": "[%key:component::template::config::step::update::data::update_percent%]" + "update_percentage": "[%key:component::template::config::step::update::data::update_percentage%]" }, "data_description": { "device_id": "[%key:component::template::common::device_id_description%]", @@ -923,7 +923,7 @@ "title": "[%key:component::template::config::step::update::data_description::title%]", "backup": "[%key:component::template::config::step::update::data_description::backup%]", "specific_version": "[%key:component::template::config::step::update::data_description::specific_version%]", - "update_percent": "[%key:component::template::config::step::update::data_description::update_percent%]" + "update_percentage": "[%key:component::template::config::step::update::data_description::update_percentage%]" }, "sections": { "advanced_options": { From a7cb66c5920f2ffcf2ac87db6951fb6732dfb03f Mon Sep 17 00:00:00 2001 From: Florent Thoumie Date: Wed, 27 Aug 2025 15:05:15 -0700 Subject: [PATCH 2/2] Iaqualink: create parent device manually and link entities (#151215) --- homeassistant/components/iaqualink/__init__.py | 10 ++++++++++ homeassistant/components/iaqualink/entity.py | 1 + tests/components/iaqualink/conftest.py | 1 + 3 files changed, 12 insertions(+) diff --git a/homeassistant/components/iaqualink/__init__.py b/homeassistant/components/iaqualink/__init__.py index 68a8a093c093a..88c7e97a8144f 100644 --- a/homeassistant/components/iaqualink/__init__.py +++ b/homeassistant/components/iaqualink/__init__.py @@ -24,6 +24,7 @@ from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryNotReady +from homeassistant.helpers import device_registry as dr from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.httpx_client import get_async_client @@ -104,6 +105,15 @@ async def async_setup_entry(hass: HomeAssistant, entry: AqualinkConfigEntry) -> f"Error while attempting to retrieve devices list: {svc_exception}" ) from svc_exception + device_registry = dr.async_get(hass) + device_registry.async_get_or_create( + config_entry_id=entry.entry_id, + name=system.name, + identifiers={(DOMAIN, system.serial)}, + manufacturer="Jandy", + serial_number=system.serial, + ) + for dev in devices.values(): if isinstance(dev, AqualinkThermostat): runtime_data.thermostats += [dev] diff --git a/homeassistant/components/iaqualink/entity.py b/homeassistant/components/iaqualink/entity.py index 0b3751e5fbccd..c0f44946b7716 100644 --- a/homeassistant/components/iaqualink/entity.py +++ b/homeassistant/components/iaqualink/entity.py @@ -29,6 +29,7 @@ def __init__(self, dev: AqualinkDeviceT) -> None: self._attr_unique_id = f"{dev.system.serial}_{dev.name}" self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, self._attr_unique_id)}, + via_device=(DOMAIN, dev.system.serial), manufacturer=dev.manufacturer, model=dev.model, name=dev.label, diff --git a/tests/components/iaqualink/conftest.py b/tests/components/iaqualink/conftest.py index c7e7373f4c292..37e89e4fe52f8 100644 --- a/tests/components/iaqualink/conftest.py +++ b/tests/components/iaqualink/conftest.py @@ -43,6 +43,7 @@ def get_aqualink_system(aqualink, cls=None, data=None): data = {} num = random.randint(0, 99999) + data["name"] = "Pool" data["serial_number"] = f"SN{num:05}" return cls(aqualink=aqualink, data=data)