vacuum_clean_segment for default(xiaomiMiio) uses vacuum.send_command instead of documented xiaomi_miio.vacuum_clean_segment
bartowl opened this issue · 9 comments
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
Despite Documentation when I load up the card and configure rooms, this is what "copy service call" reports (which of course does not work):
{
"domain": "vacuum",
"service": "send_command",
"serviceData": {
"command": "app_segment_clean",
"entity_id": "vacuum.roborock_vacuum_m1s",
"params": [
{
"segments": [
17
],
"repeat": 1
}
]
}
}
It should use xiaomi_miio.vacuum_clean_segment
and not vacuum.send_command
What version of a card has described problem?
v2.2.2
What was the last working version card?
No response
What vacuum model do you have problems with?
roborock.vacuum.m1s
Which integration do you use to control your vacuum (link)?
https://www.home-assistant.io/integrations/xiaomi_miio/
What browser (browsers/apps) does have this problem?
Edge/Chrome
What version of Home Assistant do you use?
core-2024.2.3
What type of installation are you running?
Home Assistant Container
Card's configuration
type: custom:xiaomi-vacuum-map-card
entity: vacuum.roborock_vacuum_m1s
vacuum_platform: default
map_source:
camera: camera.xiaomi_cloud_map_extractor
calibration_source:
camera: true
map_locked: true
map_modes:
- template: vacuum_clean_segment
predefined_selections:
- id: 17
label:
text: Room
x: 31200
'y': 24000
outline:
- - 29150
- 20350
- - 32500
- 20350
- - 32500
- 25950
- - 29150
- 25950
- template: vacuum_goto
Javascript errors shown in the browser's console (if applicable)
No response
Additional information
No response
Located the problem here:
expected (working) event would be:
event_type: call_service
data:
domain: xiaomi_miio
service: vacuum_clean_segment
service_data:
entity_id:
- vacuum.roborock_vacuum_m1s
segments:
- 17
I'm not sure about where to put (and if it will work) the repeat
though...
This has been done on purpose as a workaround for a bug in HA. Apparently this workaround doesn't work with all vacuums
Hmm, found the commit a3e9f48
Question is - is this issue stil present? If yes, would it be possible to create an alternative profile that does use xiaomi_miio.vacuum_clean_segment
? I mean - that's why there are those profiles for (btw great idea to deal with this topic!)
Ok, managed to write a workaround by not using template but static code, should someone else be interested.
Basicaly I needed to replace:
- template: vacuum_clean_segment
predefined_selections:
- id: 17
...
with
- name: Rooms
icon: mdi:floor-plan
run_immediately: false
coordinates_rounding: true
coordinates_to_meters_divider: 1000
selection_type: ROOM
id_type: number
max_selections: 999
repeats_type: REPEAT
max_repeats: 3
service_call_schema:
service: xiaomi_miio.vacuum_clean_segment
service_data:
segments: "[[selection]]"
entity_id: "[[entity_id]]"
predefined_selections:
- id: 17
...
This works for me. It is then up to you if what you decide to do with this. With my vacuum vacuum.send_command does not seem to work though.
You can use this workaround instead:
- template: vacuum_clean_segment
service_call_schema:
service: xiaomi_miio.vacuum_clean_segment
service_data:
segments: "[[selection]]"
entity_id: "[[entity_id]]"
predefined_selections:
- id: 17
...
Even better, thanks!