Add available state to OctoPrint camera (#104162)

This commit is contained in:
Xitee 2023-11-25 11:34:50 +01:00 committed by GitHub
parent c685d56e82
commit ceb2680185
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,8 +7,8 @@ from homeassistant.components.mjpeg.camera import MjpegCamera
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_VERIFY_SSL from homeassistant.const import CONF_VERIFY_SSL
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import OctoprintDataUpdateCoordinator from . import OctoprintDataUpdateCoordinator
from .const import DOMAIN from .const import DOMAIN
@ -38,7 +38,7 @@ async def async_setup_entry(
[ [
OctoprintCamera( OctoprintCamera(
camera_info, camera_info,
coordinator.device_info, coordinator,
device_id, device_id,
verify_ssl, verify_ssl,
) )
@ -46,19 +46,23 @@ async def async_setup_entry(
) )
class OctoprintCamera(MjpegCamera): class OctoprintCamera(CoordinatorEntity[OctoprintDataUpdateCoordinator], MjpegCamera):
"""Representation of an OctoPrint Camera Stream.""" """Representation of an OctoPrint Camera Stream."""
def __init__( def __init__(
self, self,
camera_settings: WebcamSettings, camera_settings: WebcamSettings,
device_info: DeviceInfo, coordinator: OctoprintDataUpdateCoordinator,
device_id: str, device_id: str,
verify_ssl: bool, verify_ssl: bool,
) -> None: ) -> None:
"""Initialize as a subclass of MjpegCamera.""" """Initialize as a subclass of MjpegCamera."""
super().__init__( super().__init__(
device_info=device_info, coordinator=coordinator,
)
MjpegCamera.__init__(
self,
device_info=coordinator.device_info,
mjpeg_url=camera_settings.stream_url, mjpeg_url=camera_settings.stream_url,
name="OctoPrint Camera", name="OctoPrint Camera",
still_image_url=camera_settings.external_snapshot_url, still_image_url=camera_settings.external_snapshot_url,