marcelrv / XiaomiRobotVacuumProtocol

Attempt to describe the Xiaomi Robot Vacuum Protocol
GNU General Public License v3.0
357 stars 76 forks source link

Question: Send command to Dreame D9 #58

Open Schwebebahn opened 2 years ago

Schwebebahn commented 2 years ago

Hello,

I bought a Dreame D9 and was hoping I can send commands like app_start by using openhab, but nothing happens. I‘m not sure if this is related to the binding or because the Dreame is not listed here as compatible device. Any idea how I can try to fix it?

Bye, Christian

marcelrv commented 2 years ago

the Dreame D9 accepts commands but they use the 'miot' protocol. So they use the same sort of communication/encryption but the commands are differently structured.

See https://home.miot-spec.com/spec/dreame.vacuum.p2008

It uses service, action and property id's (siid,aiid,piid) to identify the commands & properties rather than the more readable ones you mention. In the above link you can find the right codes for your device.

Openhab has a mapping for your device which covers the majority of available commands.

Schwebebahn commented 2 years ago

Thanks, that helped me to find a post from you in the openhab community with an command: action {"did":"Start-sweep","siid":3,"aiid":1,"in":[]}

I was able to adopt this for my D9: action {"did":"Start-sweep","siid":2,"aiid":1,"in":[]}

Now I'm working on two questions: Why do you put the action name in the device id (DID)?

When I want to clean a specific room, what is the syntax to add the rooms to the command? Is it the piid? action {"did":"start-room-sweep","siid":2,"aiid":3,"piid":4,"in":[]}

marcelrv commented 2 years ago

The did field appears to be free text, in the sense that the devices don't check if the true did is in it

To ease the reading of the log I enter the intended (readable) command