merdok / homebridge-miot

Homebridge plugin for devices supporting the Xiaomi miot protocol
MIT License
388 stars 61 forks source link

Room cleaning for Dreame D9 #350

Closed dzart1 closed 1 year ago

dzart1 commented 1 year ago

In the past, I have managed to successfully integrate my Dreame D9 (dreame.vacuum.p2009) into HomeKit, including specific room cleaning. What I did was as follows:

  1. I've searched up ways to extract the room-ids assigned by the Xiaomi Home app, many users concluded that the ids are "randomly generated" but can somehow be newly assigned (from 1-99X) by setting up a timer in the Xiaomi Home app, so I did that.

  2. I've set up the Homebridge Miot Plugin and added an action button with the action "2.3" or "vacuum:start-room-sweep" and parsed in the room id via "params", an example can be found below:

{ "action": "2.3", "name": "Clean Kitchen", "params": [ "1" ] }

This worked perfectly fine, however, since the last Firmware Update this method doesn't seem to work anymore. The first thing I've tried is to set up a new timer, which also didn't work. I also took a look into the log files created by the cracked Xiaomi Home App by vevs to try and perhaps extract the somehow newly assigned room id's, however that didn't help much as well. If it helps, the logfile spits out the following when starting a room cleaning with one room selected:

2022-10-03 18:48:28 -> {"id":246,"method":"action","params":{"did":447528980,"siid":4,"aiid":1,"in":[{"piid":1,"value":18},{\"selects\":[[2,1,3,3,1]]}"}]}}

if more rooms, e.g. 2 are selected, it will look like this:

2022-10-03 18:48:28 -> {"id":246,"method":"action","params":{"did":447528980,"siid":4,"aiid":1,"in":[{"piid":1,"value":18},{\"selects\":[[2,1,3,3,1],[3,1,3,3,1]]}"}]}}

unfortunately, I don't have any logfiles from before the firmware update, so i can't say for sure if anything has changed.

I would gladly appreciate any help, as I'm struggling to get it to work on my own.

dzart1 commented 1 year ago

Okay, if I'm interpreting this correctly, the action executed according to the log and corresponding to https://github.com/merdok/homebridge-miot/blob/main/lib/modules/robotcleaner/devices/dreame.vacuum.p2009.js#L132 would actually be "4.1" / "vacuum-extend:start-clean". What would I need to put into params to select specific rooms?

merdok commented 1 year ago

Hi, did you have a look at the Dreame guide here? https://github.com/merdok/homebridge-miot/blob/main/docs/robotcleaner.md#dreame

dzart1 commented 1 year ago

Hi, did you have a look at the Dreame guide here? https://github.com/merdok/homebridge-miot/blob/main/docs/robotcleaner.md#dreame

Oof, didn't know that this guide even exists / I didn't search properly. Thanks so much, I'm going to try it out and post my result when I'm done.

dzart1 commented 1 year ago

Hi, did you have a look at the Dreame guide here? https://github.com/merdok/homebridge-miot/blob/main/docs/robotcleaner.md#dreame

It does work now, thank you!