1 """Support for OctoPrint binary camera."""
3 from __future__
import annotations
5 from pyoctoprintapi
import OctoprintClient, WebcamSettings
14 from .
import OctoprintDataUpdateCoordinator
15 from .const
import DOMAIN
20 config_entry: ConfigEntry,
21 async_add_entities: AddEntitiesCallback,
23 """Set up the available OctoPrint camera."""
24 coordinator: OctoprintDataUpdateCoordinator = hass.data[DOMAIN][
27 client: OctoprintClient = hass.data[DOMAIN][config_entry.entry_id][
"client"]
28 device_id = config_entry.unique_id
30 assert device_id
is not None
32 camera_info = await client.get_webcam_info()
33 verify_ssl = config_entry.data[CONF_VERIFY_SSL]
35 if not camera_info
or not camera_info.enabled:
51 """Representation of an OctoPrint Camera Stream."""
55 camera_settings: WebcamSettings,
56 coordinator: OctoprintDataUpdateCoordinator,
60 """Initialize as a subclass of MjpegCamera."""
62 coordinator=coordinator,
66 device_info=coordinator.device_info,
67 mjpeg_url=camera_settings.stream_url,
68 name=
"OctoPrint Camera",
69 still_image_url=camera_settings.external_snapshot_url,
71 verify_ssl=verify_ssl,
None __init__(self, WebcamSettings camera_settings, OctoprintDataUpdateCoordinator coordinator, str device_id, bool verify_ssl)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)