diff --git a/homeassistant/components/ovo_energy/__init__.py b/homeassistant/components/ovo_energy/__init__.py index 3aff51fa044..e98e81ba1c2 100644 --- a/homeassistant/components/ovo_energy/__init__.py +++ b/homeassistant/components/ovo_energy/__init__.py @@ -40,7 +40,14 @@ async def async_setup_entry(hass: HomeAssistantType, entry: ConfigEntry) -> bool """Fetch data from OVO Energy.""" now = datetime.utcnow() async with async_timeout.timeout(10): - return await client.get_daily_usage(now.strftime("%Y-%m")) + try: + await client.authenticate( + entry.data[CONF_USERNAME], entry.data[CONF_PASSWORD] + ) + return await client.get_daily_usage(now.strftime("%Y-%m")) + except aiohttp.ClientError as exception: + _LOGGER.warning(exception) + return None coordinator = DataUpdateCoordinator( hass, diff --git a/homeassistant/components/ovo_energy/sensor.py b/homeassistant/components/ovo_energy/sensor.py index 4b9e2e70806..a0781836d6c 100644 --- a/homeassistant/components/ovo_energy/sensor.py +++ b/homeassistant/components/ovo_energy/sensor.py @@ -29,15 +29,29 @@ async def async_setup_entry( entities = [] - if coordinator.data.electricity: - currency = coordinator.data.electricity[ - len(coordinator.data.electricity) - 1 - ].cost.currency_unit - entities.append(OVOEnergyLastElectricityReading(coordinator, client)) - entities.append(OVOEnergyLastElectricityCost(coordinator, client, currency)) - if coordinator.data.gas: - entities.append(OVOEnergyLastGasReading(coordinator, client)) - entities.append(OVOEnergyLastGasCost(coordinator, client, currency)) + if coordinator.data: + if coordinator.data.electricity: + entities.append(OVOEnergyLastElectricityReading(coordinator, client)) + entities.append( + OVOEnergyLastElectricityCost( + coordinator, + client, + coordinator.data.electricity[ + len(coordinator.data.electricity) - 1 + ].cost.currency_unit, + ) + ) + if coordinator.data.gas: + entities.append(OVOEnergyLastGasReading(coordinator, client)) + entities.append( + OVOEnergyLastGasCost( + coordinator, + client, + coordinator.data.gas[ + len(coordinator.data.gas) - 1 + ].cost.currency_unit, + ) + ) async_add_entities( entities, True,