Vacuum Interactive Map Card

Which vacuum do you have?

The first one

To prevent map changes you have to use zoned cleanup instead of normal full cleaning. Just use a zone covering whole map.

Hello,

Is there support somehow for changing/restoring maps (like in the Mi Home App)?

I have a 2nd floor which I would like to vacuum as well.

Regards
Ralf

Hi Ralf,

You can create 2 cards and choose which one to show (e.g. with conditional card).

Regards

Not sure if I get this. The vacuum needs to be told to use another map, bc otherwise the device thinks its on ground floor, but actually is in 1st floor. Right?

As far as I know it’s not possible to change a vacuums map from HA. I don’t use this feature, so I don’t really know what you need. If it’s only a matter of different coordinates, then you can create 2 cards and use the one that is dedicated for current floor.

How to calibrate when using valetudo?

The final version with screenshots is already avaliable?

Final version for FloleVac is available here, documentation for Xiaomi Home still needs improvements (link).

Would this card work with a iRobot Roomba 970 also? I would love to see the vacuums position live on a map like that. My entity has coordinates also

software_version: v2.4.6-3
bin_present: true
bin_full: false
position: ‘(0, 0, 0)’
supported_features: 991

I don’t know how Roombas raport their position, so it’s hard to tell

I have a problem. With the FloleVac not show the map at all. Can’t see anything only one green point middle of the screen. In Mi home app the map is ok. Maybe the RoborockS50 is updated the latest firmware thats why not working correctly with FloleVac? What can I do now? Thank You!

Edit: Reset the firmware and will try again.

Edit2: I uploaded Valetudo firmware sucsessful and working now.

I think that the latest version of software for S50 (with rooms) doesn’t fully work with FloleVac yet

Now I use roborock with Valetudo firmware.
Want to use the interactive map card but not working. :frowning:

calibration_points:
  - map:
      x: 677
      'y': 257
    vacuum:
      x: 25500
      'y': 25500
  - map:
      x: 1245
      'y': 107
    vacuum:
      x: 26351
      'y': 20416
  - map:
      x: 25
      'y': 290
    vacuum:
      x: 18299
      'y': 45489
debug: true
entity: vacuum.rockrobo
map_image: /local/custom_lovelace/xiaomi_vacuum_map_card/map.png
type: 'custom:xiaomi-vacuum-map-card'

screenshot-192.168.1.242_8123-2020.03.11-16_13_42
When I hit the start button nothing happend. If changed zone cleanup can select zone but if I hit the start nothing happening too. The red circles are the calibration points. The first point is the vacuum base. The next is up right and the third is the left down red circle.

In valetudo made some zones and from /mnt/data/valetudo/config.json

see this:

"Nappali",
      [
        [
          25284,
          22653,
          29302,
          26443,
          1
        ]
      ]
    ],
    [
      "Eloszoba",
      [
        [
          22073,
          22093,
          26194,
          26526,
          1
        ]
      ]
    ],
  

If I use these 2 zones

calibration_points:
  - map:
      x: 677
      'y': 257
    vacuum:
      x: 25500
      'y': 25500
  - map:
      x: 1245
      'y': 107
    vacuum:
      x: 26351
      'y': 20416
  - map:
      x: 25
      'y': 290
    vacuum:
      x: 18299
      'y': 45489
debug: true
entity: vacuum.rockrobo
map_image: /local/custom_lovelace/xiaomi_vacuum_map_card/map.png
service: script.vacuum_send_command
type: 'custom:xiaomi-vacuum-map-card'
zones:
  - - - 25284
      - 22653
      - 29302
      - 26443
  - - - 22073
      - 22093
      - 26194
      - 26526

I get this:

screenshot-192.168.1.242_8123-2020.03.11-18_09_20

What is the problem? Please help.

With debug: true commands will not be sent to the vacuum, you have to remove it.

If you use coordinates from valetudos config.json you have to recalculate coordinates of y axis: substract y value from 51200:

