Make use of generic EntityComponent (#78492)
This commit is contained in:
parent
19ea95a6e4
commit
b4afb1cb6b
7 changed files with 32 additions and 45 deletions
|
@ -322,12 +322,9 @@ def async_register_rtsp_to_web_rtc_provider(
|
|||
async def _async_refresh_providers(hass: HomeAssistant) -> None:
|
||||
"""Check all cameras for any state changes for registered providers."""
|
||||
|
||||
component: EntityComponent = hass.data[DOMAIN]
|
||||
component: EntityComponent[Camera] = hass.data[DOMAIN]
|
||||
await asyncio.gather(
|
||||
*(
|
||||
cast(Camera, camera).async_refresh_providers()
|
||||
for camera in component.entities
|
||||
)
|
||||
*(camera.async_refresh_providers() for camera in component.entities)
|
||||
)
|
||||
|
||||
|
||||
|
@ -343,7 +340,7 @@ def _async_get_rtsp_to_web_rtc_providers(
|
|||
|
||||
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
||||
"""Set up the camera component."""
|
||||
component = hass.data[DOMAIN] = EntityComponent(
|
||||
component = hass.data[DOMAIN] = EntityComponent[Camera](
|
||||
_LOGGER, DOMAIN, hass, SCAN_INTERVAL
|
||||
)
|
||||
|
||||
|
@ -363,7 +360,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||
|
||||
async def preload_stream(_event: Event) -> None:
|
||||
for camera in component.entities:
|
||||
camera = cast(Camera, camera)
|
||||
camera_prefs = prefs.get(camera.entity_id)
|
||||
if not camera_prefs.preload_stream:
|
||||
continue
|
||||
|
@ -380,7 +376,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||
def update_tokens(time: datetime) -> None:
|
||||
"""Update tokens of the entities."""
|
||||
for entity in component.entities:
|
||||
entity = cast(Camera, entity)
|
||||
entity.async_update_token()
|
||||
entity.async_write_ha_state()
|
||||
|
||||
|
@ -411,13 +406,13 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||
|
||||
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
"""Set up a config entry."""
|
||||
component: EntityComponent = hass.data[DOMAIN]
|
||||
component: EntityComponent[Camera] = hass.data[DOMAIN]
|
||||
return await component.async_setup_entry(entry)
|
||||
|
||||
|
||||
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
"""Unload a config entry."""
|
||||
component: EntityComponent = hass.data[DOMAIN]
|
||||
component: EntityComponent[Camera] = hass.data[DOMAIN]
|
||||
return await component.async_unload_entry(entry)
|
||||
|
||||
|
||||
|
@ -698,7 +693,7 @@ class CameraView(HomeAssistantView):
|
|||
|
||||
requires_auth = False
|
||||
|
||||
def __init__(self, component: EntityComponent) -> None:
|
||||
def __init__(self, component: EntityComponent[Camera]) -> None:
|
||||
"""Initialize a basic camera view."""
|
||||
self.component = component
|
||||
|
||||
|
@ -707,8 +702,6 @@ class CameraView(HomeAssistantView):
|
|||
if (camera := self.component.get_entity(entity_id)) is None:
|
||||
raise web.HTTPNotFound()
|
||||
|
||||
camera = cast(Camera, camera)
|
||||
|
||||
authenticated = (
|
||||
request[KEY_AUTHENTICATED]
|
||||
or request.query.get("token") in camera.access_tokens
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue