PiotrMachowski / lovelace-xiaomi-vacuum-map-card

This card provides a user-friendly way to fully control map-based vacuums in Home Assistant. Supported brands include Xiaomi (Roborock/Viomi/Dreame/Roidmi/Valetudo/Valetudo RE), Neato, Wyze, Roomba, Ecovacs (and probably more).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Roborock room cleaning not working

CZonin opened this issue · comments

commented

Checklist

  • I have updated the card to the latest version available
  • I have cleared the cache of my browser
  • I have checked if the problem is already reported

The problem

I've noticed that when I select rooms through the card to clean, the vacuum will instead clean the entire floor. Before humbertogontijo/homeassistant-roborock was officially supported in the card, I was able to get everything working in the card through the setup in this issue.

What version of a card has described problem?

2.2.2

What was the last working version card?

not sure

What vacuum model do you have problems with?

Roborock S7

Which integration do you use to control your vacuum (link)?

https://github.com/humbertogontijo/homeassistant-roborock

What browser (browsers/apps) does have this problem?

all

What version of Home Assistant do you use?

2023.8.2

What type of installation are you running?

Home Assistant Container

Card's configuration

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.roborock_s7_maxv_map
  crop:
    top: 60
    bottom: 120
    left: 80
    right: 80
calibration_source:
  camera: true
entity: vacuum.roborock_s7_maxv
vacuum_platform: humbertogontijo/homeassistant-roborock
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: roborock.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: roborock.vacuum_goto
      service_data:
        x_coord: '[[point_x]]'
        y_coord: '[[point_y]]'
        entity_id: '[[entity_id]]'
    predefined_selections: []
    variables: {}
  - name: Rooms
    icon: mdi:floor-plan
    run_immediately: false
    coordinates_rounding: true
    coordinates_to_meters_divider: 1000
    selection_type: ROOM
    max_selections: 999
    repeats_type: EXTERNAL
    max_repeats: 3
    service_call_schema:
      service: roborock.vacuum_clean_segment
      service_data:
        segments: '[[selection]]'
        entity_id: '[[entity_id]]'
        repeats: '[[repeats]]'
    predefined_selections:
      - id: '16'
        icon:
          name: mdi:silverware-fork-knife
          x: 25950
          'y': 26825
        label:
          text: Dining Area
          x: 25950
          'y': 26825
          offset_y: 35
        outline:
          - - 24750
            - 25250
          - - 27150
            - 25250
          - - 27150
            - 28400
          - - 24750
            - 28400
      - id: '17'
        icon:
          name: mdi:door
          x: 23450
          'y': 28125
        label:
          text: Entryway
          x: 23450
          'y': 28125
          offset_y: 35
        outline:
          - - 22150
            - 26150
          - - 24750
            - 26150
          - - 24750
            - 30100
          - - 22150
            - 30100
      - id: '18'
        icon:
          name: mdi:chef-hat
          x: 28150
          'y': 26600
        label:
          text: Kitchen
          x: 28150
          'y': 26600
          offset_y: 35
        outline:
          - - 27100
            - 25300
          - - 29200
            - 25300
          - - 29200
            - 27900
          - - 27100
            - 27900
      - id: '19'
        icon:
          name: mdi:sofa
          x: 21325
          'y': 28125
        label:
          text: Living Room
          x: 21325
          'y': 28125
          offset_y: 35
        outline:
          - - 19550
            - 26150
          - - 23100
            - 26150
          - - 23100
            - 30100
          - - 19550
            - 30100
      - id: '20'
        icon:
          name: mdi:stairs-down
          x: 26350
          'y': 30375
        label:
          text: Downstairs
          x: 26350
          'y': 30375
          offset_y: 35
        outline:
          - - 25400
            - 28400
          - - 27300
            - 28400
          - - 27300
            - 32350
          - - 25400
            - 32350
    variables: {}
map_locked: true
card_mod:
  style: |
    .tile-wrapper.clickable.ripple.tile-wrapper {
      background-color: #eeeeee;
      border-radius: 10px;
      color: #616161
    }
    :host
      div.controls-wrapper>div.vacuum-controls>div {
        background-color: #eeeeee;
        color: #616161
      }
      div.controls-wrapper>div.map-controls-wrapper>div>div {
        background-color: #D7EBFD;
        color: #4D6173
      }
      div.controls-wrapper>div.map-controls-wrapper>div>div>paper-button.map-actions-item.main.clickable.ripple {
        background-color: #BBCFE1;
        color: #4D6173
      }
      div.controls-wrapper>div.map-controls-wrapper>div>ha-button-menu>div>paper-button {
        background-color: #2196F3;
        color: #D7EBFD
      }
      div.map-zoom-icons {
        background-color: #D7EBFD;
        color: #2196F3
      }
      div.map-zoom-icons>div {
        background-color: #2196F3;
        color: #D7EBFD
      }
      div.controls-wrapper>xvmc-icons-wrapper>div>div {
        background-color: #D7EBFD;
        color: #4D6173
      }
      div.controls-wrapper>div>div>xvmc-dropdown-menu>ha-button-menu>div>paper-button {
        background-color: #D7EBFD;
        color: #4D6173
      }
      #map-zoomer-overlay>div:nth-child(1)>ha-icon {
        background-color: #A9A9A9;
        color: #E5E5E5
      }
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: cleaning
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: returning
    tooltip: Start
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:pause
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: idle
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: paused
    tooltip: Pause
    tap_action:
      action: call-service
      service: vacuum.pause
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:stop
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: idle
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: paused
    tooltip: Stop
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: returning
    tooltip: Return to base
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:target-variant
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: cleaning
      - entity: vacuum.roborock_s7_maxv
        value_not: returning
    tooltip: Clean spot
    tap_action:
      action: call-service
      service: vacuum.clean_spot
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:map-marker
    tooltip: Locate
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: 'off'
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: 'off'
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: 'off'
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: quiet
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: quiet
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: quiet
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: balanced
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: balanced
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: balanced
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: Turbo
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: turbo
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: turbo
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: max
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: max
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: max
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: custom
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: custom
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: max_plus
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: max_plus
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: max_plus
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: 'off'
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: quiet
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: balanced
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: turbo
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: max
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: custom
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: max_plus
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: 'off'
  - type: menu
    menu_id: water_box_mode
    icon_id: water_box_mode
    available_values_attribute: options
    icon: mdi:water
    icon_mapping:
      'off': mdi:water-remove
      mild: mdi:water-minus
      moderate: mdi:water
      intense: mdi:water-plus
      custom: mdi:water-sync
    tap_action:
      action: call-service
      service: select.select_option
      service_data:
        option: '[[value]]'
        entity_id: '[[entity_id]]'
    entity: select.roborock_s7_maxv_mop_intensity
  - type: menu
    menu_id: mop_mode
    icon_id: mop_mode
    available_values_attribute: options
    icon: mdi:water
    icon_mapping:
      standard: mdi:standard-definition
      deep: mdi:high-definition
      deep_plus: mdi:ultra-high-definition
      custom: mdi:fit-to-screen-outline
    tap_action:
      action: call-service
      service: select.select_option
      service_data:
        option: '[[value]]'
        entity_id: '[[entity_id]]'
    entity: select.roborock_s7_maxv_mop_mode
tiles:
  - tile_id: status
    entity: vacuum.roborock_s7_maxv
    label: Status
    attribute: status
    icon: mdi:robot-vacuum
    translations:
      starting: Starting
      charger disconnected: Charger disconnected
      idle: Idle
      remote control active: Remote control active
      cleaning: Cleaning
      returning home: Returning home
      manual mode: Manual mode
      charging: Charging
      charging problem: Charging problem
      paused: Paused
      spot cleaning: Spot cleaning
      error: Error
      shutting down: Shutting down
      updating: Updating
      docking: Docking
      going to target: Going to target
      zoned cleaning: Zoned cleaning
      segment cleaning: Segment cleaning
      emptying the bin: Emptying the bin
      charging complete: Charging complete
      device offline: Device offline
  - tile_id: battery_level
    entity: vacuum.roborock_s7_maxv
    label: Battery
    attribute: battery_level
    icon_source: vacuum.roborock_s7_maxv.attributes.battery_icon
    unit: '%'
  - tile_id: fan_speed
    entity: vacuum.roborock_s7_maxv
    label: Fan speed
    attribute: fan_speed
    icon: mdi:fan
    translations:
      silent: Silent
      standard: Standard
      medium: Medium
      turbo: Turbo
      auto: Auto
      gentle: Gentle
  - tile_id: sensor_dirty_left
    label: Sensors left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: sensor_dirty_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_sensor_dirty_left
    icon: mdi:eye-outline
    precision: 0
    translations: {}
  - tile_id: filter_left
    label: Filter left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: filter_work_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_filter_left
    icon: mdi:air-filter
    precision: 0
    translations: {}
  - tile_id: main_brush_left
    label: Main brush left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: main_brush_work_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_main_brush_left
    icon: mdi:brush
    precision: 0
    translations: {}
  - tile_id: side_brush_left
    label: Side brush left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: side_brush_work_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_side_brush_left
    icon: mdi:brush
    precision: 0
    translations: {}
  - tile_id: cleaning_count
    label: Cleaning count
    entity: sensor.roborock_s7_maxv_total_clean_count
    icon: mdi:counter
    precision: 0
    translations: {}
additional_presets: []

Javascript errors shown in the browser's console (if applicable)

none

Additional information

none

Are you sure room ids are correct?

commented

Are you sure room ids are correct?

I didn't make any changes to them after setting up the card. Is there a way to verify them?

They should be visible in attributes of the camera entity (in dev tools)

commented

Ya they seem to be correct.

Can you show your service call? It is shown in a popup when you long press "Start" button or add debug: true to your config

commented

Not able to copy the message from the popup, but here's a screenshot:
Screenshot 2023-08-16 204310

Thanks for the help btw!

Can you try removing quotes from room ids and check if it works?

commented

Made the change, but can't test until tomorrow. I'll comment back after testing.

commented

Just tested and same issue. Started a room cleaning but it just starts cleaning the whole floor.

One more thing to check: can you try starting the cleaning manually in dev tools?

Open your Home Assistant instance and show your service developer tools with a specific service selected.

commented

Tried this and it worked:

service: roborock.vacuum_clean_segment
target:
  entity_id: vacuum.roborock_s7_maxv
data:
  segments:
    - 18

Does this one work?

service: roborock.vacuum_clean_segment
data:
  entity_id: vacuum.roborock_s7_maxv
  repeats: 1
  segments:
    - 16
commented

Away for the week. I'll test it out when I get back home.

Sorry for the delay. Just tried that and it worked as well.

Try to use this config:

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.roborock_s7_maxv_map
  crop:
    top: 60
    bottom: 120
    left: 80
    right: 80
calibration_source:
  camera: true
entity: vacuum.roborock_s7_maxv
vacuum_platform: humbertogontijo/homeassistant-roborock
map_modes:
  - template: vacuum_clean_zone
  - template: vacuum_goto
  - template: vacuum_clean_segment
    id_type: "number"
    predefined_selections:
      - id: '16'
        icon:
          name: mdi:silverware-fork-knife
          x: 25950
          'y': 26825
        label:
          text: Dining Area
          x: 25950
          'y': 26825
          offset_y: 35
        outline:
          - - 24750
            - 25250
          - - 27150
            - 25250
          - - 27150
            - 28400
          - - 24750
            - 28400
      - id: '17'
        icon:
          name: mdi:door
          x: 23450
          'y': 28125
        label:
          text: Entryway
          x: 23450
          'y': 28125
          offset_y: 35
        outline:
          - - 22150
            - 26150
          - - 24750
            - 26150
          - - 24750
            - 30100
          - - 22150
            - 30100
      - id: '18'
        icon:
          name: mdi:chef-hat
          x: 28150
          'y': 26600
        label:
          text: Kitchen
          x: 28150
          'y': 26600
          offset_y: 35
        outline:
          - - 27100
            - 25300
          - - 29200
            - 25300
          - - 29200
            - 27900
          - - 27100
            - 27900
      - id: '19'
        icon:
          name: mdi:sofa
          x: 21325
          'y': 28125
        label:
          text: Living Room
          x: 21325
          'y': 28125
          offset_y: 35
        outline:
          - - 19550
            - 26150
          - - 23100
            - 26150
          - - 23100
            - 30100
          - - 19550
            - 30100
      - id: '20'
        icon:
          name: mdi:stairs-down
          x: 26350
          'y': 30375
        label:
          text: Downstairs
          x: 26350
          'y': 30375
          offset_y: 35
        outline:
          - - 25400
            - 28400
          - - 27300
            - 28400
          - - 27300
            - 32350
          - - 25400
            - 32350
    variables: {}
map_locked: true
card_mod:
  style: |
    .tile-wrapper.clickable.ripple.tile-wrapper {
      background-color: #eeeeee;
      border-radius: 10px;
      color: #616161
    }
    :host
      div.controls-wrapper>div.vacuum-controls>div {
        background-color: #eeeeee;
        color: #616161
      }
      div.controls-wrapper>div.map-controls-wrapper>div>div {
        background-color: #D7EBFD;
        color: #4D6173
      }
      div.controls-wrapper>div.map-controls-wrapper>div>div>paper-button.map-actions-item.main.clickable.ripple {
        background-color: #BBCFE1;
        color: #4D6173
      }
      div.controls-wrapper>div.map-controls-wrapper>div>ha-button-menu>div>paper-button {
        background-color: #2196F3;
        color: #D7EBFD
      }
      div.map-zoom-icons {
        background-color: #D7EBFD;
        color: #2196F3
      }
      div.map-zoom-icons>div {
        background-color: #2196F3;
        color: #D7EBFD
      }
      div.controls-wrapper>xvmc-icons-wrapper>div>div {
        background-color: #D7EBFD;
        color: #4D6173
      }
      div.controls-wrapper>div>div>xvmc-dropdown-menu>ha-button-menu>div>paper-button {
        background-color: #D7EBFD;
        color: #4D6173
      }
      #map-zoomer-overlay>div:nth-child(1)>ha-icon {
        background-color: #A9A9A9;
        color: #E5E5E5
      }
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: cleaning
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: returning
    tooltip: Start
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:pause
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: idle
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: paused
    tooltip: Pause
    tap_action:
      action: call-service
      service: vacuum.pause
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:stop
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: idle
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: paused
    tooltip: Stop
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: returning
    tooltip: Return to base
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:target-variant
    conditions:
      - entity: vacuum.roborock_s7_maxv
        value_not: docked
      - entity: vacuum.roborock_s7_maxv
        value_not: error
      - entity: vacuum.roborock_s7_maxv
        value_not: cleaning
      - entity: vacuum.roborock_s7_maxv
        value_not: returning
    tooltip: Clean spot
    tap_action:
      action: call-service
      service: vacuum.clean_spot
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - icon: mdi:map-marker
    tooltip: Locate
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.roborock_s7_maxv
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: 'off'
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: 'off'
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: 'off'
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: quiet
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: quiet
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: quiet
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: balanced
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: balanced
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: balanced
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: Turbo
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: turbo
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: turbo
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: max
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: max
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: max
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: custom
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: custom
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: max_plus
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value: max_plus
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: max_plus
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: 'off'
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: quiet
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: balanced
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: turbo
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: max
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: custom
      - entity: vacuum.roborock_s7_maxv
        attribute: fan_speed
        value_not: max_plus
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7_maxv
        fan_speed: 'off'
  - type: menu
    menu_id: water_box_mode
    icon_id: water_box_mode
    available_values_attribute: options
    icon: mdi:water
    icon_mapping:
      'off': mdi:water-remove
      mild: mdi:water-minus
      moderate: mdi:water
      intense: mdi:water-plus
      custom: mdi:water-sync
    tap_action:
      action: call-service
      service: select.select_option
      service_data:
        option: '[[value]]'
        entity_id: '[[entity_id]]'
    entity: select.roborock_s7_maxv_mop_intensity
  - type: menu
    menu_id: mop_mode
    icon_id: mop_mode
    available_values_attribute: options
    icon: mdi:water
    icon_mapping:
      standard: mdi:standard-definition
      deep: mdi:high-definition
      deep_plus: mdi:ultra-high-definition
      custom: mdi:fit-to-screen-outline
    tap_action:
      action: call-service
      service: select.select_option
      service_data:
        option: '[[value]]'
        entity_id: '[[entity_id]]'
    entity: select.roborock_s7_maxv_mop_mode
tiles:
  - tile_id: status
    entity: vacuum.roborock_s7_maxv
    label: Status
    attribute: status
    icon: mdi:robot-vacuum
    translations:
      starting: Starting
      charger disconnected: Charger disconnected
      idle: Idle
      remote control active: Remote control active
      cleaning: Cleaning
      returning home: Returning home
      manual mode: Manual mode
      charging: Charging
      charging problem: Charging problem
      paused: Paused
      spot cleaning: Spot cleaning
      error: Error
      shutting down: Shutting down
      updating: Updating
      docking: Docking
      going to target: Going to target
      zoned cleaning: Zoned cleaning
      segment cleaning: Segment cleaning
      emptying the bin: Emptying the bin
      charging complete: Charging complete
      device offline: Device offline
  - tile_id: battery_level
    entity: vacuum.roborock_s7_maxv
    label: Battery
    attribute: battery_level
    icon_source: vacuum.roborock_s7_maxv.attributes.battery_icon
    unit: '%'
  - tile_id: fan_speed
    entity: vacuum.roborock_s7_maxv
    label: Fan speed
    attribute: fan_speed
    icon: mdi:fan
    translations:
      silent: Silent
      standard: Standard
      medium: Medium
      turbo: Turbo
      auto: Auto
      gentle: Gentle
  - tile_id: sensor_dirty_left
    label: Sensors left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: sensor_dirty_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_sensor_dirty_left
    icon: mdi:eye-outline
    precision: 0
    translations: {}
  - tile_id: filter_left
    label: Filter left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: filter_work_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_filter_left
    icon: mdi:air-filter
    precision: 0
    translations: {}
  - tile_id: main_brush_left
    label: Main brush left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: main_brush_work_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_main_brush_left
    icon: mdi:brush
    precision: 0
    translations: {}
  - tile_id: side_brush_left
    label: Side brush left
    unit: h
    multiplier: 0.0002777777777777778
    hold_action:
      action: call-service
      service: vacuum.send_command
      confirmation: {}
      service_data:
        command: reset_consumable
        params: side_brush_work_time
        entity_id: vacuum.roborock_s7_maxv
    entity: sensor.roborock_s7_maxv_side_brush_left
    icon: mdi:brush
    precision: 0
    translations: {}
  - tile_id: cleaning_count
    label: Cleaning count
    entity: sensor.roborock_s7_maxv_total_clean_count
    icon: mdi:counter
    precision: 0
    translations: {}

It should be also ok to remove tiles and icons from config

Hi,
I've got similar problem, but when I choose Room cleaning - nothing happens. Can You help?
My vacuum is: roborock.vacuum.m1s
Standard integration: Xiaomi Miio

My config:

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.xiaomi_cloud_map_extractor
calibration_source:
  camera: true
entity: vacuum.robot_odkurzajacy
vacuum_platform: default
title: Odkurzanie
map_modes:
  - template: vacuum_clean_zone
  - template: vacuum_goto
  - template: vacuum_clean_segment
    id_type: number
    predefined_selections:
      - id: '16'
        icon:
          name: mdi:bed
          x: 24475
          'y': 27425
        label:
          text: Sypialnia
          x: 24475
          'y': 27425
          offset_y: 35
        outline:
          - - 22900
            - 25300
          - - 26050
            - 25300
          - - 26050
            - 29550
          - - 22900
            - 29550
      - id: '17'
        icon:
          name: mdi:broom
          x: 26925
          'y': 29675
        label:
          text: Przedpokój
          x: 26925
          'y': 29675
          offset_y: 35
        outline:
          - - 26100
            - 27150
          - - 27750
            - 27150
          - - 27750
            - 32200
          - - 26100
            - 32200
      - id: '18'
        icon:
          name: mdi:bathtub
          x: 26825
          'y': 26075
        label:
          text: Łazienka
          x: 26825
          'y': 26075
          offset_y: 35
        outline:
          - - 26150
            - 25050
          - - 27500
            - 25050
          - - 27500
            - 27100
          - - 26150
            - 27100
      - id: '19'
        icon:
          name: mdi:broom
          x: 24500
          'y': 31175
        label:
          text: Kuchnia
          x: 24500
          'y': 31175
          offset_y: 35
        outline:
          - - 22850
            - 30650
          - - 26150
            - 30650
          - - 26150
            - 31700
          - - 22850
            - 31700
      - id: '20'
        icon:
          name: mdi:broom
          x: 25200
          'y': 33750
        label:
          text: Salon
          x: 25200
          'y': 33750
          offset_y: 35
        outline:
          - - 23393
            - 32194
          - - 27056
            - 32194
          - - 27056
            - 35349
          - - 23393
            - 35349
    variables: {}
map_locked: true

@MagnusS8 It is a different problem.

It might work with following config:

    ...
  - template: vacuum_clean_segment
    repeats_type: REPEAT
    service_call_schema:
      service: xiaomi_miio.vacuum_clean_segment
      service_data:
        segments: '[[selection]]'
        entity_id: '[[entity_id]]'
    predefined_selections:
    ...

OMG it works. Thank U so much!

@PiotrMachowski Looks like I was wrong. The config you provided did fix room cleaning for when you only select one room. If you select more than 1, it cleans the whole floor like the original issue.

@CZonin which config do you mean? This one should work without any problems

Ya that one. It's strange, it just seems to be inconsistent. The vacuum will respond with different things based on what I tell it to do. Sometimes it does the selective cleaning, with ether 1 or multiple rooms, and sometimes it just starts cleaning the entire floor.

O.o
you might need to report it in Roborock integration...

I'm sorry for my poor English. The following sections are for translation.I'm not sure if you can understand.
I've got similar problem.
it work well when i try starting the cleaning manually in dev tools.

service: dreame_vacuum.vacuum_clean_segment
data:
  entity_id: vacuum.dreamebot_s10
  repeats: 1
  segments:
    - 8

and

service: dreame_vacuum.vacuum_clean_segment
target:
  entity_id: vacuum.dreamebot_s10
data:
  segments:
    - 8

But operating in the card will clean the entire room when I operate in the dashboard.
My config:

type: custom:xiaomi-vacuum-map-card
entity: vacuum.dreamebot_s10
language: zh
vacuum_platform: default
map_source:
  image: /local/ui/设备/扫地机器人白底平面图.png
  crop:
    top: 30
    bottom: 0
calibration_source:
  calibration_points:
    - vacuum: 
        x: -8150
        y: -950
      map: 
        x: 3715
        y: 386
    - vacuum:
        x: -8150
        y: 6350
      map: 
        x: 3715   
        y: 1843
    - vacuum: 
        x: 8250
        y: 6350
      map: 
        x: 439
        y: 1843
    - vacuum: 
        x: 8250
        y: -950
      map: 
        x: 439
        y: 386
two_finger_pan: true
map_locked: true
tiles:

  - tile_id: status
    label: '扫地机器人状态'
    icon: mdi:robot-vacuum
    entity: sensor.dreamebot_s10_auto_empty_status
    precision: 0
    tap_action:
      action: none
    double_tap_action:
      action: none
    hold_action:
      action: none
    translations:
    
      unknown: 设备断开
      idle: 空闲
      paused: 暂停
      cleaning: 正在轻松到
      returning: 返回基站
      spot_cleaning: 定点清扫
      follow_wall_cleaning: 跟随墙壁清洁
      charging: 充电
      ota: 升级
      fct: 功能测试
      wifi_set: 设置wifi,
      power_off: 关机
      factory: 关机
      error: 错误
      remote_control: 远程遥控
      sleeping: 睡眠
      self_test: 自检
      factory_test: 出厂检验
      standby: 待机
      room_cleaning: 分区扫清
      zone_cleaning: 划区扫清
      fast_mapping: 绘制地图
      monitor_cruise: 摄像头监控
      monitor_spot: 摄像头点监控
      summon_clean: 召唤清理
     
  - tile_id: battery_level
    entity: sensor.dreamebot_s10_battery_level
    label: '电量'
    icon: mdi:battery-charging-100
    unit: '%'
    tap_action:
      action: none
    double_tap_action:
      action: none
    hold_action:
      action: none
                       
  - tile_id: cleaning_mode
    entity: vacuum.dreamebot_s10
    attribute: cleaning_mode
    label: '清洁模式'
    icon: mdi:hydro-power
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_cleaning_mode
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'sweeping': 扫地
      'mopping': 拖地
      'sweeping and mopping': 扫拖

  - tile_id: fan_speed
    entity: select.dreamebot_s10_suction_level
    label: '吸力等级'
    icon: mdi:fan
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_suction_level
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'quiet': 安静
      'standard': 标准
      'strong': 强力
      'turbo': 超强
      'unavailable': 不启用
      
  - tile_id: mop_humidity
    entity: vacuum.dreamebot_s10
    attribute: mop_pad_humidity
    label: '拖布湿度'
    icon: mdi:fan
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_mop_pad_humidity
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'slightly dry': 偏干
      'moist': 标准
      'wet': 偏湿
      'unavailable': 不启用
      
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: cleaning
      - entity: vacuum.dreamebot_s10
        value_not: error
      - entity: vacuum.dreamebot_s10
        value_not: returning
    tooltip: '开始'
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:stop
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: docked
      - entity: vacuum.dreamebot_s10
        value_not: idle
      - entity: vacuum.dreamebot_s10
        value_not: error
      - entity: vacuum.dreamebot_s10
        value_not: paused
    tooltip: '暂停'
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: docked
      - entity: vacuum.dreamebot_s10
        value_not: returning
    tooltip: '返回基站'
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:map-marker
    tooltip: '定位'
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.dreamebot_s10
    hold_action:
      action: none
        
map_modes:
  - template: vacuum_clean_zone
    name: 划区扫清
    icon: mdi:select-drag
    max_selections: 10
    repeats_type: EXTERNAL
    max_repeats: 3
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_zone
      service_data:
        entity_id: '[[entity_id]]'
        zone: '[[selection]]'
        repeats: '[[repeats]]'
  - name: 指哪到哪
    icon: mdi:map-marker-plus
    max_repeats: 3
    selection_type: MANUAL_POINT
    repeats_type: EXTERNAL
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_spot
      service_data:
        entity_id: '[[entity_id]]'
        points: '[[selection]]'
        repeats: '[[repeats]]'

  - template: vacuum_clean_segment
    name: 分区清扫
    icon: mdi:floor-plan
    repeats_type: EXTERNAL
    max_repeats: 3
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_segment
      service_data:
        entity_id: '[[entity_id]]'
        segments: '[[selection]]'
        repeats: '[[repeats]]'
    predefined_selections:
      - id: '1'
        icon:
          name: mdi:broom
          x: -575
          'y': 5000
        label:
          text: '次卧'
          x: -575
          'y': 5000
          offset_y: 35
        outline:
          - - -1850
            - 3550
          - - 990
            - 3550
          - - 990
            - 6570
          - - -2550
            - 6570
          - - -2550
            - 5340
          - - -1850
            - 5340
      - id: '2'
        icon:
          name: mdi:broom
          x: -3900
          'y': 3600
        label:
          text: '书房'
          x: -3900
          'y': 3600
          offset_y: 35 
        outline:
          - - -5470
            - 2400
          - - -2000
            - 2400
          - - -2000
            - 4890
          - - -2400
            - 4890
            
          - - -2400
            - 5040
          - - -5270
            - 5040
          - - -5270
            - 4840
          - - -5470
            - 4840
      - id: '3'
        icon:
          name: mdi:broom
          x: -375
          'y': 2800
        label:
          text: '走廊'
          x: -375
          'y': 2800
          offset_x: 35
        outline:
          - - -1850
            - 2270
          - - 1120
            - 2270
          - - 1120
            - 3400
          - - -1850
            - 3400
      - id: '4'
        icon:
          name: mdi:broom
          x: 6925
          'y': 2575
        label:
          text: '餐厅'
          x: 6925
          'y': 2575
          offset_y: 35
        outline:
          - - 5610
            - 1225
          - - 8340
            - 1225
          - - 8340
            - 4315
          - - 7580
            - 4315
          - - 7580
            - 4225
          - - 5610 
            - 4225
      - id: '5'
        icon:
          name: mdi:broom
          x: 600
          'y': -400
        label:
          text: '主卫'
          x: 600
          'y': -400
          offset_x: 35
        outline:
          - - -700
            - -1035
          - - 1700
            - -1035
          - - 1700
            - -65
          - - 1200
            - -65
          - - 1200
            - 85
          - - 770
            - 85
          - - 400
            - 315
          - - -700
            - 315
      - id: '6'
        icon:
          name: mdi:broom
          x: -3025
          'y': 600
        label:
          text: '主卧'
          x: -3025
          'y': 600
          offset_y: 35
        outline:
          - - -4850
            - -1035
          - - -850
            - -1035
          - - -850
            - 2120
          - - -2000
            - 2120
          - - -2000
            - 2250
          - - -4850
            - 2250
      - id: '7'
        icon:
          name: mdi:broom
          x: 225
          'y': 1225
        label:
          text: '公卫'
          x: 225
          'y': 1225
          offset_y: 35
        outline:
          - - -600
            - 465
          - - 1200
            - 465
          - - 1200
            - 1470
          - - 1050
            - 1470
          - - 1050
            - 2120
          - - -600
            - 2120
      - id: '8'
        icon:
          name: mdi:broom
          x: 3400
          'y': 2225
        label:
          text: '客厅'
          x: 3400
          'y': 2225
          offset_y: 35
        outline:
          - - 1850
            - 265
          - - 5610
            - 265
          - - 5610
            - 4225
          - - 1120
            - 4225
          - - 1120
            - 2270
          - - 1450
            - 2270
          - - 1450
            - 465
          - - 1850
            - 465
    variables: {}

Previously, this configuration was able to function normally, but recently it was found to be invalid, perhaps after supporting Tashack/dream vacuum integration

@13860605362 try this one:

Config
type: custom:xiaomi-vacuum-map-card
entity: vacuum.dreamebot_s10
language: zh
vacuum_platform: default
map_source:
  image: /local/ui/设备/扫地机器人白底平面图.png
  crop:
    top: 30
    bottom: 0
calibration_source:
  calibration_points:
    - vacuum: 
        x: -8150
        y: -950
      map: 
        x: 3715
        y: 386
    - vacuum:
        x: -8150
        y: 6350
      map: 
        x: 3715   
        y: 1843
    - vacuum: 
        x: 8250
        y: 6350
      map: 
        x: 439
        y: 1843
    - vacuum: 
        x: 8250
        y: -950
      map: 
        x: 439
        y: 386
two_finger_pan: true
map_locked: true
tiles:

  - tile_id: status
    label: '扫地机器人状态'
    icon: mdi:robot-vacuum
    entity: sensor.dreamebot_s10_auto_empty_status
    precision: 0
    tap_action:
      action: none
    double_tap_action:
      action: none
    hold_action:
      action: none
    translations:
    
      unknown: 设备断开
      idle: 空闲
      paused: 暂停
      cleaning: 正在轻松到
      returning: 返回基站
      spot_cleaning: 定点清扫
      follow_wall_cleaning: 跟随墙壁清洁
      charging: 充电
      ota: 升级
      fct: 功能测试
      wifi_set: 设置wifi,
      power_off: 关机
      factory: 关机
      error: 错误
      remote_control: 远程遥控
      sleeping: 睡眠
      self_test: 自检
      factory_test: 出厂检验
      standby: 待机
      room_cleaning: 分区扫清
      zone_cleaning: 划区扫清
      fast_mapping: 绘制地图
      monitor_cruise: 摄像头监控
      monitor_spot: 摄像头点监控
      summon_clean: 召唤清理
     
  - tile_id: battery_level
    entity: sensor.dreamebot_s10_battery_level
    label: '电量'
    icon: mdi:battery-charging-100
    unit: '%'
    tap_action:
      action: none
    double_tap_action:
      action: none
    hold_action:
      action: none
                       
  - tile_id: cleaning_mode
    entity: vacuum.dreamebot_s10
    attribute: cleaning_mode
    label: '清洁模式'
    icon: mdi:hydro-power
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_cleaning_mode
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'sweeping': 扫地
      'mopping': 拖地
      'sweeping and mopping': 扫拖

  - tile_id: fan_speed
    entity: select.dreamebot_s10_suction_level
    label: '吸力等级'
    icon: mdi:fan
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_suction_level
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'quiet': 安静
      'standard': 标准
      'strong': 强力
      'turbo': 超强
      'unavailable': 不启用
      
  - tile_id: mop_humidity
    entity: vacuum.dreamebot_s10
    attribute: mop_pad_humidity
    label: '拖布湿度'
    icon: mdi:fan
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_mop_pad_humidity
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'slightly dry': 偏干
      'moist': 标准
      'wet': 偏湿
      'unavailable': 不启用
      
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: cleaning
      - entity: vacuum.dreamebot_s10
        value_not: error
      - entity: vacuum.dreamebot_s10
        value_not: returning
    tooltip: '开始'
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:stop
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: docked
      - entity: vacuum.dreamebot_s10
        value_not: idle
      - entity: vacuum.dreamebot_s10
        value_not: error
      - entity: vacuum.dreamebot_s10
        value_not: paused
    tooltip: '暂停'
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: docked
      - entity: vacuum.dreamebot_s10
        value_not: returning
    tooltip: '返回基站'
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:map-marker
    tooltip: '定位'
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.dreamebot_s10
    hold_action:
      action: none
        
