python-miio
python-miio copied to clipboard
New device: Dreame Bot Z10 Pro (dreame.vacuum.p2028)
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
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....
My only need is to send command to clean a specific room in python... All other commands not really necessary to me.
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?
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?
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 can you share your code to get the room ids via schedule and the code to start cleaning the room by id ?
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.
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
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)