1 """Support for EZVIZ sensors."""
3 from __future__
import annotations
8 SensorEntityDescription,
15 from .const
import DATA_COORDINATOR, DOMAIN
16 from .coordinator
import EzvizDataUpdateCoordinator
17 from .entity
import EzvizEntity
21 SENSOR_TYPES: dict[str, SensorEntityDescription] = {
24 native_unit_of_measurement=PERCENTAGE,
25 device_class=SensorDeviceClass.BATTERY,
28 key=
"alarm_sound_mod",
29 translation_key=
"alarm_sound_mod",
30 entity_registry_enabled_default=
False,
33 key=
"last_alarm_time",
34 translation_key=
"last_alarm_time",
35 entity_registry_enabled_default=
False,
38 key=
"Seconds_Last_Trigger",
39 translation_key=
"seconds_last_trigger",
40 entity_registry_enabled_default=
False,
44 translation_key=
"last_alarm_pic",
45 entity_registry_enabled_default=
False,
48 key=
"supported_channels",
49 translation_key=
"supported_channels",
53 translation_key=
"local_ip",
57 translation_key=
"wan_ip",
61 translation_key=
"pir_status",
64 key=
"last_alarm_type_code",
65 translation_key=
"last_alarm_type_code",
68 key=
"last_alarm_type_name",
69 translation_key=
"last_alarm_type_name",
75 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
77 """Set up EZVIZ sensors based on a config entry."""
78 coordinator: EzvizDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id][
85 for camera
in coordinator.data
86 for sensor, value
in coordinator.data[camera].items()
87 if sensor
in SENSOR_TYPES
94 """Representation of a EZVIZ sensor."""
97 self, coordinator: EzvizDataUpdateCoordinator, serial: str, sensor: str
99 """Initialize the sensor."""
100 super().
__init__(coordinator, serial)
107 """Return the state of the sensor."""
dict[str, Any] data(self)
None __init__(self, EzvizDataUpdateCoordinator coordinator, str serial, str sensor)
int|str native_value(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)