map_modes:
  - template: vacuum_clean_zone
    name: 划区扫清
    icon: mdi:select-drag
    max_selections: 10
    repeats_type: EXTERNAL
    max_repeats: 3
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_zone
      service_data:
        entity_id: '[[entity_id]]'
        zone: '[[selection]]'
        repeats: '[[repeats]]'
  - name: 指哪到哪
    icon: mdi:map-marker-plus
    max_repeats: 3
    selection_type: MANUAL_POINT
    repeats_type: EXTERNAL
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_spot
      service_data:
        entity_id: '[[entity_id]]'
        points: '[[selection]]'
        repeats: '[[repeats]]'

  - template: vacuum_clean_segment
    name: 分区清扫
    icon: mdi:floor-plan
    repeats_type: EXTERNAL
    max_repeats: 3
    id_type: "number"
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_segment
      service_data:
        entity_id: '[[entity_id]]'
        segments: '[[selection]]'
        repeats: '[[repeats]]'
    predefined_selections:
      - id: '1'
        icon:
          name: mdi:broom
          x: -575
          'y': 5000
        label:
          text: '次卧'
          x: -575
          'y': 5000
          offset_y: 35
        outline:
          - - -1850
            - 3550
          - - 990
            - 3550
          - - 990
            - 6570
          - - -2550
            - 6570
          - - -2550
            - 5340
          - - -1850
            - 5340
      - id: '2'
        icon:
          name: mdi:broom
          x: -3900
          'y': 3600
        label:
          text: '书房'
          x: -3900
          'y': 3600
          offset_y: 35 
        outline:
          - - -5470
            - 2400
          - - -2000
            - 2400
          - - -2000
            - 4890
          - - -2400
            - 4890
            
          - - -2400
            - 5040
          - - -5270
            - 5040
          - - -5270
            - 4840
          - - -5470
            - 4840
      - id: '3'
        icon:
          name: mdi:broom
          x: -375
          'y': 2800
        label:
          text: '走廊'
          x: -375
          'y': 2800
          offset_x: 35
        outline:
          - - -1850
            - 2270
          - - 1120
            - 2270
          - - 1120
            - 3400
          - - -1850
            - 3400
      - id: '4'
        icon:
          name: mdi:broom
          x: 6925
          'y': 2575
        label:
          text: '餐厅'
          x: 6925
          'y': 2575
          offset_y: 35
        outline:
          - - 5610
            - 1225
          - - 8340
            - 1225
          - - 8340
            - 4315
          - - 7580
            - 4315
          - - 7580
            - 4225
          - - 5610 
            - 4225
      - id: '5'
        icon:
          name: mdi:broom
          x: 600
          'y': -400
        label:
          text: '主卫'
          x: 600
          'y': -400
          offset_x: 35
        outline:
          - - -700
            - -1035
          - - 1700
            - -1035
          - - 1700
            - -65
          - - 1200
            - -65
          - - 1200
            - 85
          - - 770
            - 85
          - - 400
            - 315
          - - -700
            - 315
      - id: '6'
        icon:
          name: mdi:broom
          x: -3025
          'y': 600
        label:
          text: '主卧'
          x: -3025
          'y': 600
          offset_y: 35
        outline:
          - - -4850
            - -1035
          - - -850
            - -1035
          - - -850
            - 2120
          - - -2000
            - 2120
          - - -2000
            - 2250
          - - -4850
            - 2250
      - id: '7'
        icon:
          name: mdi:broom
          x: 225
          'y': 1225
        label:
          text: '公卫'
          x: 225
          'y': 1225
          offset_y: 35
        outline:
          - - -600
            - 465
          - - 1200
            - 465
          - - 1200
            - 1470
          - - 1050
            - 1470
          - - 1050
            - 2120
          - - -600
            - 2120
      - id: '8'
        icon:
          name: mdi:broom
          x: 3400
          'y': 2225
        label:
          text: '客厅'
          x: 3400
          'y': 2225
          offset_y: 35
        outline:
          - - 1850
            - 265
          - - 5610
            - 265
          - - 5610
            - 4225
          - - 1120
            - 4225
          - - 1120
            - 2270
          - - 1450
            - 2270
          - - 1450
            - 465
          - - 1850
            - 465
    variables: {}

@13860605362 try this one:

Config

type: custom:xiaomi-vacuum-map-card
entity: vacuum.dreamebot_s10
language: zh
vacuum_platform: default
map_source:
  image: /local/ui/设备/扫地机器人白底平面图.png
  crop:
    top: 30
    bottom: 0
calibration_source:
  calibration_points:
    - vacuum: 
        x: -8150
        y: -950
      map: 
        x: 3715
        y: 386
    - vacuum:
        x: -8150
        y: 6350
      map: 
        x: 3715   
        y: 1843
    - vacuum: 
        x: 8250
        y: 6350
      map: 
        x: 439
        y: 1843
    - vacuum: 
        x: 8250
        y: -950
      map: 
        x: 439
        y: 386
two_finger_pan: true
map_locked: true
tiles:

  - tile_id: status
    label: '扫地机器人状态'
    icon: mdi:robot-vacuum
    entity: sensor.dreamebot_s10_auto_empty_status
    precision: 0
    tap_action:
      action: none
    double_tap_action:
      action: none
    hold_action:
      action: none
    translations:
    
      unknown: 设备断开
      idle: 空闲
      paused: 暂停
      cleaning: 正在轻松到
      returning: 返回基站
      spot_cleaning: 定点清扫
      follow_wall_cleaning: 跟随墙壁清洁
      charging: 充电
      ota: 升级
      fct: 功能测试
      wifi_set: 设置wifi,
      power_off: 关机
      factory: 关机
      error: 错误
      remote_control: 远程遥控
      sleeping: 睡眠
      self_test: 自检
      factory_test: 出厂检验
      standby: 待机
      room_cleaning: 分区扫清
      zone_cleaning: 划区扫清
      fast_mapping: 绘制地图
      monitor_cruise: 摄像头监控
      monitor_spot: 摄像头点监控
      summon_clean: 召唤清理
     
  - tile_id: battery_level
    entity: sensor.dreamebot_s10_battery_level
    label: '电量'
    icon: mdi:battery-charging-100
    unit: '%'
    tap_action:
      action: none
    double_tap_action:
      action: none
    hold_action:
      action: none
                       
  - tile_id: cleaning_mode
    entity: vacuum.dreamebot_s10
    attribute: cleaning_mode
    label: '清洁模式'
    icon: mdi:hydro-power
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_cleaning_mode
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'sweeping': 扫地
      'mopping': 拖地
      'sweeping and mopping': 扫拖

  - tile_id: fan_speed
    entity: select.dreamebot_s10_suction_level
    label: '吸力等级'
    icon: mdi:fan
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_suction_level
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'quiet': 安静
      'standard': 标准
      'strong': 强力
      'turbo': 超强
      'unavailable': 不启用
      
  - tile_id: mop_humidity
    entity: vacuum.dreamebot_s10
    attribute: mop_pad_humidity
    label: '拖布湿度'
    icon: mdi:fan
    tap_action:
      action: call-service
      service: dreame_vacuum.select_select_next
      data:
        cycle: true
      target:
        entity_id: select.dreamebot_s10_mop_pad_humidity
    double_tap_action:
      action: none
    hold_action:
      action: more-info
    translations:
      'slightly dry': 偏干
      'moist': 标准
      'wet': 偏湿
      'unavailable': 不启用
      
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: cleaning
      - entity: vacuum.dreamebot_s10
        value_not: error
      - entity: vacuum.dreamebot_s10
        value_not: returning
    tooltip: '开始'
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:stop
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: docked
      - entity: vacuum.dreamebot_s10
        value_not: idle
      - entity: vacuum.dreamebot_s10
        value_not: error
      - entity: vacuum.dreamebot_s10
        value_not: paused
    tooltip: '暂停'
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.dreamebot_s10
        value_not: docked
      - entity: vacuum.dreamebot_s10
        value_not: returning
    tooltip: '返回基站'
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.dreamebot_s10
  - icon: mdi:map-marker
    tooltip: '定位'
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.dreamebot_s10
    hold_action:
      action: none
        
