Xiaomi Cloud Vacuum Map Extractor

Hi!
I already install lastest version Map Extractor and i have a problem with my ijai.vacuum.v18.
I am getting this error. Can you tell me how to fix it?

File "/usr/local/lib/python3.13/site-packages/Crypto/Util/Padding.py", line 98, in unpad
    raise ValueError("Padding is incorrect.")

type or paste code here

type or paste code here

Please create an issue in the Map Extractor repo

Hey, so I could re-integrate my vacuum in Home Assistant and am now again facing the calibration issue:

  1. Using the native robock integration
  2. Both of my map entities throw this error
  3. Using this (standard?) config of the card:
type: custom:xiaomi-vacuum-map-card
entity: vacuum.robocop
vacuum_platform: send_command
map_source:
  camera: image.robocop_live_map

Ah, got it:I had to add

calibration_source:
  identity: true

and now the map shows up.

But now, if I hit ā€œcreate room configā€ it throws an error ā€œUpdate of configuration failedā€ā€¦?

install and configure this integration:

then delete the card and add it again with Roborock platform

Just for others. I had the same issue as you logged here @Twig_Bark and as you did, I had to shut down the robot and turn it on again for the map to appear. Maybe something to put in the instructions @3_14 ! Thanks for this great integration!!!

Hola, tengo una xiaomi vacum 5 pro y estoy intentando integrarla en HA. No consigo extraer el mapa con la nueva versión alpha de xiaomi extractor map, aunque puedo registrarme, superar el 2fa, etc… Cuando debo elegir el API map, me aparece no soportado y no funciona. Pueden ayudarme? Gracias de antemano.

@marcos210492-lab please use English here.
Try again with the latest alpha version of Map Extractor

1 Like

Hi Piotr, Thanks a lot for your great job and your personal investment for the community!

I’m currently using version 2.2.5 (last release) and investigating version 3 alpha 21 in a test occurence of HAOS.

I noticed a large difference regarding point coordinates on the map. Of course the 2 instances are connected in real time to the same vacuum Xiaomi S8.

As you can see on the 2 screen captures beside, the returned value are not at all in the same order of magnitude.
Any idea? I missed something?


Can you show configs of both cards?

I made a check of both map configuration (the yaml part) and I discovered at least one difference which has an impact on coordinates, the calibration source!
On the first it was camera: true on the second one it was identity: true

I don’t remember the reason of this change, a reasonning from the thread probably (Xiaomi Cloud Vacuum Map Extractor - #1183 by txomindeep):wink:

Where can I find some more explanation about the behaviour?

Both of them should use camera: true

Thanks! an other question please.
in the map entity state I see all rooms (or segments?) defined inside the map.

access_token: 105...
last_update_timestamp: "2025-12-30T12:34:32.035306"
last_successful_update_timestamp: "2025-12-30T12:34:32.035302"
calibration_points:
  - vacuum:
      x: 25500
      "y": 25500
    map:
      x: 245
      "y": 245
  - vacuum:
      x: 35500
      "y": 25500
    map:
      x: 445
      "y": 245
  - vacuum:
      x: 25500
      "y": 35500
    map:
      x: 245
      "y": 45
rooms:
  "16":
    x0: 22500
    y0: 28550
    x1: 26400
    y1: 35000
    number: 16
  "17":
    x0: 26650
    y0: 24650
    x1: 31550
    y1: 29800
    number: 17
  "18":
    x0: 15450
    y0: 26650
    x1: 20300
    y1: 31000
    number: 18
  "19":
    x0: 18150
    y0: 21000
    x1: 22600
    y1: 26300
    number: 19
  "20":
    x0: 22400
    y0: 22950
    x1: 26600
    y1: 28600
    number: 20
  "21":
    x0: 20350
    y0: 27000
    x1: 22750
    y1: 32000
    number: 21
  "22":
    x0: 19000
    y0: 25550
    x1: 20400
    y1: 26850
    number: 22
  "23":
    x0: 17100
    y0: 24800
    x1: 19200
    y1: 26900
    number: 23
  "24":
    x0: 14750
    y0: 23300
    x1: 17400
    y1: 27300
    number: 24
  "25":
    x0: 17650
    y0: 27850
    x1: 20350
    y1: 31800
    number: 25
entity_picture: >-
  /api/camera_proxy/camera.roborock_s8_live_map?token=105...
friendly_name: Roborock S8 Live map
supported_features: 0

What is the way to make them easily available from the map UI?

You can use ā€œgenerate rooms configā€ in the card editor

Thanks!
I missed this capability because the text doe’nt look clickable. nothing happen when mouse goes over.

Hello,
I’m trying to configure the Xiaomi Cloud Vacuum Map Extractor integration in Home Assistant, but I’m unable to complete the authentication process.

QR code authentication

When using QR-code login:

  1. The QR code is scanned successfully.
  2. Authorization is confirmed on the Xiaomi side.
  3. On the second step of the config flow, the integration fails with an error.

After this failure, any subsequent attempt to start the integration setup immediately results in an error, and the config flow cannot be loaded anymore until Home Assistant is restarted. After restarting HA, the same behavior repeats.

Username / password authentication

When using username and password:

  1. Credentials are accepted.
  2. Captcha is solved successfully.
  3. Xiaomi sends a verification code to my email (2FA).
  4. After entering the email verification code, the setup fails with an error.

If I start the setup again, I am prompted to enter the email verification code again, but submitting it always results in the same error.

Additional notes

  • The account has mandatory email-based 2FA enabled (no option to disable it in Xiaomi account security settings).
  • The error happens consistently and does not depend on the entered verification code.
  • The integration remains in a broken config_flow state after a failed attempt until Home Assistant is restarted.

Is this a known limitation related to Xiaomi’s email-based 2FA, or is there a workaround or fix available?

Is there anything in HA logs?

Here home-assistant_2026-01-06T10-47-35.667Z.log — ЯнГекс Š”иск

I am trying to set up the integration using the two-factor authentication via QR code.
The first step of the authentication completes successfully, then the integration says it is proceeding to the second step, but after that it fails with an error.

I cleared the Home Assistant log beforehand, however after the failed attempt there are no new log entries at all.
Is there any debug mode or additional logging that I should enable in order to capture more detailed information about what is failing?

Environment:
Home Assistant is running inside a virtual machine on Synology NAS (DSM 7.2.2, Virtual Machine Manager).
I suspect this may be related to the environment, but I would like to collect proper debug logs if possible.

There’s nothing specific in these logs :confused: