From 98a4e6a7e8bf29fc8e17be57423ad590300dc177 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Wed, 11 Aug 2021 09:12:49 -0700 Subject: [PATCH] Fix possible unhandled IQVIA exception with allergy outlook data (#54477) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Joakim Sørensen --- homeassistant/components/iqvia/sensor.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/iqvia/sensor.py b/homeassistant/components/iqvia/sensor.py index 0ff236a8f79..5762e4a3888 100644 --- a/homeassistant/components/iqvia/sensor.py +++ b/homeassistant/components/iqvia/sensor.py @@ -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."""