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_USERNAMEandWOONVEILIG_PASSWORD, runpython woonveilig.py login, verify withpython woonveilig.py status, then usearm --mode away|homeanddisarmfor 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
.envout 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afe057f416549d39997d82dc183a2ae52bd1cf39b72a3f8b1169ba8cd3d5eac5
|
|
| MD5 |
7701ec7156a1ae3c156aaf4571761b3a
|
|
| BLAKE2b-256 |
a45266088e8bc33577859d31e0ea4b109249e2da207fa1849b781d8d2075e132
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a178e76b0332ad60ed83b321c889e2136a4cf734c83e6b173aa816eb7998da2f
|
|
| MD5 |
a2514572ff42a773b684770a449780b5
|
|
| BLAKE2b-256 |
722d0b15965f4aa7bbb8d39e7344c4dff0d4e4e60c0bfa72de1eb1c3e7135af8
|