1 """Support for Prosegur cameras."""
3 from __future__
import annotations
7 from pyprosegur.auth
import Auth
8 from pyprosegur.exceptions
import ProsegurException
9 from pyprosegur.installation
import Camera
as InstallationCamera, Installation
17 async_get_current_platform,
21 from .const
import SERVICE_REQUEST_IMAGE
23 _LOGGER = logging.getLogger(__name__)
27 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
29 """Set up the Prosegur camera platform."""
32 platform.async_register_entity_service(
33 SERVICE_REQUEST_IMAGE,
35 "async_request_image",
38 _installation = await Installation.retrieve(
39 hass.data[DOMAIN][entry.entry_id], entry.data[
"contract"]
44 ProsegurCamera(_installation, camera, hass.data[DOMAIN][entry.entry_id])
45 for camera
in _installation.cameras
47 update_before_add=
True,
52 """Representation of a Smart Prosegur Camera."""
54 _attr_has_entity_name =
True
57 self, installation: Installation, camera: InstallationCamera, auth: Auth
59 """Initialize Prosegur Camera component."""
69 name=f
"Contract {installation.contract}",
70 manufacturer=
"Prosegur",
72 identifiers={(DOMAIN, installation.contract)},
73 configuration_url=
"https://smart.prosegur.com",
77 self, width: int |
None =
None, height: int |
None =
None
79 """Return bytes of camera image."""
81 _LOGGER.debug(
"Get image for %s", self.
_camera_camera.description)
85 except ProsegurException
as err:
86 _LOGGER.error(
"Image %s doesn't exist: %s", self.
_camera_camera.description, err)
91 """Request new image from the camera."""
93 _LOGGER.debug(
"Request image for %s", self.
_camera_camera.description)
97 except ProsegurException
as err:
99 "Could not request image from camera %s: %s",
100 self.
_camera_camera.description,
None __init__(self, Installation installation, InstallationCamera camera, Auth auth)
def async_request_image(self)
bytes|None async_camera_image(self, int|None width=None, int|None height=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)