Skip to content

Commit 9394546

Browse files
authored
Add EZVIZ battery camera power status and online status sensor (home-assistant#146822)
1 parent d43f21c commit 9394546

File tree

2 files changed

+50
-8
lines changed

2 files changed

+50
-8
lines changed

homeassistant/components/ezviz/sensor.py

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,26 @@
6666
key="last_alarm_type_name",
6767
translation_key="last_alarm_type_name",
6868
),
69+
"Record_Mode": SensorEntityDescription(
70+
key="Record_Mode",
71+
translation_key="record_mode",
72+
entity_registry_enabled_default=False,
73+
),
74+
"battery_camera_work_mode": SensorEntityDescription(
75+
key="battery_camera_work_mode",
76+
translation_key="battery_camera_work_mode",
77+
entity_registry_enabled_default=False,
78+
),
79+
"powerStatus": SensorEntityDescription(
80+
key="powerStatus",
81+
translation_key="power_status",
82+
entity_registry_enabled_default=False,
83+
),
84+
"OnlineStatus": SensorEntityDescription(
85+
key="OnlineStatus",
86+
translation_key="online_status",
87+
entity_registry_enabled_default=False,
88+
),
6989
}
7090

7191

@@ -76,16 +96,26 @@ async def async_setup_entry(
7696
) -> None:
7797
"""Set up EZVIZ sensors based on a config entry."""
7898
coordinator = entry.runtime_data
99+
entities: list[EzvizSensor] = []
79100

80-
async_add_entities(
81-
[
101+
for camera, sensors in coordinator.data.items():
102+
entities.extend(
82103
EzvizSensor(coordinator, camera, sensor)
83-
for camera in coordinator.data
84-
for sensor, value in coordinator.data[camera].items()
85-
if sensor in SENSOR_TYPES
86-
if value is not None
87-
]
88-
)
104+
for sensor, value in sensors.items()
105+
if sensor in SENSOR_TYPES and value is not None
106+
)
107+
108+
optionals = sensors.get("optionals", {})
109+
entities.extend(
110+
EzvizSensor(coordinator, camera, optional_key)
111+
for optional_key in ("powerStatus", "OnlineStatus")
112+
if optional_key in optionals
113+
)
114+
115+
if "mode" in optionals.get("Record_Mode", {}):
116+
entities.append(EzvizSensor(coordinator, camera, "mode"))
117+
118+
async_add_entities(entities)
89119

90120

91121
class EzvizSensor(EzvizEntity, SensorEntity):

homeassistant/components/ezviz/strings.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,18 @@
147147
},
148148
"last_alarm_type_name": {
149149
"name": "Last alarm type name"
150+
},
151+
"record_mode": {
152+
"name": "Record mode"
153+
},
154+
"battery_camera_work_mode": {
155+
"name": "Battery work mode"
156+
},
157+
"power_status": {
158+
"name": "Power status"
159+
},
160+
"online_status": {
161+
"name": "Online status"
150162
}
151163
},
152164
"switch": {

0 commit comments

Comments
 (0)