Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verisure_italy-0.3.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

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

verisure_italy-0.3.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

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

Hashes for verisure_italy-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cf338122efe83fef83a0985f9dea214de044e45dc0d965870e3f5ec4796fa5b0
MD5 3862a3ad03f86d622d691209634c85bf
BLAKE2b-256 92937727a1fe083ec67ea3b971c05a3c5c435f60bb0574f552cf7d5f58a83041

See more details on using hashes here.

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

Hashes for verisure_italy-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd5b705df8635146421d6d39f935816e8bc258c14f5050120a0fe9901824b10d
MD5 63a3d950c27e847494a72bfd604ba8f7
BLAKE2b-256 e9982ceda224bd7577239a9d66e1ee5c1a419aa92976ea078ede24ec0a9d0670

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