Support for Mijia M40 (xiaomi.vacuum.d110ch)
Checklist
- [x] I have updated the integration to the latest version available
- [x] I have checked if the vacuum/platform is already requested
- [ ] I have sent raw map file to
piotr.machowski.dev [at] gmail.com(Retrieving map; please provide your GitHub username in the email)
What vacuum model do you want to be supported?
xiaomi.vacuum.d110ch
What is its name?
Xiaomi Mijia M40
Available APIs
- [ ] xiaomi
- [ ] viomi
- [ ] roidmi
- [ ] dreame
Errors shown in the HA logs (if applicable)
not sent raw of map bc it's not stored
Other info
Hello, Piotr. Big thanks for your hard work and awesome integration! Please if you can add support for this vacuum robot
Any logs?
Any logs?
I'm sorry i see only this in home assistant core logs
2025-02-24 22:16:41.602 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Logging in...
2025-02-24 22:16:42.026 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Logged in
2025-02-24 22:16:42.026 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieving map from Xiaomi cloud
2025-02-24 22:16:43.770 WARNING (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Unable to retrieve map data
i will provide any data or information if you need just tell me what to do
config is look like this
camera:
- platform: xiaomi_cloud_map_extractor host: correct ip token: correct token username: mihome email password: mihome password name: "mijia_m40_map" draw: ['all'] country: "cn" store_map_raw: "true" store_map_image: "true" store_map_path: "/tmp"
i've added this to my config
logger: default: info logs: custom_components.xiaomi_cloud_map_extractor: debug
if i use force_api: "xiaomi"
2025-02-24 22:26:25.887 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieved device model: xiaomi.vacuum.d110ch
2025-02-24 22:26:25.887 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Created device, used api: xiaomi
2025-02-24 22:26:25.887 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Asking device for map name... (1/10)
2025-02-24 22:26:25.930 WARNING (SyncWorker_7) [miio.device] Found an unsupported model 'xiaomi.vacuum.d110ch' for class 'RoborockVacuum'. If this is working for you, please open an issue at https://github.com/rytilahti/python-miio/
2025-02-24 22:28:56.563 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Asking device for map name... (10/10)
2025-02-24 22:29:12.627 WARNING (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Got exception while fetching the state: Unable to recover failed command
if i use force_api: "dreame"
2025-02-24 22:29:12.876 DEBUG (SyncWorker_7) [custom_components.xiaomi_cloud_map_extractor.camera] Unable to retrieve map, reasons: Logged in - True, map name - retry, device retrieved - True
2025-02-24 22:29:12.941 DEBUG (SyncWorker_6) [custom_components.xiaomi_cloud_map_extractor.camera] Logging in...
2025-02-24 22:29:13.452 DEBUG (SyncWorker_6) [custom_components.xiaomi_cloud_map_extractor.camera] Logged in
2025-02-24 22:29:13.452 DEBUG (SyncWorker_6) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieving device info, country: cn
2025-02-24 22:29:14.521 DEBUG (SyncWorker_6) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieved device model: xiaomi.vacuum.d110ch
2025-02-24 22:29:14.521 DEBUG (SyncWorker_6) [custom_components.xiaomi_cloud_map_extractor.camera] Created device, used api: dreame
2025-02-24 22:29:14.521 DEBUG (SyncWorker_6) [custom_components.xiaomi_cloud_map_extractor.camera] Retrieving map from Xiaomi cloud
2025-02-24 22:29:15.796 WARNING (SyncWorker_6) [custom_components.xiaomi_cloud_map_extractor.camera] Unable to retrieve map data
I've tried to install latest alpha version from HACS and when add device from ui if select "dreame" it successfully added but map still not loading
2025-02-24 22:49:26.140 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.vacuums.base.vacuum_base] Downloading map...
2025-02-24 22:49:26.433 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.xiaomi_cloud.connector] Downloading raw map from "https://cnbj2.fds.api.xiaomi.com/dreame.vacuum.mc1808.info/1597535246/1150170780/0?Expires=1740428366000&GalaxyAccessKeyId=EAK2SDFZGTODL&Signature=EVQfn029iBKerDXJom7qzHAAj+c="...
2025-02-24 22:49:26.734 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.xiaomi_cloud.connector] Downloading the map failed. Status: (404).
2025-02-24 22:49:26.734 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.xiaomi_cloud.connector] Downloading the map failed. Text: (Object Not Found: Make sure your object exist in current region, object name: 1597535246/1150170780/0, region=cnbj2, request-id=36b2ffcc-eed5-42c6-0000-01953981db70).
2025-02-24 22:49:26.734 ERROR (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.vacuums.base.vacuum_base] FailedMapDownloadException
2025-02-24 22:49:26.734 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.coordinator] Finished fetching xiaomi_cloud_map_extractor data in 0.595 seconds (success: True)
2025-02-24 22:49:36.140 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector] Downloading new map.
2025-02-24 22:49:36.141 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector] Downloading map...
2025-02-24 22:49:36.141 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.vacuums.base.vacuum_base] Getting map name...
2025-02-24 22:49:36.141 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.vacuums.base.vacuum_base] Got map name: "0".
2025-02-24 22:49:36.141 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.vacuums.base.vacuum_base] Downloading map...
2025-02-24 22:49:36.438 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.xiaomi_cloud.connector] Downloading raw map from "https://cnbj2.fds.api.xiaomi.com/dreame.vacuum.mc1808.info/1597535246/1150170780/0?Expires=1740428376000&GalaxyAccessKeyId=EAK2SDFZGTODL&Signature=EyMICM5kC5NB7r9kKgzJH0IqDuE="...
2025-02-24 22:49:36.741 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.xiaomi_cloud.connector] Downloading the map failed. Status: (404).
2025-02-24 22:49:36.741 DEBUG (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.xiaomi_cloud.connector] Downloading the map failed. Text: (Object Not Found: Make sure your object exist in current region, object name: 1597535246/1150170780/0, region=cnbj2, request-id=3191d80e-29f5-4c02-0000-019539820215).
2025-02-24 22:49:36.741 ERROR (MainThread) [custom_components.xiaomi_cloud_map_extractor.connector.vacuums.base.vacuum_base] FailedMapDownloadException
+1
@zemean you can use dreame Vacuum integration from HACS - works perfect for mijia m40
@demonaxxx I have the same problem you had before. I using v2.2.3. I use force_api: "dreame", but still Unable to retrieve map data.
@zemean you talking about Xiaomi-Cloud-Map-Extractor! Just delete it and forget!
Go to HACS (if you don't know what it is - google) and in HACS you need to find integration "Dreame vacuum". This integration have identical functionality and it works with our (mijia m40) robot
@PiotrMachowski latest generation Mijia vacuums are using a different object store. You need to detect those devices and get the map data from following api services instead;
/v2/home/get_interim_file_url_pro
/home/getfileurl_v3
Thanks, @Tasshack 👍