Skip to main content

Sync Eero DHCP client list to AdGuard Home

Project description

Eero-AdGuard-Sync

Sync Eero DHCP client list to AdGuard Home

Release PyPI Code style

eero-adguard-sync

Table of Contents

👶 Dependencies

🛠️ Installation

Install from PyPI using pip, you may need to use pip3 depending on your installation:

pip install eero-adguard-sync

🚀 Usage

eag-sync is a command-line program to sync your Eero DHCP client list to AdGuard Home, note that it is a one-way sync from Eero to AdGuard. It requires Python interpreter version 3.7+.

To run a sync process run the eag-sync sync command, you can find a full list of options below. Sample usage:

eag-sync sync

You may be prompted for an Eero email or SMS code the first time you run this program. Your credentials never leave your computer, all processing is done client side.

To clear all locally cached credentials run the clear command:

eag-sync clear

⚙️ Options

eag-sync

Usage: eag-sync [OPTIONS] COMMAND [ARGS]...

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  sync
  clear

eag-sync sync

Usage: eag-sync sync [OPTIONS]

Options:
  --adguard-host TEXT      AdGuard Home host IP address
  --adguard-user TEXT      AdGuard Home username
  --adguard-password TEXT  AdGuard Home password
  --eero-user TEXT         Eero email address or phone number
  -d, --delete             Delete AdGuard clients not found in Eero DHCP list
  -y, --confirm            Skip interactive confirmation
  -o, --overwrite          Delete all AdGuard clients before sync
  --help                   Show this message and exit.

eag-sync clear

Usage: eag-sync clear [OPTIONS]

Options:
  -y, --confirm  Skip interactive confirmation
  --help         Show this message and exit.

🔮 Autocompletion

To enable tab completion you will need to configure your preferred shell to use it. Currently bash and zsh are supported.

This configuration is totally optional, but may be useful if you use eag-sync often.

bash

Add the following to ~/.bashrc:

eval "$(_EAG_SYNC_COMPLETE=bash_source eag-sync)"

zsh

Add the following to ~/.zshrc:

eval "$(_EAG_SYNC_COMPLETE=zsh_source eag-sync)"

🐋 Docker

A Docker image that executes eag-sync sync on a cron schedule is available on Docker Hub with the tag amickael/eero-adguard-sync. Some environment variables are required when running a container, see the table below for details.

You can also build the image locally using the Dockerfile located in /docker.

Variable Name Notes Required Default
EAG_EERO_COOKIE Eero session cookie value Eero session cookie value from output of eag-sync sync --debug Yes
EAG_ADGUARD_HOST AdGuard host IP address Yes
EAG_ADGUARD_USER AdGuard admin username Yes
EAG_ADGUARD_PASS AdGuard admin password Yes
EAG_SYNC_FLAGS eag-sync sync command flags Sync flags without the dash, e.g. EAG_SYNC_FLAGS="d"

Note: -y is always appended
No -y
EAG_CRON_SCHEDULE Sync schedule in cron syntax See crontab.guru for examples No 0 0 * * *

⚖️ License

MIT © 2022 Andrew Mickael

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eero-adguard-sync-0.3.2.tar.gz (12.8 kB view hashes)

Uploaded Source

Built Distribution

eero_adguard_sync-0.3.2-py3-none-any.whl (16.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page