Change scan_interval defaults for Tesla (#31194)
This commit is contained in:
parent
8c178adf4f
commit
cf0e467150
4 changed files with 27 additions and 14 deletions
|
@ -27,7 +27,14 @@ from .config_flow import (
|
|||
configured_instances,
|
||||
validate_input,
|
||||
)
|
||||
from .const import DATA_LISTENER, DOMAIN, ICONS, TESLA_COMPONENTS
|
||||
from .const import (
|
||||
DATA_LISTENER,
|
||||
DEFAULT_SCAN_INTERVAL,
|
||||
DOMAIN,
|
||||
ICONS,
|
||||
MIN_SCAN_INTERVAL,
|
||||
TESLA_COMPONENTS,
|
||||
)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -37,9 +44,9 @@ CONFIG_SCHEMA = vol.Schema(
|
|||
{
|
||||
vol.Required(CONF_USERNAME): cv.string,
|
||||
vol.Required(CONF_PASSWORD): cv.string,
|
||||
vol.Optional(CONF_SCAN_INTERVAL, default=300): vol.All(
|
||||
cv.positive_int, vol.Clamp(min=300)
|
||||
),
|
||||
vol.Optional(
|
||||
CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL
|
||||
): vol.All(cv.positive_int, vol.Clamp(min=MIN_SCAN_INTERVAL)),
|
||||
}
|
||||
)
|
||||
},
|
||||
|
@ -64,7 +71,7 @@ async def async_setup(hass, base_config):
|
|||
|
||||
def _update_entry(email, data=None, options=None):
|
||||
data = data or {}
|
||||
options = options or {CONF_SCAN_INTERVAL: 300}
|
||||
options = options or {CONF_SCAN_INTERVAL: DEFAULT_SCAN_INTERVAL}
|
||||
for entry in hass.config_entries.async_entries(DOMAIN):
|
||||
if email != entry.title:
|
||||
continue
|
||||
|
@ -120,7 +127,9 @@ async def async_setup_entry(hass, config_entry):
|
|||
websession,
|
||||
refresh_token=config[CONF_TOKEN],
|
||||
access_token=config[CONF_ACCESS_TOKEN],
|
||||
update_interval=config_entry.options.get(CONF_SCAN_INTERVAL, 300),
|
||||
update_interval=config_entry.options.get(
|
||||
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
|
||||
),
|
||||
)
|
||||
(refresh_token, access_token) = await controller.connect()
|
||||
except TeslaException as ex:
|
||||
|
|
|
@ -15,7 +15,7 @@ from homeassistant.const import (
|
|||
from homeassistant.core import callback
|
||||
from homeassistant.helpers import aiohttp_client, config_validation as cv
|
||||
|
||||
from .const import DOMAIN
|
||||
from .const import DEFAULT_SCAN_INTERVAL, DOMAIN, MIN_SCAN_INTERVAL
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -100,8 +100,10 @@ class OptionsFlowHandler(config_entries.OptionsFlow):
|
|||
{
|
||||
vol.Optional(
|
||||
CONF_SCAN_INTERVAL,
|
||||
default=self.config_entry.options.get(CONF_SCAN_INTERVAL, 300),
|
||||
): vol.All(cv.positive_int, vol.Clamp(min=300))
|
||||
default=self.config_entry.options.get(
|
||||
CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL
|
||||
),
|
||||
): vol.All(cv.positive_int, vol.Clamp(min=MIN_SCAN_INTERVAL))
|
||||
}
|
||||
)
|
||||
return self.async_show_form(step_id="init", data_schema=data_schema)
|
||||
|
@ -120,7 +122,7 @@ async def validate_input(hass: core.HomeAssistant, data):
|
|||
websession,
|
||||
email=data[CONF_USERNAME],
|
||||
password=data[CONF_PASSWORD],
|
||||
update_interval=300,
|
||||
update_interval=DEFAULT_SCAN_INTERVAL,
|
||||
)
|
||||
(config[CONF_TOKEN], config[CONF_ACCESS_TOKEN]) = await controller.connect(
|
||||
test_login=True
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
"""Const file for Tesla cars."""
|
||||
DOMAIN = "tesla"
|
||||
DATA_LISTENER = "listener"
|
||||
DEFAULT_SCAN_INTERVAL = 660
|
||||
MIN_SCAN_INTERVAL = 60
|
||||
TESLA_COMPONENTS = [
|
||||
"sensor",
|
||||
"lock",
|
||||
|
|
|
@ -4,7 +4,7 @@ from unittest.mock import patch
|
|||
from teslajsonpy import TeslaException
|
||||
|
||||
from homeassistant import config_entries, data_entry_flow, setup
|
||||
from homeassistant.components.tesla.const import DOMAIN
|
||||
from homeassistant.components.tesla.const import DOMAIN, MIN_SCAN_INTERVAL
|
||||
from homeassistant.const import (
|
||||
CONF_ACCESS_TOKEN,
|
||||
CONF_PASSWORD,
|
||||
|
@ -40,8 +40,8 @@ async def test_form(hass):
|
|||
assert result2["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
|
||||
assert result2["title"] == "test@email.com"
|
||||
assert result2["data"] == {
|
||||
"token": "test-refresh-token",
|
||||
"access_token": "test-access-token",
|
||||
CONF_TOKEN: "test-refresh-token",
|
||||
CONF_ACCESS_TOKEN: "test-access-token",
|
||||
}
|
||||
await hass.async_block_till_done()
|
||||
assert len(mock_setup.mock_calls) == 1
|
||||
|
@ -157,4 +157,4 @@ async def test_option_flow_input_floor(hass):
|
|||
result["flow_id"], user_input={CONF_SCAN_INTERVAL: 1}
|
||||
)
|
||||
assert result["type"] == "create_entry"
|
||||
assert result["data"] == {CONF_SCAN_INTERVAL: 300}
|
||||
assert result["data"] == {CONF_SCAN_INTERVAL: MIN_SCAN_INTERVAL}
|
||||
|
|
Loading…
Add table
Reference in a new issue