Deebot EcoVacs Driver

Has anyone looked at interfacing with the Deebot Ecovacs? It would be great to be able to have it run when the house is in away mode.

I cant find any mention of it here, I found the below npm package.

And a hacked protocol.

1 Like

I noticed on the Amazon listing it is says "Works with Alexa". If you are able to set it up in an Alexa routine, you could trigger that routine based on a Virtual Contact sensor in HE. You could have a rule to set the contact sensor to open or closed when you are in Away mode and that could trigger a routine in Alexa. Dunno if this skill in Alexa allows it to be in a routine or not but it's worth a shot.

Good thought but I checked it out and its a no go.

Why is that? What is keeping you from doing that?

Not all Ecovacs work with Alexa. N79 doesn't, N79S does.

@potts.mike it does look like someone built a lambda function for it, so you can create your own alexa skill. I've never done that but considering looking at it.

You can see if this will work for you. It's really crummy code but my thinking is that I can create an action that I can call when someone leaves the house and if the day is Wed or Sunday, it calls clean. When someone gets back, it calls Charge and sends a notification to check the vacuum.

Here is a tip that at least works for my N79S models, they automatically start running if the charging unit loses power.

I plug mine into a Ikea Zigbee outlet, when I want it to run I just turn off the outlet and turn it back on a minute later. Yeah it would be fantastic if a real driver was written but in the meantime, trick it.

2 Likes

I have a larger radius geofence I use for turning on/off AC schedule and on/off vacuum. Smaller radius for locking doors/garage doors. Here are what happens when everyone has left the large radius (specific to the ECOVACS).


Clean for 45 mins, then run Edge (on 45 min delay)

Do edging

If cleaning ran (based on private bool), return to charge and cancel original actions (in case I come home before the 45 min delayed action to edge has started).

It’s been working great!

It has an Alexa skill, it does not show up as a device unfortunately.

Would this ever work as an app on HE?

Just call the http get codes. My model isn’t an “S” so it doesn’t have Alexa. I use it daily to clean when nobody is home.

I know, I’m just 1/2 way competent to understand 1/2 this stuff.

I need to invest in another Pi to run Docker so I can deal with all these individual web services. I just got AlexaCookie.js running on my MacBook but it really needs to run on an always there device.

Well, I guess it’s an excuse to get another Pi :slight_smile:

You don't have to run it in docker. If you've got a pi already it'll work just fine, just install the dependencies in the Dockerfile then edit the python file and add your settings in. I don't run it in docker :slight_smile:

cd ~; sudo apt-get install -y python3 python3-pip git && \
sudo  pip3 install sucks && \
sudo pip3 install flask && \
git clone https://github.com/bdwilson/ecovacs-api

Then setup the service to start:

sudo cp ecovacs-api/ecovacs-api.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable ecovacs-api
sudo systemctl start ecovacs-api

Yes, that is one of the most annoying “features” ever.

Was just reading through this for ideas and saw your suggestion...so easy. I put a smart plug on the Deebot charger/base station, created simple automation to turn the plug back on 1m after it's been turned off, and created a Google Home automation to turn off the plug.

So now:

Me: "Hey Google, run Dusty." (Yeah, I named him. :wink: )
GH:

  1. Turns off plug Dusty is connected to.
  2. Says "OK, Dusty has been launched."

Dusty: Starts cleaning
Simple automation: Turns Dusty's plug back on after 1m
Wife: "Oh my God, is it that difficult to lean down and press the button to start it?!"

:wink:

This is the perfect automation for us, as we never run Dusty when we aren't home. We have dogs, and had "The Incident" a year or two back when one of them left a surprise on the living room floor and Dusty tried to vacuum it. Oh, the horror...

This is such a great and simple Deebot launch automation it deserves it's own post so it can be easily found.

1 Like

We had the same “incident” and ended up buying an Alexa enabled roomba. It was a couple bucks more but easier for everyone to use.

1 Like

So you could shout: "Alexa, look out for that SH_T!!"

:wink:

1 Like

This doesn’t make any sense. My N79S does NOT run when power is lost to the charging stand. It, in fact, just try’s to find the charging stand again, and starts searching for the charging stand as the one it was connected to essentially, disappeared. It is NOT actually vacuuming.
Is this a hack you did to make it “vacuum” when it looses the charging stand? Or are you perhaps mistaken?

Funny...I was going to find this post yesterday to update.

Turning off power did work for me a few weeks ago. Then my Ecovac went south on me, constantly beeping while on the charging stand. I tore it apart and cleaned every motor/area on it repeatedly and it still beeped four loud warning beeps (scaring the crap out of one of my dogs who is forever in full panic mode after experiencing a fire alarm) after being on the stand for a while. My Deebot was seemingly stuck in "OMG! Somethings wrong!" mode even though things were fine.

I took it apart again (like fifth time) and removed the speaker and now it is mercifully quiet, and runs fine, but the power off hack doesn't work any more. It does what you're saying, running slow and looking for and going back the plug.

No idea why it's not working any more...previously turning off power would result in it starting to vacuum. That was w/a different plug, but turning off power shouldn't be affected by what plug it is attached to.

Oh - and I have an N79 (wi-fi only), not an N79S (wi-fi and Alexa), so there may be some difference between the two models that affects the power-off reaction.

Woot! Just got @brianwilson's integration up and running on a Pi.

Couple of changes that were required to make it work for me:

For the Docker build command, I needed to add a period "." after the after "ecovacs-api" in the build command to specify the current directory for the Dockerfile:

docker build -t ecovacs-api . --build-arg ECOVACS_USER='xxxx@xxxx.com' --build-arg ECOVACS_PASS='xxxx'

For the curl command in the http GET Switch device I had to remove the "curl -s" from the command - below works perfectly!

Great stuff, @brianwilson!!!

@rdstov - if you have an RPI sitting around this is easy to set up, and allows launching a dumb N79 Deebot w/voice command (use Alexa or GH to turn on virtual http GET switch).

2 Likes