Split README into docs
Splitting README into docs to make it shorter and easier to maintain. - Change to os_db_path adding createdir so tests can skip creation of the path
This commit is contained in:
parent
c3098e03e4
commit
d2ebe12145
7 changed files with 231 additions and 177 deletions
208
README.md
208
README.md
|
|
@ -1,27 +1,30 @@
|
|||
# Bumper
|
||||
A standalone and self-hosted implementation of the central server used by Ecovacs vacuum robots.
|
||||
|
||||
**Note:** The current master branch is unstable.
|
||||
Bumper is a standalone and self-hosted implementation of the central server used by Ecovacs vacuum robots. Bumper allows you to have full control of your Ecovacs robots, without the robots or app talking to the Ecovacs servers and transmitting data outside of your home.
|
||||
|
||||
Bumper needs users to assist with development efforts and testing in order to ensure compatability as bumper moves forward! If you've tested Bumper with your bot, please open an issue with details on success or issues.
|
||||
**Note:** The current master branch is unstable, and in active development.
|
||||
|
||||
The original bumper code base has been branched off as [v0.1.0](https://github.com/bmartin5692/bumper/tree/v0.1.0
|
||||
) and will remain in the original state, this will work for XMPP bots (M81 Pro, N79S, and others), but not bots that utilize MQTT (D900, D600, and others).
|
||||
***Testing needed***
|
||||
Bumper needs users to assist with testing in order to ensure compatability as bumper moves forward! If you've tested Bumper with your bot, please open an issue with details on success or issues.
|
||||
|
||||
*Please note: this software is experimental and not ready for production use. Use at your own risk.*
|
||||
***Please note**: this software is experimental and not ready for production use. Use at your own risk.*
|
||||
|
||||
## Compatibility
|
||||
As work to reverse the protocols and provide a self-hosted central server is still in progress, Bumper has had limited testing. There are a number of EcoVacs models and varying protocols that it hasn't been tested against. So far two different protocols have been seen, **XMPP** and **MQTT**. Bumper should be compatible with most wifi-enabled robots that use either the Ecovacs Android/iOS app or the Ecovacs Home Android/iOS app, but has only been reported to work on the below:
|
||||
|
||||
| Model | Protocol Used | Bumper Version |
|
||||
|--|--|--|
|
||||
| Deebot 900/901 | MQTT | master |
|
||||
| Deebot Ozmo 930 | XMPP | master |
|
||||
| Deebot M81 Pro | XMPP | v0.1.0 |
|
||||
As work to reverse the protocols and provide a self-hosted central server is still in progress, Bumper has had limited testing. There are a number of EcoVacs models that it hasn't been tested against. Bumper should be compatible with most wifi-enabled robots that use either the Ecovacs Android/iOS app or the Ecovacs Home Android/iOS app, but has only been reported to work on the below:
|
||||
|
||||
For more information about the protocols and how it works, see the [How does it work?](#how-does-it-work) section at the end. If you test against another model and it works, please open an issue to report it.
|
||||
| Model | Protocol Used | Bumper Version Tested | EcoVacs App Tested |
|
||||
|--|--|--|--|
|
||||
| Deebot 900/901 | MQTT | master | Ecovacs/Ecovacs Home |
|
||||
| Deebot 600 | MQTT | master | Ecovacs Home |
|
||||
| Deebot Ozmo 601 | XMPP | master | Ecovacs |
|
||||
| Deebot Ozmo 930 | XMPP | master | Ecovacs |
|
||||
| Deebot M81 Pro | XMPP | v0.1.0 | Ecovacs |
|
||||
|
||||
For more information about the protocols and how Bumper works, see the [How does it work?](docs/How_It_Works.md) page in the docs. If you test against another model and it works, please open an issue to report it.
|
||||
|
||||
## Why?
|
||||
|
||||
For fun, mostly :)
|
||||
|
||||
But seriously, there are a several reasons for eliminating the central server:
|
||||
|
|
@ -31,44 +34,29 @@ But seriously, there are a several reasons for eliminating the central server:
|
|||
3. Security: We can completely isolate the robot from the public Internet.
|
||||
|
||||
## Requirements
|
||||
|
||||
- An Ecovacs wifi-enabled robot
|
||||
- A computer on your local network to run the Bumper server
|
||||
- Python 3 and pipenv
|
||||
- Python 3.7 and pipenv
|
||||
- A network router that has functionality for overriding DNS queries
|
||||
- A client that can connect to Bumper and talk to the robot over the Ecovacs protocol.
|
||||
- The "Ecovacs" or "Ecovacs Home" Android or iOS apps can be used if configured properly. See [Using with the official Android/iOS App](#using-with-the-official-androidios-app) below.
|
||||
- The "Ecovacs" or "Ecovacs Home" Android or iOS apps can be used if configured properly.
|
||||
- See the docs on [Using Bumper with the official Android/iOS App](docs/Use_With_App.md).
|
||||
- [Sucks](https://github.com/wpietri/sucks) can also be used, which can act as a client and control the robots via command-line.
|
||||
- See the doc on [Using Bumper with Sucks](docs/Use_With_Sucks.md)
|
||||
|
||||
## Usage
|
||||
- Run `pipenv install` to install dependencies
|
||||
## Quick Start Usage
|
||||
|
||||
- Download bumper then run `pipenv install` to install dependencies
|
||||
- Configure your Ecovacs vacuum using the official mobile app (if you haven't done this already)
|
||||
### DNS
|
||||
You need to configure your router to point DNS locally to where Bumper is running.
|
||||
The easiest way is overriding the main domains used by EcoVacs using DNSMasq/PiHole, by adding address entries in a custom config:
|
||||
|
||||
address=/ecouser.net/{bumper server ip}
|
||||
address=/ecovacs.com/{bumper server ip}
|
||||
address=/ecovacs.net/{bumper server ip}
|
||||
|
||||
If this isn't an option, you'll need to configure your router DNS to point a number of domains used by the app/robot to the Bumper server.
|
||||
**Note:** Depending on country, your phone may be using a different domain. Most of these domains contain country-specific placeholders. We'll work to document all domains we encounter, but there may be additional domains and the preferred method is a overriding the full domains as above.
|
||||
|
||||
- Example: If you see `eco-{countrycode}-api.ecovacs.com` and you live in the US/North America you would use: `eco-us-api.ecovacs.com`
|
||||
|
||||
| Address | Description |
|
||||
|--|--|
|
||||
| `lb-{countrycode}.ecovacs.net` | Load-balancer that is checked by the app/robot |
|
||||
| `eco-{countrycode}-api.ecovacs.com` | Used for Login |
|
||||
| `portal-{countrycode}.ecouser.net` | Used for Login and Rest API |
|
||||
| `portal-ww.ecouser.net` | Used for various Rest APIs |
|
||||
| `msg-{countrycode}.ecouser.net` | Used for XMPP |
|
||||
| `mq-ww.ecouser.net` | Used for MQTT |
|
||||
| `gl-{countrycode}-api.ecovacs.com` | Used by Ecovacs Home app for API |
|
||||
| `recommender.ecovacs.com` | Used by Ecovacs Home app |
|
||||
|
||||
|
||||
- Configure your DNS server as described in the [DNS Setup](docs/DNS_Setup.md) doc.
|
||||
- Start bumper - see the [Starting Bumper](#starting-bumper) section.
|
||||
- Control your robots like normal
|
||||
- [Using Bumper with the official Android/iOS App](docs/Use_With_App.md)
|
||||
- [Using Bumper with Sucks](docs/Use_With_Sucks.md)
|
||||
|
||||
### Starting Bumper
|
||||
|
||||
- Start Bumper with `pipenv run python start_bumper.py`
|
||||
|
||||
- Reboot your robot
|
||||
|
|
@ -77,132 +65,18 @@ If this isn't an option, you'll need to configure your router DNS to point a num
|
|||
|
||||
- If your configuration is correct, the robot will connect to Bumper within about 30 seconds. Bumper will output information about the connection status.
|
||||
|
||||
- Configure your client - see below.
|
||||
|
||||
## Using with Sucks
|
||||
Instructions (verified to work with Sucks 0.8.3)
|
||||
- Download and install [Sucks](https://github.com/wpietri/sucks)
|
||||
- See the [example script](examples/sucks.py) for how to connect
|
||||
|
||||
## Using with the official Android/iOS App
|
||||
Bumper *can* be used with the official "Ecovacs" or "Ecovacs Home" app, but with limitations. Your phone needs to use your DNS server with custom settings, and you ***must*** import Bumper's CA cert and trust it before the app will work.
|
||||
|
||||
### DNS
|
||||
- Configure your DNS server as described above in the [DNS](#dns) section.
|
||||
### Import the Bumper CA Cert
|
||||
- E-mail yourself the Bumper CA cert (located at `./certs/CA/cacert.crt`)
|
||||
**Note:** Make sure you select the `cacert.crt` file, which is a DER encoded version that will work on either Android or iOS.
|
||||
|
||||

|
||||
|
||||
- Import the cert as a CA, and trust it
|
||||
- Instructions here are different for [iOS](#importing-the-ca-cert-on-ios) vs [Android](#importing-the-ca-cert-on-android)
|
||||
#### Importing the CA Cert on iOS
|
||||
|
||||
1. Open the e-mail on your iOS device, and click the attached cert
|
||||
|
||||

|
||||
|
||||
2. Install the profile by clicking "Install", and entering your pass code if prompted
|
||||
|
||||

|
||||
|
||||
3. Accept the certificate warning by clicking "Install" again
|
||||
|
||||

|
||||
|
||||
4. Click "Done" to exit the profile installation
|
||||
5. Go to Settings > General > About
|
||||
6. Scroll to the bottom and click "Certificate Trust Settings"
|
||||
7. Enable Full Trust for the Bumper CA Cert, by moving the slider to the right
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
8. Click continue when prompted
|
||||
9. That's it, you can now [Use the app](#use-the-app)
|
||||
|
||||
#### Importing the CA Cert on Android
|
||||
|
||||
1. Open the e-mail on your Android device
|
||||
|
||||
**Quick Method**
|
||||
|
||||
2. Click the cert, and if prompted provide a name
|
||||
3. Under "Used for", select "VPN and apps"
|
||||
|
||||
**Long Method**
|
||||
|
||||
2. Save the attached cert file
|
||||
3. Go to Settings > Lock screen and security > Other security settings
|
||||
4. Under "Credential storage", click "Install from device storage"
|
||||
5. Browse to the downloaded cert, select it, then click "Done"
|
||||
6. Click the cert, and if prompted provide a name
|
||||
7. Under "Used for", select "VPN and apps"
|
||||
|
||||
Now, start [using the app](#use-the-app).
|
||||
|
||||
### Use the app
|
||||
|
||||
- Open the app
|
||||
- At this time there is no authentication layer, you can enter any e-mail address and password (as long as it is 6 characters) and you will be authenticated
|
||||
- If your robot has already checked into Bumper, then it will be available in the list of robots
|
||||
- The app now does a ping to the robot to make sure it is online, and if it is you can now control the robot
|
||||
|
||||
## How does it work?
|
||||
**App/Authentication**
|
||||
|
||||
EcoVacs servers provide authentication of accounts and match those up to registered robots. Once authenticated, users can control the robots via the app. ***Bumper*** provides an implementation of the central servers providing authentication and matching.
|
||||
|
||||
**Robots**
|
||||
|
||||
So far two protocols have been identified that various models of EcoVacs robots use: **XMPP** and **MQTT**. These appear to be mutually exclusive and your robot model will use one of these two protocols for communication. ***Bumper*** provides an implementation of both protocols handling communication between the app and robots.
|
||||
|
||||
----
|
||||
### Login/Authentication/RestAPI
|
||||
|
||||
***Bumper*** provides a fully simulated central server that handles login/authentication for the app/clients.
|
||||
|
||||
The EcoVacs app encrypts the username/password with the public key of EcoVacs when authenticating. Since we don't have the private key to decrypt, there is no way to provide true security and authentication.
|
||||
|
||||
Future versions may add additional options here for security.
|
||||
|
||||
Bots have no authentication and once a robot has been configured to access your WiFi it never needs to communicate with EcoVac's servers again.
|
||||
|
||||
----
|
||||
### XMPP
|
||||
|
||||
*Example Model:* Deebot M81 Pro
|
||||
|
||||
The robot utilizes XMPP for control. When the robot boots up it sends a HTTP request to `lbo.ecovacs.net:8007` asking for the IP address and port of the XMPP server. Because of our DNS override, this request will be received by Bumper. We tell the robot to connect over XMPP to our local machine.
|
||||
|
||||
Both the app and robot connect to the central XMPP server, which relays messages between the app and robot. The messages contain commands for the robot to execute or responses and statuses of the robot.
|
||||
|
||||
***Bumper*** exposes a simulated XMPP server that implements the necessary functions for relaying messages between a robot and a client, acting as the central server.
|
||||
|
||||
**Note:** It's been observed that the apps will attempt to utilize XMPP regardless of robot model. For models that utilize MQTT, no activity is performed over XMPP just pings.
|
||||
|
||||
----
|
||||
### MQTT
|
||||
|
||||
*Example Model:* Deebot 900/901
|
||||
|
||||
The robot utilizes MQTT for control. On startup it connects to an MQTT broker (`mq-{countrycode}.ecovacs.com`) and subscribes to a `p2p` topic where commands are issued.
|
||||
The app also connects to the MQTT broker and subscribes to a `attr` topic where the robot will periodically post status and location updates.
|
||||
|
||||
The app receives status updates, for example battery status or robot position information, periodically via the `attr` topic.
|
||||
|
||||
However, commands issued via the app/client are not published directly to the `p2p` topic that the robot subscribes to. When the app sends a command such as "Clean", this is sent via a Rest API to the server at `portal-{countrycode}.ecouser.net`.
|
||||
|
||||
The Rest API provided by `portal-{countrycode}.ecouser.net` receives the command and passes it to a "helper" bot that has permission to publish to the `p2p` topic the robot is subscribed to. The "helper" bot waits for a response to be published by the robot and then passes that response back to the server for the Rest API to send back as a response.
|
||||
|
||||
***Bumper*** provides a simulated RestAPI and "helper" bot, performing the same function as the central server above.
|
||||
|
||||
## Thanks
|
||||
|
||||
A big thanks to the original project creator @torbjornaxelsson, without his work this project would have taken much longer to build. The project reached its original goal and remained in a stable, but stale state with the last commit in Dec 2017. Since the original release of bumper newer bots have been released that use different protocols, and a growing Ecovacs user base has sparked further interest in the project.
|
||||
|
||||
In early 2019 after making massive changes to the codebase and with ideas for additional feature development, it was decided that @bmartin5692 would take over active development. The fork was detached and all future development of bumper will take place here.
|
||||
A big thanks to the original project creator @torbjornaxelsson, without his work this project would have taken much longer to build.
|
||||
|
||||
Bumper wouldn't exist without [Sucks](https://github.com/wpietri/sucks), an open source client for Ecovacs robots. Big thanks to @wpietri and contributors!
|
||||
|
||||
### Bumper Origins
|
||||
|
||||
@torbjornaxelsson created Bumper originally in 2017 and the project reached its original goal and remained in a stable, but stale state with the last commit in Dec 2017.
|
||||
|
||||
Since the original release of Bumper newer bots have been released that use different protocols, and in early 2019 it was decided that @bmartin5692 would take over development moving forward. This fork was detached and all future development of bumper will take place here.
|
||||
|
||||
#### Archive
|
||||
|
||||
The original bumper code base has been branched off as [v0.1.0](https://github.com/bmartin5692/bumper/tree/v0.1.0) and will remain in the original state. This branch *may* work for older models (M81 Pro, N79S, etc.), but the master branch should be tried first as it contains many changes and fixes over the original with active development moving forward.
|
||||
|
|
@ -89,16 +89,19 @@ def db_file():
|
|||
return os_db_path()
|
||||
|
||||
|
||||
def os_db_path():
|
||||
def os_db_path(createdir=True):
|
||||
# createdir - Set to False during tests to not create paths
|
||||
if platform.system() == "Windows":
|
||||
os.makedirs(
|
||||
os.getenv("APPDATA"), exist_ok=True
|
||||
) # Ensure db_path directory exists or create
|
||||
if createdir:
|
||||
os.makedirs(
|
||||
os.getenv("APPDATA"), exist_ok=True
|
||||
) # Ensure db_path directory exists or create
|
||||
return os.path.join(os.getenv("APPDATA"), "bumper.db")
|
||||
else:
|
||||
os.makedirs(
|
||||
os.path.expanduser("~/.config"), exist_ok=True
|
||||
) # Ensure db_path directory exists or create
|
||||
if createdir:
|
||||
os.makedirs(
|
||||
os.path.expanduser("~/.config"), exist_ok=True
|
||||
) # Ensure db_path directory exists or create
|
||||
return os.path.expanduser("~/.config/bumper.db")
|
||||
|
||||
|
||||
|
|
|
|||
40
docs/DNS_Setup.md
Normal file
40
docs/DNS_Setup.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# DNS
|
||||
You need to configure your router to point DNS locally to where Bumper is running.
|
||||
The easiest way is overriding the main domains used by EcoVacs using DNSMasq/PiHole, by adding address entries in a custom config.
|
||||
|
||||
## Custom DNSMasq Config
|
||||
|
||||
Typically written at /etc/dnsmasq.d/{##}-{name}.conf
|
||||
- Ex: `/etc/dnsmasq.d/02-custom.conf`
|
||||
|
||||
**File Contents:**
|
||||
````
|
||||
address=/ecouser.net/{bumper server ip}
|
||||
address=/ecovacs.com/{bumper server ip}
|
||||
address=/ecovacs.net/{bumper server ip}
|
||||
````
|
||||
**Note:** *Replace `{bumper server ip}` with your server's IP*
|
||||
|
||||
If using PiHole, reload FTL to apply changes:
|
||||
`sudo service pihole-FTL reload`
|
||||
|
||||
## Manual Override
|
||||
|
||||
If overriding DNS for the top-level domains isn't an option, you'll need to configure your router DNS to point a number of domains used by the app/robot to the Bumper server.
|
||||
|
||||
**Note:** Depending on country, your phone/robot may be using a different domain. Most of these domains contain country-specific placeholders.
|
||||
|
||||
Not all domains have been documented at this point, and this list will be updated as more are identified/seen. The preferred way to ensure Bumper works is to override the full domains as above.
|
||||
|
||||
- Example: If you see `eco-{countrycode}-api.ecovacs.com` and you live in the US/North America you would use: `eco-us-api.ecovacs.com`
|
||||
|
||||
| Address | Description |
|
||||
|--|--|
|
||||
| `lb-{countrycode}.ecovacs.net` | Load-balancer that is checked by the app/robot |
|
||||
| `eco-{countrycode}-api.ecovacs.com` | Used for Login |
|
||||
| `portal-{countrycode}.ecouser.net` | Used for Login and Rest API |
|
||||
| `portal-ww.ecouser.net` | Used for various Rest APIs |
|
||||
| `msg-{countrycode}.ecouser.net` | Used for XMPP |
|
||||
| `mq-ww.ecouser.net` | Used for MQTT |
|
||||
| `gl-{countrycode}-api.ecovacs.com` | Used by Ecovacs Home app for API |
|
||||
| `recommender.ecovacs.com` | Used by Ecovacs Home app |
|
||||
58
docs/How_It_Works.md
Normal file
58
docs/How_It_Works.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# How does Bumper work?
|
||||
|
||||
Bumper runs multiple services to re-create what the central EcoVacs servers provide the bots and users. At this point two different protocols have been seen, **XMPP** and **MQTT**.
|
||||
|
||||
**Services**
|
||||
| Service | Description | Ports | Source File |
|
||||
|--|--|--|--|
|
||||
| Web Servers | Provide authentication and for MQTT bots command | 443 and 8007 | `confserver.py` |
|
||||
| XMPP Server | For bots that utilize this protocol | 5223 | `xmppserver.py` |
|
||||
| MQTT Server | For bots that utilize this protocol | 8883 | `mqttserver.py` |
|
||||
|
||||
**App/Authentication**
|
||||
|
||||
EcoVacs servers provide authentication of accounts and match those up to registered robots. Once authenticated, users can control the robots via the app. ***Bumper*** provides an implementation of the central servers providing authentication and matching.
|
||||
|
||||
**Robots**
|
||||
|
||||
So far two protocols have been identified that various models of EcoVacs robots use: **XMPP** and **MQTT**. These appear to be mutually exclusive and your robot model will use one of these two protocols for communication. ***Bumper*** provides an implementation of both protocols handling communication between the app and robots.
|
||||
|
||||
----
|
||||
### Login/Authentication/RestAPI
|
||||
|
||||
***Bumper*** provides a fully simulated central server that handles login/authentication for the app/clients.
|
||||
|
||||
The EcoVacs app encrypts the username/password with the public key of EcoVacs when authenticating. Since we don't have the private key to decrypt, there is no way to provide true security and authentication.
|
||||
|
||||
Future versions may add additional options here for security.
|
||||
|
||||
Bots have no authentication and once a robot has been configured to access your WiFi it never needs to communicate with EcoVac's servers again.
|
||||
|
||||
----
|
||||
### XMPP
|
||||
|
||||
*Example Model:* Ozmo 601/930
|
||||
|
||||
The robot utilizes XMPP for control. When the robot boots up it sends a HTTP request to `lbo.ecovacs.net:8007` asking for the IP address and port of the XMPP server. Because of our DNS override, this request will be received by Bumper. We tell the robot to connect over XMPP to our local machine.
|
||||
|
||||
Both the app and robot connect to the central XMPP server, which relays messages between the app and robot. The messages contain commands for the robot to execute or responses and statuses of the robot.
|
||||
|
||||
***Bumper*** exposes a simulated XMPP server that implements the necessary functions for relaying messages between a robot and a client, acting as the central server.
|
||||
|
||||
**Note:** It's been observed that the apps will attempt to utilize XMPP regardless of robot model. For models that utilize MQTT, no activity is performed over XMPP just pings.
|
||||
|
||||
----
|
||||
### MQTT
|
||||
|
||||
*Example Model:* Deebot 600/900/901
|
||||
|
||||
The robot utilizes MQTT for control. On startup it connects to an MQTT broker (`mq-{countrycode}.ecovacs.com`) and subscribes to a `p2p` topic where commands are issued.
|
||||
The app also connects to the MQTT broker and subscribes to a `attr` topic where the robot will periodically post status and location updates.
|
||||
|
||||
The app receives status updates, for example battery status or robot position information, periodically via the `attr` topic.
|
||||
|
||||
However, commands issued via the app/client are not published directly to the `p2p` topic that the robot subscribes to. When the app sends a command such as "Clean", this is sent via a Rest API to the server at `portal-{countrycode}.ecouser.net`.
|
||||
|
||||
The Rest API provided by `portal-{countrycode}.ecouser.net` receives the command and passes it to a "helper" bot that has permission to publish to the `p2p` topic the robot is subscribed to. The "helper" bot waits for a response to be published by the robot and then passes that response back to the server for the Rest API to send back as a response.
|
||||
|
||||
***Bumper*** provides a simulated RestAPI and "helper" bot, performing the same function as the central server above.
|
||||
76
docs/Use_With_App.md
Normal file
76
docs/Use_With_App.md
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
# Using Bumper with the official Android/iOS App
|
||||
Bumper *can* be used with the official "Ecovacs" or "Ecovacs Home" app, but with limitations. Your phone needs to use your DNS server with custom settings, and you ***must*** import Bumper's CA cert and trust it before the app will work.
|
||||
|
||||
**Steps**
|
||||
**1.** Configure your DNS server as described above in the [DNS](../README.md#dns) section.
|
||||
**2.** [Import the Bumper CA Cert](#import-the-bumper-ca-cert)
|
||||
**3.** [Use the app](#use-the-app)
|
||||
|
||||
## Import the Bumper CA Cert
|
||||
- E-mail yourself the Bumper CA cert (located at `./certs/CA/cacert.crt`)
|
||||
**Note:** Make sure you select the `cacert.crt` file, which is a DER encoded version that will work on either Android or iOS.
|
||||
|
||||

|
||||
|
||||
- Import the cert as a CA, and trust it
|
||||
- Instructions for [iOS](#importing-the-ca-cert-on-ios)
|
||||
- Instruction for [Android](#importing-the-ca-cert-on-android)
|
||||
|
||||
----
|
||||
|
||||
### Importing the CA Cert on iOS
|
||||
|
||||
1. Open the e-mail on your iOS device, and click the attached cert
|
||||
|
||||

|
||||
|
||||
2. Install the profile by clicking "Install", and entering your pass code if prompted
|
||||
|
||||

|
||||
|
||||
3. Accept the certificate warning by clicking "Install" again
|
||||
|
||||

|
||||
|
||||
4. Click "Done" to exit the profile installation
|
||||
5. Go to Settings > General > About
|
||||
6. Scroll to the bottom and click "Certificate Trust Settings"
|
||||
7. Enable Full Trust for the Bumper CA Cert, by moving the slider to the right
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
8. Click continue when prompted
|
||||
9. That's it, you can now [Use the app](#use-the-app)
|
||||
|
||||
----
|
||||
|
||||
### Importing the CA Cert on Android
|
||||
|
||||
1. Open the e-mail on your Android device
|
||||
|
||||
**Quick Method**
|
||||
|
||||
2. Click the cert, and if prompted provide a name
|
||||
3. Under "Used for", select "VPN and apps"
|
||||
|
||||
**Long Method**
|
||||
|
||||
2. Save the attached cert file
|
||||
3. Go to Settings > Lock screen and security > Other security settings
|
||||
4. Under "Credential storage", click "Install from device storage"
|
||||
5. Browse to the downloaded cert, select it, then click "Done"
|
||||
6. Click the cert, and if prompted provide a name
|
||||
7. Under "Used for", select "VPN and apps"
|
||||
|
||||
Now, start [using the app](#use-the-app).
|
||||
|
||||
----
|
||||
|
||||
### Use the app
|
||||
|
||||
- Open the app
|
||||
- At this time there is no authentication layer, you can enter any e-mail address and password (as long as it is 6 characters) and you will be authenticated
|
||||
- If your robot has already checked into Bumper, then it will be available in the list of robots
|
||||
- The app now does a ping to the robot to make sure it is online, and if it is you can now control the robot
|
||||
4
docs/Use_With_Sucks.md
Normal file
4
docs/Use_With_Sucks.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# Using Bumper with Sucks
|
||||
Instructions (verified to work with Sucks 0.8.3)
|
||||
- Download and install [Sucks](https://github.com/wpietri/sucks)
|
||||
- See the [example script](examples/sucks.py) for how to connect
|
||||
|
|
@ -29,10 +29,10 @@ def test_user_db():
|
|||
p = platform.system()
|
||||
os.getenv = mock.MagicMock(return_value="C:\AppData")
|
||||
o = os.getenv("APPDATA")
|
||||
assert_equals(bumper.os_db_path(), os.path.join(os.getenv("APPDATA"), "bumper.db"))
|
||||
assert_equals(bumper.os_db_path(createdir=False), os.path.join(os.getenv("APPDATA"), "bumper.db"))
|
||||
|
||||
platform.system = mock.MagicMock(return_value="Linux")
|
||||
assert_equals(bumper.os_db_path(), os.path.expanduser("~/.config/bumper.db"))
|
||||
assert_equals(bumper.os_db_path(createdir=False), os.path.expanduser("~/.config/bumper.db"))
|
||||
|
||||
bumper.db = "tests/tmp.db" # Set db location for testing
|
||||
bumper.user_add("testuser") # Add testuser
|
||||
|
|
@ -184,4 +184,3 @@ def test_client_db():
|
|||
assert_equals(
|
||||
len(bumper.get_disconnected_xmpp_clients()), 1
|
||||
) # Test len of connected xmpp clients is 1
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue