Add use wallclock as timestamps option to onvif (#71983)
This commit is contained in:
parent
20960e182d
commit
79fb5e1bec
3 changed files with 32 additions and 3 deletions
|
@ -9,7 +9,10 @@ from yarl import URL
|
|||
from homeassistant.components import ffmpeg
|
||||
from homeassistant.components.camera import Camera, CameraEntityFeature
|
||||
from homeassistant.components.ffmpeg import CONF_EXTRA_ARGUMENTS, get_ffmpeg_manager
|
||||
from homeassistant.components.stream import CONF_RTSP_TRANSPORT
|
||||
from homeassistant.components.stream import (
|
||||
CONF_RTSP_TRANSPORT,
|
||||
CONF_USE_WALLCLOCK_AS_TIMESTAMPS,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import HTTP_BASIC_AUTHENTICATION
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
@ -97,6 +100,9 @@ class ONVIFCameraEntity(ONVIFBaseEntity, Camera):
|
|||
self.stream_options[CONF_RTSP_TRANSPORT] = device.config_entry.options.get(
|
||||
CONF_RTSP_TRANSPORT
|
||||
)
|
||||
self.stream_options[
|
||||
CONF_USE_WALLCLOCK_AS_TIMESTAMPS
|
||||
] = device.config_entry.options.get(CONF_USE_WALLCLOCK_AS_TIMESTAMPS, False)
|
||||
self._basic_auth = (
|
||||
device.config_entry.data.get(CONF_SNAPSHOT_AUTH)
|
||||
== HTTP_BASIC_AUTHENTICATION
|
||||
|
|
|
@ -13,7 +13,11 @@ from zeep.exceptions import Fault
|
|||
|
||||
from homeassistant import config_entries
|
||||
from homeassistant.components.ffmpeg import CONF_EXTRA_ARGUMENTS
|
||||
from homeassistant.components.stream import CONF_RTSP_TRANSPORT, RTSP_TRANSPORTS
|
||||
from homeassistant.components.stream import (
|
||||
CONF_RTSP_TRANSPORT,
|
||||
CONF_USE_WALLCLOCK_AS_TIMESTAMPS,
|
||||
RTSP_TRANSPORTS,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST,
|
||||
CONF_NAME,
|
||||
|
@ -272,8 +276,22 @@ class OnvifOptionsFlowHandler(config_entries.OptionsFlow):
|
|||
if user_input is not None:
|
||||
self.options[CONF_EXTRA_ARGUMENTS] = user_input[CONF_EXTRA_ARGUMENTS]
|
||||
self.options[CONF_RTSP_TRANSPORT] = user_input[CONF_RTSP_TRANSPORT]
|
||||
self.options[CONF_USE_WALLCLOCK_AS_TIMESTAMPS] = user_input.get(
|
||||
CONF_USE_WALLCLOCK_AS_TIMESTAMPS,
|
||||
self.config_entry.options.get(CONF_USE_WALLCLOCK_AS_TIMESTAMPS, False),
|
||||
)
|
||||
return self.async_create_entry(title="", data=self.options)
|
||||
|
||||
advanced_options = {}
|
||||
if self.show_advanced_options:
|
||||
advanced_options[
|
||||
vol.Optional(
|
||||
CONF_USE_WALLCLOCK_AS_TIMESTAMPS,
|
||||
default=self.config_entry.options.get(
|
||||
CONF_USE_WALLCLOCK_AS_TIMESTAMPS, False
|
||||
),
|
||||
)
|
||||
] = bool
|
||||
return self.async_show_form(
|
||||
step_id="onvif_devices",
|
||||
data_schema=vol.Schema(
|
||||
|
@ -290,6 +308,7 @@ class OnvifOptionsFlowHandler(config_entries.OptionsFlow):
|
|||
CONF_RTSP_TRANSPORT, next(iter(RTSP_TRANSPORTS))
|
||||
),
|
||||
): vol.In(RTSP_TRANSPORTS),
|
||||
**advanced_options,
|
||||
}
|
||||
),
|
||||
)
|
||||
|
|
|
@ -314,7 +314,9 @@ async def test_option_flow(hass):
|
|||
"""Test config flow options."""
|
||||
entry, _, _ = await setup_onvif_integration(hass)
|
||||
|
||||
result = await hass.config_entries.options.async_init(entry.entry_id)
|
||||
result = await hass.config_entries.options.async_init(
|
||||
entry.entry_id, context={"show_advanced_options": True}
|
||||
)
|
||||
|
||||
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
|
||||
assert result["step_id"] == "onvif_devices"
|
||||
|
@ -324,6 +326,7 @@ async def test_option_flow(hass):
|
|||
user_input={
|
||||
config_flow.CONF_EXTRA_ARGUMENTS: "",
|
||||
config_flow.CONF_RTSP_TRANSPORT: list(config_flow.RTSP_TRANSPORTS)[1],
|
||||
config_flow.CONF_USE_WALLCLOCK_AS_TIMESTAMPS: True,
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -331,4 +334,5 @@ async def test_option_flow(hass):
|
|||
assert result["data"] == {
|
||||
config_flow.CONF_EXTRA_ARGUMENTS: "",
|
||||
config_flow.CONF_RTSP_TRANSPORT: list(config_flow.RTSP_TRANSPORTS)[1],
|
||||
config_flow.CONF_USE_WALLCLOCK_AS_TIMESTAMPS: True,
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue