Roidmi EVA Integration

Nice. Could you add liks to hacs integratios? Tx

it it s there, I put it as a link in plugin name.

Hello, somewhere I got some practical instructions on how to operate the vacuum cleaner. I can’t find the link, but I’ve processed it myself. Practically they are all available there as in the mi home app.

for some commands you need to get the DID number, which you can get through the miiot service in HA

popup

I believe it’s an issues with Roidmi EVE when trying to operate with local request. In case of Roidmi EVA I didn’t faced this issue. But maybe it’s a case for others, so thank you for posting it here.

Ok, as promise putting some updates,
I was able to add few useful buttons for double clean, find vacuum and rug avoidance:

Just change: vacuum.roidmi_eva_vacuum to your vacuum entity_id

icons:
  - icon: mdi:land-plots-marker
    tooltip: Find robot
    tap_action:
      action: call-service
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_eva_vacuum
        siid: 8
        aiid: 1
  - icon: mdi:numeric-2-box-multiple-outline
    tooltip: Clean area twice
    conditions:
      - entity: vacuum.roidmi_eva_vacuum
        attribute: custom.double_clean
        value: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_eva_vacuum
        siid: 8
        piid: 20
        value: false
  - icon: mdi:numeric-1-box-outline
    tooltip: Clean area once
    conditions:
      - entity: vacuum.roidmi_eva_vacuum
        attribute: custom.double_clean
        value_not: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_eva_vacuum
        siid: 8
        piid: 20
        value: true
  - icon: mdi:checkbox-blank-outline
    tooltip: Avoid rug
    conditions:
      - entity: vacuum.roidmi_eva_vacuum
        attribute: custom.rug_avoid
        value: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_eva_vacuum
        siid: 8
        piid: 31
        value: false
  - icon: mdi:rug
    tooltip: Clean rugs
    conditions:
      - entity: vacuum.roidmi_eva_vacuum
        attribute: custom.rug_avoid
        value_not: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_eva_vacuum
        siid: 8
        piid: 31
        value: true

Still working to figurate how to clean manually selected area via Xiaomi map integration…

Ok, I was able to figurate how to configure selected area cleaning.
Just add this to “map_modes” and be sure to update [[mapId]]:

  - name: Zone cleanup
    icon: mdi:select-drag
    selection_type: MANUAL_RECTANGLE
    service_call_schema:
      evaluate_data_as_template: true
      service: xiaomi_miot.call_action
      service_data:
        entity_id: '[[entity_id]]'
        siid: 14
        aiid: 1
        params:
          - 2
          - >-
            {"MapId":[[mapId]],"ExtraAreas":[{"vertexs":[[{% set
            s=[[[selection_unwrapped]]]
            %}{{s[0]}},{{s[3]}}],[{{s[2]}},{{s[3]}}],[{{s[2]}},{{s[1]}}],[{{s[0]}},{{s[1]}}]],"active":"normal","mode":"area"}]}
    predefined_selections: []
    variables: {}

Based on this discussion: Xiaomi MIoT configs · PiotrMachowski/lovelace-xiaomi-vacuum-map-card · Discussion #406 · GitHub

Hello @eliogrin ,

Thanks for all your comments on this thread. I’m trying to make it work on my end, but whatever I do, my Eva is just starting sweep without taking into account my selections on the screen.

If you still have it, would you mind sharing the whole card code with me?

I’d like to better understand the indentation and make sure I understand where you pasted some of your code you shared.

Much appreciated
Chris

Yes, I definitely can share it here:

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.roidmi_eva_vacuum_map
entity: vacuum.roidmi_v66_602e_robot_cleaner
internal_variables:
  map_id: 1702677612
calibration_source:
  camera: true
vacuum_platform: al-one/hass-xiaomi-miot
map_locked: true
map_modes:
  - name: Rooms
    icon: mdi:floor-plan
    run_immediately: false
    selection_type: ROOM
    id_type: number
    max_selections: 10
    service_call_schema:
      service: xiaomi_miot.call_action
      evaluate_data_as_template: true
      service_data:
        entity_id: '[[entity_id]]'
        siid: 14
        aiid: 1
        params:
          - 2
          - '{"mapId":[[map_id]],"segmentId":[[selection]]}'
    predefined_selections:
      - id: '1'
        icon:
          name: mdi:door-closed
          x: 3149.9997097998857
          'y': -5975.0003553926945
        label:
          text: Hallway
          x: 3149.9997097998857
          'y': -5975.0003553926945
          offset_y: 35
        outline:
          - - 2374.999698251486
            - -7175.000373274088
          - - 3924.9997213482857
            - -7175.000373274088
          - - 3924.9997213482857
            - -4775.000337511301
          - - 2374.999698251486
            - -4775.000337511301
      - id: '2'
        icon:
          name: mdi:bunk-bed-outline
          x: -625.0003464519978
          'y': 2699.999773874879
        label:
          text: Kid’s bedroom
          x: -625.0003464519978
          'y': 2699.999773874879
          offset_y: 35
        outline:
          - - -2425.000373274088
            - 474.9997407197955
          - - 1174.9996803700924
            - 474.9997407197955
          - - 1174.9996803700924
            - 4924.9998070299625
          - - -2425.000373274088
            - 4924.9998070299625
      - id: '3'
        icon:
          name: mdi:bed-double-outline
          x: 6299.9997567385435
          'y': 2974.999777972698
        label:
          text: Master bedroom
          x: 6299.9997567385435
          'y': 2974.999777972698
          offset_y: 35
        outline:
          - - 3224.999710917473
            - 524.9997414648536
          - - 9374.999802559614
            - 524.9997414648536
          - - 9374.999802559614
            - 5424.999814480543
          - - 3224.999710917473
            - 5424.999814480543
      - id: '4'
        icon:
          name: mdi:countertop-outline
          x: 624.9996721744537
          'y': -4525.000333786011
        label:
          text: Kitchen
          x: 624.9996721744537
          'y': -4525.000333786011
          offset_y: 35
        outline:
          - - -875.000350177288
            - -5475.000347942114
          - - 2124.9996945261955
            - -5475.000347942114
          - - 2124.9996945261955
            - -3575.000319629907
          - - -875.000350177288
            - -3575.000319629907
      - id: '5'
        icon:
          name: mdi:shower
          x: 2424.999698996544
          'y': 2224.9997667968278
        label:
          text: Bathroom
          x: 2424.999698996544
          'y': 2224.9997667968278
          offset_y: 35
        outline:
          - - 1974.9996922910213
            - 1424.9997548758986
          - - 2874.9997057020664
            - 1424.9997548758986
          - - 2874.9997057020664
            - 3024.9997787177567
          - - 1974.9996922910213
            - 3024.9997787177567
      - id: '6'
        icon:
          name: mdi:shower-head
          x: 2324.9996975064278
          'y': 4249.999796971679
        label:
          text: Master Bathroom
          x: 2324.9996975064278
          'y': 4249.999796971679
          offset_y: 35
        outline:
          - - 1324.9996826052666
            - 3124.999780207873
          - - 3324.999712407589
            - 3124.999780207873
          - - 3324.999712407589
            - 5374.999813735485
          - - 1324.9996826052666
            - 5374.999813735485
      - id: '7'
        icon:
          name: mdi:sofa-outline
          x: 5674.999747425318
          'y': -4275.00033006072
        label:
          text: Living room
          x: 5674.999747425318
          'y': -4275.00033006072
          offset_y: 35
        outline:
          - - 3424.999713897705
            - -7175.000373274088
          - - 7924.999780952931
            - -7175.000373274088
          - - 7924.999780952931
            - -1375.0002868473528
          - - 3424.999713897705
            - -1375.0002868473528
      - id: '8'
        icon:
          name: mdi:table-chair
          x: 1049.9996785074472
          'y': -1075.0002823770044
        label:
          text: Dining room
          x: 1049.9996785074472
          'y': -1075.0002823770044
          offset_y: 35
        outline:
          - - -1375.0003576278687
            - -3575.000319629907
          - - 3474.999714642763
            - -3575.000319629907
          - - 3474.999714642763
            - 1424.9997548758986
          - - -1375.0003576278687
            - 1424.9997548758986
    variables: {}
  - name: Manual Zone
    icon: mdi:select-drag
    selection_type: MANUAL_RECTANGLE
    max_selections: 1
    service_call_schema:
      evaluate_data_as_template: true
      service: xiaomi_miot.call_action
      service_data:
        entity_id: '[[entity_id]]'
        siid: 14
        aiid: 1
        params:
          - 2
          - >-
            {"MapId":[[map_id]],"ExtraAreas":[{"vertexs":[[{% set
            s=[[[selection_unwrapped]]]
            %}{{s[0]}},{{s[3]}}],[{{s[2]}},{{s[3]}}],[{{s[2]}},{{s[1]}}],[{{s[0]}},{{s[1]}}]],"active":"normal","mode":"area"}]}
    variables: {}
    predefined_selections: []
  - name: Single Point
    icon: mdi:map-marker-radius-outline
    selection_type: MANUAL_POINT
    run_immediately: true
    service_call_schema:
      evaluate_data_as_template: true
      service: xiaomi_miot.call_action
      service_data:
        entity_id: '[[entity_id]]'
        siid: 14
        aiid: 1
        params:
          - 4
          - >-
            {"MapId":[[map_id]],"ExtraAreas":[{"id":301,"tag":"5","vertexs":[[{{[[point_x]]-[[point_size]]}},{{[[point_y]]+[[point_size]]}}],[{{[[point_x]]+[[point_size]]}},{{[[point_y]]+[[point_size]]}}],[{{[[point_x]]+[[point_size]]}},{{[[point_y]]-[[point_size]]}}],[{{[[point_x]]-[[point_size]]}},{{[[point_y]]-[[point_size]]}}]],"active":"normal","mode":"point"}]}
    predefined_selections: []
    variables:
      point_size: 800
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: cleaning
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: error
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: returning
    tooltip: Start
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
  - icon: mdi:stop
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: docked
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: idle
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: error
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: paused
    tooltip: Stop
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: docked
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        value_not: returning
    tooltip: Return to base
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
  - menu_id: fan_speed
    icon: mdi:fan-remove
    label: Silent
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value: Silent
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        fan_speed: Silent
  - menu_id: fan_speed
    icon: mdi:fan-speed-1
    label: Basic
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value: Basic
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        fan_speed: Basic
  - menu_id: fan_speed
    icon: mdi:fan-speed-2
    label: Strong
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value: Strong
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        fan_speed: Strong
  - menu_id: fan_speed
    icon: mdi:fan-speed-3
    label: Full Speed
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value: Full Speed
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        fan_speed: Full Speed
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: Sweep
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value: Sweep
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        fan_speed: Sweep
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value_not: Silent
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value_not: Basic
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value_not: Strong
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value_not: Full Speed
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: fan_speed
        value_not: Sweep
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        fan_speed: Silent
  - icon: mdi:land-plots-marker
    tooltip: Find robot
    tap_action:
      action: call-service
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        aiid: 1
  - icon: mdi:auto-download
    tooltip: Auto clean vacuum
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: custom.work_station_freq
        value_not: '0'
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        piid: 2
        value: 0
  - icon: mdi:download-off
    tooltip: Manual vacuum clean
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: custom.work_station_freq
        value: '0'
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        piid: 2
        value: 1
  - icon: mdi:download-box-outline
    tooltip: Clear vacuum
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: custom.work_station_freq
        value: '0'
    tap_action:
      action: call-service
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        aiid: 6
  - icon: mdi:checkbox-blank-outline
    tooltip: Avoid Rug
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: custom.rug_avoid
        value: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        piid: 31
        value: false
  - icon: mdi:rug
    tooltip: Clean rugs
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: custom.rug_avoid
        value_not: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        piid: 31
        value: true
  - icon: mdi:numeric-2-box-multiple-outline
    tooltip: Clean area twice
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: custom.double_clean
        value: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        piid: 20
        value: false
  - icon: mdi:numeric-1-box-outline
    tooltip: Clean area once
    conditions:
      - entity: vacuum.roidmi_v66_602e_robot_cleaner
        attribute: custom.double_clean
        value_not: true
    tap_action:
      action: call-service
      service: xiaomi_miot.set_miot_property
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 8
        piid: 20
        value: true
  - icon: mdi:cloud-refresh-variant-outline
    tooltip: Refresh
    tap_action:
      action: call-service
      service: homeassistant.update_entity
      target:
        entity_id: camera.roidmi_eva_vacuum_map
tiles:
  - tile_id: status
    entity: vacuum.roidmi_v66_602e_robot_cleaner
    label: Status
    attribute: vacuum.status_desc
    icon: mdi:robot-vacuum
  - tile_id: status
    entity: vacuum.roidmi_v66_602e_robot_cleaner
    label: Sweep Type
    attribute: vacuum.sweep_type
    icon: mdi:broom
    translations:
      '0': Sweep
      '1': Mop
      '2': Mop And Sweep
  - tile_id: battery_level
    entity: sensor.roidmi_v66_602e_battery_level
    label: Battery
    icon_source: sensor.roidmi_v66_602e_battery_level
  - tile_id: main_brush_level
    entity: vacuum.roidmi_v66_602e_robot_cleaner
    attribute: brush_cleaner.brush_life_level
    unit: '%'
    label: Main brush
    icon: mdi:spirit-level
    tap_action:
      action: call-service
      confirmation:
        text: Are you sure you replaced Main Brush?
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 11
        aiid: 1
  - tile_id: side_brush_level
    entity: vacuum.roidmi_v66_602e_robot_cleaner
    attribute: brush_life_level-12-2
    unit: '%'
    label: Side brush
    icon: mdi:ceiling-fan
    tap_action:
      action: call-service
      confirmation:
        text: Are you sure you replaced Side Brush?
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 12
        aiid: 1
  - tile_id: sensor_level
    entity: vacuum.roidmi_v66_602e_robot_cleaner
    attribute: brush_life_level-15-2
    unit: '%'
    label: Sensors
    icon: mdi:leak
    tap_action:
      action: call-service
      confirmation:
        text: Are you sure you wiped sensor?
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 15
        aiid: 1
  - tile_id: mop_level
    entity: vacuum.roidmi_v66_602e_robot_cleaner
    label: Mop
    attribute: mop.mop_life_level
    unit: '%'
    icon: mdi:liquid-spot
    tap_action:
      action: call-service
      confirmation:
        text: Are you sure you washed Mops?
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 16
        aiid: 1
  - tile_id: filter_level
    entity: vacuum.roidmi_v66_602e_robot_cleaner
    attribute: filter.filter_life_level
    unit: '%'
    label: Filter
    icon: mdi:air-filter
    tap_action:
      action: call-service
      confirmation:
        text: Are you sure you replaced Filter?
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.roidmi_v66_602e_robot_cleaner
        siid: 10
        aiid: 1
  - title_id: clean_tank
    entity: binary_sensor.vacuum_clean_tank
    label: Clean tank
    conditions:
      - entity: binary_sensor.vacuum_clean_tank
        value_not: 'on'
  - title_id: sewage_tank
    entity: binary_sensor.vacuum_sewage_tank
    label: Sewage tank
    conditions:
      - entity: binary_sensor.vacuum_sewage_tank
        value_not: 'on'
