Skip to main content

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.

Metadata

Release files for woonveilig-cli 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for woonveilig-cli 0.1.1
File Size Uploaded
woonveilig_cli-0.1.1.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for woonveilig-cli 0.1.1
File Interpreter ABI Platform
woonveilig_cli-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.0 kB

Release files / woonveilig_cli-0.1.1.tar.gz

Download URL woonveilig_cli-0.1.1.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
afe057f416549d39997d82dc183a2ae52bd1cf39b72a3f8b1169ba8cd3d5eac5
BLAKE2b-256 checksum
How to use checksums
a45266088e8bc33577859d31e0ea4b109249e2da207fa1849b781d8d2075e132
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / woonveilig_cli-0.1.1-py3-none-any.whl

Download URL woonveilig_cli-0.1.1-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a178e76b0332ad60ed83b321c889e2136a4cf734c83e6b173aa816eb7998da2f
BLAKE2b-256 checksum
How to use checksums
722d0b15965f4aa7bbb8d39e7344c4dff0d4e4e60c0bfa72de1eb1c3e7135af8
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page