Error handling, in case no connections are available (#12010)

* Error handling, in case no connections are available

* Fix elif to if
This commit is contained in:
Rene Nulsch 2018-01-29 23:49:38 +01:00 committed by Paulus Schoutsen
parent 8dcfd35b8b
commit 89e0b26b73

View File

@ -71,15 +71,17 @@ class DeutscheBahnSensor(Entity):
def device_state_attributes(self): def device_state_attributes(self):
"""Return the state attributes.""" """Return the state attributes."""
connections = self.data.connections[0] connections = self.data.connections[0]
connections['next'] = self.data.connections[1]['departure'] if len(self.data.connections) > 1:
connections['next_on'] = self.data.connections[2]['departure'] connections['next'] = self.data.connections[1]['departure']
if len(self.data.connections) > 2:
connections['next_on'] = self.data.connections[2]['departure']
return connections return connections
def update(self): def update(self):
"""Get the latest delay from bahn.de and updates the state.""" """Get the latest delay from bahn.de and updates the state."""
self.data.update() self.data.update()
self._state = self.data.connections[0].get('departure', 'Unknown') self._state = self.data.connections[0].get('departure', 'Unknown')
if self.data.connections[0]['delay'] != 0: if self.data.connections[0].get('delay', 0) != 0:
self._state += " + {}".format(self.data.connections[0]['delay']) self._state += " + {}".format(self.data.connections[0]['delay'])
@ -102,6 +104,9 @@ class SchieneData(object):
self.start, self.goal, dt_util.as_local(dt_util.utcnow()), self.start, self.goal, dt_util.as_local(dt_util.utcnow()),
self.only_direct) self.only_direct)
if not self.connections:
self.connections = [{}]
for con in self.connections: for con in self.connections:
# Detail info is not useful. Having a more consistent interface # Detail info is not useful. Having a more consistent interface
# simplifies usage of template sensors. # simplifies usage of template sensors.