Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor
Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor copied to clipboard
S8 Pro Ultra worked once, but no more
Checklist
- [X] I have updated the integration to the latest version available
- [X] I have checked if the problem is already reported
The problem
My S8 Pro Ultra (roborock.vacuum.a70) worked to the extent that I was able to copy a service call to get coordinates for my kitchen table, but now it refuses to work, the card saying "Invalid calibration, please check your configuration." and the camera failing to fetch the map.
What version of an integration has described problem?
v2.2.1
What was the last working version of an integration?
2023.12.3
What vacuum model do you have problems with?
roborock.vacuum.a70
What version of Home Assistant do you use?
core-2023.12.3
What type of installation are you running?
Home Assistant OS
Camera's configuration
camera:
- platform: xiaomi_cloud_map_extractor
host: !secret xiaomi_host
token: !secret xiaomi_token
username: !secret xiaomi_username
password: !secret xiaomi_password
draw: ["all"]
attributes:
- calibration_points
Errors shown in the HA logs (if applicable)
2023-12-23 12:48:03.629 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration xiaomi_cloud_map_extractor which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-12-23 13:16:04.090 ERROR (MainThread) [homeassistant.components.xiaomi_miio] Unexpected error fetching Dobby data: cannot access local variable 'decoded' where it is not associated with a value
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/miio/protocol.py", line 198, in _decode
decoded = quirk(decrypted).decode("utf-8")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8c in position 149: invalid start byte
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 256, in _async_update_data
return await self.update_method()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 274, in update_async
return await execute_update()
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 269, in execute_update
state = await hass.async_add_executor_job(update)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 254, in update
device.last_clean_details(),
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/click_common.py", line 184, in _wrap
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/integrations/vacuum/roborock/vacuum.py", line 524, in last_clean_details
history = self.clean_history()
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/click_common.py", line 184, in _wrap
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/integrations/vacuum/roborock/vacuum.py", line 516, in clean_history
return CleaningSummary(self.send("get_clean_summary"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/device.py", line 107, in send
return self._protocol.send(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 194, in send
m = Message.parse(data, token=self.token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 288, in parse
return self.parse_stream(io.BytesIO(data), **contextkw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 300, in parse_stream
return self._parsereport(stream, context, "(parsing)")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 2120, in _parse
subobj = sc._parsereport(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 2653, in _parse
return self.subcon._parsereport(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 4295, in _parse
obj = self.subcon._parsereport(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 4598, in _parse
obj = self.subcon._parsereport(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/construct/core.py", line 704, in _parse
return self._decode(obj, context, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/protocol.py", line 204, in _decode
_LOGGER.debug("Unable to parse json '%s': %s", decoded, ex)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnboundLocalError: cannot access local variable 'decoded' where it is not associated with a value
2023-12-23 13:16:07.856 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
2023-12-23 13:45:50.136 ERROR (MainThread) [homeassistant.components.xiaomi_miio] Unexpected error fetching Dobby data: byte indices must be integers or slices, not str
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 256, in _async_update_data
return await self.update_method()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 274, in update_async
return await execute_update()
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 269, in execute_update
state = await hass.async_add_executor_job(update)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/xiaomi_miio/__init__.py", line 256, in update
device.clean_history(),
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/click_common.py", line 184, in _wrap
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/integrations/vacuum/roborock/vacuum.py", line 516, in clean_history
return CleaningSummary(self.send("get_clean_summary"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/device.py", line 107, in send
return self._protocol.send(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 202, in send
self.__id = payload["id"]
~~~~~~~^^^^^^
TypeError: byte indices must be integers or slices, not str
2023-12-23 13:45:54.263 WARNING (MainThread) [homeassistant.components.camera] Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05
Additional information
No response
Hold up, this might be a Xiaomi issue
I'll try to dig deeper
Check out this issue: https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor/issues/422