From ff27f8ef103b6fd53018bafb2f292d4d623975d3 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Mon, 3 Jun 2024 21:30:13 +0200 Subject: [PATCH] Add device info to incomfort entities (#118741) * Add device info to incomfort entities * Add DOMAIN import --- homeassistant/components/incomfort/__init__.py | 1 + homeassistant/components/incomfort/binary_sensor.py | 5 +++++ homeassistant/components/incomfort/climate.py | 9 ++++++++- homeassistant/components/incomfort/sensor.py | 5 +++++ homeassistant/components/incomfort/water_heater.py | 11 +++++++++-- 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/incomfort/__init__.py b/homeassistant/components/incomfort/__init__.py index 3f6b36aa27c..c6d479cafb5 100644 --- a/homeassistant/components/incomfort/__init__.py +++ b/homeassistant/components/incomfort/__init__.py @@ -125,6 +125,7 @@ class IncomfortEntity(Entity): """Base class for all InComfort entities.""" _attr_should_poll = False + _attr_has_entity_name = True async def async_added_to_hass(self) -> None: """Set up a listener when this entity is added to HA.""" diff --git a/homeassistant/components/incomfort/binary_sensor.py b/homeassistant/components/incomfort/binary_sensor.py index 9bfe637e09a..a64d028ffc1 100644 --- a/homeassistant/components/incomfort/binary_sensor.py +++ b/homeassistant/components/incomfort/binary_sensor.py @@ -9,9 +9,11 @@ from incomfortclient import Gateway as InComfortGateway, Heater as InComfortHeat from homeassistant.components.binary_sensor import BinarySensorEntity from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant +from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import DATA_INCOMFORT, IncomfortEntity +from .const import DOMAIN async def async_setup_entry( @@ -39,6 +41,9 @@ class IncomfortFailed(IncomfortEntity, BinarySensorEntity): self._heater = heater self._attr_unique_id = f"{heater.serial_no}_failed" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, heater.serial_no)}, + ) @property def is_on(self) -> bool: diff --git a/homeassistant/components/incomfort/climate.py b/homeassistant/components/incomfort/climate.py index 21871a66487..f1487716d01 100644 --- a/homeassistant/components/incomfort/climate.py +++ b/homeassistant/components/incomfort/climate.py @@ -18,9 +18,11 @@ from homeassistant.components.climate import ( from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature from homeassistant.core import HomeAssistant +from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import DATA_INCOMFORT, IncomfortEntity +from .const import DOMAIN async def async_setup_entry( @@ -42,6 +44,7 @@ class InComfortClimate(IncomfortEntity, ClimateEntity): _attr_min_temp = 5.0 _attr_max_temp = 30.0 + _attr_name = None _attr_hvac_mode = HVACMode.HEAT _attr_hvac_modes = [HVACMode.HEAT] _attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE @@ -58,7 +61,11 @@ class InComfortClimate(IncomfortEntity, ClimateEntity): self._room = room self._attr_unique_id = f"{heater.serial_no}_{room.room_no}" - self._attr_name = f"Thermostat {room.room_no}" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, self._attr_unique_id)}, + manufacturer="Intergas", + name=f"Thermostat {room.room_no}", + ) @property def extra_state_attributes(self) -> dict[str, Any]: diff --git a/homeassistant/components/incomfort/sensor.py b/homeassistant/components/incomfort/sensor.py index d74c6a18e59..e12b0a3d199 100644 --- a/homeassistant/components/incomfort/sensor.py +++ b/homeassistant/components/incomfort/sensor.py @@ -15,10 +15,12 @@ from homeassistant.components.sensor import ( from homeassistant.config_entries import ConfigEntry from homeassistant.const import UnitOfPressure, UnitOfTemperature from homeassistant.core import HomeAssistant +from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.util import slugify from . import DATA_INCOMFORT, IncomfortEntity +from .const import DOMAIN INCOMFORT_HEATER_TEMP = "CV Temp" INCOMFORT_PRESSURE = "CV Pressure" @@ -92,6 +94,9 @@ class IncomfortSensor(IncomfortEntity, SensorEntity): self._heater = heater self._attr_unique_id = f"{heater.serial_no}_{slugify(description.name)}" + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, heater.serial_no)}, + ) @property def native_value(self) -> str | None: diff --git a/homeassistant/components/incomfort/water_heater.py b/homeassistant/components/incomfort/water_heater.py index 6b982b7f71e..239ddae3106 100644 --- a/homeassistant/components/incomfort/water_heater.py +++ b/homeassistant/components/incomfort/water_heater.py @@ -12,10 +12,12 @@ from homeassistant.components.water_heater import WaterHeaterEntity from homeassistant.config_entries import ConfigEntry from homeassistant.const import UnitOfTemperature from homeassistant.core import HomeAssistant +from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import DATA_INCOMFORT, DOMAIN, IncomfortEntity +from . import DATA_INCOMFORT, IncomfortEntity +from .const import DOMAIN _LOGGER = logging.getLogger(__name__) @@ -39,7 +41,7 @@ class IncomfortWaterHeater(IncomfortEntity, WaterHeaterEntity): _attr_min_temp = 30.0 _attr_max_temp = 80.0 - _attr_name = "Boiler" + _attr_name = None _attr_should_poll = True _attr_temperature_unit = UnitOfTemperature.CELSIUS @@ -51,6 +53,11 @@ class IncomfortWaterHeater(IncomfortEntity, WaterHeaterEntity): self._heater = heater self._attr_unique_id = heater.serial_no + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, heater.serial_no)}, + manufacturer="Intergas", + name="Boiler", + ) @property def icon(self) -> str: