mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 10:47:10 +00:00
Addresses issues with Pollen.com API troubles (#12930)
* Addresses issues with Pollen.com API troubles (#12916) * Reverted some unnecessary style changes
This commit is contained in:
parent
60d7e32f81
commit
18b288dcfe
@ -105,7 +105,6 @@ RATING_MAPPING = [{
|
|||||||
'maximum': 12
|
'maximum': 12
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||||
vol.Required(CONF_ZIP_CODE): cv.string,
|
vol.Required(CONF_ZIP_CODE): cv.string,
|
||||||
vol.Required(CONF_MONITORED_CONDITIONS):
|
vol.Required(CONF_MONITORED_CONDITIONS):
|
||||||
@ -211,21 +210,23 @@ class AllergyAverageSensor(BaseSensor):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
data_attr = getattr(self.data, self._data_params['data_attr'])
|
data_attr = getattr(self.data, self._data_params['data_attr'])
|
||||||
indices = [
|
indices = [p['Index'] for p in data_attr['Location']['periods']]
|
||||||
p['Index']
|
self._attrs[ATTR_TREND] = calculate_trend(indices)
|
||||||
for p in data_attr['Location']['periods']
|
|
||||||
]
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
_LOGGER.error("Pollen.com API didn't return any data")
|
_LOGGER.error("Pollen.com API didn't return any data")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
self._attrs[ATTR_CITY] = data_attr['Location']['City'].title()
|
||||||
|
self._attrs[ATTR_STATE] = data_attr['Location']['State']
|
||||||
|
self._attrs[ATTR_ZIP_CODE] = data_attr['Location']['ZIP']
|
||||||
|
except KeyError:
|
||||||
|
_LOGGER.debug('Location data not included in API response')
|
||||||
|
self._attrs[ATTR_CITY] = None
|
||||||
|
self._attrs[ATTR_STATE] = None
|
||||||
|
self._attrs[ATTR_ZIP_CODE] = None
|
||||||
|
|
||||||
average = round(mean(indices), 1)
|
average = round(mean(indices), 1)
|
||||||
|
|
||||||
self._attrs[ATTR_TREND] = calculate_trend(indices)
|
|
||||||
self._attrs[ATTR_CITY] = data_attr['Location']['City'].title()
|
|
||||||
self._attrs[ATTR_STATE] = data_attr['Location']['State']
|
|
||||||
self._attrs[ATTR_ZIP_CODE] = data_attr['Location']['ZIP']
|
|
||||||
|
|
||||||
[rating] = [
|
[rating] = [
|
||||||
i['label'] for i in RATING_MAPPING
|
i['label'] for i in RATING_MAPPING
|
||||||
if i['minimum'] <= average <= i['maximum']
|
if i['minimum'] <= average <= i['maximum']
|
||||||
@ -245,31 +246,51 @@ class AllergyIndexSensor(BaseSensor):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
location_data = self.data.current_data['Location']
|
location_data = self.data.current_data['Location']
|
||||||
|
[period] = [
|
||||||
|
p for p in location_data['periods']
|
||||||
|
if p['Type'] == self._data_params['key']
|
||||||
|
]
|
||||||
|
[rating] = [
|
||||||
|
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']
|
||||||
|
self._attrs[ATTR_RATING] = rating
|
||||||
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
_LOGGER.error("Pollen.com API didn't return any data")
|
_LOGGER.error("Pollen.com API didn't return any data")
|
||||||
return
|
return
|
||||||
|
|
||||||
[period] = [
|
try:
|
||||||
p for p in location_data['periods']
|
self._attrs[ATTR_CITY] = location_data['City'].title()
|
||||||
if p['Type'] == self._data_params['key']
|
self._attrs[ATTR_STATE] = location_data['State']
|
||||||
]
|
self._attrs[ATTR_ZIP_CODE] = location_data['ZIP']
|
||||||
|
except KeyError:
|
||||||
|
_LOGGER.debug('Location data not included in API response')
|
||||||
|
self._attrs[ATTR_CITY] = None
|
||||||
|
self._attrs[ATTR_STATE] = None
|
||||||
|
self._attrs[ATTR_ZIP_CODE] = None
|
||||||
|
|
||||||
self._attrs[ATTR_ALLERGEN_GENUS] = period['Triggers'][0]['Genus']
|
try:
|
||||||
self._attrs[ATTR_ALLERGEN_NAME] = period['Triggers'][0]['Name']
|
self._attrs[ATTR_OUTLOOK] = self.data.outlook_data['Outlook']
|
||||||
self._attrs[ATTR_ALLERGEN_TYPE] = period['Triggers'][0]['PlantType']
|
except KeyError:
|
||||||
self._attrs[ATTR_OUTLOOK] = self.data.outlook_data['Outlook']
|
_LOGGER.debug('Outlook data not included in API response')
|
||||||
self._attrs[ATTR_SEASON] = self.data.outlook_data['Season']
|
self._attrs[ATTR_OUTLOOK] = None
|
||||||
self._attrs[ATTR_TREND] = self.data.outlook_data[
|
|
||||||
'Trend'].title()
|
|
||||||
self._attrs[ATTR_CITY] = location_data['City'].title()
|
|
||||||
self._attrs[ATTR_STATE] = location_data['State']
|
|
||||||
self._attrs[ATTR_ZIP_CODE] = location_data['ZIP']
|
|
||||||
|
|
||||||
[rating] = [
|
try:
|
||||||
i['label'] for i in RATING_MAPPING
|
self._attrs[ATTR_SEASON] = self.data.outlook_data['Season']
|
||||||
if i['minimum'] <= period['Index'] <= i['maximum']
|
except KeyError:
|
||||||
]
|
_LOGGER.debug('Season data not included in API response')
|
||||||
self._attrs[ATTR_RATING] = rating
|
self._attrs[ATTR_SEASON] = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
self._attrs[ATTR_TREND] = self.data.outlook_data['Trend'].title()
|
||||||
|
except KeyError:
|
||||||
|
_LOGGER.debug('Trend data not included in API response')
|
||||||
|
self._attrs[ATTR_TREND] = None
|
||||||
|
|
||||||
self._state = period['Index']
|
self._state = period['Index']
|
||||||
self._unit = 'index'
|
self._unit = 'index'
|
||||||
@ -289,8 +310,7 @@ class DataBase(object):
|
|||||||
data = {}
|
data = {}
|
||||||
try:
|
try:
|
||||||
data = getattr(getattr(self._client, module), operation)()
|
data = getattr(getattr(self._client, module), operation)()
|
||||||
_LOGGER.debug('Received "%s_%s" data: %s', module,
|
_LOGGER.debug('Received "%s_%s" data: %s', module, operation, data)
|
||||||
operation, data)
|
|
||||||
except HTTPError as exc:
|
except HTTPError as exc:
|
||||||
_LOGGER.error('An error occurred while retrieving data')
|
_LOGGER.error('An error occurred while retrieving data')
|
||||||
_LOGGER.debug(exc)
|
_LOGGER.debug(exc)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user