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

Viomi spam logs after update #153

Open Drafteed opened 3 years ago

Drafteed commented 3 years ago

Hello!

After update to latest map extractor and to latest styj02ym integration logs fill up with errors:

If I start cleaning the error disappears, but if I forcefully return the robot to the dock, it starts again.

If the robot finishes cleaning and returns to the home on its own, everything is also ok.

Model: Xiaomi Mi Robot Vacuum Mop P STY02YM (CN)

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 401, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 609, in async_device_update
    raise exc
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 257, in update
    self._handle_map_data(map_name)
  File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 314, 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 28, in get_map
    map_data = self.decode_map(response, colors, drawables, texts, sizes, image_config)
  File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/vacuum.py", line 15, in decode_map
    return MapDataParserViomi.parse(unzipped, colors, drawables, texts, sizes, image_config)
  File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/map_data_parser.py", line 157, in parse
    MapDataParserViomi.parse_section(buf, 'unknown2', map_id)
  File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/map_data_parser.py", line 313, in parse_section
    raise ValueError(
ValueError: error parsing section unknown2 at offset 0x9c596: magic check failed 0x1002275b
PiotrMachowski commented 3 years ago

Can you send me a raw map file at piotr.machowski.dev [at] gmail [com]?

Retrieving map

Drafteed commented 3 years ago

Done!

Drafteed commented 3 years ago

@PiotrMachowski any progress of issue? Do I need to provide anything else?

Didel commented 3 years ago

As mentioned in https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor/issues/95#issuecomment-890587318 , it looks like I am having the same problem as described above (while everything was working just fine up until an hour ago). If there is anything I can do to help, let me know!

multiholle commented 2 years ago

Any updates on this? I'm facing the same problem with my STY02YM and the latest version of this integration.

multiholle commented 2 years ago

I'm attaching some debug logs. Maybe this helps.

2021-12-08 19:27:44 WARNING (SyncWorker_1) [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
2021-12-08 19:27:54 INFO (MainThread) [homeassistant.components.camera] Setting up camera.xiaomi_cloud_map_extractor
2021-12-08 19:27:54 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.camera] Logging in...
2021-12-08 19:27:55 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.camera] Logged in
2021-12-08 19:27:55 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieving device info, country: None
2021-12-08 19:27:56 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieved device model: viomi.vacuum.v7
2021-12-08 19:27:56 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.camera] Created device, used api: viomi
2021-12-08 19:27:56 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieving map from Xiaomi cloud
2021-12-08 19:27:57 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] feature_flags: 0x78ff, map_id: 0
2021-12-08 19:27:57 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION robot_status: offset 0x4
2021-12-08 19:27:57 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION image: offset 0x30
2021-12-08 19:27:57 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] width: 800, height: 800
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] img: number of rooms: 0, numbers: dict_keys([])
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION history: offset 0x9c458
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION charge_station: offset 0x9c584
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] pos: None, foo: 0.000000
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION restricted_areas: offset 0x9c594
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION cleaning_areas: offset 0x9c5a0
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION navigate: offset 0x9c5ac
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] pos: None, foo: 0.000000
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION realtime: offset 0x9c5c0
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] pos: (0.008842336013913155, 0.11976765096187592), foo: -2.510178
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION unknown1: offset 0x9c5d5
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION rooms: offset 0x9c607
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] map#0:
2021-12-08 19:28:00 DEBUG (SyncWorker_2) [custom_components.xiaomi_cloud_map_extractor.viomi.map_data_parser] SECTION unknown2: offset 0x9c61a
2021-12-08 19:29:46 ERROR (MainThread) [homeassistant.helpers.entity] Update for camera.xiaomi_cloud_map_extractor fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 468, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 658, in async_device_update
raise exc
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 257, in update
self._handle_map_data(map_name)
File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 314, 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 28, in get_map
map_data = self.decode_map(response, colors, drawables, texts, sizes, image_config)
File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/vacuum.py", line 15, in decode_map
return MapDataParserViomi.parse(unzipped, colors, drawables, texts, sizes, image_config)
File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/map_data_parser.py", line 157, in parse
MapDataParserViomi.parse_section(buf, 'unknown2', map_id)
File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/map_data_parser.py", line 313, in parse_section
raise ValueError(
ValueError: error parsing section unknown2 at offset 0x9c61a: magic check failed 0x58010c64
PiotrMachowski commented 2 years ago

@multiholle For last few months I have been busy with implementation of my Map Card, I plan to take a look at issues in Map Extractor soon.

adriangarbacea commented 2 years ago

same issue for my STYJ01YM (miio2) after updating HA to latest beta. I tried reinstalling custom integrations, but not success.

This error originated from a custom integration.

Logger: homeassistant.helpers.entity
Source: custom_components/xiaomi_cloud_map_extractor/viomi/map_data_parser.py:313
Integration: xiaomi_cloud_map_extractor (documentation, issues)
First occurred: 10:20:14 AM (612 occurrences)
Last logged: 3:25:41 PM

Update for camera.xiaomi_cloud_map_extractor fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 521, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 726, in async_device_update
    raise exc
  File "/usr/local/lib/python3.9/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 261, in update
    self._handle_map_data(map_name)
  File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 318, 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 28, in get_map
    map_data = self.decode_map(response, colors, drawables, texts, sizes, image_config)
  File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/vacuum.py", line 15, in decode_map
    return MapDataParserViomi.parse(unzipped, colors, drawables, texts, sizes, image_config)
  File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/map_data_parser.py", line 157, in parse
    MapDataParserViomi.parse_section(buf, 'unknown2', map_id)
  File "/config/custom_components/xiaomi_cloud_map_extractor/viomi/map_data_parser.py", line 313, in parse_section
    raise ValueError(
ValueError: error parsing section unknown2 at offset 0xab359: magic check failed. Magic: 0xd0000000, Map ID: 0x0