python-miio icon indicating copy to clipboard operation
python-miio copied to clipboard

New device: Dreame Bot Z10 Pro (dreame.vacuum.p2028)

Open odelma opened this issue 3 years ago • 8 comments

Device information:

  • Dreame Bot Z10 Pro (robot vacuum cleaner)
  • Link: https://www.dreametech.com/products/dreame-z10-pro

Use miiocli device --ip <ip address> --token <token>.

NAME: Dreame Bot Z10 Pro ID: 447472770 MODEL: dreame.vacuum.p2028

Additional context

It seems there are working integrations that may prove to be helpful:

https://github.com/pooyashahidi/xiaomi_vacuum https://github.com/openhab/openhab-addons/commit/b6836b8ef913a81c206521818f8d8795e98bd87c

odelma avatar Dec 08 '21 11:12 odelma

I also have this robot. It will be great to add this device.... I can provide some help but someone has to tell me what to do because I have a basic knowledge in programming....

FM84DEV avatar Jan 14 '22 10:01 FM84DEV

My only need is to send command to clean a specific room in python... All other commands not really necessary to me.

FM84DEV avatar Feb 01 '22 14:02 FM84DEV

Thanks to @peleccom that add the dreamef9_support I was able to add support for my Dreame Z10 PRO. In my repo there is a fork with the updates for Z10. BUT... the only thing I was looking for seems not work... :-( As specified in https://home.miot-spec.com/s/dreame.vacuum.p2028 SIID:2, PIID:4 should return a string with the Room IDs... But if I try: miiocli dreamevacuum --ip XXX --token YYY --model dreame.vacuum.p2028 get_property_by 2 4 the response is: [{'siid': 2, 'did': '2-4', 'piid': 4, 'code': -1}] ..... Any advice?

FM84DEV avatar Feb 02 '22 11:02 FM84DEV

Have you configured the rooms in the app? That response is coming from the device, so there isn't much we can do here..

Are other commands working fine?

rytilahti avatar Feb 03 '22 21:02 rytilahti

Yes I configure them in the app but Z10 do not response. Looking around I found a way to get the rooms ids using the timers in the app and get them via the miio via a specific function... Then I added also the support for room cleaning in the last commit. :-)

FM84DEV avatar Feb 04 '22 20:02 FM84DEV

@FM84DEV can you share your code to get the room ids via schedule and the code to start cleaning the room by id ?

ghost avatar Feb 16 '22 15:02 ghost

It's already shared. You can download it here: https://github.com/FM84DEV/python-miio/blob/feature/dreamef9_support/miio/integrations/vacuum/dreame/dreamevacuum_miot.py

To know the rooms ids you have to make a timer in the App at 12:00 selecting all the rooms in a specific order and disable it. Then you call the function "get_rooms_ids_from_timers" that return the ids of the rooms in the same order you have specified. So you can associate your rooms with your ids. I see that if a new room is discovered the IDs could change.... But this is very uncommon! ;-)

Then you can use: start_clean_rooms rooms_params where the argument rooms_params is something like this [[1,1,2,1]] for one room or like this [[1,1,2,1],[2,1,2,1],...] for more. The number in order are: roomid, repeats, powerlevel, waterlevel.

FM84DEV avatar Feb 16 '22 16:02 FM84DEV

It's already shared. You can download it here: https://github.com/FM84DEV/python-miio/blob/feature/dreamef9_support/miio/integrations/vacuum/dreame/dreamevacuum_miot.py

To know the rooms ids you have to make a timer in the App at 12:00 selecting all the rooms in a specific order and disable it. Then you call the function "get_rooms_ids_from_timers" that return the ids of the rooms in the same order you have specified. So you can associate your rooms with your ids. I see that if a new room is discovered the IDs could change.... But this is very uncommon! ;-)

Then you can use: start_clean_rooms rooms_params where the argument rooms_params is something like this [[1,1,2,1]] for one room or like this [[1,1,2,1],[2,1,2,1],...] for more. The number in order are: roomid, repeats, powerlevel, waterlevel.

Hey Thank you very much for pointing that out.

I'm very new to python-miio so can you please explain how exactly I call the get_rooms_ids_from_timers functions from the cli?

Kind regards, Chris

christianduddd avatar Sep 03 '22 08:09 christianduddd

I had the dreame bot z10 pro working in a home assistant environment but it stopped working (probably after upgrading firmware to 4.1.8_1156)

tomdh76 avatar Oct 22 '22 19:10 tomdh76