Skip to content
This repository has been archived by the owner on Apr 5, 2021. It is now read-only.

Commit

Permalink
Updating docs for new release.
Browse files Browse the repository at this point in the history
  • Loading branch information
wpietri committed Dec 4, 2017
1 parent 0c87f12 commit 6c3f37b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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

Expand All @@ -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.
```

Expand Down
13 changes: 11 additions & 2 deletions protocol.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit 6c3f37b

Please sign in to comment.