Add device info to incomfort entities (#118741)
* Add device info to incomfort entities * Add DOMAIN importpull/118745/head
parent
2a92f78453
commit
ff27f8ef10
|
@ -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."""
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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]:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue