Vacuum Interactive Map Card

As far as I remember it was a second vacuum by Xiaomi, first one with Roborock brand

I think it is mentioned before but I do need to read 822 messages to find.
How can i find coordinates for zone cleaning?

You have to add debug: true in card’s config, draw zone on the card and click start. Zone parameters will be presented in a pop-up (instead of starting a vacuum)

Hi, I have a first generation Xiaomi Vaccum.

I just configured all the Map with the map cloud extractor.

On the configuration.yaml I have the following configuration:

camera:

  • platform: xiaomi_cloud_map_extractor
    host: 192.168.1.247
    token: token
    username: username
    password: password
    draw: [‘all’]
    attributes:
    • calibration_points

And the following on the following on the card:

type: custom:xiaomi-vacuum-map-card
entity: vacuum.xiaomi_vacuum_cleaner
camera_calibration: true
map_camera: camera.xiaomi_cloud_map_extractor
debug: false

With this configuration all working fine but I have one problem there, every time I press cleaning (whole house), map gets deleted and vacuum starts to create new map, then sometimes calibration points change and all the zones are wrong.

It could be possible to fix this situation?

Hi! It’s not possible to fully avoid map regeneration, but it can be mostly prevented by not using full cleaning, but only zoned cleanup.

New version released!

4 Likes

hey, did the upgrade to 2.0.1 , had a look at migration wizard, but still getting :

what stupid issue am i missing? i dont se map_image or map_camera in your new example config in the migration wizard?

image

          - type: custom:xiaomi-vacuum-map-card
            entity: vacuum.roborock
            map_source:
              camera: camera.roborock
            calibration_source:
              camera: true
            map_modes:
              - template: vacuum_clean_zone  
            # OLD  
            # map_camera: camera.roborock
            # default_mode: zoned_cleanup
            # camera_calibration: true

EDIT: seems a cache issue, but now get this :slight_smile: , but the example code looks correct?

image

EDIT: nm , another hard refresh did it

thnx, looking good now!!

1 Like

Just started looking at the 2.0 - great job, Piotr!

Got a question about additional_presets option.
According to the docs, it is a list, i.e:

        additional_presets:
          - preset_name: Xiaomi Roborock S50
            entity: vacuum.xiaomi_roborock_s50
            ...
          - preset_name: Xiaomi Roborock S7
            entity: vacuum.xiaomi_roborock_s7
            ...

But the migration example includes options w/o that additional_presets option.
Also, using the additional_presets with just one entry (for one vacuum) causes not displaying the card.

You can check out demo_config.yaml from the repo, it contains example with additional_presets.

If the card is not displayed it means that something is messed up, can you check if there is something in browser’s console?

I think I misunderstood the 3rd row:
image
I only specified additional_presets w/o the “root” preset.

Could you explain a meaning of the “preset” feature?
What I see here: you can specify 3 presets for 3 different vacuums - but in this case there must be a “main switch” to select a preset.

Also, adding a static image (like a floorplan) is in future?

Preset is a set of configs for map, icons and tiles. Each of them can have a different (or the same) map and/or vacuum.

Following example contains 3 presets:

  • blue: main one
  • green: first additional preset (with live map camera)
  • red: second additional preset (with static map image)

Here you can see switching between presets (at 1:01)

2 Likes

Hi Piotr,

I have tried your updated version of Xiaomi Vacuum Interactive Map Card, where I predefined zones with labels (text and icons).
Everything works fine on PC screen, but when I try to select zones in iOS app on iPhone, it is somehow corrupted (I am not able to select nothing, every icons are scattered).
How to solve this problem ?

Best regards
Adam.

Unfortunately I have to do it by myself :frowning: related issue

@3_14 , would you have a usage example with room id? I couldn’t understand how I can use the room id to start cleaning a specific room.

Sure, take a look

1 Like

I have S5 MAX, I dont see filter entities. Why?

You have to enable appropriate sensors in miio integration

I have seen the call service scheme in use but I have small doubt. I have created automations for each room cleaning which are operated by turning on input booleans. How can turn on different input boolean for different rooms in the rooms list?

You can make a script that will be called from the card, check which rooms are passed and turn on appropriate input booleans:

    map_modes:
      - name: Rooms
        icon: mdi:floor-plan
        selection_type: ROOM
        max_selections: 5
        repeats_type: NONE
        max_repeats: 5
        service_call_schema:
          service: script.rooms
          service_data:
            rooms: "[[selection]]"
            repeats: "[[repeats]]"
            predefined: "false"
            entity_id: "[[entity_id]]"

I tried the config like below but it seems that when I click the room icon, no service is being called. I have checked events in HA also to see if the script is called but nothing.

  - name: Rooms
    icon: mdi:floor-plan
    selection_type: ROOM
    max_selections: 1
    repeats_type: NONE
    max_repeats: 2
    service_call_schema:
      service: script.1573880520984
      service_data:
        rooms: '[[selection]]'
        repeats: '[[repeats]]'
        predefined: 'false'
        entity_id: '[[entity_id]]'
    predefined_selections:
      - id: cbr
        label:
          text: Bedroom
          x: 10
          'y': -5
        icon:
          name: mdi:bed
          x: 10
          'y': 1

what could be the reason?