Move OSO Energy base entity class to separate module (#118563)

Move base entity class to separate file
This commit is contained in:
osohotwateriot 2024-05-31 17:13:20 +03:00 committed by GitHub
parent 8f5ddd5bcc
commit cf3e758aa1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 42 additions and 34 deletions

View File

@ -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

View File

@ -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,
)

View File

@ -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)

View File

@ -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,
)

View File

@ -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)

View File

@ -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": {