Deebot EcoVacs Driver

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

Yep the dot is in the end of my instructions, so easy to miss. I’ll update.

1 Like

Darn...I hate it when I miss stuff like that. Thanks for providing this integration - just great!!

Quick question - I normally only run Dusty when I'm home, and let him return to his base when he senses his battery is low.

Using this integration, I think I'll have to turn the http GET Switch off to get my Deebot to retun to base. Or can I leave it on and he'll finish when he senses his battery is low? Have you ever tested that - what happens if you leave and your Deebot vacuums and you don't return before his battery gets low?

Seems like it would not work if I turned the switch on and left it on, and I can't toggle it as that would tell the Deebot to immediately return to base.

Am I thinking along the correct lines? I might just set a 1 1/2 hour timer (mine typically runs for almost 2 hours) using the Auto Off app, to turn it off so it returns to base.

It will come back when it gets low.

1 Like

Excellent, thanks!

Just got a new Deebot T8 for Christmas and what an experience to get that working. My first unit ran twice and then started giving me sensor errors and wouldn't move anymore. I think the band that spins the laser broke, but literally being hours old (to me) I didn't want to tear it apart. The second unit ran once and then went offline and would never reconnect to my network. Pulled the battery for 30+ minutes, factory reset it, and joined it to a different wifi. (Different VLAN, same gateway egress point) This appears to be working OK now but the jury is still out. So now I'm looking at hooking this into my HE.

Using the api/docker from @brianwilson I see that I can basically start and stop cleaning. Seeing as this new T8 maps out the floor, I can setup areas and sections. Per the Alexa Skill, which is crap now. It fails to link to Ecovac. Anyway, per the skill I should be able to say "start cleaning Family Room" and it will go and clean that section. Is that possible with Brian's docker? Or is there another way to integrate this. I'm somewhat surprised there isn't much I have found. My Litter Robot and even my Spa have drivers and apps written for HE. I thought the Deebot would be more popular with us techies.

It’s not possible with my code. I suppose if the “sucks” python code supports it, it would be possible. I did just this for my Wyze vac implementation. That being said, I don’t have this vac to test so someone else will likely need to do it.

1 Like

I figured out my issue with the Skill linking. I blocked access from inside my network to China. Even though I had no issues with the Ecovacs App, The Skill linking did. Once I removed that restriction it linked up just fine and now I can ask my Echo to have Deebot start vacuuming the (room label).

I'm curious if there is a way to initiate that request in reverse. I'm trying to avoid having to create a Routine within my Alexa app. But as I type this out, creating the routine is probably a heck of a lot easier than getting my HE hub to ask my Echo to start vacuuming the kitchen.

EDIT: Ended up going with virtual contact sensors and the routine. I didn't realize that I could do a custom command as if I was actually asking my echo to start the deebot. So far it is working well. Time will tell. Thanks for the tips throughout this thread.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.