diff --git a/homeassistant/components/rainmachine/__init__.py b/homeassistant/components/rainmachine/__init__.py index 53f33f68eb9..45070e40e58 100644 --- a/homeassistant/components/rainmachine/__init__.py +++ b/homeassistant/components/rainmachine/__init__.py @@ -34,8 +34,6 @@ from .const import ( DATA_ZONES, DATA_ZONES_DETAILS, DEFAULT_PORT, - DEFAULT_SCAN_INTERVAL, - DEFAULT_SSL, DOMAIN, PROGRAM_UPDATE_TOPIC, SENSOR_UPDATE_TOPIC, @@ -54,6 +52,8 @@ CONF_ZONE_RUN_TIME = "zone_run_time" DEFAULT_ATTRIBUTION = "Data provided by Green Electronics LLC" DEFAULT_ICON = "mdi:water" +DEFAULT_SCAN_INTERVAL = timedelta(seconds=60) +DEFAULT_SSL = True DEFAULT_ZONE_RUN = 60 * 10 SERVICE_ALTER_PROGRAM = vol.Schema({vol.Required(CONF_PROGRAM_ID): cv.positive_int}) @@ -85,8 +85,10 @@ CONTROLLER_SCHEMA = vol.Schema( vol.Required(CONF_PASSWORD): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_SSL, default=DEFAULT_SSL): cv.boolean, - vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL): cv.time_period, - vol.Optional(CONF_ZONE_RUN_TIME): cv.positive_int, + vol.Optional(CONF_SCAN_INTERVAL, default=DEFAULT_SCAN_INTERVAL): vol.All( + cv.time_period, lambda value: value.total_seconds() + ), + vol.Optional(CONF_ZONE_RUN_TIME, default=DEFAULT_ZONE_RUN): cv.positive_int, } ) @@ -153,7 +155,7 @@ async def async_setup_entry(hass, config_entry): rainmachine = RainMachine( hass, controller, - config_entry.data.get(CONF_ZONE_RUN_TIME, DEFAULT_ZONE_RUN), + config_entry.data[CONF_ZONE_RUN_TIME], config_entry.data[CONF_SCAN_INTERVAL], ) diff --git a/homeassistant/components/rainmachine/config_flow.py b/homeassistant/components/rainmachine/config_flow.py index 4b93fc64159..3fb731c5856 100644 --- a/homeassistant/components/rainmachine/config_flow.py +++ b/homeassistant/components/rainmachine/config_flow.py @@ -4,17 +4,11 @@ from regenmaschine.errors import RainMachineError import voluptuous as vol from homeassistant import config_entries -from homeassistant.const import ( - CONF_IP_ADDRESS, - CONF_PASSWORD, - CONF_PORT, - CONF_SCAN_INTERVAL, - CONF_SSL, -) +from homeassistant.const import CONF_IP_ADDRESS, CONF_PASSWORD, CONF_PORT from homeassistant.core import callback from homeassistant.helpers import aiohttp_client -from .const import DEFAULT_PORT, DEFAULT_SCAN_INTERVAL, DEFAULT_SSL, DOMAIN +from .const import DEFAULT_PORT, DOMAIN @callback @@ -75,15 +69,6 @@ class RainMachineFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): except RainMachineError: return await self._show_form({CONF_PASSWORD: "invalid_credentials"}) - # Since the config entry doesn't allow for configuration of SSL, make - # sure it's set: - if user_input.get(CONF_SSL) is None: - user_input[CONF_SSL] = DEFAULT_SSL - - # Timedeltas are easily serializable, so store the seconds instead: - scan_interval = user_input.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL) - user_input[CONF_SCAN_INTERVAL] = scan_interval.seconds - # Unfortunately, RainMachine doesn't provide a way to refresh the # access token without using the IP address and password, so we have to # store it: diff --git a/homeassistant/components/rainmachine/const.py b/homeassistant/components/rainmachine/const.py index b912f8d95ef..855ff5d5df5 100644 --- a/homeassistant/components/rainmachine/const.py +++ b/homeassistant/components/rainmachine/const.py @@ -1,9 +1,4 @@ """Define constants for the SimpliSafe component.""" -from datetime import timedelta -import logging - -LOGGER = logging.getLogger(__package__) - DOMAIN = "rainmachine" DATA_CLIENT = "client" @@ -15,8 +10,6 @@ DATA_ZONES = "zones" DATA_ZONES_DETAILS = "zones_details" DEFAULT_PORT = 8080 -DEFAULT_SCAN_INTERVAL = timedelta(seconds=60) -DEFAULT_SSL = True PROGRAM_UPDATE_TOPIC = f"{DOMAIN}_program_update" SENSOR_UPDATE_TOPIC = f"{DOMAIN}_data_update" diff --git a/tests/components/rainmachine/test_config_flow.py b/tests/components/rainmachine/test_config_flow.py index 435e8fb33b5..379532c8f50 100644 --- a/tests/components/rainmachine/test_config_flow.py +++ b/tests/components/rainmachine/test_config_flow.py @@ -95,6 +95,7 @@ async def test_step_import(hass): CONF_PASSWORD: "password", CONF_PORT: 8080, CONF_SSL: True, + CONF_SCAN_INTERVAL: 60, } flow = config_flow.RainMachineFlowHandler() @@ -125,6 +126,7 @@ async def test_step_user(hass): CONF_PASSWORD: "password", CONF_PORT: 8080, CONF_SSL: True, + CONF_SCAN_INTERVAL: 60, } flow = config_flow.RainMachineFlowHandler()