1 """Support for Homekit cameras."""
3 from __future__
import annotations
5 from aiohomekit.model
import Accessory
6 from aiohomekit.model.services
import ServicesTypes
14 from .
import KNOWN_DEVICES
15 from .connection
import HKDevice
16 from .entity
import AccessoryEntity
20 """Representation of a Homekit camera."""
25 """Define the homekit characteristics the entity is tracking."""
29 self, width: int |
None =
None, height: int |
None =
None
31 """Return a jpeg with the current camera snapshot."""
32 return await self.
_accessory_accessory.pairing.image(
41 config_entry: ConfigEntry,
42 async_add_entities: AddEntitiesCallback,
44 """Set up Homekit sensors."""
45 hkid: str = config_entry.data[
"AccessoryPairingID"]
46 conn: HKDevice = hass.data[KNOWN_DEVICES][hkid]
49 def async_add_accessory(accessory: Accessory) -> bool:
50 stream_mgmt = accessory.services.first(
51 service_type=ServicesTypes.CAMERA_RTP_STREAM_MANAGEMENT
56 info = {
"aid": accessory.aid,
"iid": stream_mgmt.iid}
58 conn.async_migrate_unique_id(
59 entity.old_unique_id, entity.unique_id, Platform.CAMERA
64 conn.add_accessory_factory(async_add_accessory)
list[str] get_characteristic_types(self)
bytes|None async_camera_image(self, int|None width=None, int|None height=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)