mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 05:37:44 +00:00
Simplify error handling
This commit is contained in:
parent
496ec4bcca
commit
40486676df
@ -102,13 +102,13 @@ class RestSensor(Entity):
|
|||||||
self.rest.update()
|
self.rest.update()
|
||||||
value = self.rest.data
|
value = self.rest.data
|
||||||
|
|
||||||
if 'error' in value:
|
if value is None:
|
||||||
self._state = value['error']
|
value = STATE_UNKNOWN
|
||||||
else:
|
elif self._value_template is not None:
|
||||||
if self._value_template is not None:
|
value = template.render_with_possible_json_value(
|
||||||
value = template.render_with_possible_json_value(
|
self._hass, self._value_template, value, STATE_UNKNOWN)
|
||||||
self._hass, self._value_template, value, STATE_UNKNOWN)
|
|
||||||
self._state = value
|
self._state = value
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=too-few-public-methods
|
# pylint: disable=too-few-public-methods
|
||||||
@ -118,7 +118,7 @@ class RestDataGet(object):
|
|||||||
def __init__(self, resource, verify_ssl):
|
def __init__(self, resource, verify_ssl):
|
||||||
self._resource = resource
|
self._resource = resource
|
||||||
self._verify_ssl = verify_ssl
|
self._verify_ssl = verify_ssl
|
||||||
self.data = dict()
|
self.data = None
|
||||||
|
|
||||||
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
||||||
def update(self):
|
def update(self):
|
||||||
@ -126,12 +126,10 @@ class RestDataGet(object):
|
|||||||
try:
|
try:
|
||||||
response = requests.get(self._resource, timeout=10,
|
response = requests.get(self._resource, timeout=10,
|
||||||
verify=self._verify_ssl)
|
verify=self._verify_ssl)
|
||||||
if isinstance(self.data, dict) and 'error' in self.data:
|
|
||||||
del self.data['error']
|
|
||||||
self.data = response.text
|
self.data = response.text
|
||||||
except requests.exceptions.ConnectionError:
|
except requests.exceptions.ConnectionError:
|
||||||
_LOGGER.error("No route to resource/endpoint: %s", self._resource)
|
_LOGGER.error("No route to resource/endpoint: %s", self._resource)
|
||||||
self.data['error'] = STATE_UNKNOWN
|
self.data = None
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable=too-few-public-methods
|
# pylint: disable=too-few-public-methods
|
||||||
@ -142,7 +140,7 @@ class RestDataPost(object):
|
|||||||
self._resource = resource
|
self._resource = resource
|
||||||
self._payload = payload
|
self._payload = payload
|
||||||
self._verify_ssl = verify_ssl
|
self._verify_ssl = verify_ssl
|
||||||
self.data = dict()
|
self.data = None
|
||||||
|
|
||||||
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
||||||
def update(self):
|
def update(self):
|
||||||
@ -150,9 +148,7 @@ class RestDataPost(object):
|
|||||||
try:
|
try:
|
||||||
response = requests.post(self._resource, data=self._payload,
|
response = requests.post(self._resource, data=self._payload,
|
||||||
timeout=10, verify=self._verify_ssl)
|
timeout=10, verify=self._verify_ssl)
|
||||||
if isinstance(self.data, dict) and 'error' in self.data:
|
|
||||||
del self.data['error']
|
|
||||||
self.data = response.text
|
self.data = response.text
|
||||||
except requests.exceptions.ConnectionError:
|
except requests.exceptions.ConnectionError:
|
||||||
_LOGGER.error("No route to resource/endpoint: %s", self._resource)
|
_LOGGER.error("No route to resource/endpoint: %s", self._resource)
|
||||||
self.data['error'] = STATE_UNKNOWN
|
self.data = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user