/lovelace-xiaomi-vacuum-map-card

This card enables you to specify a target or start a zoned cleanup using live or static map, just like in Xiaomi Home app. Additionally you can define a list of zones and choose the ones to be cleaned.

MIT LicenseMIT

Lovelace Xiaomi Vacuum Map card

hacs_badge Community Forum buymeacoffee_badge

This card enables you to specify a target or start a zoned cleanup using live or static map, just like in Mi Home app. Additionally you can define a list of zones and choose the ones to be cleaned.

Go to target

Go to target

Zoned cleanup

Zoned cleanup

Defined zones

Defined zones

Configuration options

Key Type Required Default Description
entity string True - ID of Xiaomi vacuum entity
map_image string False - Path to image of map
map_camera string False - ID of map camera entity (for map without root on a vacuum use this integration)
camera_refresh_interval integer False 5 Update interval for map camera in seconds
camera_calibration boolean False - Automatic calibration if camera entity provides calibration_points attribute
calibration_points list False - Pairs of coordinates: in vacuum system and on map image. See: Calibration
zones list False Empty List of predefined zones
modes list False [go_to_target, zoned_cleanup, predefined_zones] List of displayed modes. Possible values: go_to_target, zoned_cleanup, predefined_zones
default_mode string False - Default selected mode. Possible values: go_to_target, zoned_cleanup, predefined_zones
debug boolean False false Enables alerts with coordinates after holding Start button. Possible values: true, false
service string False vacuum.send_command Allows to define service used after clicking Start button. See: Defining service
ignore_zones_limit boolean False false Disables 5 zones limit. Possible values: true, false. See: Defining service
language string False en Language used in the card. Possible values: cz, en, de, dk, es, fr, it, nl, no, pl, pt, ru, se, uk

Example usage:

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]]

Installation

  1. Download xiaomi-vacuum-map-card.js, coordinates-converter.js, texts.js and style.js to /www/custom_lovelace/xiaomi_vacuum_map_card directory:
    mkdir -p www/custom_lovelace/xiaomi_vacuum_map_card
    cd www/custom_lovelace/xiaomi_vacuum_map_card/
    wget https://github.com/PiotrMachowski/Home-Assistant-Lovelace-Xiaomi-Vacuum-Map-card/raw/master/dist/xiaomi-vacuum-map-card.js
    wget https://github.com/PiotrMachowski/Home-Assistant-Lovelace-Xiaomi-Vacuum-Map-card/raw/master/dist/coordinates-converter.js
    wget https://github.com/PiotrMachowski/Home-Assistant-Lovelace-Xiaomi-Vacuum-Map-card/raw/master/dist/texts.js
    wget https://github.com/PiotrMachowski/Home-Assistant-Lovelace-Xiaomi-Vacuum-Map-card/raw/master/dist/style.js
  2. Add the card to resources in ui-lovelace.yaml or in the raw editor if you are using the frontend UI editor:
    resources:
      - url: /local/custom_lovelace/xiaomi_vacuum_map_card/xiaomi-vacuum-map-card.js
        type: module

Calibration

To calibrate this card follow instructions from this guide.

Defining service

You can use a service parameter for example to run a script instead of starting a vacuum directly. Provided service will be run with following parameters:

  • entity_id - id of a vacuum
  • command - one of two:
    • app_goto_target - for Go to target mode
    • zoned_cleanup - for Zoned cleanup and Predefined zones modes
  • params - point or a list of zones (the same value as displayed in debug mode)
WARNING: In the current version of Home Assistant the service vacuum.send_command does not support templates!
To overcome this issue you can use a script and a python script.

Example HA script that can be used with this card is available here.

Hints

  • To find out values for calibration_points you can use the service vacuum.send_command with data:

    {
      "entity_id": "vacuum.xiaomi_vacuum",
      "command": "app_goto_target",
      "params": [25500, 25500]
    }

    Alternatively you can use vacuum.xiaomi_clean_zone:

    {
      "entity_id": "vacuum.xiaomi_vacuum",
      "zone": [[25500, 25500, 26500, 26500]],
      "repeats": 1
    }
  • You can find out coordinates for zones using two methods:

    • Enabling debug in settings, drawing zone in Zoned cleanup mode and holding Start button. Note: this method also works for other modes.
    • Android App FloleVac
  • To add another language modify file texts.js and set the language parameter in cards configuration.

FAQ

  • Can this card show a live map?

    Yes, to show a camera feed as a background set property map_camera in configuration. To get this feature without rooting your vacuum use this integration.

  • Does this card require rooted device?

    No, it only utilizes features of Home Assistant and not communicates directly with a vacuum.

  • How to create a map?

    You can use any image you want, the easiest way is to use a screenshot from Mi Home/FloleVac or this integration to provide live map without rooting.

Buy Me A Coffee