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.1.tar.gz (13.7 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.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: woonveilig_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 13.7 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.1.tar.gz
Algorithm Hash digest
SHA256 afe057f416549d39997d82dc183a2ae52bd1cf39b72a3f8b1169ba8cd3d5eac5
MD5 7701ec7156a1ae3c156aaf4571761b3a
BLAKE2b-256 a45266088e8bc33577859d31e0ea4b109249e2da207fa1849b781d8d2075e132

See more details on using hashes here.

File details

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

File metadata

  • Download URL: woonveilig_cli-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a178e76b0332ad60ed83b321c889e2136a4cf734c83e6b173aa816eb7998da2f
MD5 a2514572ff42a773b684770a449780b5
BLAKE2b-256 722d0b15965f4aa7bbb8d39e7344c4dff0d4e4e60c0bfa72de1eb1c3e7135af8

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