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.14k stars 121 forks source link

Unable to load map bug #400

Closed qjz601 closed 1 year ago

qjz601 commented 1 year ago

Checklist

The problem

lnvalid calibration, please check your configuration

What version of an integration has described problem?

v2.2.0

What was the last working version of an integration?

No response

What vacuum model do you have problems with?

dreame.vacuum.r2228

What version of Home Assistant do you use?

2023.2.1

What type of installation are you running?

Home Assistant Supervised

Camera's configuration

camera:
  - platform: xiaomi_cloud_map_extractor
    host: 192.168.31.155
    name: dreame_map
    token: XXX
    username: XXX
    password: XXX
    draw: ['all']
    attributes:
      - calibration_points

Errors shown in the HA logs (if applicable)

此错误来自自定义集成。

Logger: homeassistant.helpers.entity
Source: custom_components/xiaomi_cloud_map_extractor/dreame/image_handler.py:81
Integration: xiaomi_cloud_map_extractor (documentation, issues)
First occurred: 14:13:53 (50 occurrences)
Last logged: 14:18:01

Update for camera.dreame_map fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 548, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 746, in async_device_update
    raise exc
  File "/usr/local/lib/python3.10/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 52, in decode_map
    return MapDataParserDreame.parse(unzipped, colors, drawables, texts, sizes, image_config, map_data_type)
  File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/map_data_parser.py", line 80, in parse
    rism_map_data = MapDataParserDreame.decode_map(
  File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/map_data_parser.py", line 52, in decode_map
    return MapDataParserDreame.parse(unzipped, colors, drawables, texts, sizes, image_config, map_data_type)
  File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/map_data_parser.py", line 75, in parse
    map_data.image, map_data.rooms = MapDataParserDreame.parse_image(image_raw, header, colors, image_config,
  File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/map_data_parser.py", line 154, in parse_image
    image, image_rooms = ImageHandlerDreame.parse(image_raw, header, colors, image_config, map_data_type)
  File "/config/custom_components/xiaomi_cloud_map_extractor/dreame/image_handler.py", line 81, in parse
    default = ImageHandler.ROOM_COLORS[segment_id >> 1]
IndexError: list index out of range

Additional information

No response

PiotrMachowski commented 1 year ago

Duplicate of #335