Move evil_genius_labs base entity to separate module (#126480)

This commit is contained in:
epenet 2024-09-23 08:59:23 +02:00 committed by GitHub
parent 432d44c20d
commit 5a52e4c71d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 33 additions and 25 deletions

View file

@ -7,9 +7,7 @@ import pyevilgenius
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import aiohttp_client, device_registry as dr
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.helpers import aiohttp_client
from .const import DOMAIN
from .coordinator import EvilGeniusUpdateCoordinator
@ -41,23 +39,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
class EvilGeniusEntity(CoordinatorEntity[EvilGeniusUpdateCoordinator]):
"""Base entity for Evil Genius."""
_attr_has_entity_name = True
@property
def device_info(self) -> DeviceInfo:
"""Return device info."""
info = self.coordinator.info
return DeviceInfo(
identifiers={(DOMAIN, info["wiFiChipId"])},
connections={(dr.CONNECTION_NETWORK_MAC, info["macAddress"])},
name=self.coordinator.device_name,
model=self.coordinator.product_name,
manufacturer="Evil Genius Labs",
sw_version=info["coreVersion"].replace("_", "."),
configuration_url=self.coordinator.client.url,
)

View file

@ -0,0 +1,30 @@
"""The Evil Genius Labs integration."""
from __future__ import annotations
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
from .coordinator import EvilGeniusUpdateCoordinator
class EvilGeniusEntity(CoordinatorEntity[EvilGeniusUpdateCoordinator]):
"""Base entity for Evil Genius."""
_attr_has_entity_name = True
@property
def device_info(self) -> DeviceInfo:
"""Return device info."""
info = self.coordinator.info
return DeviceInfo(
identifiers={(DOMAIN, info["wiFiChipId"])},
connections={(dr.CONNECTION_NETWORK_MAC, info["macAddress"])},
name=self.coordinator.device_name,
model=self.coordinator.product_name,
manufacturer="Evil Genius Labs",
sw_version=info["coreVersion"].replace("_", "."),
configuration_url=self.coordinator.client.url,
)

View file

@ -11,9 +11,9 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import EvilGeniusEntity
from .const import DOMAIN
from .coordinator import EvilGeniusUpdateCoordinator
from .entity import EvilGeniusEntity
from .util import update_when_done
HA_NO_EFFECT = "None"

View file

@ -6,7 +6,7 @@ from collections.abc import Awaitable, Callable, Coroutine
from functools import wraps
from typing import Any, Concatenate
from . import EvilGeniusEntity
from .entity import EvilGeniusEntity
def update_when_done[_EvilGeniusEntityT: EvilGeniusEntity, **_P, _R](