Add package data attribute to 17track.net summary sensors (#19213)

* 17track.net: Add package data attribute to summary sensors

* Member comments
pull/18935/head
Aaron Bach 2018-12-12 11:07:06 -07:00 committed by Martin Hjelmare
parent 2926989ec3
commit f8438e96d1
1 changed files with 20 additions and 2 deletions

View File

@ -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):