Move base entity of system_bridge to own module (#103167)
* Move base entity of system_bridge to own module * Add entity.py to .coveragerc
This commit is contained in:
parent
6e5479d307
commit
8b7cfc070e
7 changed files with 52 additions and 46 deletions
|
@ -1291,6 +1291,7 @@ omit =
|
|||
homeassistant/components/system_bridge/__init__.py
|
||||
homeassistant/components/system_bridge/binary_sensor.py
|
||||
homeassistant/components/system_bridge/coordinator.py
|
||||
homeassistant/components/system_bridge/entity.py
|
||||
homeassistant/components/system_bridge/media_player.py
|
||||
homeassistant/components/system_bridge/notify.py
|
||||
homeassistant/components/system_bridge/sensor.py
|
||||
|
|
|
@ -36,8 +36,6 @@ from homeassistant.helpers import (
|
|||
discovery,
|
||||
)
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
from homeassistant.helpers.device_registry import DeviceInfo
|
||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||
|
||||
from .const import DOMAIN, MODULES
|
||||
from .coordinator import SystemBridgeDataUpdateCoordinator
|
||||
|
@ -330,43 +328,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||
async def async_reload_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
|
||||
"""Reload the config entry when it changed."""
|
||||
await hass.config_entries.async_reload(entry.entry_id)
|
||||
|
||||
|
||||
class SystemBridgeEntity(CoordinatorEntity[SystemBridgeDataUpdateCoordinator]):
|
||||
"""Defines a base System Bridge entity."""
|
||||
|
||||
_attr_has_entity_name = True
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: SystemBridgeDataUpdateCoordinator,
|
||||
api_port: int,
|
||||
key: str,
|
||||
) -> None:
|
||||
"""Initialize the System Bridge entity."""
|
||||
super().__init__(coordinator)
|
||||
|
||||
self._hostname = coordinator.data.system.hostname
|
||||
self._key = f"{self._hostname}_{key}"
|
||||
self._configuration_url = (
|
||||
f"http://{self._hostname}:{api_port}/app/settings.html"
|
||||
)
|
||||
self._mac_address = coordinator.data.system.mac_address
|
||||
self._uuid = coordinator.data.system.uuid
|
||||
self._version = coordinator.data.system.version
|
||||
|
||||
@property
|
||||
def unique_id(self) -> str:
|
||||
"""Return the unique ID for this entity."""
|
||||
return self._key
|
||||
|
||||
@property
|
||||
def device_info(self) -> DeviceInfo:
|
||||
"""Return device information about this System Bridge instance."""
|
||||
return DeviceInfo(
|
||||
configuration_url=self._configuration_url,
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, self._mac_address)},
|
||||
identifiers={(DOMAIN, self._uuid)},
|
||||
name=self._hostname,
|
||||
sw_version=self._version,
|
||||
)
|
||||
|
|
|
@ -14,9 +14,9 @@ from homeassistant.const import CONF_PORT
|
|||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import SystemBridgeEntity
|
||||
from .const import DOMAIN
|
||||
from .coordinator import SystemBridgeDataUpdateCoordinator
|
||||
from .entity import SystemBridgeEntity
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
47
homeassistant/components/system_bridge/entity.py
Normal file
47
homeassistant/components/system_bridge/entity.py
Normal file
|
@ -0,0 +1,47 @@
|
|||
"""Base entity for the system bridge integration."""
|
||||
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 SystemBridgeDataUpdateCoordinator
|
||||
|
||||
|
||||
class SystemBridgeEntity(CoordinatorEntity[SystemBridgeDataUpdateCoordinator]):
|
||||
"""Defines a base System Bridge entity."""
|
||||
|
||||
_attr_has_entity_name = True
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: SystemBridgeDataUpdateCoordinator,
|
||||
api_port: int,
|
||||
key: str,
|
||||
) -> None:
|
||||
"""Initialize the System Bridge entity."""
|
||||
super().__init__(coordinator)
|
||||
|
||||
self._hostname = coordinator.data.system.hostname
|
||||
self._key = f"{self._hostname}_{key}"
|
||||
self._configuration_url = (
|
||||
f"http://{self._hostname}:{api_port}/app/settings.html"
|
||||
)
|
||||
self._mac_address = coordinator.data.system.mac_address
|
||||
self._uuid = coordinator.data.system.uuid
|
||||
self._version = coordinator.data.system.version
|
||||
|
||||
@property
|
||||
def unique_id(self) -> str:
|
||||
"""Return the unique ID for this entity."""
|
||||
return self._key
|
||||
|
||||
@property
|
||||
def device_info(self) -> DeviceInfo:
|
||||
"""Return device information about this System Bridge instance."""
|
||||
return DeviceInfo(
|
||||
configuration_url=self._configuration_url,
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, self._mac_address)},
|
||||
identifiers={(DOMAIN, self._uuid)},
|
||||
name=self._hostname,
|
||||
sw_version=self._version,
|
||||
)
|
|
@ -22,9 +22,9 @@ from homeassistant.const import CONF_PORT
|
|||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import SystemBridgeEntity
|
||||
from .const import DOMAIN
|
||||
from .coordinator import SystemBridgeCoordinatorData, SystemBridgeDataUpdateCoordinator
|
||||
from .entity import SystemBridgeEntity
|
||||
|
||||
STATUS_CHANGING: Final[str] = "CHANGING"
|
||||
STATUS_STOPPED: Final[str] = "STOPPED"
|
||||
|
|
|
@ -28,9 +28,9 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
|||
from homeassistant.helpers.typing import UNDEFINED, StateType
|
||||
from homeassistant.util.dt import utcnow
|
||||
|
||||
from . import SystemBridgeEntity
|
||||
from .const import DOMAIN
|
||||
from .coordinator import SystemBridgeCoordinatorData, SystemBridgeDataUpdateCoordinator
|
||||
from .entity import SystemBridgeEntity
|
||||
|
||||
ATTR_AVAILABLE: Final = "available"
|
||||
ATTR_FILESYSTEM: Final = "filesystem"
|
||||
|
|
|
@ -7,9 +7,9 @@ from homeassistant.const import CONF_PORT
|
|||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import SystemBridgeEntity
|
||||
from .const import DOMAIN
|
||||
from .coordinator import SystemBridgeDataUpdateCoordinator
|
||||
from .entity import SystemBridgeEntity
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
|
|
Loading…
Add table
Reference in a new issue