Updating docs for new release.

This commit is contained in:
William Pietri
2017-12-04 08:14:24 -08:00
parent 0c87f12a1c
commit 6c3f37b35a
2 changed files with 18 additions and 10 deletions
+7 -8
View File
@@ -2,11 +2,9 @@ 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.
This only covers my simple use case. There's a lot more it could do.
If you'd like to help flesh it out, send email to my first name at
williampietri.com.
known to work with the Ecovacs Deebot N79, M81, and M88 Pro from North
America and Europe. Does it work for your model as well? Join the
discussion on the [sucks-users mailing list](https://groups.google.com/forum/#!forum/sucks-users).
If you're curious about the protocol, I have [a rough doc](protocol.md)
started. I'll happily accept pull requests for it.
@@ -18,9 +16,8 @@ it's a vacuum.
## Installation
My belief, so far untested, is that you just check out this code,
do `pipenv install`, and then call the script `sucks`. If you try,
please let me know how it turns out.
Check out this code, do `pipenv install`, and then call the script
`sucks`. If that doesn't work for you, please [open an issue](https://github.com/wpietri/sucks/issues).
## Usage
@@ -33,6 +30,8 @@ Step one is to log in:
% sucks login
Ecovacs app email: [your email]
Ecovacs app password: [your password]
your two-letter country code: us
your two-letter contienent code: na
Config saved.
```
+11 -2
View File
@@ -7,6 +7,15 @@ all its free time hanging out in an internet chat room.
This is all taken from MITMing the Android app. The protocol is quirky
enough that I wouldn't be shocked if the iPhone app does it differently.
## Location
It appears that Ecovacs have broken up their API servers by location. Some
are designated by country, others by continent. All appear to use the
two-letter ISO codes, but at this time it doesn't look like all codes
map to valid servers. If you're in, say, Australia and are trying to
get this to work, I'd love a packet capture of DNS requests to see what
the app does there.
## HTTPS
There are two sorts of URLs in the basic login flow. The first set use
@@ -54,13 +63,13 @@ examples with the private information removed:
A clean command:
```
<iq id="TXID" to="ROBOTID@126.ecorobot.net/atom" from="USERID@ecouser.net/RESOURCEID" type="set"><query xmlns="com:ctl"><ctl td="Clean"><clean type="auto" speed="standard"/></ctl></query></iq>
<iq id="TXID" to="ROBOTID@MODELID.ecorobot.net/atom" from="USERID@ecouser.net/RESOURCEID" type="set"><query xmlns="com:ctl"><ctl td="Clean"><clean type="auto" speed="standard"/></ctl></query></iq>
```
A charge command:
```
<iq id="TXID" to="ROBOTID@126.ecorobot.net/atom" from="USERID@ecouser.net/RESOURCEID" type="set"><query xmlns="com:ctl"><ctl td="Charge"><charge type="go"/></ctl></query></iq>
<iq id="TXID" to="ROBOTID@MODELID.ecorobot.net/atom" from="USERID@ecouser.net/RESOURCEID" type="set"><query xmlns="com:ctl"><ctl td="Charge"><charge type="go"/></ctl></query></iq>
```
Focusing on the core ctl elements, this is a sampling of commands seen on the wire after punching all the app buttons: