Fix possible unhandled IQVIA exception with allergy outlook data (#54477)

Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
pull/54472/head
Aaron Bach 2021-08-11 09:12:49 -07:00 committed by GitHub
parent d6483f2f36
commit 98a4e6a7e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 3 deletions

View File

@ -104,7 +104,7 @@ class ForecastSensor(IQVIAEntity):
@callback
def update_from_latest_data(self):
"""Update the sensor."""
if not self.coordinator.data:
if not self.available:
return
data = self.coordinator.data.get("Location", {})
@ -120,6 +120,7 @@ class ForecastSensor(IQVIAEntity):
if i["minimum"] <= average <= i["maximum"]
]
self._attr_state = average
self._attr_extra_state_attributes.update(
{
ATTR_CITY: data["City"].title(),
@ -134,6 +135,10 @@ class ForecastSensor(IQVIAEntity):
outlook_coordinator = self.hass.data[DOMAIN][DATA_COORDINATOR][
self._entry.entry_id
][TYPE_ALLERGY_OUTLOOK]
if not outlook_coordinator.last_update_success:
return
self._attr_extra_state_attributes[
ATTR_OUTLOOK
] = outlook_coordinator.data.get("Outlook")
@ -141,8 +146,6 @@ class ForecastSensor(IQVIAEntity):
ATTR_SEASON
] = outlook_coordinator.data.get("Season")
self._attr_state = average
class IndexSensor(IQVIAEntity):
"""Define sensor related to indices."""