Improve and fix Airzone config flow (#70474)
This commit is contained in:
parent
7894326270
commit
8d71595f31
3 changed files with 9 additions and 26 deletions
|
@ -21,10 +21,8 @@ CONFIG_SCHEMA = vol.Schema(
|
|||
vol.Required(CONF_PORT, default=DEFAULT_PORT): int,
|
||||
}
|
||||
)
|
||||
SYSTEM_ID_SCHEMA = vol.Schema(
|
||||
SYSTEM_ID_SCHEMA = CONFIG_SCHEMA.extend(
|
||||
{
|
||||
vol.Required(CONF_HOST): str,
|
||||
vol.Required(CONF_PORT, default=DEFAULT_PORT): int,
|
||||
vol.Required(CONF_ID, default=1): int,
|
||||
}
|
||||
)
|
||||
|
@ -41,22 +39,14 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
errors = {}
|
||||
|
||||
if user_input is not None:
|
||||
system_id = user_input.get(CONF_ID, DEFAULT_SYSTEM_ID)
|
||||
|
||||
self._async_abort_entries_match(
|
||||
{
|
||||
CONF_HOST: user_input[CONF_HOST],
|
||||
CONF_PORT: user_input[CONF_PORT],
|
||||
CONF_ID: system_id,
|
||||
}
|
||||
)
|
||||
self._async_abort_entries_match(user_input)
|
||||
|
||||
airzone = AirzoneLocalApi(
|
||||
aiohttp_client.async_get_clientsession(self.hass),
|
||||
ConnectionOptions(
|
||||
user_input[CONF_HOST],
|
||||
user_input[CONF_PORT],
|
||||
system_id,
|
||||
user_input.get(CONF_ID, DEFAULT_SYSTEM_ID),
|
||||
),
|
||||
)
|
||||
|
||||
|
@ -64,7 +54,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
await airzone.validate()
|
||||
except InvalidSystem:
|
||||
data_schema = SYSTEM_ID_SCHEMA
|
||||
errors["base"] = "invalid_system_id"
|
||||
errors[CONF_ID] = "invalid_system_id"
|
||||
except AirzoneError:
|
||||
errors["base"] = "cannot_connect"
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue