Refactor esphome platform setup to reduce boilerplate (#120415)
This commit is contained in:
parent
49e6316c42
commit
4feca36ca6
17 changed files with 170 additions and 327 deletions
|
@ -12,27 +12,9 @@ from aiohttp import web
|
|||
|
||||
from homeassistant.components import camera
|
||||
from homeassistant.components.camera import Camera
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.core import callback
|
||||
|
||||
from .entity import EsphomeEntity, platform_async_setup_entry
|
||||
from .entry_data import ESPHomeConfigEntry
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
hass: HomeAssistant,
|
||||
entry: ESPHomeConfigEntry,
|
||||
async_add_entities: AddEntitiesCallback,
|
||||
) -> None:
|
||||
"""Set up esphome cameras based on a config entry."""
|
||||
await platform_async_setup_entry(
|
||||
hass,
|
||||
entry,
|
||||
async_add_entities,
|
||||
info_type=CameraInfo,
|
||||
entity_type=EsphomeCamera,
|
||||
state_type=CameraState,
|
||||
)
|
||||
|
||||
|
||||
class EsphomeCamera(Camera, EsphomeEntity[CameraInfo, CameraState]):
|
||||
|
@ -95,3 +77,11 @@ class EsphomeCamera(Camera, EsphomeEntity[CameraInfo, CameraState]):
|
|||
return await camera.async_get_still_stream(
|
||||
request, stream_request, camera.DEFAULT_CONTENT_TYPE, 0.0
|
||||
)
|
||||
|
||||
|
||||
async_setup_entry = partial(
|
||||
platform_async_setup_entry,
|
||||
info_type=CameraInfo,
|
||||
entity_type=EsphomeCamera,
|
||||
state_type=CameraState,
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue