Refactor esphome platform setup to reduce boilerplate (#120415)

This commit is contained in:
J. Nick Koston 2024-06-25 17:03:04 +02:00 committed by GitHub
parent 49e6316c42
commit 4feca36ca6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 170 additions and 327 deletions

View file

@ -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,
)