d88fbb35b2
Cleaned up output; made debugging option work properly. Track basic robot state reports. Stop command waits for robot to stop. Charge command waits for robot to dock.
43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
sucks
|
|
=====
|
|
|
|
A simple command-line python script to drive a robot vacuum. Currently
|
|
works only with the Ecovacs Deebot N79, as that's what I have.
|
|
|
|
Right now this code offered more as inspiration than something for other
|
|
people to just download and use. But if you'd like to help flesh it out,
|
|
send email to my first name at williampietri.com.
|
|
|
|
If you do try to use it, you'll need to create ~/.config/sucks.conf. It
|
|
should look something like this:
|
|
|
|
```
|
|
user=20170101abcdef0123456
|
|
domain=ecouser.net
|
|
resource=abcdef01
|
|
secret=[long base64 string]
|
|
vacuum=[robot id]@126.ecorobot.net
|
|
```
|
|
|
|
I got these values by using
|
|
[xmppeek](https://www.beneaththewaves.net/Software/XMPPPeek.html)
|
|
to do a man-in-the-middle attack on
|
|
the android app. You can use the included log_clean.py script to generate
|
|
a config from a captured session. (I suspect that the Android app re-keys
|
|
the connection on a regular basis, as the secret was changing regularly
|
|
up until I cleared the Android app's data from my phone.)
|
|
|
|
If you're curious about the protocol, I have [a very rough
|
|
doc](protocol.md) started. I'll happily accept pull requests for it.
|
|
|
|
Why the project name? Well, a) it's ridiculous that I needed to MITM
|
|
my own vacuum. This is not the future I signed up for. There should
|
|
be a nice, tidy RESTful API. That would be easy enough to make. And b),
|
|
it's a vacuum.
|
|
|
|
## To Do
|
|
|
|
* add probabilistic cleaning options
|
|
* implement more commands
|
|
* add a status commmand
|