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/__init__.py
|
||||||
homeassistant/components/system_bridge/binary_sensor.py
|
homeassistant/components/system_bridge/binary_sensor.py
|
||||||
homeassistant/components/system_bridge/coordinator.py
|
homeassistant/components/system_bridge/coordinator.py
|
||||||
|
homeassistant/components/system_bridge/entity.py
|
||||||
homeassistant/components/system_bridge/media_player.py
|
homeassistant/components/system_bridge/media_player.py
|
||||||
homeassistant/components/system_bridge/notify.py
|
homeassistant/components/system_bridge/notify.py
|
||||||
homeassistant/components/system_bridge/sensor.py
|
homeassistant/components/system_bridge/sensor.py
|
||||||
|
|
|
@ -36,8 +36,6 @@ from homeassistant.helpers import (
|
||||||
discovery,
|
discovery,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
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 .const import DOMAIN, MODULES
|
||||||
from .coordinator import SystemBridgeDataUpdateCoordinator
|
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:
|
async def async_reload_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
|
||||||
"""Reload the config entry when it changed."""
|
"""Reload the config entry when it changed."""
|
||||||
await hass.config_entries.async_reload(entry.entry_id)
|
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.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from . import SystemBridgeEntity
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import SystemBridgeDataUpdateCoordinator
|
from .coordinator import SystemBridgeDataUpdateCoordinator
|
||||||
|
from .entity import SystemBridgeEntity
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@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.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from . import SystemBridgeEntity
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import SystemBridgeCoordinatorData, SystemBridgeDataUpdateCoordinator
|
from .coordinator import SystemBridgeCoordinatorData, SystemBridgeDataUpdateCoordinator
|
||||||
|
from .entity import SystemBridgeEntity
|
||||||
|
|
||||||
STATUS_CHANGING: Final[str] = "CHANGING"
|
STATUS_CHANGING: Final[str] = "CHANGING"
|
||||||
STATUS_STOPPED: Final[str] = "STOPPED"
|
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.helpers.typing import UNDEFINED, StateType
|
||||||
from homeassistant.util.dt import utcnow
|
from homeassistant.util.dt import utcnow
|
||||||
|
|
||||||
from . import SystemBridgeEntity
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import SystemBridgeCoordinatorData, SystemBridgeDataUpdateCoordinator
|
from .coordinator import SystemBridgeCoordinatorData, SystemBridgeDataUpdateCoordinator
|
||||||
|
from .entity import SystemBridgeEntity
|
||||||
|
|
||||||
ATTR_AVAILABLE: Final = "available"
|
ATTR_AVAILABLE: Final = "available"
|
||||||
ATTR_FILESYSTEM: Final = "filesystem"
|
ATTR_FILESYSTEM: Final = "filesystem"
|
||||||
|
|
|
@ -7,9 +7,9 @@ from homeassistant.const import CONF_PORT
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
|
||||||
from . import SystemBridgeEntity
|
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .coordinator import SystemBridgeDataUpdateCoordinator
|
from .coordinator import SystemBridgeDataUpdateCoordinator
|
||||||
|
from .entity import SystemBridgeEntity
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue