Xiaomi Cloud Vacuum Map Extractor

Either of them should work. If you have any of them in password then you should use the other one.

I’ve tried many combinations with/without ’ ’ or " ", but it doesn’t work in any way. I do have symbols on my password, maybe it is glitching something somehow?

You can try to get the same value by e.g. yaml GUI editor or calling a persistent_notification.create service. If you will get a correct value then it should work in camera’s config.

Hi,
can you maybe post the color configuration for these 2 maps?
Thank you.


Could you please elaborate on this subject? I didn’t quite understand what you meant by “calling a persistent_notification.create service”. Thanks again :slight_smile:

@Kabala
black one:

  colors:
    color_map_inside: [50, 50, 50]
    color_map_outside: [0, 0, 0, 128]
    color_map_wall: [255,255,255]

blue one uses a default config.

@Bhgp-git
Using dev tools (developer-tools/service) you can try calling persistent_notification.create service with data:

title: "Test"
message: "ThisIsMy'Password\"12$3!!!"
1 Like

Which attribute should I call?

My idea is to send a notification that will contain a password to check if it is provided correctly

The notification as you posted displays correctly without the " ".

What about one with your instead of my fake one?

Also correctly displayed

this is the log:

Logger: homeassistant.helpers.entity
Source: custom_components/xiaomi_cloud_map_extractor/xiaomi_cloud_connector.py:65
First occurred: 11:19:56 AM (10 occurrences)
Last logged: 11:20:39 AM

Update for camera.bob_map fails
Traceback (most recent call last):
  File "/home/pi/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 278, in async_update_ha_state
    await self.async_device_update()
  File "/home/pi/homeassistant/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 471, in async_device_update
    await self.hass.async_add_executor_job(self.update)  # type: ignore
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/pi/.homeassistant/custom_components/xiaomi_cloud_map_extractor/camera.py", line 175, in update
    self._logged = self._connector.login()
  File "/home/pi/.homeassistant/custom_components/xiaomi_cloud_map_extractor/xiaomi_cloud_connector.py", line 88, in login
    return self.login_step_1() and self.login_step_2() and self.login_step_3()
  File "/home/pi/.homeassistant/custom_components/xiaomi_cloud_map_extractor/xiaomi_cloud_connector.py", line 65, in login_step_2
    self._ssecurity = json_resp["ssecurity"]
KeyError: 'ssecurity'

And it still doesn’t work in camera’s configuration?

Unfortunately no. I am still getting the same error as above.

That is weird. There must me some issue in your yaml, because the tool I have linked above uses the same code to log in…

I will try to isolate somethings on my yaml and see if there is any conflict. :+1:

I plan to implement config flow, it should prevent such problems, buuuuut it will take some time and probably configurability in UI will not support every feature of yaml config.

I tried isolating many things, but nothing seems to work. The strangest part is that the token tool you provided worked perfectly.

I will try again in a near future. Thanks anyway! It does look like a great component :slight_smile:

1 Like

Hi, would you mind telling me how exactly you defined your username and password? Between ’ ', " ", without anything. I am getting the same error, but I can’t define exactly what I am doing wrongly. Thanks!

Is there an easy way to extract zone coordinates? I used flovevac before but for some reasons it doesn’t load the map anymore…

Or is maybe because of this camera? That roborock doesn’t allow multiple sessions to get the map?

edit: ok, i created rooms, and in the dev states i was able to extract the coordinates x/y from that room
perfect!

i still prefer to work with coordinates, they are sticky, while room numbers are not if you change something :slight_smile:

You can do it in lovelace map card by adding debug: true. Coordinates will be presented in a popup instead of being sent to the vacuum

1 Like