Home Assistant Unofficial Reference 2024.12.1
camera.py
Go to the documentation of this file.
1 """Support for Android IP Webcam Cameras."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.components.mjpeg import MjpegCamera, filter_urllib3_logging
6 from homeassistant.const import (
7  CONF_HOST,
8  CONF_PASSWORD,
9  CONF_USERNAME,
10  HTTP_BASIC_AUTHENTICATION,
11 )
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.device_registry import DeviceInfo
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 
16 from .const import DOMAIN
17 from .coordinator import AndroidIPCamConfigEntry, AndroidIPCamDataUpdateCoordinator
18 
19 
21  hass: HomeAssistant,
22  config_entry: AndroidIPCamConfigEntry,
23  async_add_entities: AddEntitiesCallback,
24 ) -> None:
25  """Set up the IP Webcam camera from config entry."""
27  async_add_entities([IPWebcamCamera(config_entry.runtime_data)])
28 
29 
30 class IPWebcamCamera(MjpegCamera):
31  """Representation of a IP Webcam camera."""
32 
33  _attr_has_entity_name = True
34 
35  def __init__(self, coordinator: AndroidIPCamDataUpdateCoordinator) -> None:
36  """Initialize the camera."""
37  super().__init__(
38  mjpeg_url=coordinator.cam.mjpeg_url,
39  still_image_url=coordinator.cam.image_url,
40  authentication=HTTP_BASIC_AUTHENTICATION,
41  username=coordinator.config_entry.data.get(CONF_USERNAME),
42  password=coordinator.config_entry.data.get(CONF_PASSWORD, ""),
43  )
44  self._attr_unique_id_attr_unique_id = f"{coordinator.config_entry.entry_id}-camera"
45  self._attr_device_info_attr_device_info = DeviceInfo(
46  identifiers={(DOMAIN, coordinator.config_entry.entry_id)},
47  name=coordinator.config_entry.data[CONF_HOST],
48  )
None __init__(self, AndroidIPCamDataUpdateCoordinator coordinator)
Definition: camera.py:35
None async_setup_entry(HomeAssistant hass, AndroidIPCamConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: camera.py:24