Improve and fix Airzone config flow (#70474)

This commit is contained in:
Álvaro Fernández Rojas 2022-04-26 06:25:11 +02:00 committed by GitHub
parent 7894326270
commit 8d71595f31
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 26 deletions

View file

@ -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: