From c5cfd8310ad196b666d6ff3ed5c28fc6587e2b1b Mon Sep 17 00:00:00 2001 From: BottlecapDave Date: Thu, 9 May 2024 19:08:57 +0100 Subject: [PATCH] fix: Fixed issue when str error reported if config of target rate sensor fails first time --- .../octopus_energy/config_flow.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/custom_components/octopus_energy/config_flow.py b/custom_components/octopus_energy/config_flow.py index dd85e6b1..ef327bbc 100644 --- a/custom_components/octopus_energy/config_flow.py +++ b/custom_components/octopus_energy/config_flow.py @@ -179,8 +179,8 @@ async def __async_setup_target_rate_schema__(self, account_id: str): vol.Optional(CONFIG_TARGET_ROLLING_TARGET, default=False): bool, vol.Optional(CONFIG_TARGET_LAST_RATES, default=False): bool, vol.Optional(CONFIG_TARGET_INVERT_TARGET_RATES, default=False): bool, - vol.Optional(CONFIG_TARGET_MIN_RATE): float, - vol.Optional(CONFIG_TARGET_MAX_RATE): float, + vol.Optional(CONFIG_TARGET_MIN_RATE): str, + vol.Optional(CONFIG_TARGET_MAX_RATE): str, vol.Optional(CONFIG_TARGET_WEIGHTING): str, }) @@ -231,15 +231,16 @@ async def async_step_target_rate(self, user_input): return self.async_abort(reason="account_not_found") now = utcnow() - errors = validate_target_rate_config(user_input, account_info.account, now) if user_input is not None else {} + config = dict(user_input) if user_input is not None else None + errors = validate_target_rate_config(config, account_info.account, now) if config is not None else {} if len(errors) < 1 and user_input is not None: - user_input[CONFIG_KIND] = CONFIG_KIND_TARGET_RATE - user_input[CONFIG_ACCOUNT_ID] = self._account_id + config[CONFIG_KIND] = CONFIG_KIND_TARGET_RATE + config[CONFIG_ACCOUNT_ID] = self._account_id # Setup our targets sensor return self.async_create_entry( - title=f"{user_input[CONFIG_TARGET_NAME]} (target)", - data=user_input + title=f"{config[CONFIG_TARGET_NAME]} (target)", + data=config ) # Reshow our form with raised logins @@ -407,8 +408,8 @@ async def __async_setup_target_rate_schema__(self, config, errors): vol.Optional(CONFIG_TARGET_ROLLING_TARGET): bool, vol.Optional(CONFIG_TARGET_LAST_RATES): bool, vol.Optional(CONFIG_TARGET_INVERT_TARGET_RATES): bool, - vol.Optional(CONFIG_TARGET_MIN_RATE): float, - vol.Optional(CONFIG_TARGET_MAX_RATE): float, + vol.Optional(CONFIG_TARGET_MIN_RATE): str, + vol.Optional(CONFIG_TARGET_MAX_RATE): str, vol.Optional(CONFIG_TARGET_WEIGHTING): str, }), {