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

Support for Xiaomi Vacuum X20 Pro #579

Open
2 of 7 tasks
Koceto opened this issue Jan 3, 2025 · 6 comments
Open
2 of 7 tasks

Support for Xiaomi Vacuum X20 Pro #579

Koceto opened this issue Jan 3, 2025 · 6 comments
Assignees
Labels
enhancement New feature or request new platform

Comments

@Koceto
Copy link

Koceto commented Jan 3, 2025

Checklist

  • I have updated the integration to the latest version available
  • I have checked if the vacuum/platform is already requested
  • I have sent raw map file to piotr.machowski.dev [at] gmail.com (Retrieving map; please provide your GitHub username in the email)

What vacuum model do you want to be supported?

xiaomi.vacuum.d102gl

What is its name?

Xiaomi Vacuum X20 Pro

Available APIs

  • xiaomi
  • viomi
  • roidmi
  • dreame

Errors shown in the HA logs (if applicable)

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 960, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1320, in async_device_update
await hass.async_add_executor_job(self.update)
File "/usr/local/lib/python3.13/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 279, in update
self._handle_device()
~~~~~~~~~~~~~~~~~~~^^
File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 315, in _handle_device
country, user_id, device_id, model = self._connector.get_device_details(self._vacuum.token, self._country)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/xiaomi_cloud_map_extractor/common/xiaomi_cloud_connector.py", line 217, in get_device_details
if match := next(matching_token, None):
~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/xiaomi_cloud_map_extractor/common/xiaomi_cloud_connector.py", line 208, in get_devices_iter
for home in homes:
^^^^^
File "/config/custom_components/xiaomi_cloud_map_extractor/common/xiaomi_cloud_connector.py", line 169, in get_homes_iter
if homelist := response["result"]["share_home_list"]:
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'share_home_list'

Other info

No response

@PiotrMachowski
Copy link
Owner

Duplicate of #580

@PiotrMachowski PiotrMachowski marked this as a duplicate of #580 Jan 3, 2025
@PiotrMachowski PiotrMachowski closed this as not planned Won't fix, can't repro, duplicate, stale Jan 3, 2025
@Koceto
Copy link
Author

Koceto commented Jan 3, 2025

@PiotrMachowski, I believe it's not a duplicate, as with the latest version 2.2.3, the map is not showing.
I found the following message:
Found an unsupported model 'xiaomi.vacuum.d102gl' for class 'RoborockVacuum'.

@PiotrMachowski
Copy link
Owner

The error you have attached was a duplicate of linked issue. Was it working before?

@Koceto
Copy link
Author

Koceto commented Jan 3, 2025

No, it hasn't worked at any point.
I'm sorry for misleading you with the error.

@PiotrMachowski
Copy link
Owner

PiotrMachowski commented Jan 3, 2025

Can you try checking if any option for force_api works?

@Koceto
Copy link
Author

Koceto commented Jan 3, 2025

I did test that. And re-tested again, just now, with the latest version. With a restart in between.

Not sure if it's related, but I do see an error in the logs.

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 960, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1320, in async_device_update
    await hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.13/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 291, in update
    self._handle_map_data(self._map_name)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/config/custom_components/xiaomi_cloud_map_extractor/camera.py", line 362, in _handle_map_data
    map_data, map_stored = self._device.get_map(map_name, self._colors, self._drawables, self._texts,
                           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                self._sizes, self._image_config, store_map_path)
                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/xiaomi_cloud_map_extractor/common/vacuum.py", line 27, in get_map
    response = self.get_raw_map_data(map_name)
  File "/config/custom_components/xiaomi_cloud_map_extractor/common/vacuum.py", line 45, in get_raw_map_data
    map_url = self.get_map_url(map_name)
  File "/config/custom_components/xiaomi_cloud_map_extractor/common/vacuum_v2.py", line 18, in get_map_url
    if api_response is None or "result" not in api_response or "url" not in api_response["result"]:
                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable

@PiotrMachowski PiotrMachowski reopened this Jan 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request new platform
Projects
None yet
Development

No branches or pull requests

2 participants