From f8438e96d11805b6a70e6a385de2048f32ce7769 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Wed, 12 Dec 2018 11:07:06 -0700 Subject: [PATCH] Add package data attribute to 17track.net summary sensors (#19213) * 17track.net: Add package data attribute to summary sensors * Member comments --- .../components/sensor/seventeentrack.py | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/seventeentrack.py b/homeassistant/components/sensor/seventeentrack.py index 7c5dba3b0e1..c77b934fbad 100644 --- a/homeassistant/components/sensor/seventeentrack.py +++ b/homeassistant/components/sensor/seventeentrack.py @@ -21,9 +21,12 @@ REQUIREMENTS = ['py17track==2.1.1'] _LOGGER = logging.getLogger(__name__) ATTR_DESTINATION_COUNTRY = 'destination_country' +ATTR_FRIENDLY_NAME = 'friendly_name' ATTR_INFO_TEXT = 'info_text' ATTR_ORIGIN_COUNTRY = 'origin_country' +ATTR_PACKAGES = 'packages' ATTR_PACKAGE_TYPE = 'package_type' +ATTR_STATUS = 'status' ATTR_TRACKING_INFO_LANGUAGE = 'tracking_info_language' ATTR_TRACKING_NUMBER = 'tracking_number' @@ -117,7 +120,7 @@ class SeventeenTrackSummarySensor(Entity): @property def name(self): """Return the name.""" - return '17track Packages {0}'.format(self._status) + return 'Seventeentrack Packages {0}'.format(self._status) @property def state(self): @@ -139,6 +142,21 @@ class SeventeenTrackSummarySensor(Entity): """Update the sensor.""" await self._data.async_update() + package_data = [] + for package in self._data.packages: + if package.status != self._status: + continue + + package_data.append({ + ATTR_FRIENDLY_NAME: package.friendly_name, + ATTR_INFO_TEXT: package.info_text, + ATTR_STATUS: package.status, + ATTR_TRACKING_NUMBER: package.tracking_number, + }) + + if package_data: + self._attrs[ATTR_PACKAGES] = package_data + self._state = self._data.summary.get(self._status) @@ -186,7 +204,7 @@ class SeventeenTrackPackageSensor(Entity): name = self._friendly_name if not name: name = self._tracking_number - return '17track Package: {0}'.format(name) + return 'Seventeentrack Package: {0}'.format(name) @property def state(self):