Vacuum lovelace map : cartographie mouvante et zones de nettoyage

Bonjour,

J’ai bien cherché dans les forums et lu la page GitHub pour la config de la lovelace map card. Mais je n’arrive pas à mes fins. Je cherche des instructions claires pour configurer mon robot aspirateur, notamment la possibilité de définir des zones de nettoyage.

J’ai un robot assez vieux, mais je ne pense pas que ce soit le problème.

Le code dans configuration.yaml :

camera:
  - platform: xiaomi_cloud_map_extractor
    host: !secret xiaomi_vacuum_host
    token: !secret xiaomi_vacuum_token
    username: !secret xiaomi_cloud_username
    password: !secret xiaomi_cloud_password
    draw: ["all"]
    attributes:
      - calibration_points

Voici le code de la carte utilisée, qui montre bien le robot et me permet de lancer ses commandes :

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.xiaomi_cloud_map_extractor
calibration_source:
  camera: true
entity: vacuum.robot_aspirateur
vacuum_platform: default
map_modes:
  - name: Zone cleanup
    icon: mdi:select-drag
    run_immediately: false
    coordinates_rounding: true
    coordinates_to_meters_divider: 1000
    selection_type: MANUAL_RECTANGLE
    max_selections: 5
    repeats_type: EXTERNAL
    max_repeats: 3
    service_call_schema:
      service: xiaomi_miio.vacuum_clean_zone
      service_data:
        zone: "[[selection]]"
        repeats: "[[repeats]]"
        entity_id: "[[entity_id]]"
    predefined_selections: []
    variables: {}
  - name: Pin & Go
    icon: mdi:map-marker-plus
    run_immediately: false
    coordinates_rounding: true
    coordinates_to_meters_divider: 1000
    selection_type: MANUAL_POINT
    max_selections: 999
    repeats_type: NONE
    max_repeats: 1
    service_call_schema:
      service: xiaomi_miio.vacuum_goto
      service_data:
        x_coord: "[[point_x]]"
        y_coord: "[[point_y]]"
        entity_id: "[[entity_id]]"
    predefined_selections: []
    variables: {}
title: Sélection des zones
rotation: 90
map_locked: true
debug: true

J’utilise un script pour lancer le nettoyage sur les zones :

script:
  clean_zone:
    sequence:
      - choose:
          - conditions:
              - condition: state
                entity_id: input_select.vacuum_zone
                state: "Cuisine"
            sequence:
              - service: vacuum.send_command
                target:
                  entity_id: vacuum.robot_aspirateur
                data:
                  command: app_zoned_clean
                  params:
                    - [22866, 24589, 25947, 27524, 1]

          - conditions:
              - condition: state
                entity_id: input_select.vacuum_zone
                state: "Salon"
            sequence:
              - service: vacuum.send_command
                target:
                  entity_id: vacuum.robot_aspirateur
                data:
                  command: app_zoned_clean
                  params:
                    - "zone": [[21480, 25351, 24557, 38187, 1]]
                    - "zone": [[22430, 23288, 24503, 25310, 1]]
                    - "zone": [[21806, 21605, 24014, 23112, 1]]
          - conditions:
              - condition: state
                entity_id: input_select.vacuum_zone
                state: "Chambre"
            sequence:
              - service: vacuum.send_command
                target:
                  entity_id: vacuum.robot_aspirateur
                data:
                  command: app_zoned_clean
                  params:
                    - [10000, 15000, 20000, 25000, 1]

Mon problème : la carte n’est jamais la même, les points de Calibration semblent bouger. Malgré le fait de l’avoir « locked », elle tourne parfois.
Les zones n’ont donc pas les bonnes coordonnées d’un jour à l’autre.

Il y a probablement des points clés que je n’ai pas saisis.
Merci pour votre aide.
Julien

Ma configuration

_
version | core-2024.11.3
-- | --
installation_type | Home Assistant Supervised
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.12.4
os_name | Linux
os_version | 6.1.0-28-amd64
arch | x86_64
timezone | Europe/Paris
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
HACS Data | ok
GitHub API Calls Remaining | 5000
Installed Version | 2.0.1
Stage | running
Available Repositories | 1475
Downloaded Repositories | 16

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Debian GNU/Linux 12 (bookworm)
-- | --
update_channel | stable
supervisor_version | supervisor-2024.11.4
agent_version | 1.6.0
docker_version | 27.3.1
disk_total | 466.4 GB
disk_used | 49.3 GB
healthy | true
supported | failed to load: Unsupported
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | 
supervisor_api | ok
version_api | ok
installed_addons | Advanced SSH & Web Terminal (19.0.0), Get HACS (1.3.1), Linky (1.5.0), Studio Code Server (5.17.3), Node-RED (18.1.1), InfluxDB (5.0.1), Grafana (10.2.2), Samba Backup (5.2.0)

</details>

<details><summary>Dashboards</summary>

dashboards | 4
-- | --
resources | 10
views | 12
mode | storage

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 28 novembre 2024 à 09:58
-- | --
current_recorder_run | 8 décembre 2024 à 09:12
estimated_db_size | 1546.69 MiB
database_engine | sqlite
database_version | 3.45.3

</details>