additional_presets: []

To use it, you need bulk rename of:

  • camera.roidmi_eva_vacuum_map - camera entity.
  • vacuum.roidmi_v66_602e_robot_cleaner - vacuum cleaner entity.
  • 1702677612 - you map id.

The important note here is that you need to get you Map_ID, there is only way for now is get it from the logs in modified Mi Home app. I wasn’t able to find better way, and even it’s a recommended approach from plugin developer. If you will not get it - it will not work for you.

Thank you sir ! I will give it a try tomorrow most probably and let you know.

Not sure the kids will like me if I start sweeping at 10.30pm ^^.

To use it, you need bulk rename of

Not only that, but also change all the zones ^^

The important note here is that you need to get you Map_ID

Yes I got that too and have written it down, I’ll check indentation compared to mine and make sure I put all sections in the correct place.

Again, thanks a lot, much appreciated.

1 Like

Man I feel dumb… Everything I had setup was right. Everything except the internal_variables part.

I defined a mapID … but was using map_id in my service data… :face_exhaling: :face_with_head_bandage: :man_facepalming:

That’s it… In anycase, @eliogrin thanks a lot, since if I didn’t compare your file to mine I probably would have spent a month troubleshooting my mistake.

Everything is working now

I just review my instruction, and there was mistake there. I fixed it now.
Thank you for testing it and glad that you was able to set it up. Let me know if you have any questions or ideas regarding this configuration.

Hi @eliogrin,
Excellent topic, my card is working fine, I have two cleaning modes configured, Zone and Rooms, but I need help configuring two maps, my house has two floors.

I don’t know if this would be the correct topic because my robot vacuum cleaner is this model IMILAB V1 Vacuuming Robot chuangmi.vacuum.hmi707 - 小米/米家产品库 - Xiaomi Miot Spec

And the only configuration that worked well on it was using the camera with force_api: roidmi

I’m trying to understand how to use two maps, I tried using load_multi_map but without success.

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.imilab_v1_vacuuming_robot
calibration_source:
  camera: true
entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
vacuum_platform: al-one/hass-xiaomi-miot
title: ''
map_locked: true
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: cleaning
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: error
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: returning
    tooltip: Start
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
  - icon: mdi:stop
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: docked
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: idle
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: error
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: paused
    tooltip: Stop
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: docked
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        value_not: returning
    tooltip: Return to base
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
  - menu_id: fan_speed
    icon: mdi:fan-alert
    label: Mop
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value: Mop
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        fan_speed: Mop
  - menu_id: fan_speed
    icon: mdi:fan-remove
    label: Silent
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value: Silent
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        fan_speed: Silent
  - menu_id: fan_speed
    icon: mdi:fan-speed-1
    label: Basic
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value: Basic
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        fan_speed: Basic
  - menu_id: fan_speed
    icon: mdi:fan-speed-2
    label: Strong
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value: Strong
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        fan_speed: Strong
  - menu_id: fan_speed
    icon: mdi:fan-speed-3
    label: Full Speed
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value: Full Speed
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        fan_speed: Full Speed
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value_not: Mop
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value_not: Silent
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value_not: Basic
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value_not: Strong
      - entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        attribute: fan_speed
        value_not: Full Speed
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.chuangmi_hmi707_14d7_robot_cleaner
        fan_speed: Mop
tiles:
  - tile_id: battery_level
    entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
    label: Battery
    attribute: battery_level
    icon_source: vacuum.chuangmi_hmi707_14d7_robot_cleaner.attributes.battery_icon
    unit: '%'
  - tile_id: fan_speed
    entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
    label: Fan speed
    attribute: fan_speed
    icon: mdi:fan
    translations:
      silent: Silent
      standard: Standard
      medium: Medium
      turbo: Turbo
      auto: Auto
      gentle: Gentle
  - tile_id: status
    attribute: vacuum.status_desc
    label: Status
    icon: mdi:robot-vacuum
    entity: vacuum.chuangmi_hmi707_14d7_robot_cleaner
    precision: 0
    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
map_modes:
  - name: Zone cleanup
    icon: mdi:select-drag
    selection_type: MANUAL_RECTANGLE
    variables:
      map_id: 1695918782
    service_call_schema:
      evaluate_data_as_template: true
      service: xiaomi_miot.call_action
      service_data:
        entity_id: '[[entity_id]]'
        siid: 14
        aiid: 1
        params:
          - 2
          - >-
            {"MapId":[[mapId]],"ExtraAreas":[{"vertexs":[[{% set
            s=[[[selection_unwrapped]]]
            %}{{s[0]}},{{s[3]}}],[{{s[2]}},{{s[3]}}],[{{s[2]}},{{s[1]}}],[{{s[0]}},{{s[1]}}]],"active":"normal","mode":"area"}]}
  - template: vacuum_clean_segment
    variables:
      map_id: 1695918782
    max_selections: 5
    selection_type: ROOM
    repeats_type: NONE
    service_call_schema:
      service: xiaomi_miot.call_action
      service_data:
        entity_id: '[[entity_id]]'
        siid: 14
        aiid: 1
        params:
          - 2
          - '{"mapId":[[map_id]],"segmentId":[[[selection_unwrapped]]]}'
    predefined_selections:
      - id: '1'
        icon:
          name: mdi:broom
          x: -3449.9995801597834
          'y': -3625.0003464519978
        label:
          text: 'Escritório '
          x: -3449.9995801597834
          'y': -3625.0003464519978
          offset_y: 35
        outline:
          - - -5474.999610334635
            - -5425.000373274088
          - - -1424.999549984932
            - -5425.000373274088
          - - -1424.999549984932
            - -1825.0003196299076
          - - -5474.999610334635
            - -1825.0003196299076
      - id: '2'
        icon:
          name: mdi:broom
          x: 100.00047273933887
          'y': -2225.000325590372
        label:
          text: Sala jantar
          x: 100.00047273933887
          'y': -2225.000325590372
          offset_y: 35
        outline:
          - - -2774.9995701014996
            - -5175.000369548798
          - - 2975.0005155801773
            - -5175.000369548798
          - - 2975.0005155801773
            - 724.9997183680533
          - - -2774.9995701014996
            - 724.9997183680533
      - id: '3'
        icon:
          name: mdi:broom
          x: 4350.000536069274
          'y': -1700.0003177672625
        label:
          text: 'Cozinha '
          x: 4350.000536069274
          'y': -1700.0003177672625
          offset_y: 35
        outline:
          - - 2975.0005155801773
            - -4075.0003531575203
          - - 5725.000556558371
            - -4075.0003531575203
          - - 5725.000556558371
            - 674.9997176229953
          - - 2975.0005155801773
            - 674.9997176229953
      - id: '4'
        icon:
          name: mdi:broom
          x: -3449.9995801597834
          'y': -350.00029765069485
        label:
          text: Oficina
          x: -3449.9995801597834
          'y': -350.00029765069485
          offset_y: 35
        outline:
          - - -5474.999610334635
            - -1675.0003173947334
          - - -1424.999549984932
            - -1675.0003173947334
          - - -1424.999549984932
            - 974.9997220933436
          - - -5474.999610334635
            - 974.9997220933436
additional_presets: []

This is my second map

map_modes:
  - template: vacuum_clean_zone
  - template: vacuum_goto
  - template: vacuum_clean_segment
    predefined_selections:
      - id: '1'
        icon:
          name: mdi:broom
          x: -1575.0001184642315
          'y': -4949.999978765845
        label:
          text: Room1
          x: -1575.0001184642315
          'y': -4949.999978765845
          offset_y: 35
        outline:
          - - -3075.0001408159733
            - -5824.999991804361
          - - -75.0000961124897
            - -5824.999991804361
          - - -75.0000961124897
            - -4074.9999657273293
          - - -3075.0001408159733
            - -4074.9999657273293
      - id: '2'
        icon:
          name: mdi:broom
          x: 674.9999150633812
          'y': -4474.999971687794
        label:
          text: Room2
          x: 674.9999150633812
          'y': -4474.999971687794
          offset_y: 35
        outline:
          - - -1175.000112503767
            - -5774.999991059303
          - - 2524.9999426305294
            - -5774.999991059303
          - - 2524.9999426305294
            - -3174.999952316284
          - - -1175.000112503767
            - -3174.999952316284
      - id: '3'
        icon:
          name: mdi:broom
          x: -4400.000160560012
          'y': -2849.999947473407
        label:
          text: Room3
          x: -4400.000160560012
          'y': -2849.999947473407
          offset_y: 35
        outline:
          - - -5825.000181794167
            - -3474.9999567866325
          - - -2975.000139325857
            - -3474.9999567866325
          - - -2975.000139325857
            - -2224.999938160181
          - - -5825.000181794167
            - -2224.999938160181
      - id: '4'
        icon:
          name: mdi:broom
          x: -150.0000972300768
          'y': -2674.9999448657036
        label:
          text: Room4
          x: -150.0000972300768
          'y': -2674.9999448657036
          offset_y: 35
        outline:
          - - -1675.0001199543476
            - -3124.999951571226
          - - 1374.999925494194
            - -3124.999951571226
          - - 1374.999925494194
            - -2224.999938160181
          - - -1675.0001199543476
            - -2224.999938160181
      - id: '5'
        icon:
          name: mdi:broom
          x: 1649.9999295920134
          'y': -2374.999940395355
        label:
          text: Room5
          x: 1649.9999295920134
          'y': -2374.999940395355
          offset_y: 35
        outline:
          - - 774.9999165534973
            - -3024.99995008111
          - - 2524.9999426305294
            - -3024.99995008111
          - - 2524.9999426305294
            - -1724.9999307096004
          - - 774.9999165534973
            - -1724.9999307096004
      - id: '6'
        icon:
          name: mdi:broom
          x: -3750.000150874257
          'y': -1249.9999236315489
        label:
          text: Room6
          x: -3750.000150874257
          'y': -1249.9999236315489
          offset_y: 35
        outline:
          - - -5875.000182539225
            - -3074.999950826168
          - - -1625.0001192092896
            - -3074.999950826168
          - - -1625.0001192092896
            - 575.0001035630703
          - - -5875.000182539225
            - 575.0001035630703
      - id: '7'
        icon:
          name: mdi:broom
          x: -700.0001054257154
          'y': -699.9999154359102
        label:
          text: Room7
          x: -700.0001054257154
          'y': -699.9999154359102
          offset_y: 35
        outline:
          - - -1475.0001169741154
            - -1924.9999336898327
          - - 74.99990612268448
            - -1924.9999336898327
          - - 74.99990612268448
            - 525.0001028180122
          - - -1475.0001169741154
            - 525.0001028180122
      - id: '8'
        icon:
          name: mdi:broom
          x: 1224.9999232590199
          'y': -674.9999150633812
        label:
          text: Room8
          x: 1224.9999232590199
          'y': -674.9999150633812
          offset_y: 35
        outline:
          - - -75.0000961124897
            - -1724.9999307096004
          - - 2524.9999426305294
            - -1724.9999307096004
          - - 2524.9999426305294
            - 375.00010058283806
          - - -75.0000961124897
            - 375.00010058283806

Hi @afterdarky,
Yes, we are mainly focussed on discussing Roidmi Eva vacuum cleaner, and also I never played with multiple map configuration, so will not be able to help you a lot.
Any way from configuration which you sent I can see that in second example you miss service_call_schema and variable. I believe for second floor you will have different map_id, so you will need to extract both of them and use map_id corresponding to the floor.

Hi, I’m trying to get my mapid in order to use the area and room select features. When I click the link to the modified MiHome app, the page asks for a login username and password. Where else can I download this app? Or is there any other way to get the mapid?

Hi @hypnotoadskin,
Yes, I see the same login screen. But it should work if you will go to root folder with this link: https://mi.vevs.me/mihome/files/old/
There you should be able to choose and download any version of modified app. In most of the cases just download the latest version and it should work.

1 Like

Hi,
I have a Problem with my Eve CC. I know its not the same, but I didn’t want to start a new topic. I dont get the miio log files for the room. I tried a lot. Also there are some files containing my device info etc but no mapping. Its the smaller EVE (roidmi_v62). Also the Map doesn’t work, but there is an issue on github about this. Maybe the same underlying problem. If anyone would be able to help me, I would be thankful

There is already topic about Roidmi Eva. Honestly I got many ideas from that implementation:

I saw screenshots with working Roidmi Eva integration, so it should be possible to integrate. But also there is different specific issues, like in this comment:

1 Like

Oh man I haven’t gotten a notification about this. I’ll try it soon. Thank you so much!

Hi, thanks for the detailed instructions @eliogrin! I’ve been struggling to get my Eve Plus configured to use room cleaning from HA and the way you have described it for the Eva has been a great help!

I think I just need my MapId now to be able to finalise this, but like @hypnotoadskin I also get a login prompt for the vevs site :frowning:
Tried the link you provided as well as the original link without success.
Is there any way someone could share the apk directly somewhere??

Hope this helps someone else: I was able to find the Vevs modified APK here:

I actually installed the apk on an old Windows laptop under the Windows subsystem just to play it safe.
In this more recent version it’s a bit different from what was originally described:
you can find the logging option under profile>additional settings>laboratory>write custom log files.

I ran the Roidmi to one of the rooms in the map and I could find a json that listed the following:
“did”: “edited”,
“uid”: edited,
“token”: “edited”,
“name”: “Fred”,
“pid”: 0,
“localip”: “edited”,
“mac”: “edited”,
“ssid”: “edited”,
“bssid”: “34:97:F6:6D:03:02”,
“rssi”: -43,
“longitude”: “0.00000000”,
“latitude”: “0.00000000”,
“show_mode”: 1,
“model”: “roidmi.vacuum.v60”,
“permitLevel”: 16,
“isOnline”: true,
“spec_type”: “urn:miot-spec-v2:device:vacuum:0000A006:roidmi-v60:3”,
“extra”: {
“isSetPincode”: 0,
“pincodeType”: 0,
“fw_version”: “1.1.0_2404”,
“isSubGroup”: false,
“showGroupMember”: false,
“split”: {}
},
“orderTime”: 1684488763,
“freqFlag”: true,
“hide_mode”: 0,
“comFlag”: 129,
“carPicInfo”: “”,
“api_server”: “sg”,

but no mapid :frowning:
Am I correct in assuming I’m looking at the right json??

UPDATE: Nevermind :smiley:
After enabling the custom log file option be sure to log out of the app and back into it. Found a log file (txt not json: ‘YourDeviceID’.txt) with the MapID!

I’m jumping straight into my vacuum card now to make sure it works and I haven’t messed anything else up… So excited :smiley: