mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Clean up RainMachine config entry data (#32132)
This commit is contained in:
parent
edf44f4158
commit
6b0d7c77f0
@ -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],
|
||||
)
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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"
|
||||
|
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user