Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seems T50 Pro use zstd instead of 7z as the compression algorithm of map message #595

Open
4 tasks done
mzr1996 opened this issue Nov 14, 2024 · 1 comment
Open
4 tasks done
Labels
bug Something isn't working

Comments

@mzr1996
Copy link

mzr1996 commented Nov 14, 2024

Checks

  • I have searched the existing issues and no issue is describing my issue
  • I have checked the FAQ
  • I have checked the documentation
  • I have installed the latest version

The problem

日志记录器: deebot_client.message
来源: /usr/local/lib/python3.12/site-packages/deebot_client/message.py:196
首次出现: 2024年11月13日 15:28:30 (8 次总计出现)
上次记录: 2024年11月13日 15:28:30

    ...
    Could not parse getMapSubSet: {..., 'compress': 1, 'value': 'KLUv/SB//QEAMgQKDKClbQC+WNsvI/5vYPMSO6jz8h7OwN2BYlTHRR2DYgSeurlRRyp2UAgALXwANbAWWqAuACQBKiDgFiUJ'}

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/deebot_client/message.py", line 190, in __handle_body_data
    response = cls._handle_body_data(event_bus, data)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/deebot_client/message.py", line 233, in _handle_body_data
    return cls._handle_body_data_dict(event_bus, data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/deebot_client/commands/json/map.py", line 278, in _handle_body_data_dict
    coordinates = decompress_7z_base64_data(data["value"]).decode()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/deebot_client/util/__init__.py", line 41, in decompress_7z_base64_data
    return dec.decompress(final_array)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
_lzma.LZMAError: Input format not supported by decoder

I checked the data['value'] and find it should be zstd format instead of 7z format, which means we need to use zstd instead of lzma package to decompress it.

On which deebot device (vacuum) you have the issue?

Deebot T50 Pro

Which version of the deebot-client are you using?

8.4.0

Country

china

Continent

unkown

Anything in the logs that might be useful for us?

No response

Additional information

No response

@mzr1996 mzr1996 added the bug Something isn't working label Nov 14, 2024
@edenhaus
Copy link
Contributor

edenhaus commented Nov 25, 2024

Can you open a PR to add a option for it? Can we detect automatically which algorithm is used?
If not please also extend the capabilities for it, so we can set zstd for the T50

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants