From 0f071c1ae5abfa31005b629cf356d460dcbd2032 Mon Sep 17 00:00:00 2001 From: Andreas Jakl Date: Tue, 24 Feb 2026 23:33:40 +0100 Subject: [PATCH] Fix accessing optional username and password for nrgkick integration (#163963) --- .../components/nrgkick/config_flow.py | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/nrgkick/config_flow.py b/homeassistant/components/nrgkick/config_flow.py index 4f2c42ad2524..b99402ab600f 100644 --- a/homeassistant/components/nrgkick/config_flow.py +++ b/homeassistant/components/nrgkick/config_flow.py @@ -213,8 +213,8 @@ class NRGkickConfigFlow(ConfigFlow, domain=DOMAIN): if info := await self._async_validate_credentials( self._pending_host, errors, - username=user_input[CONF_USERNAME], - password=user_input[CONF_PASSWORD], + username=user_input.get(CONF_USERNAME), + password=user_input.get(CONF_PASSWORD), ): await self.async_set_unique_id(info["serial"], raise_on_progress=False) self._abort_if_unique_id_configured() @@ -222,8 +222,8 @@ class NRGkickConfigFlow(ConfigFlow, domain=DOMAIN): title=info["title"], data={ CONF_HOST: self._pending_host, - CONF_USERNAME: user_input[CONF_USERNAME], - CONF_PASSWORD: user_input[CONF_PASSWORD], + CONF_USERNAME: user_input.get(CONF_USERNAME), + CONF_PASSWORD: user_input.get(CONF_PASSWORD), }, ) @@ -253,8 +253,8 @@ class NRGkickConfigFlow(ConfigFlow, domain=DOMAIN): if info := await self._async_validate_credentials( reauth_entry.data[CONF_HOST], errors, - username=user_input[CONF_USERNAME], - password=user_input[CONF_PASSWORD], + username=user_input.get(CONF_USERNAME), + password=user_input.get(CONF_PASSWORD), ): await self.async_set_unique_id(info["serial"], raise_on_progress=False) self._abort_if_unique_id_mismatch() @@ -318,11 +318,13 @@ class NRGkickConfigFlow(ConfigFlow, domain=DOMAIN): reconfigure_entry = self._get_reconfigure_entry() if user_input is not None: + username = user_input.get(CONF_USERNAME) + password = user_input.get(CONF_PASSWORD) if info := await self._async_validate_credentials( self._pending_host, errors, - username=user_input[CONF_USERNAME], - password=user_input[CONF_PASSWORD], + username=username, + password=password, ): await self.async_set_unique_id(info["serial"], raise_on_progress=False) self._abort_if_unique_id_mismatch() @@ -330,8 +332,8 @@ class NRGkickConfigFlow(ConfigFlow, domain=DOMAIN): reconfigure_entry, data_updates={ CONF_HOST: self._pending_host, - CONF_USERNAME: user_input[CONF_USERNAME], - CONF_PASSWORD: user_input[CONF_PASSWORD], + CONF_USERNAME: username, + CONF_PASSWORD: password, }, )