Home Assistant Unofficial Reference 2024.12.1
camera.py
Go to the documentation of this file.
1 """Family Hub camera for Samsung Refrigerators."""
2 
3 from __future__ import annotations
4 
5 from pyfamilyhublocal import FamilyHubCam
6 import voluptuous as vol
7 
9  PLATFORM_SCHEMA as CAMERA_PLATFORM_SCHEMA,
10  Camera,
11 )
12 from homeassistant.const import CONF_IP_ADDRESS, CONF_NAME
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.aiohttp_client import async_get_clientsession
16 from homeassistant.helpers.entity_platform import AddEntitiesCallback
17 from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
18 
19 DEFAULT_NAME = "FamilyHub Camera"
20 
21 PLATFORM_SCHEMA = CAMERA_PLATFORM_SCHEMA.extend(
22  {
23  vol.Required(CONF_IP_ADDRESS): cv.string,
24  vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
25  }
26 )
27 
28 
30  hass: HomeAssistant,
31  config: ConfigType,
32  async_add_entities: AddEntitiesCallback,
33  discovery_info: DiscoveryInfoType | None = None,
34 ) -> None:
35  """Set up the Family Hub Camera."""
36 
37  address = config.get(CONF_IP_ADDRESS)
38  name = config.get(CONF_NAME)
39 
40  session = async_get_clientsession(hass)
41  family_hub_cam = FamilyHubCam(address, hass.loop, session)
42 
43  async_add_entities([FamilyHubCamera(name, family_hub_cam)], True)
44 
45 
47  """The representation of a Family Hub camera."""
48 
49  def __init__(self, name, family_hub_cam):
50  """Initialize camera component."""
51  super().__init__()
52  self._name_name = name
53  self.family_hub_camfamily_hub_cam = family_hub_cam
54 
55  async def async_camera_image(
56  self, width: int | None = None, height: int | None = None
57  ) -> bytes | None:
58  """Return a still image response."""
59  return await self.family_hub_camfamily_hub_cam.async_get_cam_image()
60 
61  @property
62  def name(self):
63  """Return the name of this camera."""
64  return self._name_name
bytes|None async_camera_image(self, int|None width=None, int|None height=None)
Definition: camera.py:57
def __init__(self, name, family_hub_cam)
Definition: camera.py:49
None async_setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback async_add_entities, DiscoveryInfoType|None discovery_info=None)
Definition: camera.py:34
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)