diff --git a/homeassistant/components/fronius/__init__.py b/homeassistant/components/fronius/__init__.py index e30f8e85fa0..03d80e3b2d9 100644 --- a/homeassistant/components/fronius/__init__.py +++ b/homeassistant/components/fronius/__init__.py @@ -226,7 +226,14 @@ class FroniusSolarNet: _LOGGER.debug("Re-scan failed for %s", self.host) return inverter_infos - raise ConfigEntryNotReady from err + raise ConfigEntryNotReady( + translation_domain=DOMAIN, + translation_key="entry_cannot_connect", + translation_placeholders={ + "host": self.host, + "fronius_error": str(err), + }, + ) from err for inverter in _inverter_info["inverters"]: solar_net_id = inverter["device_id"]["value"] diff --git a/homeassistant/components/fronius/config_flow.py b/homeassistant/components/fronius/config_flow.py index 2adbf2ae2f3..1d5a26984fa 100644 --- a/homeassistant/components/fronius/config_flow.py +++ b/homeassistant/components/fronius/config_flow.py @@ -56,7 +56,10 @@ async def validate_host( _LOGGER.debug(err) raise CannotConnect from err except StopIteration as err: - raise CannotConnect("No supported Fronius SolarNet device found.") from err + raise CannotConnect( + translation_domain=DOMAIN, + translation_key="no_supported_device_found", + ) from err first_inverter_uid: str = first_inverter["unique_id"]["value"] return first_inverter_uid, FroniusConfigEntryData( host=host, diff --git a/homeassistant/components/fronius/coordinator.py b/homeassistant/components/fronius/coordinator.py index c3dea123a77..d4f1fc6c230 100644 --- a/homeassistant/components/fronius/coordinator.py +++ b/homeassistant/components/fronius/coordinator.py @@ -13,6 +13,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from .const import ( + DOMAIN, SOLAR_NET_ID_POWER_FLOW, SOLAR_NET_ID_SYSTEM, FroniusDeviceInfo, @@ -67,7 +68,11 @@ class FroniusCoordinatorBase( self._failed_update_count += 1 if self._failed_update_count == self.MAX_FAILED_UPDATES: self.update_interval = self.error_interval - raise UpdateFailed(err) from err + raise UpdateFailed( + translation_domain=DOMAIN, + translation_key="update_failed", + translation_placeholders={"fronius_error": str(err)}, + ) from err if self._failed_update_count != 0: self._failed_update_count = 0 diff --git a/homeassistant/components/fronius/sensor.py b/homeassistant/components/fronius/sensor.py index c8a840b1c2c..95c5df269e4 100644 --- a/homeassistant/components/fronius/sensor.py +++ b/homeassistant/components/fronius/sensor.py @@ -54,6 +54,9 @@ if TYPE_CHECKING: FroniusStorageUpdateCoordinator, ) + +PARALLEL_UPDATES = 0 + ENERGY_VOLT_AMPERE_REACTIVE_HOUR: Final = "varh" diff --git a/homeassistant/components/fronius/strings.json b/homeassistant/components/fronius/strings.json index dfdcfc0ddb2..86348a0e2d7 100644 --- a/homeassistant/components/fronius/strings.json +++ b/homeassistant/components/fronius/strings.json @@ -294,5 +294,16 @@ "name": "[%key:component::sensor::entity_component::temperature::name%]" } } + }, + "exceptions": { + "no_supported_device_found": { + "message": "No supported Fronius SolarNet device found." + }, + "entry_cannot_connect": { + "message": "Failed to connect to Fronius device at {host}: {fronius_error}" + }, + "update_failed": { + "message": "An error occurred while attempting to fetch data: {fronius_error}" + } } }