diff --git a/homeassistant/components/aurora/strings.json b/homeassistant/components/aurora/strings.json index 92b8422d524..9beb9c7906d 100644 --- a/homeassistant/components/aurora/strings.json +++ b/homeassistant/components/aurora/strings.json @@ -10,6 +10,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]" } diff --git a/homeassistant/components/aurora/translations/en.json b/homeassistant/components/aurora/translations/en.json index e3e36574608..dd418ef0daf 100644 --- a/homeassistant/components/aurora/translations/en.json +++ b/homeassistant/components/aurora/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Service is already configured" + }, "error": { "cannot_connect": "Failed to connect" }, diff --git a/homeassistant/components/dnsip/strings.json b/homeassistant/components/dnsip/strings.json index 41ce6c5aeb7..713cc84efd4 100644 --- a/homeassistant/components/dnsip/strings.json +++ b/homeassistant/components/dnsip/strings.json @@ -22,6 +22,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "error": { "invalid_resolver": "Invalid IP address for resolver" } diff --git a/homeassistant/components/dnsip/translations/en.json b/homeassistant/components/dnsip/translations/en.json index 2c773375860..c2f2d233212 100644 --- a/homeassistant/components/dnsip/translations/en.json +++ b/homeassistant/components/dnsip/translations/en.json @@ -14,6 +14,9 @@ } }, "options": { + "abort": { + "already_configured": "Service is already configured" + }, "error": { "invalid_resolver": "Invalid IP address for resolver" }, diff --git a/homeassistant/components/environment_canada/strings.json b/homeassistant/components/environment_canada/strings.json index 49686cba123..4c6d75cfeb6 100644 --- a/homeassistant/components/environment_canada/strings.json +++ b/homeassistant/components/environment_canada/strings.json @@ -12,6 +12,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "error": { "bad_station_id": "Station ID is invalid, missing, or not found in the station ID database", "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", diff --git a/homeassistant/components/environment_canada/translations/en.json b/homeassistant/components/environment_canada/translations/en.json index 94c0b947fa4..be30ffded77 100644 --- a/homeassistant/components/environment_canada/translations/en.json +++ b/homeassistant/components/environment_canada/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Service is already configured" + }, "error": { "bad_station_id": "Station ID is invalid, missing, or not found in the station ID database", "cannot_connect": "Failed to connect", diff --git a/homeassistant/components/epson/strings.json b/homeassistant/components/epson/strings.json index 41a5f175ee7..9716153958b 100644 --- a/homeassistant/components/epson/strings.json +++ b/homeassistant/components/epson/strings.json @@ -8,6 +8,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "powered_off": "Is projector turned on? You need to turn on projector for initial configuration." diff --git a/homeassistant/components/epson/translations/en.json b/homeassistant/components/epson/translations/en.json index 931bbcf557e..ad741ff1c24 100644 --- a/homeassistant/components/epson/translations/en.json +++ b/homeassistant/components/epson/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Device is already configured" + }, "error": { "cannot_connect": "Failed to connect", "powered_off": "Is projector turned on? You need to turn on projector for initial configuration." diff --git a/homeassistant/components/growatt_server/strings.json b/homeassistant/components/growatt_server/strings.json index 9717aa217f3..695b8a08c1c 100644 --- a/homeassistant/components/growatt_server/strings.json +++ b/homeassistant/components/growatt_server/strings.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "no_plants": "No plants have been found on this account" }, "error": { diff --git a/homeassistant/components/growatt_server/translations/en.json b/homeassistant/components/growatt_server/translations/en.json index 86196783133..d3cadb2f53c 100644 --- a/homeassistant/components/growatt_server/translations/en.json +++ b/homeassistant/components/growatt_server/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Device is already configured", "no_plants": "No plants have been found on this account" }, "error": { diff --git a/homeassistant/components/habitica/strings.json b/homeassistant/components/habitica/strings.json index d25b840d761..3fe73d84667 100644 --- a/homeassistant/components/habitica/strings.json +++ b/homeassistant/components/habitica/strings.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, "error": { "invalid_credentials": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" diff --git a/homeassistant/components/habitica/translations/en.json b/homeassistant/components/habitica/translations/en.json index 377e3129ee8..2429582367e 100644 --- a/homeassistant/components/habitica/translations/en.json +++ b/homeassistant/components/habitica/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Account is already configured" + }, "error": { "invalid_credentials": "Invalid authentication", "unknown": "Unexpected error" diff --git a/homeassistant/components/huawei_lte/strings.json b/homeassistant/components/huawei_lte/strings.json index 3875433888d..0eb68c959ac 100644 --- a/homeassistant/components/huawei_lte/strings.json +++ b/homeassistant/components/huawei_lte/strings.json @@ -1,6 +1,8 @@ { "config": { "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", + "already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "unsupported_device": "Unsupported device" }, diff --git a/homeassistant/components/huawei_lte/translations/en.json b/homeassistant/components/huawei_lte/translations/en.json index 42d28a26871..08616cbc715 100644 --- a/homeassistant/components/huawei_lte/translations/en.json +++ b/homeassistant/components/huawei_lte/translations/en.json @@ -1,6 +1,8 @@ { "config": { "abort": { + "already_configured": "Device is already configured", + "already_in_progress": "Configuration flow is already in progress", "reauth_successful": "Re-authentication was successful", "unsupported_device": "Unsupported device" }, diff --git a/homeassistant/components/jellyfin/strings.json b/homeassistant/components/jellyfin/strings.json index 2c832f4003b..8d74d416a94 100644 --- a/homeassistant/components/jellyfin/strings.json +++ b/homeassistant/components/jellyfin/strings.json @@ -15,6 +15,7 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } } diff --git a/homeassistant/components/jellyfin/translations/en.json b/homeassistant/components/jellyfin/translations/en.json index fd85dc7acb6..359f158880c 100644 --- a/homeassistant/components/jellyfin/translations/en.json +++ b/homeassistant/components/jellyfin/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Account is already configured", "single_instance_allowed": "Already configured. Only a single configuration possible." }, "error": { diff --git a/homeassistant/components/laundrify/strings.json b/homeassistant/components/laundrify/strings.json index b2fea9f307f..ae6ec34d264 100644 --- a/homeassistant/components/laundrify/strings.json +++ b/homeassistant/components/laundrify/strings.json @@ -19,6 +19,7 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } } diff --git a/homeassistant/components/laundrify/translations/en.json b/homeassistant/components/laundrify/translations/en.json index 0c8375746ed..39ab8eefe93 100644 --- a/homeassistant/components/laundrify/translations/en.json +++ b/homeassistant/components/laundrify/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Account is already configured", "single_instance_allowed": "Already configured. Only a single configuration possible." }, "error": { diff --git a/homeassistant/components/meater/strings.json b/homeassistant/components/meater/strings.json index 635c71d324c..7f4a97a5b19 100644 --- a/homeassistant/components/meater/strings.json +++ b/homeassistant/components/meater/strings.json @@ -18,6 +18,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown_auth_error": "[%key:common::config_flow::error::unknown%]", diff --git a/homeassistant/components/meater/translations/en.json b/homeassistant/components/meater/translations/en.json index 707c6dc6ed6..a49d241607d 100644 --- a/homeassistant/components/meater/translations/en.json +++ b/homeassistant/components/meater/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Account is already configured" + }, "error": { "invalid_auth": "Invalid authentication", "service_unavailable_error": "The API is currently unavailable, please try again later.", diff --git a/homeassistant/components/melnor/strings.json b/homeassistant/components/melnor/strings.json index 42309c3bf72..2fefa32b6bc 100644 --- a/homeassistant/components/melnor/strings.json +++ b/homeassistant/components/melnor/strings.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "no_devices_found": "There aren't any Melnor Bluetooth devices nearby." }, "step": { diff --git a/homeassistant/components/melnor/translations/en.json b/homeassistant/components/melnor/translations/en.json index c179e46a070..57a756c1ef9 100644 --- a/homeassistant/components/melnor/translations/en.json +++ b/homeassistant/components/melnor/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Device is already configured", "no_devices_found": "There aren't any Melnor Bluetooth devices nearby." }, "step": { diff --git a/homeassistant/components/nuki/strings.json b/homeassistant/components/nuki/strings.json index 6552f08721e..32b72c74252 100644 --- a/homeassistant/components/nuki/strings.json +++ b/homeassistant/components/nuki/strings.json @@ -22,6 +22,7 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } } diff --git a/homeassistant/components/nuki/translations/en.json b/homeassistant/components/nuki/translations/en.json index 99c43859eb0..411577c3fac 100644 --- a/homeassistant/components/nuki/translations/en.json +++ b/homeassistant/components/nuki/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Device is already configured", "reauth_successful": "Re-authentication was successful" }, "error": { diff --git a/homeassistant/components/omnilogic/strings.json b/homeassistant/components/omnilogic/strings.json index 9c55877b3b0..2bbb927fd27 100644 --- a/homeassistant/components/omnilogic/strings.json +++ b/homeassistant/components/omnilogic/strings.json @@ -14,6 +14,7 @@ "unknown": "[%key:common::config_flow::error::unknown%]" }, "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]", "single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]" } }, diff --git a/homeassistant/components/omnilogic/translations/en.json b/homeassistant/components/omnilogic/translations/en.json index 809f8a0ec28..3c778d37d1d 100644 --- a/homeassistant/components/omnilogic/translations/en.json +++ b/homeassistant/components/omnilogic/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Account is already configured", "single_instance_allowed": "Already configured. Only a single configuration possible." }, "error": { diff --git a/homeassistant/components/open_meteo/strings.json b/homeassistant/components/open_meteo/strings.json index f2f22413403..4dd0270376b 100644 --- a/homeassistant/components/open_meteo/strings.json +++ b/homeassistant/components/open_meteo/strings.json @@ -7,6 +7,9 @@ "zone": "Zone" } } + }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" } } } diff --git a/homeassistant/components/open_meteo/translations/en.json b/homeassistant/components/open_meteo/translations/en.json index 7736b1da63e..e21cef3d920 100644 --- a/homeassistant/components/open_meteo/translations/en.json +++ b/homeassistant/components/open_meteo/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Service is already configured" + }, "step": { "user": { "data": { diff --git a/homeassistant/components/pvoutput/strings.json b/homeassistant/components/pvoutput/strings.json index 644a756924c..12f30b773d5 100644 --- a/homeassistant/components/pvoutput/strings.json +++ b/homeassistant/components/pvoutput/strings.json @@ -20,6 +20,7 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } } diff --git a/homeassistant/components/pvoutput/translations/en.json b/homeassistant/components/pvoutput/translations/en.json index ad2194232e7..15ca2a91725 100644 --- a/homeassistant/components/pvoutput/translations/en.json +++ b/homeassistant/components/pvoutput/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Device is already configured", "reauth_successful": "Re-authentication was successful" }, "error": { diff --git a/homeassistant/components/rainbird/strings.json b/homeassistant/components/rainbird/strings.json index 74bd43f2c0b..642612b11d2 100644 --- a/homeassistant/components/rainbird/strings.json +++ b/homeassistant/components/rainbird/strings.json @@ -10,6 +10,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "timeout_connect": "[%key:common::config_flow::error::timeout_connect%]" diff --git a/homeassistant/components/rainbird/translations/en.json b/homeassistant/components/rainbird/translations/en.json index 6541b980b85..6e6d014f8f4 100644 --- a/homeassistant/components/rainbird/translations/en.json +++ b/homeassistant/components/rainbird/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Device is already configured" + }, "error": { "cannot_connect": "Failed to connect", "timeout_connect": "Timeout establishing connection" diff --git a/homeassistant/components/rdw/strings.json b/homeassistant/components/rdw/strings.json index 48bcd8c0c5d..840802a12b7 100644 --- a/homeassistant/components/rdw/strings.json +++ b/homeassistant/components/rdw/strings.json @@ -7,6 +7,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown_license_plate": "Unknown license plate" diff --git a/homeassistant/components/rdw/translations/en.json b/homeassistant/components/rdw/translations/en.json index 9d2827ed4de..7f0f94f0a4c 100644 --- a/homeassistant/components/rdw/translations/en.json +++ b/homeassistant/components/rdw/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Service is already configured" + }, "error": { "cannot_connect": "Failed to connect", "unknown_license_plate": "Unknown license plate" diff --git a/homeassistant/components/sia/strings.json b/homeassistant/components/sia/strings.json index fe648c24e75..e5eb4770db5 100644 --- a/homeassistant/components/sia/strings.json +++ b/homeassistant/components/sia/strings.json @@ -24,6 +24,9 @@ "title": "Add another account to the current port." } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "error": { "invalid_key_format": "The key is not a hex value, please use only 0-9 and A-F.", "invalid_key_length": "The key is not the right length, it has to be 16, 24 or 32 hex characters.", diff --git a/homeassistant/components/sia/translations/en.json b/homeassistant/components/sia/translations/en.json index 9dea235b379..739d7d3935c 100644 --- a/homeassistant/components/sia/translations/en.json +++ b/homeassistant/components/sia/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Device is already configured" + }, "error": { "invalid_account_format": "The account is not a hex value, please use only 0-9 and A-F.", "invalid_account_length": "The account is not the right length, it has to be between 3 and 16 characters.", diff --git a/homeassistant/components/solax/strings.json b/homeassistant/components/solax/strings.json index e73c9f3bc88..75d0a8d87db 100644 --- a/homeassistant/components/solax/strings.json +++ b/homeassistant/components/solax/strings.json @@ -9,6 +9,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "unknown": "[%key:common::config_flow::error::unknown%]" diff --git a/homeassistant/components/solax/translations/en.json b/homeassistant/components/solax/translations/en.json index ec20dc22d44..36e4aca055a 100644 --- a/homeassistant/components/solax/translations/en.json +++ b/homeassistant/components/solax/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Device is already configured" + }, "error": { "cannot_connect": "Failed to connect", "unknown": "Unexpected error" diff --git a/homeassistant/components/tailscale/strings.json b/homeassistant/components/tailscale/strings.json index 0ac0db0ef08..c03b5a3f841 100644 --- a/homeassistant/components/tailscale/strings.json +++ b/homeassistant/components/tailscale/strings.json @@ -20,6 +20,7 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } } diff --git a/homeassistant/components/tailscale/translations/en.json b/homeassistant/components/tailscale/translations/en.json index dd607f6360d..1a7379290f8 100644 --- a/homeassistant/components/tailscale/translations/en.json +++ b/homeassistant/components/tailscale/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Service is already configured", "reauth_successful": "Re-authentication was successful" }, "error": { diff --git a/homeassistant/components/tomorrowio/strings.json b/homeassistant/components/tomorrowio/strings.json index 3ae70f214bb..1057477b0ac 100644 --- a/homeassistant/components/tomorrowio/strings.json +++ b/homeassistant/components/tomorrowio/strings.json @@ -10,6 +10,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]", diff --git a/homeassistant/components/tomorrowio/translations/en.json b/homeassistant/components/tomorrowio/translations/en.json index 15d1aadeaaf..088f8a1774c 100644 --- a/homeassistant/components/tomorrowio/translations/en.json +++ b/homeassistant/components/tomorrowio/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Service is already configured" + }, "error": { "cannot_connect": "Failed to connect", "invalid_api_key": "Invalid API key", diff --git a/homeassistant/components/vera/strings.json b/homeassistant/components/vera/strings.json index 50d60f9a8ab..4e51177910c 100644 --- a/homeassistant/components/vera/strings.json +++ b/homeassistant/components/vera/strings.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", "cannot_connect": "Could not connect to controller with URL {base_url}" }, "step": { diff --git a/homeassistant/components/vera/translations/en.json b/homeassistant/components/vera/translations/en.json index 53c60e39c01..44a0e5444e5 100644 --- a/homeassistant/components/vera/translations/en.json +++ b/homeassistant/components/vera/translations/en.json @@ -1,6 +1,7 @@ { "config": { "abort": { + "already_configured": "Device is already configured", "cannot_connect": "Could not connect to controller with URL {base_url}" }, "step": { diff --git a/homeassistant/components/whirlpool/strings.json b/homeassistant/components/whirlpool/strings.json index b34a3816588..aff89019e4c 100644 --- a/homeassistant/components/whirlpool/strings.json +++ b/homeassistant/components/whirlpool/strings.json @@ -8,6 +8,9 @@ } } }, + "abort": { + "already_configured": "[%key:common::config_flow::abort::already_configured_account%]" + }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", diff --git a/homeassistant/components/whirlpool/translations/en.json b/homeassistant/components/whirlpool/translations/en.json index 676d0a563cf..1bfa4386fd8 100644 --- a/homeassistant/components/whirlpool/translations/en.json +++ b/homeassistant/components/whirlpool/translations/en.json @@ -1,5 +1,8 @@ { "config": { + "abort": { + "already_configured": "Account is already configured" + }, "error": { "cannot_connect": "Failed to connect", "invalid_auth": "Invalid authentication", diff --git a/homeassistant/config_entries.py b/homeassistant/config_entries.py index 757841e0813..68e73698b72 100644 --- a/homeassistant/config_entries.py +++ b/homeassistant/config_entries.py @@ -1455,7 +1455,10 @@ class ConfigFlow(data_entry_flow.FlowHandler): def _async_abort_entries_match( self, match_dict: dict[str, Any] | None = None ) -> None: - """Abort if current entries match all data.""" + """Abort if current entries match all data. + + Requires `already_configured` in strings.json in user visible flows. + """ if match_dict is None: match_dict = {} # Match any entry for entry in self._async_current_entries(include_ignore=False): @@ -1477,7 +1480,11 @@ class ConfigFlow(data_entry_flow.FlowHandler): *, error: str = "already_configured", ) -> None: - """Abort if the unique ID is already configured.""" + """Abort if the unique ID is already configured. + + Requires strings.json entry corresponding to the `error` parameter + in user visible flows. + """ if self.unique_id is None: return @@ -1619,6 +1626,9 @@ class ConfigFlow(data_entry_flow.FlowHandler): when the handler has no existing config entries. It ensures that the discovery can be ignored by the user. + + Requires `already_configured` and `already_in_progress` in strings.json + in user visible flows. """ if self.unique_id is not None: return