[APP][Pro] Roborock Vacuum Cleaners

I’m affraid it’s using some other way of connecting. Have you tried the ‘old API’ that’s implemented in the Xiaomi app here on Homey?

I’m running Xiaomi with my Roborock S7 and the latest firmware is 4.1.2_1140. Mine should be ‘older’, but it still says it’s the latest update. I guess 1+1=2, you’re running some kind of different firmware then Roborock does.

This is gong fast forward :slight_smile:

Is the zone cleaning coordinates upper left corner (x,y) and bottom right corner (x2,y2). In which order shall they be entered?

Currently figuring that out by testing it myself. This functionality is provided within the Miio plugin, I just need to implement it in the app. That’s why these ‘simple parts’ are going soo fast.

I got on a side trail trying to find a way to clean my room by name. I will try the zone coordinates after that again. If you found them before me, please share :smiley:

I supposed it was the same coordinate system with the dock at 25500,25500. I made a few trials but the vaccum only goes to the right from the dock and that was not according to the coordinates I tried.

Hi Justin , I use homebridge and the Roborock plugin with Alexa beside homey. Room name +id is documented in the code.

The code is public on github:

Maybe it helps.

I found this description from Maxmudjons GitHub:
“A zone takes two coordinates, the first one is the bottom left corner, the other one the top right corner”

According to Maxmudjon it should be entered:

  1. x for bottom left corner
  2. y for bottom left corner
  3. x for upper right corner
  4. y for upper right corner

I will try this tomorrow.

Ye I just thought of that… Coordinates are always X and Y, not X X X X… Soo my code is not right, or better said my labels are not. It’s not Corner 1, 2, 3 and 4 but it’s corner 1 XY and corner 2 XY.

Giving corner one XY and corner two XY it will draw a rectangle automatically and clean that zone.

Could you test this for me please? If this works, I will change the labels in this flow card. FYI Corner 1 and Corner 2 are XY corner 1, Corner 3 and Corner 4 are XY corner 2.

The Roborock app is also based on the Miio library and is kindoff a copy of this app for homebridge but changed to work with Homey. I just can’t seem to get the 'Clean “Living Room” working or even the “Clean 14” (were 14 is living room).

To make work easier, i’m currently making a flow card that can display all the available rooms inside a logic variable. This way you can send a push message once Homey gets new rooms that are set in the Xiaomi app and you can use these rooms for the room clean flow card.

Trial and error for the last few hours, but I think i’m getting close.

2 Likes

Awesome!

I will test zone cleaning tomorrow.

I also read that you can send the 5th parameter to zone cleaning with the number of times you want to zone clean, like this 25200, 27500, 27250, 30250, 2
It will do zone cleaning two times.

Thanks Justin fo your quick actions. Interesting that in your test all options work, while in my case the “op laadstation (docked)” option works, but the “Stofzuigen (cleaning)” not. May be it hs something to domwith language settings: Homey is duch, while Xiaomi-app is English.

I now have used the “status has changed” card + logic. i.e. Your alternative. Next saturday the next cleaning cycle is scheduled. Let’s see what happens.

Regards, Paul

What did you use as polling frequency? Try putting it on 60 seconds and do the following:

IF The status changes
AND The robot is cleaning (Aan het stofzuigen)
THEN Pushmessage Cleaning [variable STATUS]

If you start the robot, it should give you a push message every 60 seconds (polling frequency) saying ‘Cleaning cleaning’…

I will add the ‘how many rounds’ as well after changing the labels, but i’m waiting for your test first.

Where do you set the polling frequency?

At the moment I am not at home. I will test it when i am back.

Regards,
Paul

At device installation, were you’ve put your token and IP address, you also gave a polling frequency. Change it later on through:

Long press device >
Advanced settings >
Polling frequency

Polling frequency sets the amount of times that your device is asked ‘how you’re doing?’. When it’s, for example, set to 60 seconds it will ask for all the information every 60 seconds. This also means that every 60 seconds it’s getting the new ‘current status’.

It will and can never be 100% live. Xiaomi does not support a official API to talk to the robots, soo the library I am using is ‘illegal’ in that way. It’s only possible to ask within XX seconds

It is not working.


I have tried several times. First I confirmed the coordinates with Move to target and then put them into the card Clean the zone. When I check cleaning history in Xiaomi app the vaccum starts Zone cleaning but it is not going to the entered coordinates. Instead it starts cleaning close to the wall to the right from the dock.

I noticed the same thing but thought I was doing something wrong. It is saying ‘starting zoned cleanup’ right?

Yes, it says it and it is also logging it in mobile app cleaning history. Something must be wrong with coordinate handling?

When I set the robot to room cleaning from the xiaomi android app or from nodered the status of the vacuum in the Homey roborock device is switched to stopped. Can you replicate is the problem in my end or in the homey roborock app.

App version 1.3.2

I guess you are correct! I have tried the other Roborock app that needs to be installed via CLI. I can add my Dreame but not controll it, which is a bit unfortunate.
The Xiaomi app (not Ted toolboms app) requires a hub which I don’t possess.
Ted’s Aqara & Xiaomi app has no support for vacuum cleaners.

So when I saw your contribution I got excited, hence my question. But it is maybe difficult to implement another product line, which I really understand.

Thank you for taking your time