From 97f1ace125410d48230fb218ec5cfc36151fb7a6 Mon Sep 17 00:00:00 2001 From: finity69x2 <32221243+finity69x2@users.noreply.github.com> Date: Wed, 20 May 2020 10:36:10 -0400 Subject: [PATCH] Update sensor.py --- custom_components/nws_alerts/sensor.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/custom_components/nws_alerts/sensor.py b/custom_components/nws_alerts/sensor.py index c908fe6..bf82d6a 100644 --- a/custom_components/nws_alerts/sensor.py +++ b/custom_components/nws_alerts/sensor.py @@ -38,17 +38,17 @@ async def async_setup_platform( """ Configuration from yaml """ name = config.get(CONF_NAME, DEFAULT_NAME) zone_id = config.get(CONF_ZONE_ID) - async_add_entities([NWSAlertIdSensor(name, zone_id)], True) + async_add_entities([NWSAlertSensor(name, zone_id)], True) async def async_setup_entry(hass, entry, async_add_entities): """ Setup the sensor platform. """ name = entry.data[CONF_NAME] zone_id = entry.data[CONF_ZONE_ID] - async_add_entities([NWSAlertIdSensor(name, zone_id)], True) + async_add_entities([NWSAlertSensor(name, zone_id)], True) -class NWSAlertIdSensor(Entity): +class NWSAlertSensor(Entity): """Representation of a Sensor.""" def __init__(self, name, zone_id): @@ -150,19 +150,19 @@ def get_alerts(self): _LOGGER.debug("getting alert for %s from %s" % (self._zone_id, url)) if r.status_code == 200: events = [] - event_ids = [] headlines = [] + event_id = '' display_desc = '' spoken_desc = '' features = r.json()['features'] for alert in features: event = alert['properties']['event'] - event_id = alert['id'] if 'NWSheadline' in alert['properties']['parameters']: headline = alert['properties']['parameters']['NWSheadline'][0] else: headline = event + id = alert['id'] description = alert['properties']['description'] instruction = alert['properties']['instruction'] @@ -177,6 +177,11 @@ def get_alerts(self): display_desc += '\n\n-\n\n' display_desc += '%s\n%s\n%s' % (headline, description, instruction) + + if event_id != '': + event_id += '---' + + event_id += id if headlines: num_headlines = len(headlines) @@ -203,5 +208,12 @@ def get_alerts(self): values['event_id'] = event_id values['display_desc'] = display_desc values['spoken_desc'] = spoken_desc + + if r.status_code != 200: + values['state'] = "Unknown" + values['event'] = "Unknown" + values['event_id'] = "Unknown" + values['display_desc'] = "Unknown" + values['spoken_desc'] = "Unknown" return values