calibration_points:
  - map:
      x: 677
      'y': 257
    vacuum:
      x: 25500
      'y': 25500
  - map:
      x: 1245
      'y': 107
    vacuum:
      x: 26351
      'y': 20416
  - map:
      x: 25
      'y': 290
    vacuum:
      x: 18299
      'y': 45489
entity: vacuum.rockrobo
map_image: /local/custom_lovelace/xiaomi_vacuum_map_card/map.png
service: script.vacuum_send_command
type: 'custom:xiaomi-vacuum-map-card'
zones:
  - - - 25284
      - 28547
      - 29302
      - 24757
  - - - 22073
      - 29107
      - 26194
      - 24674

Oh my God that was the problem. debug: true :see_no_evil:
3 days spent to solve this problem. :slight_smile:
Thanky You, now everything is working like a charm.

hey, having an issue. first i was the person yesterday with the edit dim issue


now thats sorted out i made a new map but now i cant for the life of me get it lined up. my old map worked great but i cant get this one to work.

any help would be appreciated:

in the app i see this which is actually right, but its all hanging off the right side., vac banging into the wall lol

where did i go wrong? ive been trying this for hours


more info: free draw {zone cleanup] functions correctly, but defined keeps being to far off to the side

nevermind I got it. finally. turns out, since i had the volume off as to not make the wife mad at all my testing i didnt realize the vac was stopping short of my kids dresser and thus, wasnt at the right spot.

got it working now.

im just an idiot as usuall.

Maybe a button to select all zones? What I’ve read online it’s better to use zone cleaning than full cleaning on the gen 1 robot because it sometimes can mess up the map.

I have my Xiaomi Gen1 working well for a while. But something goes wrong (maybe the map resets?) and it no longer cleans my zones properly. I worked out that to fix without having to re-do everything, I have to reset map in Flolevac by doing fresh clean, hope that map orientates horizontally (matching my HA setup). Then it appears to work.

The thing is, there is nothing that indicates that the map/ coordinates have reset as the map in Flolevac still looks fine.

Is there a way to stop this happening for the Gen 1? Willing to try anything including root.
All I want, is to be able to send my vac to pre-defined zones (e.g. kitchen) with consistency.

Does anyone know what can mess up its orientation? Probably picking it up? Pressing the buttons on the vac? Starting a fresh clean (redraws map).

Here are my calibration points (A, B and C) and then the zones that I drew directly in the Home Assistant UI using co-ordinates from Flolevac and then cleaned up manually in the UI by nudging until I get the areas I want.
ha vac zones

Also, can anyone tell me why the editor fucks up my code? For example, coordinates are turned into array from [[23957,22549,33707,25949,1]] to

 - - - 25205
      - 23455
      - 26808
      - 24517

And also my original calibration coordinates go from this:

calibration_points: 
  - vacuum: 
      x: 23957 
      y: 22549 
  map: 
      x: 38 
      y: 527 
  - vacuum: 
      x: 23957 
      y: 25949 
  map: 
      x: 38 
      y: 46 
  - vacuum: 
      x: 33707 
      y: 25949 
  map: 
      x: 1419 
      y: 46

To this:

calibration_points:
  - map:
      x: 38
      'y': 527
    vacuum:
      x: 23957
      'y': 22549
  - map:
      x: 38
      'y': 46
    vacuum:
      x: 23957
      'y': 25949
  - map:
      x: 1419
      'y': 46
    vacuum:
      x: 33707
      'y': 25949
calibration_points:
  - map:
      x: 38
      'y': 527
    vacuum:
      x: 23957
      'y': 22549
  - map:
      x: 38
      'y': 46
    vacuum:
      x: 23957
      'y': 25949
  - map:
      x: 1419
      'y': 46
    vacuum:
      x: 33707
      'y': 25949
debug: false
entity: vacuum.xiaomi_vacuum_cleaner
map_image: /local/map.jpg
type: 'custom:xiaomi-vacuum-map-card'
zones:
  - - - 25205
      - 23455
      - 26808
      - 24517
  - - - 30729
      - 24604
      - 33654
      - 25927
  - - - 24018
      - 22643
      - 33580
      - 25923