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

* Error handling, in case no connections are available

* Fix elif to if
pull/12045/head
Rene Nulsch 2018-01-29 23:49:38 +01:00 committed by Paulus Schoutsen
parent 8dcfd35b8b
commit 89e0b26b73
1 changed files with 8 additions and 3 deletions

View File

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