map_modes:
  - template: vacuum_clean_zone
    name: 划区扫清
    icon: mdi:select-drag
    max_selections: 10
    repeats_type: EXTERNAL
    max_repeats: 3
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_zone
      service_data:
        entity_id: '[[entity_id]]'
        zone: '[[selection]]'
        repeats: '[[repeats]]'
  - name: 指哪到哪
    icon: mdi:map-marker-plus
    max_repeats: 3
    selection_type: MANUAL_POINT
    repeats_type: EXTERNAL
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_spot
      service_data:
        entity_id: '[[entity_id]]'
        points: '[[selection]]'
        repeats: '[[repeats]]'

  - template: vacuum_clean_segment
    name: 分区清扫
    icon: mdi:floor-plan
    repeats_type: EXTERNAL
    max_repeats: 3
    id_type: "number"
    service_call_schema:
      service: dreame_vacuum.vacuum_clean_segment
      service_data:
        entity_id: '[[entity_id]]'
        segments: '[[selection]]'
        repeats: '[[repeats]]'
    predefined_selections:
      - id: '1'
        icon:
          name: mdi:broom
          x: -575
          'y': 5000
        label:
          text: '次卧'
          x: -575
          'y': 5000
          offset_y: 35
        outline:
          - - -1850
            - 3550
          - - 990
            - 3550
          - - 990
            - 6570
          - - -2550
            - 6570
          - - -2550
            - 5340
          - - -1850
            - 5340
      - id: '2'
        icon:
          name: mdi:broom
          x: -3900
          'y': 3600
        label:
          text: '书房'
          x: -3900
          'y': 3600
          offset_y: 35 
        outline:
          - - -5470
            - 2400
          - - -2000
            - 2400
          - - -2000
            - 4890
          - - -2400
            - 4890
            
          - - -2400
            - 5040
          - - -5270
            - 5040
          - - -5270
            - 4840
          - - -5470
            - 4840
      - id: '3'
        icon:
          name: mdi:broom
          x: -375
          'y': 2800
        label:
          text: '走廊'
          x: -375
          'y': 2800
          offset_x: 35
        outline:
          - - -1850
            - 2270
          - - 1120
            - 2270
          - - 1120
            - 3400
          - - -1850
            - 3400
      - id: '4'
        icon:
          name: mdi:broom
          x: 6925
          'y': 2575
        label:
          text: '餐厅'
          x: 6925
          'y': 2575
          offset_y: 35
        outline:
          - - 5610
            - 1225
          - - 8340
            - 1225
          - - 8340
            - 4315
          - - 7580
            - 4315
          - - 7580
            - 4225
          - - 5610 
            - 4225
      - id: '5'
        icon:
          name: mdi:broom
          x: 600
          'y': -400
        label:
          text: '主卫'
          x: 600
          'y': -400
          offset_x: 35
        outline:
          - - -700
            - -1035
          - - 1700
            - -1035
          - - 1700
            - -65
          - - 1200
            - -65
          - - 1200
            - 85
          - - 770
            - 85
          - - 400
            - 315
          - - -700
            - 315
      - id: '6'
        icon:
          name: mdi:broom
          x: -3025
          'y': 600
        label:
          text: '主卧'
          x: -3025
          'y': 600
          offset_y: 35
        outline:
          - - -4850
            - -1035
          - - -850
            - -1035
          - - -850
            - 2120
          - - -2000
            - 2120
          - - -2000
            - 2250
          - - -4850
            - 2250
      - id: '7'
        icon:
          name: mdi:broom
          x: 225
          'y': 1225
        label:
          text: '公卫'
          x: 225
          'y': 1225
          offset_y: 35
        outline:
          - - -600
            - 465
          - - 1200
            - 465
          - - 1200
            - 1470
          - - 1050
            - 1470
          - - 1050
            - 2120
          - - -600
            - 2120
      - id: '8'
        icon:
          name: mdi:broom
          x: 3400
          'y': 2225
        label:
          text: '客厅'
          x: 3400
          'y': 2225
          offset_y: 35
        outline:
          - - 1850
            - 265
          - - 5610
            - 265
          - - 5610
            - 4225
          - - 1120
            - 4225
          - - 1120
            - 2270
          - - 1450
            - 2270
          - - 1450
            - 465
          - - 1850
            - 465
    variables: {}

I have tried to regenerate the card and the corresponding Vancum platform, and found that it is working properly, perhaps due to my previous settings or operation errors. Thank you for your answer