eliogrin
(Illia Grynov)
January 24, 2024, 4:48am
41
I just manage to configure my Roidmi Eva in Home Assistant.
Will try to put step-by-step instruction here, hope it will save some of your time.
Generally you need to have 3 HACS plugins and 3 configuration to be done:
0. Connect Roidmi Eva to Mi Home app
Install “Mi Home” for Android or iOs .
Add Roidmi Eva to “Mi Home” app (instruction ).
1. Add Roidmi Eva device to Home Assistant to be able to control vacuum
In your Home Assistant using HACS download “Xiaomi Miot Auto” Integration
Go to Settings → “Device & Services”, add and configure “Xiaomi Miot Auto ” integration.
Make sure to not filter out Roidmi Eva (if filter is “include” you should check vacuum and vice versa).
As a final verification: you should have new vacuum device added to Home Assistant and you should be able to run cleaning and track status.
2. Add Vacuum Map as a camera device to be able to see the map
In your Home Assistant using HACS download “Xiaomi Cloud Map Extractor ” Integration.
Go to Developer tools → States search for “vacuum” or open Roidmi Eva attributes for Lan IP value. (It will be better to make it static on your router settings). Save your device IP.
Go to Developer tools → Service, select service “Xiaomi Miot Auto: Get token”, put device IP address as a name and click “Call Service”. Save your Device Token.
Add to configuration.yaml next setting:
camera:
- platform: xiaomi_cloud_map_extractor
name: Roidmi Eva Vacuum Map
host: !secret xiaomi_vacuum_host
token: !secret xiaomi_vacuum_token
username: !secret xiaomi_cloud_username
password: !secret xiaomi_cloud_password
country: cn
auto_update: true
scan_interval: 10
force_api: roidmi
draw: ["all"]
attributes:
- calibration_points
- charger
- country
- map_name
- room_numbers
- rooms
- vacuum_position
Put to your secrets.yaml file:
xiaomi_vacuum_host: 192.168.1.100 # Device IP address
xiaomi_vacuum_token: 12345678901234567890123456789123 # Device Token
xiaomi_cloud_username: [email protected] # You Mi Home user email
xiaomi_cloud_password: password # Your Mi Home User password
As a final verification: you should have new camera device added to Home Assistant and you should be able to see picture of your vacuum map.
3. Add Lovelace plugin to be able to clean specific room
In your Home Assistant using HACS download “Xiaomi Vacuum Map Card ” Lovelace integration.
Go to dashboard where you want to add a card.
Click “Add Card” and select “Vacuum Map Card configurator”.
Vacuum and camera entities should be selected automatically, if no, please do it.
Set Vacuum Platform to “al-one/hass-xiaomi-miot”
Click “Generate Static Config”.
Click “Generate Room Config”.
Click to “Show Code Editor”.
If you need “Zone Cleanup” replace it with code below, otherwise you can remove this section.
- 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: {}
If you need “Pin & Go” replace it with code below, otherwise you can remove this section. You can change “point_size” to make area bigger or smaller. Generally according to logs point cleaning is working just like regular zone cleanup with 1600(800*2) perimeter around the point you selected.
- 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
In “Rooms” map mode replace service_call_schema with next code:
service_call_schema:
service: xiaomi_miot.call_action
service_data:
entity_id: '[[entity_id]]'
siid: 14
aiid: 1
params:
- 2
- '{"mapId":[[mapId]],"segmentId":[[selection]]}'
Remove “max_repeats” and “repeats_type”, as double cleaning should be send as a separate request, you can add it by adding this icon:
- 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
On the top level add map id configuration, best instruction which I found so far is here :
internal_variables:
mapId: 1234567890
Special thanks to:
@Jask747 - for many comments and ideas posted here.
@bouyssic - for testing instruction.
1 Like
Hello, our Roidmi has its “car park” approx. 2 m away from the base station. With an automation system, it drives from there to the base station for recharging when the battery level is below 30%. Unfortunately, it stays there until we use the Xioami app on the smartphone in remote control mode to drive back to its garage.
Could someone please tell me how he can drive to a certain position automatically? I’ve already tried a few commands in HA developer mode, but unfortunately the Roidmi doesn’t follow them.
Btomas
(Tomas)
January 24, 2024, 1:04pm
44
Nice. Could you add liks to hacs integratios? Tx
eliogrin
(Illia Grynov)
January 24, 2024, 2:57pm
45
it it s there, I put it as a link in plugin name.
VietNgoc
(Ngoc John)
January 24, 2024, 5:56pm
46
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
# xiaomi_vacuum:
homeassistant:
customize:
vacuum.roidmi_eve:
miot_local: true # Force to read and write data in LAN
miot_cloud: false # Enable miot cloud for entity (read, write, action)
miot_cloud_write: true # (Optional) Enable miot cloud (only write)
miot_cloud_action: true # (Optional) Enable miot cloud (only action)
sensor.vacuum_cleaner_battery_level:
friendly_name: 'Charge level'
icon: 'mdi:battery'
sensor.vacuum_charging_state:
friendly_name: 'Charging status'
icon: 'mdi:state-machine'
sensor.vacuum_status:
friendly_name: 'Mode of operation'
icon: 'mdi:state-machine'
sensor.vacuum_status_fix:
friendly_name: 'Vacuum Cleaner Status'
icon: 'mdi:autorenew'
This file has been truncated. show original
popup
eliogrin
(Illia Grynov)
January 24, 2024, 6:16pm
47
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.
eliogrin
(Illia Grynov)
January 30, 2024, 3:54pm
48
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…
eliogrin
(Illia Grynov)
January 31, 2024, 7:08pm
49
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
bouyssic
(Bouyssic)
March 11, 2024, 7:36pm
50
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
eliogrin
(Illia Grynov)
March 13, 2024, 6:10pm
51
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.
1 Like
bouyssic
(Bouyssic)
March 13, 2024, 9:37pm
52
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
bouyssic
(Bouyssic)
March 14, 2024, 8:15am
53
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…
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
eliogrin
(Illia Grynov)
March 14, 2024, 4:40pm
54
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
eliogrin
(Illia Grynov)
March 27, 2024, 4:07pm
56
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?
eliogrin
(Illia Grynov)
April 11, 2024, 4:36pm
60
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
ulfg
April 13, 2024, 6:02pm
61
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
eliogrin
(Illia Grynov)
April 15, 2024, 2:58pm
62
There is already topic about Roidmi Eva. Honestly I got many ideas from that implementation:
There is a nice intergration.
It has some minor mistakes but can be corrected easily.
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:
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
[CleanShot 2024-01-24 at 18.52.30@2x]
popup
[CleanShot 2024-01-24 at 18.41.17@2x]
1 Like