From cb490780c9cf9f10f1c883a7474c0ef5d3ed2ef8 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Sat, 21 Apr 2018 02:16:52 -0600 Subject: [PATCH] Pollen.com: Added attributes on top 3 allergens (#14018) --- homeassistant/components/sensor/pollen.py | 26 +++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/sensor/pollen.py b/homeassistant/components/sensor/pollen.py index b55c60f6e7c..1ef5a27cf3d 100644 --- a/homeassistant/components/sensor/pollen.py +++ b/homeassistant/components/sensor/pollen.py @@ -160,7 +160,7 @@ class BaseSensor(Entity): def __init__(self, data, data_params, name, icon, unique_id): """Initialize the sensor.""" - self._attrs = {} + self._attrs = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION} self._icon = icon self._name = name self._data_params = data_params @@ -172,7 +172,6 @@ class BaseSensor(Entity): @property def device_state_attributes(self): """Return the device state attributes.""" - self._attrs.update({ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION}) return self._attrs @property @@ -254,10 +253,25 @@ class AllergyIndexSensor(BaseSensor): i['label'] for i in RATING_MAPPING if i['minimum'] <= period['Index'] <= i['maximum'] ] - self._attrs[ATTR_ALLERGEN_GENUS] = period['Triggers'][0]['Genus'] - self._attrs[ATTR_ALLERGEN_NAME] = period['Triggers'][0]['Name'] - self._attrs[ATTR_ALLERGEN_TYPE] = period['Triggers'][0][ - 'PlantType'] + + for i in range(3): + index = i + 1 + try: + data = period['Triggers'][i] + self._attrs['{0}_{1}'.format( + ATTR_ALLERGEN_GENUS, index)] = data['Genus'] + self._attrs['{0}_{1}'.format( + ATTR_ALLERGEN_NAME, index)] = data['Name'] + self._attrs['{0}_{1}'.format( + ATTR_ALLERGEN_TYPE, index)] = data['PlantType'] + except IndexError: + self._attrs['{0}_{1}'.format( + ATTR_ALLERGEN_GENUS, index)] = None + self._attrs['{0}_{1}'.format( + ATTR_ALLERGEN_NAME, index)] = None + self._attrs['{0}_{1}'.format( + ATTR_ALLERGEN_TYPE, index)] = None + self._attrs[ATTR_RATING] = rating except KeyError: