Skip to main content

Command-line interface for WoonVeilig/Egardia alarm systems (cloud API)

Project description

WoonVeilig CLI

Command-line interface for managing a WoonVeilig (Egardia) alarm system.

This project is designed to work for both humans and AI agents (for example OpenClaw) that need scriptable alarm-system operations.

Features

  • OAuth2 authentication (compatible with the mobile app flow)
  • Full management commands for alarm state changes
  • Alarm status, system info, devices, residents, and contacts
  • Alarm log retrieval in plain JSON output
  • Debug mode for diagnostic output when needed

Installation

pip install -r requirements.txt

Quick Start for AI Agents

Use this flow when an agent (for example OpenClaw) needs to install and operate the CLI with minimal ambiguity.

1) Install

pip install -r requirements.txt

2) Configure credentials

Set environment variables before running commands:

WOONVEILIG_USERNAME=your_screen_name_username
WOONVEILIG_PASSWORD=your_password

Notes:

  • Username must be the screen name (not email).
  • Keep credentials out of source control.

3) Authenticate and verify access

python woonveilig.py login
python woonveilig.py status

Expected behavior:

  • Commands return plain JSON.
  • On success, status returns alarm account fields.

4) Core control commands

python woonveilig.py arm --mode away
python woonveilig.py arm --mode home
python woonveilig.py disarm

5) Read data for automations

python woonveilig.py logs
python woonveilig.py devices
python woonveilig.py residents
python woonveilig.py contacts
python woonveilig.py info

6) Non-interactive health check

python woonveilig.py status

If auth is missing/expired, output is:

{
	"ok": false,
	"error": "Not authenticated. Run 'login' first."
}

For Humans

Copy this instruction to your AI agent:

Install and configure this WoonVeilig CLI from README instructions, set WOONVEILIG_USERNAME and WOONVEILIG_PASSWORD, run python woonveilig.py login, verify with python woonveilig.py status, then use arm --mode away|home and disarm for control. Keep output in JSON and report any auth/control errors clearly.

Configuration

Use environment variables (recommended for automation) or interactive login.

WOONVEILIG_USERNAME=your_screen_name_username
WOONVEILIG_PASSWORD=your_password

You can also copy .env.example to .env for local development.

Command Reference

# Authentication
python woonveilig.py login
python woonveilig.py logout
python woonveilig.py token-info

# Alarm management
python woonveilig.py arm --mode away
python woonveilig.py arm --mode home
python woonveilig.py disarm

# Monitoring and data
python woonveilig.py status
python woonveilig.py info
python woonveilig.py devices
python woonveilig.py residents
python woonveilig.py contacts
python woonveilig.py logs
python woonveilig.py logs --start 0 --amount 50
python woonveilig.py logs --all --output logs.json

AI Agent Usage Notes

  • Prefer non-interactive authentication with environment variables.
  • All command output is plain JSON for machine processing.
  • Sensitive token details are hidden by default and only shown with --debug.

Security Notes

  • Stored tokens are local user-session credentials. Treat them as secrets.
  • Do not share debug output publicly.
  • Keep .env out of source control (covered by .gitignore).

How It Works

This CLI uses reverse-engineered WoonVeilig/Egardia mobile API behavior:

  • Base URL: https://my.egardia.com/
  • OAuth2 password/refresh token flow
  • Bearer token authorization for secure endpoints

AI-Assisted Development Disclosure

Parts of this project were developed with AI assistance.

Disclaimer

This is an unofficial project and is not affiliated with WoonVeilig or Egardia. Use at your own risk and only on systems/accounts you own or are authorized to manage.

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

woonveilig_cli-0.1.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

woonveilig_cli-0.1.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file woonveilig_cli-0.1.0.tar.gz.

File metadata

  • Download URL: woonveilig_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for woonveilig_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 04ddb8883aa973b4424b5eb8a7b092e3ce3d94abb313e03245995582858d32bf
MD5 6279d1ea792fd221a0e073ea6255fca8
BLAKE2b-256 8fabc59228c13f727456351d31d6a6f5c29ea5669fb5a215eabe6cf1263f66ec

See more details on using hashes here.

File details

Details for the file woonveilig_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: woonveilig_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for woonveilig_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e75438fe014fdb1240c3b17ee641a8e75847b726ccaef1716212b4c38aac281
MD5 181cc6ac63740844e82835acc43c6652
BLAKE2b-256 78bc25358829b899f3a924df968f929d817c7f9eddf30dd62dcec0906180c355

See more details on using hashes here.

Supported by

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