Updated to catch timeout error
This commit is contained in:
parent
50887e7e2c
commit
09ff9cb08e
1 changed files with 28 additions and 15 deletions
|
@ -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):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue