diff --git a/.coveragerc b/.coveragerc index 331359c5d0b..4f839ffccdd 100644 --- a/.coveragerc +++ b/.coveragerc @@ -984,6 +984,7 @@ omit = homeassistant/components/orvibo/switch.py homeassistant/components/osoenergy/__init__.py homeassistant/components/osoenergy/binary_sensor.py + homeassistant/components/osoenergy/entity.py homeassistant/components/osoenergy/sensor.py homeassistant/components/osoenergy/water_heater.py homeassistant/components/osramlightify/light.py diff --git a/homeassistant/components/osoenergy/__init__.py b/homeassistant/components/osoenergy/__init__.py index 3ba48eac2d1..ca6d52941f7 100644 --- a/homeassistant/components/osoenergy/__init__.py +++ b/homeassistant/components/osoenergy/__init__.py @@ -4,11 +4,6 @@ from typing import Any from aiohttp.web_exceptions import HTTPException from apyosoenergyapi import OSOEnergy -from apyosoenergyapi.helper.const import ( - OSOEnergyBinarySensorData, - OSOEnergySensorData, - OSOEnergyWaterHeaterData, -) from apyosoenergyapi.helper.osoenergy_exceptions import OSOEnergyReauthRequired from homeassistant.config_entries import ConfigEntry @@ -16,12 +11,9 @@ from homeassistant.const import CONF_API_KEY, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady from homeassistant.helpers import aiohttp_client -from homeassistant.helpers.device_registry import DeviceInfo -from homeassistant.helpers.entity import Entity from .const import DOMAIN -MANUFACTURER = "OSO Energy" PLATFORMS = [ Platform.BINARY_SENSOR, Platform.SENSOR, @@ -70,26 +62,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: hass.data[DOMAIN].pop(entry.entry_id) return unload_ok - - -class OSOEnergyEntity[ - _OSOEnergyT: ( - OSOEnergyBinarySensorData, - OSOEnergySensorData, - OSOEnergyWaterHeaterData, - ) -](Entity): - """Initiate OSO Energy Base Class.""" - - _attr_has_entity_name = True - - def __init__(self, osoenergy: OSOEnergy, entity_data: _OSOEnergyT) -> None: - """Initialize the instance.""" - self.osoenergy = osoenergy - self.entity_data = entity_data - self._attr_device_info = DeviceInfo( - identifiers={(DOMAIN, entity_data.device_id)}, - manufacturer=MANUFACTURER, - model=entity_data.device_type, - name=entity_data.device_name, - ) diff --git a/homeassistant/components/osoenergy/binary_sensor.py b/homeassistant/components/osoenergy/binary_sensor.py index 22081b64f15..0cf0ac74d36 100644 --- a/homeassistant/components/osoenergy/binary_sensor.py +++ b/homeassistant/components/osoenergy/binary_sensor.py @@ -14,8 +14,8 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import OSOEnergyEntity from .const import DOMAIN +from .entity import OSOEnergyEntity @dataclass(frozen=True, kw_only=True) diff --git a/homeassistant/components/osoenergy/entity.py b/homeassistant/components/osoenergy/entity.py new file mode 100644 index 00000000000..2a2210339d7 --- /dev/null +++ b/homeassistant/components/osoenergy/entity.py @@ -0,0 +1,38 @@ +"""Parent class for every OSO Energy device.""" + +from apyosoenergyapi import OSOEnergy +from apyosoenergyapi.helper.const import ( + OSOEnergyBinarySensorData, + OSOEnergySensorData, + OSOEnergyWaterHeaterData, +) + +from homeassistant.helpers.device_registry import DeviceInfo +from homeassistant.helpers.entity import Entity + +from .const import DOMAIN + +MANUFACTURER = "OSO Energy" + + +class OSOEnergyEntity[ + _OSOEnergyT: ( + OSOEnergyBinarySensorData, + OSOEnergySensorData, + OSOEnergyWaterHeaterData, + ) +](Entity): + """Initiate OSO Energy Base Class.""" + + _attr_has_entity_name = True + + def __init__(self, osoenergy: OSOEnergy, entity_data: _OSOEnergyT) -> None: + """Initialize the instance.""" + self.osoenergy = osoenergy + self.entity_data = entity_data + self._attr_device_info = DeviceInfo( + identifiers={(DOMAIN, entity_data.device_id)}, + manufacturer=MANUFACTURER, + model=entity_data.device_type, + name=entity_data.device_name, + ) diff --git a/homeassistant/components/osoenergy/sensor.py b/homeassistant/components/osoenergy/sensor.py index 0be6ad83281..772c3c0a69e 100644 --- a/homeassistant/components/osoenergy/sensor.py +++ b/homeassistant/components/osoenergy/sensor.py @@ -18,8 +18,8 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import StateType -from . import OSOEnergyEntity from .const import DOMAIN +from .entity import OSOEnergyEntity @dataclass(frozen=True, kw_only=True) diff --git a/homeassistant/components/osoenergy/water_heater.py b/homeassistant/components/osoenergy/water_heater.py index b7fb2ba16e6..55229e42c2f 100644 --- a/homeassistant/components/osoenergy/water_heater.py +++ b/homeassistant/components/osoenergy/water_heater.py @@ -18,8 +18,8 @@ from homeassistant.const import UnitOfTemperature from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import OSOEnergyEntity from .const import DOMAIN +from .entity import OSOEnergyEntity CURRENT_OPERATION_MAP: dict[str, Any] = { "default": {