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

Ecovacs Deebot X1 Omni error on showing map #110170

Closed
SaintTDI opened this issue Feb 10, 2024 · 3 comments · Fixed by #110683
Closed

Ecovacs Deebot X1 Omni error on showing map #110170

SaintTDI opened this issue Feb 10, 2024 · 3 comments · Fixed by #110683
Assignees

Comments

@SaintTDI
Copy link

SaintTDI commented Feb 10, 2024

The problem

Hi,
I've installed the Ecovacs integration for my Deebot X1 Omni, but when I try to see the map, the image is broken:

image

What version of Home Assistant Core has the issue?

core-2024.2.1

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Ecovacs

Link to integration documentation on our website

https://www.home-assistant.io/integrations/ecovacs/

Diagnostics information

home-assistant_ecovacs_2024-02-10T09-13-15.051Z_cleaned.log

Example YAML snippet

No response

Anything in the logs that might be useful for us?

2024-02-10 10:05:32.270 DEBUG (MainThread) [deebot_client.mqtt_client.client] Sending PINGREQ
2024-02-10 10:05:32.296 DEBUG (MainThread) [deebot_client.mqtt_client.client] Received PINGRESP
2024-02-10 10:05:32.714 DEBUG (MainThread) [deebot_client.authentication] Calling api(1/3): url=https://portal-eu.ecouser.net/api/iot/devmanager.do, params={'mid': '1vxt52', 'did': '433ef9ee-ff5d-4b4a-8e11-4e4eba6f2c35', 'td': 'q', 'u': 'hbkpjxk51d4912e0', 'cv': '1.67.3', 't': 'a', 'av': '1.3.1'}, json={'cmdName': 'getBattery', 'payload': {'header': {'pri': '1', 'ts': 1707555932.714563, 'tzm': 480, 'ver': '0.0.50'}}, 'payloadType': 'j', 'td': 'q', 'toId': '433ef9ee-ff5d-4b4a-8e11-4e4eba6f2c35', 'toRes': 'jtZ0', 'toType': '1vxt52'}
2024-02-10 10:05:32.893 DEBUG (MainThread) [deebot_client.authentication] Success calling api url=https://portal-eu.ecouser.net/api/iot/devmanager.do, params={'mid': '1vxt52', 'did': '433ef9ee-ff5d-4b4a-8e11-4e4eba6f2c35', 'td': 'q', 'u': 'hbkpjxk51d4912e0', 'cv': '1.67.3', 't': 'a', 'av': '1.3.1'}, json={'cmdName': 'getBattery', 'payload': {'header': {'pri': '1', 'ts': 1707555932.714563, 'tzm': 480, 'ver': '0.0.50'}}, 'payloadType': 'j', 'td': 'q', 'toId': '433ef9ee-ff5d-4b4a-8e11-4e4eba6f2c35', 'toRes': 'jtZ0', 'toType': '1vxt52'}, response={'ret': 'ok', 'resp': {'header': {'pri': 1, 'tzm': 60, 'ts': '1707555932264', 'ver': '0.0.1', 'fwVer': '2.3.9', 'hwVer': '0.1.1', 'wkVer': '0.1.54'}, 'body': {'code': 0, 'msg': 'ok', 'data': {'value': 100, 'isLow': 0}}}, 'id': 'RitQ', 'payloadType': 'j'}
2024-02-10 10:05:32.893 DEBUG (MainThread) [deebot_client.event_bus] Event is the same! Skipping (BatteryEvent(value=100))
2024-02-10 10:05:32.897 DEBUG (MainThread) [deebot_client.event_bus] Event is the same! Skipping (AvailabilityEvent(available=True))
2024-02-10 10:05:32.899 DEBUG (MainThread) [deebot_client.event_bus] Event is the same! Skipping (AvailabilityEvent(available=True))
2024-02-10 10:05:36.092 DEBUG (SyncWorker_44) [deebot_client.map] [get_svg_map] Begin
2024-02-10 10:05:36.115 DEBUG (SyncWorker_44) [deebot_client.map] [_draw_map_pieces] Draw
2024-02-10 10:05:36.169 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
    resp = await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 91, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 235, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 31, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 149, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/image/__init__.py", line 286, in get
    return await self.handle(request, image_entity)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/image/__init__.py", line 293, in handle
    image = await _async_get_image(image_entity, IMAGE_TIMEOUT)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/image/__init__.py", line 80, in _async_get_image
    if image_bytes := await image_entity.async_image():
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/image/__init__.py", line 235, in async_image
    return await self.hass.async_add_executor_job(self.image)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/ecovacs/image.py", line 59, in image
    if svg := self._device.map.get_svg_map():
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/deebot_client/map.py", line 619, in get_svg_map
    _get_svg_subset(subset, manipulation)
  File "/usr/local/lib/python3.12/site-packages/deebot_client/map.py", line 332, in _get_svg_subset
    subset_coordinates: list[int] = ast.literal_eval(subset.coordinates)
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/ast.py", line 66, in literal_eval
    node_or_string = parse(node_or_string.lstrip(" \t"), mode='eval')
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/ast.py", line 52, in parse
    return compile(source, filename, mode, flags,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<unknown>", line 1
    XQAABACtAQAAABoMwo3ty2kHH36M756Ox7njWmdUE3igNmTbl2PsOCwqyFNvdqHn6fBE6ozNvi0I1BAz0JZMavjR+Xrz/LwYlsU/MZdpvdyAQkT+WlJTpdJErtinIT51BWaJCuZvIvrhsJ5xLaeHByW0iIc2rRXRRWHoqg59owryMeD7lOh8y4zZBHIBc6PUFg==
SyntaxError: invalid syntax

Additional information

No response

@home-assistant
Copy link

Hey there @OverloadUT, @mib1185, @edenhaus, mind taking a look at this issue as it has been labeled with an integration (ecovacs) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of ecovacs can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign ecovacs Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


ecovacs documentation
ecovacs source
(message by IssueLinks)

@edenhaus
Copy link
Contributor

The map for newer bots is currently not supported. There is an open PR to add parts for it. More information can be found in DeebotUniverse/client.py#372

@SaintTDI
Copy link
Author

Hi! after installing HA update 2024.2.2 I still have this issue. But I see that the logs are different. Should I open a new issue= Thanks!

@github-actions github-actions bot locked and limited conversation to collaborators Mar 20, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants