PiotrMachowski / Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor

This custom integration provides a way to present a live view of a map for Xiaomi (Roborock/Viomi/Roidmi/Dreame) vacuums without a need for rooting.
MIT License
1.15k stars 122 forks source link

404 image #532

Closed ostyuchenko closed 3 months ago

ostyuchenko commented 4 months ago

Checklist

The problem

Регистратор: homeassistant.helpers.entity Источник: helpers/entity.py:950 Первое сообщение: 18:22:02 (78 сообщений) Последнее сообщение: 18:28:22

Update for camera.xiaomi_cloud_map_extractor fails Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 950, in async_update_ha_state await self.async_device_update() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1295, in async_device_update await hass.async_add_executor_job(self.update) File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 278, in update self._handle_map_data(map_name) File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 335, in _handle_map_data map_data, map_stored = self._device.get_map(map_name, self._colors, self._drawables, self._texts, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/xiaomi_cloud_map_extractor/common/vacuum.py", line 36, in get_map map_data = self.decode_map(response, colors, drawables, texts, sizes, image_config) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/vacuum.py", line 24, in decode_map return MapDataParserDreame.decode_map(raw_map_string, colors, drawables, texts, sizes, image_config) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/map_data_parser.py", line 51, in decode_map unzipped = zlib.decompress(base64.decodebytes(raw_map_string.encode("utf8"))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ zlib.error: Error -3 while decompressing data: incorrect header check

What version of an integration has described problem?

v2.2.1

What was the last working version of an integration?

No response

What vacuum model do you have problems with?

dreame.vacuum.p2140p dreame

What version of Home Assistant do you use?

2024.5.5

What type of installation are you running?

Home Assistant OS

Camera's configuration

camera:
  - platform: xiaomi_cloud_map_extractor
    host: !secret xiaomi_vacuum_host
    token: !secret xiaomi_vacuum_token
    username: !secret xiaomi_cloud_username
    password: !secret xiaomi_cloud_password
    draw: ['all']
    attributes:
      - calibration_points

Errors shown in the HA logs (if applicable)

Регистратор: homeassistant.helpers.entity
Источник: helpers/entity.py:950
Первое сообщение: 18:22:02 (78 сообщений)
Последнее сообщение: 18:28:22

Update for camera.xiaomi_cloud_map_extractor fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 950, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1295, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 278, in update
    self._handle_map_data(map_name)
  File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 335, in _handle_map_data
    map_data, map_stored = self._device.get_map(map_name, self._colors, self._drawables, self._texts,
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/xiaomi_cloud_map_extractor/common/vacuum.py", line 36, in get_map
    map_data = self.decode_map(response, colors, drawables, texts, sizes, image_config)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/vacuum.py", line 24, in decode_map
    return MapDataParserDreame.decode_map(raw_map_string, colors, drawables, texts, sizes, image_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/map_data_parser.py", line 51, in decode_map
    unzipped = zlib.decompress(base64.decodebytes(raw_map_string.encode("utf8")))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
zlib.error: Error -3 while decompressing data: incorrect header check

Additional information

No response

ostyuchenko commented 3 months ago

https://github.com/ostyuchenko/dreame-vacuum Complete app replacement with Home Assistant for Dreame robot vacuums.

Supported Devices Dreame dreame.vacuum.p2008 (F9) dreame.vacuum.p2009 (D9) dreame.vacuum.p2259 (D9 Max) dreame.vacuum.p2187 (D9 Pro) dreame.vacuum.r2205 (D10 Plus) dreame.vacuum.p2029 (L10 Pro) dreame.vacuum.p2028a (L10 Plus) dreame.vacuum.r2228o (L10s Ultra) dreame.vacuum.r2215o (L10s Pro) dreame.vacuum.r2216o (L10s Pro) dreame.vacuum.p2028 (Z10 Pro) dreame.vacuum.p2027 (W10) dreame.vacuum.r2104 (W10 Pro) dreame.vacuum.r2251o (W10s) dreame.vacuum.r2232a (W10s Pro) dreame.vacuum.r2228 (S10) dreame.vacuum.r2211o (S10+) dreame.vacuum.r2233 (S10 Pro) dreame.vacuum.r2247 (S10 Pro Plus) dreame.vacuum.r2246 (S10 Plus) dreame.vacuum.r2215 (X10) dreame.vacuum.r2235 (X10 Ultra) Mijia dreame.vacuum.p2036 (Trouver LDS Finder) dreame.vacuum.p2150o (Vacuum-Mop) dreame.vacuum.p2150a (Vacuum-Mop 2 Ultra) dreame.vacuum.p2150b (Vacuum-Mop 2 Ultra Set) dreame.vacuum.p2114o (Self-Cleaning Robot Vacuum-Mop) dreame.vacuum.p2149o (Self-Cleaning Robot Vacuum-Mop Pro) dreame.vacuum.r2254 (1S) dreame.vacuum.r2209 (X10) dreame.vacuum.p2114a (X10+) dreame.vacuum.p2041 (1T) dreame.vacuum.p2140a (2C) dreame.vacuum.p2140 (2C) dreame.vacuum.p2140q (Mi Robot Vacuum-Mop 2) dreame.vacuum.p2140p (Mi Robot Vacuum-Mop 2) dreame.vacuum.p2140o (Mi Robot Vacuum-Mop 2) dreame.vacuum.p2148o (Mi Robot Vacuum Mop Ultra Slim) dreame.vacuum.p2041o (Mi Robot Vacuum-Mop 2 Pro+) MOVA dreame.vacuum.p2157 (L600) dreame.vacuum.p2156o (MOVA Z500)