diff --git a/homeassistant/components/homematicip_cloud/config_flow.py b/homeassistant/components/homematicip_cloud/config_flow.py index 547289f871a..b6b78948894 100644 --- a/homeassistant/components/homematicip_cloud/config_flow.py +++ b/homeassistant/components/homematicip_cloud/config_flow.py @@ -47,6 +47,9 @@ class HomematicipCloudFlowHandler(config_entries.ConfigFlow): _LOGGER.info("Connection to HomematicIP Cloud established") return await self.async_step_link() + _LOGGER.info("Connection to HomematicIP Cloud failed") + errors["base"] = "invalid_sgtin_or_pin" + return self.async_show_form( step_id="init", data_schema=vol.Schema( diff --git a/homeassistant/components/homematicip_cloud/hap.py b/homeassistant/components/homematicip_cloud/hap.py index 78f1d57ac93..164997d5582 100644 --- a/homeassistant/components/homematicip_cloud/hap.py +++ b/homeassistant/components/homematicip_cloud/hap.py @@ -34,7 +34,7 @@ class HomematicipAuth: self.auth = await self.get_auth( self.hass, self.config.get(HMIPC_HAPID), self.config.get(HMIPC_PIN) ) - return True + return self.auth is not None except HmipcConnectionError: return False @@ -63,7 +63,7 @@ class HomematicipAuth: auth.pin = pin await auth.connectionRequest("HomeAssistant") except HmipConnectionError: - return False + return None return auth diff --git a/homeassistant/components/homematicip_cloud/strings.json b/homeassistant/components/homematicip_cloud/strings.json index 2b2a75ebc08..fddb2b85df6 100644 --- a/homeassistant/components/homematicip_cloud/strings.json +++ b/homeassistant/components/homematicip_cloud/strings.json @@ -16,7 +16,7 @@ }, "error": { "register_failed": "Failed to register, please try again.", - "invalid_pin": "Invalid PIN, please try again.", + "invalid_sgtin_or_pin": "Invalid SGTIN or PIN, please try again.", "press_the_button": "Please press the blue button.", "timeout_button": "Blue button press timeout, please try again." }, diff --git a/homeassistant/components/homematicip_cloud/translations/en.json b/homeassistant/components/homematicip_cloud/translations/en.json index 26ca6eb60d6..74d42fc7bc4 100644 --- a/homeassistant/components/homematicip_cloud/translations/en.json +++ b/homeassistant/components/homematicip_cloud/translations/en.json @@ -6,7 +6,7 @@ "unknown": "Unknown error occurred." }, "error": { - "invalid_pin": "Invalid PIN, please try again.", + "invalid_sgtin_or_pin": "Invalid SGTIN or PIN, please try again.", "press_the_button": "Please press the blue button.", "register_failed": "Failed to register, please try again.", "timeout_button": "Blue button press timeout, please try again." diff --git a/tests/components/homematicip_cloud/test_hap.py b/tests/components/homematicip_cloud/test_hap.py index ca701622e90..2a4833553d2 100644 --- a/tests/components/homematicip_cloud/test_hap.py +++ b/tests/components/homematicip_cloud/test_hap.py @@ -175,9 +175,7 @@ async def test_auth_create_exception(hass, simple_mock_auth): "homeassistant.components.homematicip_cloud.hap.AsyncAuth", return_value=simple_mock_auth, ): - assert await hmip_auth.async_setup() - await hass.async_block_till_done() - assert not hmip_auth.auth + assert not await hmip_auth.async_setup() with patch( "homeassistant.components.homematicip_cloud.hap.AsyncAuth",