catch messages without td in event

This commit is contained in:
bittles
2022-12-25 19:18:46 -05:00
parent 7ce31c4b2c
commit e4273d7ea4
+23 -11
View File
@@ -940,20 +940,32 @@ class EcoVacsXMPP(ClientXMPP):
_LOGGER.debug("result from xml is :")
_LOGGER.debug(result)
_LOGGER.debug("end of result")
if 'td' not in result:
if 'td' in result:
result['event'] = result.pop('td')
if xml:
result.update(xml[0].attrib)
for key in result:
if not RepresentsInt(result[key]): #Fix to handle negative int values
result[key] = stringcase.snakecase(result[key])
return result
elif 'type' in result:
result['event'] = result.pop('type')
if xml:
result.update(xml[0].attrib)
for key in result:
if not RepresentsInt(result[key]): #Fix to handle negative int values
result[key] = stringcase.snakecase(result[key])
return result
else
# This happens for commands with no response data, such as PlaySound
return
result['event'] = result.pop('td')
if xml:
result.update(xml[0].attrib)
for key in result:
if not RepresentsInt(result[key]): #Fix to handle negative int values
result[key] = stringcase.snakecase(result[key])
return result
def register_callback(self, userdata, message):
self.register_handler(Callback(kind,