From aa54548bb65baf8499bd70b13c00685290a62acc Mon Sep 17 00:00:00 2001 From: Gerben ten Hove Date: Wed, 20 Nov 2019 11:31:51 +0100 Subject: [PATCH 1/4] Nederlandse Spoorwegen: search for specific trip --- .../nederlandse_spoorwegen/sensor.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/nederlandse_spoorwegen/sensor.py b/homeassistant/components/nederlandse_spoorwegen/sensor.py index 0741ed4cb496df..e508864b993363 100644 --- a/homeassistant/components/nederlandse_spoorwegen/sensor.py +++ b/homeassistant/components/nederlandse_spoorwegen/sensor.py @@ -19,6 +19,7 @@ CONF_FROM = "from" CONF_TO = "to" CONF_VIA = "via" +CONF_TIME = "time" ICON = "mdi:train" @@ -30,6 +31,7 @@ vol.Required(CONF_FROM): cv.string, vol.Required(CONF_TO): cv.string, vol.Optional(CONF_VIA): cv.string, + vol.Optional(CONF_TIME): cv.time, } ) @@ -72,6 +74,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): departure.get(CONF_FROM), departure.get(CONF_TO), departure.get(CONF_VIA), + departure.get(CONF_TIME), ) ) if sensors: @@ -92,13 +95,14 @@ def valid_stations(stations, given_stations): class NSDepartureSensor(Entity): """Implementation of a NS Departure Sensor.""" - def __init__(self, nsapi, name, departure, heading, via): + def __init__(self, nsapi, name, departure, heading, via, time): """Initialize the sensor.""" self._nsapi = nsapi self._name = name self._departure = departure self._via = via self._heading = heading + self._time = time self._state = None self._trips = None @@ -164,10 +168,27 @@ def device_state_attributes(self): @Throttle(MIN_TIME_BETWEEN_UPDATES) def update(self): + """If looking for a specific trip time, update around that trip time only.""" + if self._time \ + and ((datetime.now() + timedelta(minutes=30)).time() < self._time \ + or (datetime.now() - timedelta(minutes=30)).time() > self._time): + self._state = None + self._trips = None + return + + """Set the search parameter to search from a specific trip time or to just search for next trip.""" + if self._time: + trip_time = datetime.today().replace( + hour=self._time.hour, + minute=self._time.minute, + ).strftime("%d-%m-%Y %H:%M") + else: + trip_time = datetime.now().strftime("%d-%m-%Y %H:%M") + """Get the trip information.""" try: self._trips = self._nsapi.get_trips( - datetime.now().strftime("%d-%m-%Y %H:%M"), + trip_time, self._departure, self._via, self._heading, From f59fa528f9e83a0297aa387291f0264b200938e5 Mon Sep 17 00:00:00 2001 From: Gerben ten Hove Date: Wed, 20 Nov 2019 13:41:18 +0100 Subject: [PATCH 2/4] Reformatting with Black --- .../nederlandse_spoorwegen/sensor.py | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/nederlandse_spoorwegen/sensor.py b/homeassistant/components/nederlandse_spoorwegen/sensor.py index e508864b993363..1fa9a21c135b9d 100644 --- a/homeassistant/components/nederlandse_spoorwegen/sensor.py +++ b/homeassistant/components/nederlandse_spoorwegen/sensor.py @@ -169,31 +169,28 @@ def device_state_attributes(self): @Throttle(MIN_TIME_BETWEEN_UPDATES) def update(self): """If looking for a specific trip time, update around that trip time only.""" - if self._time \ - and ((datetime.now() + timedelta(minutes=30)).time() < self._time \ - or (datetime.now() - timedelta(minutes=30)).time() > self._time): + if self._time and ( + (datetime.now() + timedelta(minutes=30)).time() < self._time + or (datetime.now() - timedelta(minutes=30)).time() > self._time + ): self._state = None self._trips = None return """Set the search parameter to search from a specific trip time or to just search for next trip.""" if self._time: - trip_time = datetime.today().replace( - hour=self._time.hour, - minute=self._time.minute, - ).strftime("%d-%m-%Y %H:%M") + trip_time = ( + datetime.today() + .replace(hour=self._time.hour, minute=self._time.minute) + .strftime("%d-%m-%Y %H:%M") + ) else: trip_time = datetime.now().strftime("%d-%m-%Y %H:%M") """Get the trip information.""" try: self._trips = self._nsapi.get_trips( - trip_time, - self._departure, - self._via, - self._heading, - True, - 0, + trip_time, self._departure, self._via, self._heading, True, 0, ) if self._trips: actual_time = self._trips[0].departure_time_actual From c3aefe7949b5cf7d1c1ccb4adc8e49350e1a6477 Mon Sep 17 00:00:00 2001 From: Gerben ten Hove Date: Wed, 20 Nov 2019 16:56:24 +0100 Subject: [PATCH 3/4] Resolve pylint error --- homeassistant/components/nederlandse_spoorwegen/sensor.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/nederlandse_spoorwegen/sensor.py b/homeassistant/components/nederlandse_spoorwegen/sensor.py index 1fa9a21c135b9d..8135b74d50b14e 100644 --- a/homeassistant/components/nederlandse_spoorwegen/sensor.py +++ b/homeassistant/components/nederlandse_spoorwegen/sensor.py @@ -168,7 +168,9 @@ def device_state_attributes(self): @Throttle(MIN_TIME_BETWEEN_UPDATES) def update(self): - """If looking for a specific trip time, update around that trip time only.""" + """Get the trip information.""" + + # If looking for a specific trip time, update around that trip time only. if self._time and ( (datetime.now() + timedelta(minutes=30)).time() < self._time or (datetime.now() - timedelta(minutes=30)).time() > self._time @@ -177,7 +179,7 @@ def update(self): self._trips = None return - """Set the search parameter to search from a specific trip time or to just search for next trip.""" + # Set the search parameter to search from a specific trip time or to just search for next trip. if self._time: trip_time = ( datetime.today() @@ -187,7 +189,6 @@ def update(self): else: trip_time = datetime.now().strftime("%d-%m-%Y %H:%M") - """Get the trip information.""" try: self._trips = self._nsapi.get_trips( trip_time, self._departure, self._via, self._heading, True, 0, From f1905dd9d157a36312b4d9d0da5bf1af61136245 Mon Sep 17 00:00:00 2001 From: Gerben ten Hove Date: Sat, 1 Feb 2020 18:08:49 +0100 Subject: [PATCH 4/4] Reformat with black. --- homeassistant/components/nederlandse_spoorwegen/sensor.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/homeassistant/components/nederlandse_spoorwegen/sensor.py b/homeassistant/components/nederlandse_spoorwegen/sensor.py index 78ee16371d4ef0..7e72db5744115e 100644 --- a/homeassistant/components/nederlandse_spoorwegen/sensor.py +++ b/homeassistant/components/nederlandse_spoorwegen/sensor.py @@ -206,13 +206,7 @@ def update(self): try: self._trips = self._nsapi.get_trips( - trip_time, - self._departure, - self._via, - self._heading, - True, - 0, - 2, + trip_time, self._departure, self._via, self._heading, True, 0, 2, ) if self._trips: if self._trips[0].departure_time_actual is None: