Vacuum Interactive Map Card

In FloleVac you can check currently selected zone for zoned cleanup.
Could you check if “goto” and “freehand drawn zones” work on your case?
Do you use mqqt to communicate with vacuum?

i just tried to get flolevac to connect to the valetudo setup diretly but it just stuck trying to load the map

goto works
zone cleaning works

i have both the xiaomi_miio component and the mqtt auto discovered, the card is pointing the to xiaomi_miio version

If goto and zones work correctly then I would suggest to define zones using coordinates from debug mode in card.

If above doesn’t work you can try to use mqtt instead of miio.

mqtt gets this error when using zones

Failed to call service vacuum/send_command. dictionary update sequence element #0 has length 5; 2 is required

Have you tried creating zones using debug?

I’ve been running this card for a while and looking to refine my automations now (I would usually just run a standard whole house cleanup) and looking to sort out my zones.

I’m hitting this issue though when creating zones; Firstly, I have the calibration points set for my image. I’ll then have Zone Cleanup selected in the card and select a couple of zones:

With debug enabled, I get the coordinates returned and I’ll feed them into the card config for a zone:

default_mode: predefined_zones
zones:
  - [[23407,22442,28293,30658],[29006,28463,31625,29687]]

Next, I select Zones mode in the card and I get this:

Any suggestions on how I can sort this? It seems to either be out or I’m doing something wrong…

Thanks in advance.

Edit: I’ve just attempted the whole calibration again from scratch and same issue.

Also, to show my calibration method against my map image:

Hi, I suggest to calibrate card using method from this post:

Using points that are close to each other can cause problems related to error cumulation on bigger distances.

Is there a way to do this without Flolevac?

FloleVac is the easiest way, but you can do it by calling service vacuum.xiaomi_clean_zone in HA and trying different coordinates.
Data:

{
  "entity_id": "vacuum.xiaomi_vacuum",
  "zone": [[25500, 25500, 26500, 26500]],
  "repeats": 1
}

Just wondering if this add the zone feature to the original xiaomi gen1?

Yes, you can use this card to save zones, but you have to be aware of map rotation issue:

This looks like a great addition to Home Assistant, however I have small understanding issue :smile:

I used community store and installed the plugin, then I have opened raw lovelace editor and added reference under resources

  - type: module
    url: /community_plugin/lovelace-xiaomi-vacuum-map-card/xiaomi-vacuum-map-card.js

After that I’m a bit lost as when I try adding new element in lovelace, I select “+” -> Manual Card -> then I paste following:

views:
- name: Example
  cards:
    - type: custom:xiaomi-vacuum-map-card
      entity: vacuum.xiaomi_vacuum
      map_image: '/local/custom_lovelace/xiaomi_vacuum_map_card/map.png'
      calibration_points:
        - vacuum:
            x: 25500
            y: 25500
          map:
            x: 466
            y: 1889
        - vacuum:
            x: 26500
            y: 26500
          map:
            x: 730
            y: 1625
        - vacuum:
            x: 25500
            y: 26500
          map:
            x: 466
            y: 1625
      zones:
        - [[25500, 25500, 26500, 26500]]
        - [[24215, 28125, 29465, 32175]]
        - [[24245, 25190, 27495, 27940], [27492, 26789, 28942, 27889]]
        - [[28972, 26715, 31072, 27915], [29457, 27903, 31107, 29203], [30198, 29215, 31498, 31215], [29461, 31228, 31511, 32478]]

Then I see this code in red :frowning:

I understand that I’m somewhere totally wrong, but not sure where and not sure how I could do it.
Please help…

This is aconfiguration of a whole view, you have to remove everything above - type: 'custom:...'

Thanks, I managed to get a more accurate calibration now.

I’ve hit another issue though; I’ve setup automations to clean multiple zones per run and one of my zones contains four areas, highlighted:

When this zone is called, it will clean the corridor and side two rooms but the master bedroom seems to be ignored and the roborock goes straight back to the dock.

Any idea how I would troubleshoot this?

What automations do you mean? Does it work if you draw a single zone inside of the master bedroom?

Yes, a single zone call works fine. It’s only when I call the following script (sorry not automation, but will be eventually once I refine it):

 vacuum_zone_three:
      alias: "Vacuum Zone Three"
      sequence:
        - service: vacuum.send_command
          data:
            entity_id: vacuum.roborock
            command: app_zoned_clean
            params: [[27510,36703,28444,46751,1],[28520,36721,31206,40950,1],[28520,42865,31206,46676,1],[27510,46770,31682,50942,1]]

The last zone defined in params is the master bedroom, which doesn’t complete. The roborock completes the third zone and returns back to base saying zone completed. It basically goes back right after completing the following order; corridor, denzel room then safura room. So it doesn’t approach the master at all.

It’s hard to say why it doesn’t work, maybe there is something in logs? You can try to ask this question in other threads, as this issue is not related to card itself.

I’ve just tested another clean of that same few zones as mentioned above (I flipped the order of the rooms to see if it would make a difference) but I get the same issue both calling the script and calling the card.

Seems there must be some hard limit somewhere…

What is happening after flipping the order? Does the vacuum skip last zone or master bedroom?

It skips the last zone, which was the Corridor area.