mirror of
https://github.com/home-assistant/core.git
synced 2025-07-28 07:37:34 +00:00
Add Reolink wifi signal sensor for IPC cams (#149200)
This commit is contained in:
parent
941d3c2be4
commit
b6014da121
@ -24,6 +24,8 @@ async def async_get_config_entry_diagnostics(
|
|||||||
IPC_cam[ch]["hardware version"] = api.camera_hardware_version(ch)
|
IPC_cam[ch]["hardware version"] = api.camera_hardware_version(ch)
|
||||||
IPC_cam[ch]["firmware version"] = api.camera_sw_version(ch)
|
IPC_cam[ch]["firmware version"] = api.camera_sw_version(ch)
|
||||||
IPC_cam[ch]["encoding main"] = await api.get_encoding(ch)
|
IPC_cam[ch]["encoding main"] = await api.get_encoding(ch)
|
||||||
|
if (signal := api.wifi_signal(ch)) is not None:
|
||||||
|
IPC_cam[ch]["WiFi signal"] = signal
|
||||||
|
|
||||||
chimes: dict[int, dict[str, Any]] = {}
|
chimes: dict[int, dict[str, Any]] = {}
|
||||||
for chime in api.chime_list:
|
for chime in api.chime_list:
|
||||||
|
@ -123,6 +123,18 @@ SENSORS = (
|
|||||||
value=lambda api, ch: api.baichuan.day_night_state(ch),
|
value=lambda api, ch: api.baichuan.day_night_state(ch),
|
||||||
supported=lambda api, ch: api.supported(ch, "day_night_state"),
|
supported=lambda api, ch: api.supported(ch, "day_night_state"),
|
||||||
),
|
),
|
||||||
|
ReolinkSensorEntityDescription(
|
||||||
|
key="wifi_signal",
|
||||||
|
cmd_key="115",
|
||||||
|
translation_key="wifi_signal",
|
||||||
|
device_class=SensorDeviceClass.SIGNAL_STRENGTH,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
|
||||||
|
entity_registry_enabled_default=False,
|
||||||
|
value=lambda api, ch: api.wifi_signal(ch),
|
||||||
|
supported=lambda api, ch: api.supported(ch, "wifi"),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
HOST_SENSORS = (
|
HOST_SENSORS = (
|
||||||
|
@ -123,7 +123,7 @@ def _init_host_mock(host_mock: MagicMock) -> None:
|
|||||||
host_mock.timeout = 60
|
host_mock.timeout = 60
|
||||||
host_mock.renewtimer.return_value = 600
|
host_mock.renewtimer.return_value = 600
|
||||||
host_mock.wifi_connection = False
|
host_mock.wifi_connection = False
|
||||||
host_mock.wifi_signal.return_value = None
|
host_mock.wifi_signal.return_value = -45
|
||||||
host_mock.whiteled_mode_list.return_value = []
|
host_mock.whiteled_mode_list.return_value = []
|
||||||
host_mock.zoom_range.return_value = {
|
host_mock.zoom_range.return_value = {
|
||||||
"zoom": {"pos": {"min": 0, "max": 100}},
|
"zoom": {"pos": {"min": 0, "max": 100}},
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
'HTTPS': True,
|
'HTTPS': True,
|
||||||
'IPC cams': dict({
|
'IPC cams': dict({
|
||||||
'0': dict({
|
'0': dict({
|
||||||
|
'WiFi signal': -45,
|
||||||
'encoding main': 'h264',
|
'encoding main': 'h264',
|
||||||
'firmware version': 'v1.1.0.0.0.0000',
|
'firmware version': 'v1.1.0.0.0.0000',
|
||||||
'hardware version': 'IPC_00001',
|
'hardware version': 'IPC_00001',
|
||||||
@ -38,7 +39,7 @@
|
|||||||
'RTMP enabled': True,
|
'RTMP enabled': True,
|
||||||
'RTSP enabled': True,
|
'RTSP enabled': True,
|
||||||
'WiFi connection': False,
|
'WiFi connection': False,
|
||||||
'WiFi signal': None,
|
'WiFi signal': -45,
|
||||||
'abilities': dict({
|
'abilities': dict({
|
||||||
'abilityChn': list([
|
'abilityChn': list([
|
||||||
dict({
|
dict({
|
||||||
|
@ -22,7 +22,7 @@ async def test_sensors(
|
|||||||
"""Test sensor entities."""
|
"""Test sensor entities."""
|
||||||
reolink_connect.ptz_pan_position.return_value = 1200
|
reolink_connect.ptz_pan_position.return_value = 1200
|
||||||
reolink_connect.wifi_connection = True
|
reolink_connect.wifi_connection = True
|
||||||
reolink_connect.wifi_signal.return_value = 3
|
reolink_connect.wifi_signal.return_value = -55
|
||||||
reolink_connect.hdd_list = [0]
|
reolink_connect.hdd_list = [0]
|
||||||
reolink_connect.hdd_storage.return_value = 95
|
reolink_connect.hdd_storage.return_value = 95
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ async def test_sensors(
|
|||||||
assert hass.states.get(entity_id).state == "1200"
|
assert hass.states.get(entity_id).state == "1200"
|
||||||
|
|
||||||
entity_id = f"{Platform.SENSOR}.{TEST_NVR_NAME}_wi_fi_signal"
|
entity_id = f"{Platform.SENSOR}.{TEST_NVR_NAME}_wi_fi_signal"
|
||||||
assert hass.states.get(entity_id).state == "3"
|
assert hass.states.get(entity_id).state == "-55"
|
||||||
|
|
||||||
entity_id = f"{Platform.SENSOR}.{TEST_NVR_NAME}_sd_0_storage"
|
entity_id = f"{Platform.SENSOR}.{TEST_NVR_NAME}_sd_0_storage"
|
||||||
assert hass.states.get(entity_id).state == "95"
|
assert hass.states.get(entity_id).state == "95"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user