diff --git a/README.md b/README.md index df94e7c..7019318 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,102 @@ # Table of Contents -- [Requirements](#requirements) +- [Compiling](#compiling) + - [Requirements](#requirements) + - [Instructions](#instructions) +- [Configuration](#configuration) + - [Examples](#examples) + - [Command-line](#command-line) + - [Config file](#config-file) +- [Usage](#usage) - [Obtaining device credentials](#obtaining-device-credentials) - [tl;dr](#tldr) - - [Instructions:](#instructions) + - [Instructions:](#instructions-1) - [With docker](#with-docker) - [1. Enter a shell within an ubuntu docker container](#1-enter-a-shell-within-an-ubuntu-docker-container) - [2. Set up your environment](#2-set-up-your-environment) - [3. Clone the repo](#3-clone-the-repo) - [4. Install requirements](#4-install-requirements) - [5. Get your credentials](#5-get-your-credentials) -- [Configuration](#configuration) - - [Examples](#examples) - - [Command-line](#command-line) - - [Config file](#config-file) -- [Usage](#usage) - # eufy_robovac This is a cli script adapted from [Richard Mitchell's work](https://github.com/mitchellrj/eufy_robovac_). It abandons all the code for integrating with homeassistant in lieu of creating a portable binary to control the thing - either manually or with cron job. -# Requirements +# Compiling +This python script can be compiled to a single executable binary. + +## Requirements + +- linux machine - git -- python 3.12 or higher -- python-cryptography package -- docker to compile (alternatively: pipenv and pyinstaller) -- device credentials +- docker + +## Instructions + +``` +git clone https://gitea.raer.me/freyjagp/eufy_robovac.git +cd eufy_robovac +chmod +x compile +./compile +``` + +This will create a docker image then use it to compile an executable binary to `eufy_robovac/dist/vac`. + +# Configuration + +The device ID, ip address, and local code are required for this to work. They may be passed as arguments, or through a config file. The defalt path for the config file is `/etc/robovac.conf`. This can be altered with the `-c` or `--config` flags. + +## Examples + +### Command-line + +Set config file to any arbitrary location: + +``` +robovac --config=/home/user/robovac.conf +``` + +Provide credentials inline: + +``` +robovac --device_id=DEVICE_ID --ip=192.168.1.1 --local_code=LOCAL_CODE +``` + +### Config file + +``` +[robovac] +device_id=DEVICE_ID +ip=192.168.1.1 +local_code=LOCAL_CODE +``` + +[see here](config/robovac.conf.example) + +# Usage + +``` +usage: vac [-h] [-c CONFIG] [--device_id DEVICE_ID] [--ip IP] [--local_code LOCAL_CODE] [--time TIME] [--pause] [--home] [--debug] [--verbose] [--quiet] + +Control a Robovac device. + +options: + -h, --help show this help message and exit + -c CONFIG, --config CONFIG + Path to config file + --device_id DEVICE_ID + Device ID + --ip IP Device IP address + --local_code LOCAL_CODE + Secret key obtained from eufy + --time TIME, -t TIME Cleaning time in minutes + --pause, -p Pause vacuum + --home, -b Go home + --debug, -d Enter debugging mode (won't send commands to vacuum) + --verbose, -v Enable verbose logs + --quiet, -q Quiet logs +``` # Obtaining device credentials @@ -91,58 +160,3 @@ Output: Home: Device: RoboVac, device ID , local key ``` - -# Configuration - -The device ID, ip address, and local code are required for this to work. They may be passed as arguments, or through a config file. The defalt path for the config file is `/etc/robovac.conf`. This can be altered with the `-c` or `--config` flags. - -## Examples - -### Command-line - -Set config file to any arbitrary location: - -``` -robovac --config=/home/user/robovac.conf -``` - -Provide credentials inline: - -``` -robovac --device_id=DEVICE_ID --ip=192.168.1.1 --local_code=LOCAL_CODE -``` - -### Config file - -``` -[robovac] -device_id=DEVICE_ID -ip=192.168.1.1 -local_code=LOCAL_CODE -``` - -[see here](config/robovac.conf.example) - -# Usage - -``` -usage: vac [-h] [-c CONFIG] [--device_id DEVICE_ID] [--ip IP] [--local_code LOCAL_CODE] [--time TIME] [--pause] [--home] [--debug] [--verbose] [--quiet] - -Control a Robovac device. - -options: - -h, --help show this help message and exit - -c CONFIG, --config CONFIG - Path to config file - --device_id DEVICE_ID - Device ID - --ip IP Device IP address - --local_code LOCAL_CODE - Secret key obtained from eufy - --time TIME, -t TIME Cleaning time in minutes - --pause, -p Pause vacuum - --home, -b Go home - --debug, -d Enter debugging mode (won't send commands to vacuum) - --verbose, -v Enable verbose logs - --quiet, -q Quiet logs -``` \ No newline at end of file