Remove scan interval option from Synology DSM (#138490)

remove scan interval option
This commit is contained in:
Michael 2025-02-13 22:51:14 +01:00 committed by GitHub
parent d6b7762dd6
commit 621bcccef7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 9 additions and 26 deletions

View File

@ -10,7 +10,7 @@ from synology_dsm.api.surveillance_station.camera import SynoCamera
from synology_dsm.exceptions import SynologyDSMNotLoggedInException from synology_dsm.exceptions import SynologyDSMNotLoggedInException
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_MAC, CONF_VERIFY_SSL from homeassistant.const import CONF_MAC, CONF_SCAN_INTERVAL, CONF_VERIFY_SSL
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import device_registry as dr from homeassistant.helpers import device_registry as dr
@ -68,6 +68,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
entry, entry,
options={**entry.options, CONF_BACKUP_SHARE: None, CONF_BACKUP_PATH: None}, options={**entry.options, CONF_BACKUP_SHARE: None, CONF_BACKUP_PATH: None},
) )
if CONF_SCAN_INTERVAL in entry.options:
current_options = {**entry.options}
current_options.pop(CONF_SCAN_INTERVAL)
hass.config_entries.async_update_entry(entry, options=current_options)
# Continue setup # Continue setup
api = SynoApi(hass, entry) api = SynoApi(hass, entry)

View File

@ -33,14 +33,12 @@ from homeassistant.const import (
CONF_NAME, CONF_NAME,
CONF_PASSWORD, CONF_PASSWORD,
CONF_PORT, CONF_PORT,
CONF_SCAN_INTERVAL,
CONF_SSL, CONF_SSL,
CONF_USERNAME, CONF_USERNAME,
CONF_VERIFY_SSL, CONF_VERIFY_SSL,
) )
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.selector import ( from homeassistant.helpers.selector import (
SelectOptionDict, SelectOptionDict,
@ -67,7 +65,6 @@ from .const import (
DEFAULT_BACKUP_PATH, DEFAULT_BACKUP_PATH,
DEFAULT_PORT, DEFAULT_PORT,
DEFAULT_PORT_SSL, DEFAULT_PORT_SSL,
DEFAULT_SCAN_INTERVAL,
DEFAULT_SNAPSHOT_QUALITY, DEFAULT_SNAPSHOT_QUALITY,
DEFAULT_TIMEOUT, DEFAULT_TIMEOUT,
DEFAULT_USE_SSL, DEFAULT_USE_SSL,
@ -458,12 +455,6 @@ class SynologyDSMOptionsFlowHandler(OptionsFlow):
data_schema = vol.Schema( data_schema = vol.Schema(
{ {
vol.Required(
CONF_SCAN_INTERVAL,
default=self.config_entry.options.get(
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
),
): cv.positive_int,
vol.Required( vol.Required(
CONF_SNAPSHOT_QUALITY, CONF_SNAPSHOT_QUALITY,
default=self.config_entry.options.get( default=self.config_entry.options.get(

View File

@ -48,7 +48,6 @@ DEFAULT_VERIFY_SSL = False
DEFAULT_PORT = 5000 DEFAULT_PORT = 5000
DEFAULT_PORT_SSL = 5001 DEFAULT_PORT_SSL = 5001
# Options # Options
DEFAULT_SCAN_INTERVAL = 15 # min
DEFAULT_TIMEOUT = ClientTimeout(total=60, connect=15) DEFAULT_TIMEOUT = ClientTimeout(total=60, connect=15)
DEFAULT_SNAPSHOT_QUALITY = SNAPSHOT_PROFILE_BALANCED DEFAULT_SNAPSHOT_QUALITY = SNAPSHOT_PROFILE_BALANCED
DEFAULT_BACKUP_PATH = "ha_backup" DEFAULT_BACKUP_PATH = "ha_backup"

View File

@ -14,14 +14,12 @@ from synology_dsm.exceptions import (
) )
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_SCAN_INTERVAL
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .common import SynoApi, raise_config_entry_auth_error from .common import SynoApi, raise_config_entry_auth_error
from .const import ( from .const import (
DEFAULT_SCAN_INTERVAL,
SIGNAL_CAMERA_SOURCE_CHANGED, SIGNAL_CAMERA_SOURCE_CHANGED,
SYNOLOGY_AUTH_FAILED_EXCEPTIONS, SYNOLOGY_AUTH_FAILED_EXCEPTIONS,
SYNOLOGY_CONNECTION_EXCEPTIONS, SYNOLOGY_CONNECTION_EXCEPTIONS,
@ -122,14 +120,7 @@ class SynologyDSMCentralUpdateCoordinator(SynologyDSMUpdateCoordinator[None]):
api: SynoApi, api: SynoApi,
) -> None: ) -> None:
"""Initialize DataUpdateCoordinator for central device.""" """Initialize DataUpdateCoordinator for central device."""
super().__init__( super().__init__(hass, entry, api, timedelta(minutes=15))
hass,
entry,
api,
timedelta(
minutes=entry.options.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
),
)
@async_re_login_on_expired @async_re_login_on_expired
async def _async_update_data(self) -> None: async def _async_update_data(self) -> None:

View File

@ -68,8 +68,6 @@
"step": { "step": {
"init": { "init": {
"data": { "data": {
"scan_interval": "Minutes between scans",
"timeout": "Timeout (seconds)",
"snap_profile_type": "Quality level of camera snapshots (0:high 1:medium 2:low)", "snap_profile_type": "Quality level of camera snapshots (0:high 1:medium 2:low)",
"backup_share": "[%key:component::synology_dsm::config::step::backup_share::data::backup_share%]", "backup_share": "[%key:component::synology_dsm::config::step::backup_share::data::backup_share%]",
"backup_path": "[%key:component::synology_dsm::config::step::backup_share::data::backup_path%]" "backup_path": "[%key:component::synology_dsm::config::step::backup_share::data::backup_path%]"

View File

@ -27,7 +27,6 @@ from homeassistant.const import (
CONF_MAC, CONF_MAC,
CONF_PASSWORD, CONF_PASSWORD,
CONF_PORT, CONF_PORT,
CONF_SCAN_INTERVAL,
CONF_SSL, CONF_SSL,
CONF_USERNAME, CONF_USERNAME,
CONF_VERIFY_SSL, CONF_VERIFY_SSL,
@ -681,14 +680,12 @@ async def test_options_flow(
result = await hass.config_entries.options.async_configure( result = await hass.config_entries.options.async_configure(
result["flow_id"], result["flow_id"],
user_input={ user_input={
CONF_SCAN_INTERVAL: 2,
CONF_SNAPSHOT_QUALITY: 0, CONF_SNAPSHOT_QUALITY: 0,
CONF_BACKUP_PATH: "my_nackup_path", CONF_BACKUP_PATH: "my_nackup_path",
CONF_BACKUP_SHARE: "/ha_backup", CONF_BACKUP_SHARE: "/ha_backup",
}, },
) )
assert result["type"] is FlowResultType.CREATE_ENTRY assert result["type"] is FlowResultType.CREATE_ENTRY
assert config_entry.options[CONF_SCAN_INTERVAL] == 2
assert config_entry.options[CONF_SNAPSHOT_QUALITY] == 0 assert config_entry.options[CONF_SNAPSHOT_QUALITY] == 0
assert config_entry.options[CONF_BACKUP_PATH] == "my_nackup_path" assert config_entry.options[CONF_BACKUP_PATH] == "my_nackup_path"
assert config_entry.options[CONF_BACKUP_SHARE] == "/ha_backup" assert config_entry.options[CONF_BACKUP_SHARE] == "/ha_backup"

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
CONF_MAC, CONF_MAC,
CONF_PASSWORD, CONF_PASSWORD,
CONF_PORT, CONF_PORT,
CONF_SCAN_INTERVAL,
CONF_SSL, CONF_SSL,
CONF_USERNAME, CONF_USERNAME,
CONF_VERIFY_SSL, CONF_VERIFY_SSL,
@ -108,6 +109,7 @@ async def test_config_entry_migrations(
CONF_PASSWORD: PASSWORD, CONF_PASSWORD: PASSWORD,
CONF_MAC: MACS[0], CONF_MAC: MACS[0],
}, },
options={CONF_SCAN_INTERVAL: 30},
) )
entry.add_to_hass(hass) entry.add_to_hass(hass)
@ -118,5 +120,6 @@ async def test_config_entry_migrations(
assert await hass.config_entries.async_setup(entry.entry_id) assert await hass.config_entries.async_setup(entry.entry_id)
assert entry.data[CONF_VERIFY_SSL] == DEFAULT_VERIFY_SSL assert entry.data[CONF_VERIFY_SSL] == DEFAULT_VERIFY_SSL
assert CONF_SCAN_INTERVAL not in entry.options
assert entry.options[CONF_BACKUP_SHARE] is None assert entry.options[CONF_BACKUP_SHARE] is None
assert entry.options[CONF_BACKUP_PATH] is None assert entry.options[CONF_BACKUP_PATH] is None