Xiaomi Roborock Integrations/Automation Ideas?

If you have a spare Android device sitting around (I have my tablets on the walls for hubitat dashboards) you could look at using tasker plus the autoinput plugin to simulate screen pushes to start your cleaner. You can them trigger that task in tasker by a http post to the android tablet (I use autoremote for this) from hubitat for the presence detection (leaving home) or autonotification plugin to intercept things like the vacuum is blocked or the dust bin is full go to your bin etc.

Works OK. Not ideal as screen simulations in the xiaomi app aren't ideal but it works at least and you can make it quite flexible.

Why would you lose no mop zones? I have the S5 Max and still have my no mop zones. I just hardly ever mop but I definitely didn't lose the ability with this integration.

Oh, and I use the Mi Home app and set up all my no go zones (both for cleaning and for mopping) using the Mi Home app. You definitely have No-Mop Zones in the Mi Home app. Not sure where you got the wrong info from.

I'll second this. I assume when you were using the MiHome app in the process of retrieving your token, you were using the modified version of the app. This might be a limitation of that modified map or something, but you really only need it to pull your token and then you can re-install the regular MiHome app which gives you full control as you've always had.

I've had my Roborock S6 integrated on smart things, hubitat and home assistant and never lost the no-go or no-mop capabilities on any platform.

Well, I just pulled the trigger on the S5 Max which is on Prime Day [season] sale for $440 at Amazon in black or white, or WalMart white only right now same price.

Of course, I really don't have much need for one, but integrating it with other home automation logic is better than sitting on the couch watching TV. Plus, with it doing a lot of the vacuuming, I'll have more time to sit on the couch watching TV.

Today I learned that triggering a whole house vacuum when mode changes to Away was also a good way to test every motion detector in the house to make sure it sets off the security alarms.

So I'm looking for a clever way to determine when the robovac is docked or not. Seems simple but here's where I'm hitting dead ends:

Alexa integration - is limited. Although from Hubitat thru a virtual contact to an Alexa routine you can start a clean cycle, or stop one, there is nothing that you can use for feedback or to trigger in the other direction.

Contact sensor between dock and vacuum - I may try this, but I'm leery of the idea since the robovac can sense magnetic fields that some use to enforce no go zones. Thinking that the contact sensor would interfere with docking.

Time boxing - I could delay Away mode by a length of time sufficient for a full vacuum, but that's not fool-proof. It may very well clean for a hour and then decide it needs to go top up the battery before going back out again.

Ignore motion - yeah, but that's a big hunk of security sensors to be ignoring, And masking/pet detection wouldn't work as most of my sensors are ceiling mounted.

Anyone thought of something else?

Hey, if you have the Mi Connector up and running, you could use the mode attribute from the Roborock in Hubitat (eg.cleaning, returning, charging etc.) to determine what it is doing and build dependencies for your automations.

That's a good suggestion, but I'd first like to see if there is a solution that doesn't require yet another piece of hardware and software. I know it is simple enough and I have a junk box with rPis aplenty, but just like to keep things simple.

Then you could try a powermeter for the docking station.

Another good suggestion. I was thinking, though, that there wouldn't be any difference between undocked and docked but fully charged. Wouldn't hurt to experiment.

What I might be able to determine from power monitoring is when it starts charging which would happen when returning to dock after a full clean.

Thinking out loud here, if you monitor power of the docking station, in theory there should be more draw when charging the unit. But after the unit is charged the draw will decrease. And when it leaves the docking station I don't think there would be a change in the power draw since it's already charged.

The MiConnector solution is likely your best bet

Exactly. Power drop either means left the dock or finished charging .. I can't tell which. SImilarly, a power increase means it is now charging, but that doesn't necessarily mean it just returned to the dock (could just mean it has been sitting for days and needs a little top-up).

There's no doubt that would be the way to get the most control and feedback, but I've not yet get up hope there is genius way to use a sensor to do it natively in hubitat.

This is where building a rule to enable/disable your motion sensors becomes a real challenge. You run the risk of them being disabled because of the power drop when it simply finishes charging.

Your other option is to sweet talk a dev into writing an add-on to integrate the vacuum into HE without the need for MiConnector. Home assistant has such an integration without the need of any 3rd party programs running, so it is possible. There's another one just launched over there that pulls the live map from the vacuum without needing root access. I believe it does this through the web api, which could open another avenue for a dev to get this info but it wouldn't be a local add-on at that point.

Well, when IFTTT changed their model, I lit a candle and wished for a developer to create Blink integration for Hubitat .. and he appeared! I'll do the same for this .. maybe using two candles.

Is there a documented API for Xiaomi/Roborock? If there was, that gives me some new possibilities.

I would like to be able to vacuum when no one is home, but disabling motion detectors permanently is too much. I have a fear we will come home to find all our valuables are gone, but the floor is spotless.

You could mount a simple lever switch to the dock that it closes when it returns, make the arm as long as necessary, minimal force so it won't notice and stop etc. Then modify an open close door switch (like the samsung multipurpose) and use the physical switch to close/open the contacts instead of the magnet.

1 Like

from this thread Did you order? - #6

might well be the answer

2 Likes

That could well be the perfect answer! It could be mounted off-center on top of the vacuum out of the line of site of the lasers. The vacuum spins around all the time. Thanks for that suggestion!

1 Like

Or stick a door/ window contact sensor, sensor part on the dock and the magnet on the vacuum. :+1:t3:

That's the first thing I thought of, but ...

Also, there wouldn't be a good place to mount it. The face of the dock emits signals to assist the vac in docking, so it wouldn't be good to place it there. The part of the vac that faces the dock is its bumper which quite frequently hits and rotates against obstacles. Putting on the top of the vac might occlude the lasers. Not enough clearance on the bottom.

ive just integrated it using MI connector but how do you get it just to hoover some of the rooms in hubitat. its not looking all that great of an integration at first glance