Ensure rest sensors are marked unavailable when http requests… (#32309)
This commit is contained in:
parent
601f2c693d
commit
c7f128f286
2 changed files with 41 additions and 10 deletions
|
@ -202,17 +202,19 @@ class RestSensor(Entity):
|
|||
self.rest.update()
|
||||
value = self.rest.data
|
||||
_LOGGER.debug("Data fetched from resource: %s", value)
|
||||
content_type = self.rest.headers.get("content-type")
|
||||
if self.rest.headers is not None:
|
||||
# If the http request failed, headers will be None
|
||||
content_type = self.rest.headers.get("content-type")
|
||||
|
||||
if content_type and content_type.startswith("text/xml"):
|
||||
try:
|
||||
value = json.dumps(xmltodict.parse(value))
|
||||
_LOGGER.debug("JSON converted from XML: %s", value)
|
||||
except ExpatError:
|
||||
_LOGGER.warning(
|
||||
"REST xml result could not be parsed and converted to JSON."
|
||||
)
|
||||
_LOGGER.debug("Erroneous XML: %s", value)
|
||||
if content_type and content_type.startswith("text/xml"):
|
||||
try:
|
||||
value = json.dumps(xmltodict.parse(value))
|
||||
_LOGGER.debug("JSON converted from XML: %s", value)
|
||||
except ExpatError:
|
||||
_LOGGER.warning(
|
||||
"REST xml result could not be parsed and converted to JSON."
|
||||
)
|
||||
_LOGGER.debug("Erroneous XML: %s", value)
|
||||
|
||||
if self._json_attrs:
|
||||
self._attributes = {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue