Async Python client for the Verisure Italy alarm API
Project description
ha-verisure
Home Assistant custom component for Verisure Italy alarm systems.
Talks directly to customers.verisure.it/owa-api/graphql. Goal: fully
replace the Verisure mobile app for alarm control and monitoring.
Status
Work in progress. API client is complete and E2E validated against live panel. Full arm/disarm cycle confirmed. HA integration layer next.
Design Principles
This is security software. Wrong behavior = disarmed alarm = thief gets in.
- Fail-secure. Unknown state = ERROR, not "probably disarmed"
- Strong types. Pydantic models, no
Any, no dict soup. AST tests enforce it - Crash loud. Unknown proto codes, missing fields, unexpected responses all raise
- Parse at the boundary. JSON → Pydantic model in one step. Inside: types guarantee correctness
- No "smart" behavior. Pedantic correctness over convenience
Alarm State Model
Two-axis: interior mode × perimeter.
| State | Interior | Perimeter | Proto Code | Primary |
|---|---|---|---|---|
| Disarmed | OFF | OFF | D |
yes |
| Perimeter only | OFF | ON | E |
|
| Partial | PARTIAL | OFF | P |
|
| Partial + Perimeter | PARTIAL | ON | B |
yes |
| Total | TOTAL | OFF | T |
|
| Total + Perimeter | TOTAL | ON | A |
yes |
Three primary modes (disarmed, partial+perimeter, total+perimeter). Six protocol states recognized. Unknown codes crash loud.
Development
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/ -x -q # 118 tests
pyright verisure_api/ custom_components/ # strict mode, 0 errors
ruff check verisure_api/ tests/ custom_components/
License
Private. Not for distribution.
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 verisure_italy-0.3.0.tar.gz.
File metadata
- Download URL: verisure_italy-0.3.0.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf338122efe83fef83a0985f9dea214de044e45dc0d965870e3f5ec4796fa5b0
|
|
| MD5 |
3862a3ad03f86d622d691209634c85bf
|
|
| BLAKE2b-256 |
92937727a1fe083ec67ea3b971c05a3c5c435f60bb0574f552cf7d5f58a83041
|
File details
Details for the file verisure_italy-0.3.0-py3-none-any.whl.
File metadata
- Download URL: verisure_italy-0.3.0-py3-none-any.whl
- Upload date:
- Size: 18.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd5b705df8635146421d6d39f935816e8bc258c14f5050120a0fe9901824b10d
|
|
| MD5 |
63a3d950c27e847494a72bfd604ba8f7
|
|
| BLAKE2b-256 |
e9982ceda224bd7577239a9d66e1ee5c1a419aa92976ea078ede24ec0a9d0670
|