Updated to catch timeout error

This commit is contained in:
Rowan 2017-03-02 14:58:35 +00:00
parent 50887e7e2c
commit 09ff9cb08e

View file

@ -4,6 +4,8 @@ Sensor for Steam account status.
For more details about this platform, please refer to the documentation at For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/sensor.steam_online/ https://home-assistant.io/components/sensor.steam_online/
""" """
import logging
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
@ -13,6 +15,8 @@ import homeassistant.helpers.config_validation as cv
REQUIREMENTS = ['steamodd==4.21'] REQUIREMENTS = ['steamodd==4.21']
_LOGGER = logging.getLogger(__name__)
CONF_ACCOUNTS = 'accounts' CONF_ACCOUNTS = 'accounts'
ICON = 'mdi:steam' ICON = 'mdi:steam'
@ -46,7 +50,7 @@ class SteamSensor(Entity):
@property @property
def name(self): def name(self):
"""Return the name of the sensor.""" """Return the name of the sensor."""
return self._profile.persona return self._name
@property @property
def entity_id(self): def entity_id(self):
@ -61,19 +65,28 @@ class SteamSensor(Entity):
# pylint: disable=no-member # pylint: disable=no-member
def update(self): def update(self):
"""Update device state.""" """Update device state."""
self._profile = self._steamod.user.profile(self._account) try:
if self._profile.current_game[2] is None: self._profile = self._steamod.user.profile(self._account)
self._game = 'None' if self._profile.current_game[2] is None:
else: self._game = 'None'
self._game = self._profile.current_game[2] else:
self._state = { self._game = self._profile.current_game[2]
1: 'Online', self._state = {
2: 'Busy', 1: 'Online',
3: 'Away', 2: 'Busy',
4: 'Snooze', 3: 'Away',
5: 'Trade', 4: 'Snooze',
6: 'Play', 5: 'Trade',
}.get(self._profile.status, 'Offline') 6: 'Play',
}.get(self._profile.status, 'Offline')
self._name = self._profile.persona
self._avatar = self._profile.avatar_medium
except self._steamod.api.HTTPTimeoutError as error:
_LOGGER.warning(error)
self._game = 'Unknown'
self._state = 'Unknown'
self._name = 'Unknown'
self._avatar = None
@property @property
def device_state_attributes(self): def device_state_attributes(self):
@ -83,7 +96,7 @@ class SteamSensor(Entity):
@property @property
def entity_picture(self): def entity_picture(self):
"""Avatar of the account.""" """Avatar of the account."""
return self._profile.avatar_medium return self._avatar
@property @property
def icon(self): def icon(self):