Custom Component: Dreame Vacuum

I think S10 is the same device with Mijia X10+? I plan to purchase the X10 but want to check if I can use this to control X10 by homekit.

S10 is the same device with the L10s Ultra.
dreame.vacuum.r2228 (S10)
dreame.vacuum.r2228o (L10s)

I think Dreame X10 is dreame.vacuum.p2114 or dreame.vacuum.p2114b
dreame.vacuum.p2114a (Mi robot Vacuum X10+)
dreame.vacuum.p2114o (Xiaomi Self-Cleaning Robot Vacuum-Mop)

All of the devices above are currently supported by this integration right now.

I check it from MIoT. Dreame X10 is dreame.vacuum.r2235
https://home.miot-spec.com/s/dreame%20x10

I finally tried it a little with the D9 and it seems to be working great with the map features :slight_smile: Thank you!

On the github page, I saw that in the future it will work with Dreame vacuum card. I was curious about it, but I can’t find it anywhere. Is this a card you are planning to make?

Dreame app uses different cloud protocol for authentication which is not available for 3rd party applications.
Integration will work as long as your device can be added to the Mi Home app.

And sadly the integration will only work as long as they do support xiaomi’s cloud. which i guess they won’t do for long anymore. because otherwise, whats the point in going their own route, already without 3rd party access?
The Xiaomi App is already not well supported anymore. No new Firmware-Updates, no Camera-Live-View-Integration.

Sorry to say, but this Integration has a Deadline nobody knows.

So i have to say i highly recommend to everyone not to buy Dreame Devices for usage with HA. At least without knowing their roadmap on this.
I myself own two. But i also own 2 Ecovacs. And Ecovacs even gives official support for their integration because they understand the importance of automation integration.

1 Like

I have checked the specs last week and those devices were missing at that time. I will update the supported devices according to the newly added devices. Thanks.

Thanks, do you think I can use this component for the X10 in feature (Maybe in two months)? BTW, when we use Homekit, is it a switch in Homekit?

Yes I will release a custom companion card tailor made for this integration.
Rendering map image with python take too much processing power because of that average sized map takes almost 1 second to render. For solving that issue i will develop a javascript based renderer to generate the map image on the front-end like the Valetudo map card does. Rendering map on browser also gives me opportunity to make it interactive same as on the App. Splitting and merging rooms would be available too so you wont need to use the App anymore for map editing.
It will not be available soon but this is on my roadmap for a long time.

2 Likes

Dreame is a Xiaomi owned brand and they insist on Dreame is being part of the ecosystem but Xiaomi acquired Dreame long after they started developing robot vacuums. There are still some compatibility issues with the Dreame devices because current miio cloud is designed for only accommodate the Roborock devices.
The devices are currently available on the Dreame app are pretty new and that is why firmware updates are not added to the Mi Cloud yet but i am sure it will be available on the future. I am also sure that the compatibility issues with the new features will be fixed by Dreame or Xiaomi and all features will be available on Mi Home app too otherwise Xiaomi cannot claim that Dreame is part of their ecosystem anymore.

I agree that every integration has its expiration date but it is not restricted to the Dreame devices. For example, Yeelight also has its owns app and it can be used with the Mi Home app simultaneously but Xiaomi dropped the local api feature from its firmware and result of that Yeelight bulbs cannot be control from the HA anymore with the official Yeelight integration.

At the end, these are cheaper Chinese products and development of these devices costs more money than actually producing them. There will be always cutting corners with the software development and you can clearly see that if you take a look at the App source code. It is very badly written and hard to maintain but this is what you get for the money that you paid. If you want to pay more money for less features you can always choose to buy another brand like iRobot which is designed and developed in the US.

By the way, i will add the obstacle picture and camera control features to this integration on a future release.

3 Likes

The amount of effort that went into this is astonishing. Excellent work

2 Likes

tasshack you are a genius. Thank you for your work and effort. Many people will benefit from it.

Please allow me one question regarding siid, aiid, params, piid and value.
Is there a library to understand which siid is linked to which aiid? Same question for the params, piid, value.

How do I know what will be addressed?

Just to dig deeper. I have created a vac map card with following code:

- template: vacuum_clean_zone
    max_selections: 1
    repeats_type: EXTERNAL
    max_repeats: 5
    service_call_schema:
      service: xiaomi_miot.call_action
      service_data:
        entity_id: vacuum.dreame_p2008_e53e_robot_cleaner
        siid: 4
        aiid: 1
        params:
          - piid: 1
            value: 19
          - piid: 10
            value: '{"areas":[[[[selection_unwrapped]],[[repeats]],1,1]]}'
        force_params: true

The good thing is: It is working perfectly :smiley:
The bad thing is I lost my documentation and notes why I wrote it that way :pensive:

And I cannot find in my history where I found the numbers for the code again.

There is a service called miot-spec that stores all siid, piid and aiid values for all Xiaomi devices but it is not up-to-date for the newer Dreame devices. Also it does not contains the value json parameter names for the specific piids.
There are no documentation available elsewhere and that’s main problem of development for the Dreame devices. This is why Dreame devices are not officially supported by HA and still not fully supported by python-miio. I had to search and dig up all parameter values from the official App and even it does have all values at the same place.

In your case;

  • aiid: 4 is vacuum-extend parameter and aiid: 1 means start-sweeping action
  • piid: 1 is work-mode (Status) and value: 19 matches to zone-cleaning
  • piid: 10 is clean-extend-data and areas is the coordinates of zones that will be cleaned.
  • Last two parameters of the array (1,1) are for suction and water levels but i think robot will ignores those parameters with the zone cleaning for some reason.
1 Like

Hi, do you have a timeline for the new device? Thanks very much!

This looks amazing.
I would love to be able to integrate my Xiaomi Mi Robot Vacuum Mop 2 (dreame.vacuum.p2041o)
Any idea if this will ever be supported?

I have already added the X10 yesterday and it is available now.

Robots with camera navigation are not supported right now but it will be available soon.

1 Like

Thanks very much! BTW, I think dreame.vacuum.r2215 is X10 Ultra and dreame.vacuum.r2235 is X10? Or the spec is wrong?

Yooo tasshack that was the page! Thank you so much. I remember now that I found that via the xiaomi miot auto integration.

Hi,

first off all. Really fantastic work! :slight_smile:
Adding the integration for my D9 was without any problem

  1. What do I have to do to have the ability to choose the room or a zone to clean like in the screenshots in your post?

  2. How do I get this card ?
    grafik

Thanks for your awesome work!

This is Lovelace Vacuum Map card. Checkout how to use.

This is combination of two custom cards and it is created by a Jinja2 template can be found here.

1 Like