verisure-italy
Async Python client for the Verisure Italy alarm API.
Talks directly to customers.verisure.it/owa-api/graphql. Typed,
async, Pydantic models for all request/response types. No Any,
no dict soup. Pyright strict, zero errors.
Not affiliated with Verisure Group or Securitas Direct.
Installation
pip install verisure-italy
Usage
import aiohttp
from verisure_italy import VerisureClient, generate_device_id, generate_uuid
async with aiohttp.ClientSession() as session:
client = VerisureClient(
username="your@email.com",
password="your-password",
http_session=session,
device_id=generate_device_id(),
uuid=generate_uuid(),
id_device_indigitall="",
)
# Login (may raise TwoFactorRequiredError)
await client.login()
# List installations
installations = await client.list_installations()
inst = installations[0]
await client.get_services(inst)
# Get alarm status (passive — no panel ping, no timeline entry)
status = await client.get_general_status(inst)
print(f"Alarm: {status.status}") # D, B, A, E, P, T
# Arm / disarm
from verisure_italy import AlarmState, InteriorMode, PerimeterMode
target = AlarmState(interior=InteriorMode.PARTIAL, perimeter=PerimeterMode.ON)
result = await client.arm(inst, target)
# Force-arm (bypassing open zones — admin users only)
from verisure_italy.exceptions import ArmingExceptionError
try:
await client.arm(inst, target)
except ArmingExceptionError as exc:
print(f"Open zones: {[e.alias for e in exc.exceptions]}")
await client.arm(
inst, target,
force_arming_remote_id=exc.reference_id,
suid=exc.suid,
)
await client.disarm(inst)
await client.logout()
Alarm States
| State | Interior | Perimeter | Proto |
|---|---|---|---|
| Disarmed | OFF | OFF | D |
| Partial + Perimeter | PARTIAL | ON | B |
| Total + Perimeter | TOTAL | ON | A |
| Perimeter only | OFF | ON | E |
| Partial | PARTIAL | OFF | P |
| Total | TOTAL | OFF | T |
Home Assistant
Looking for the Home Assistant integration? See ha-verisure-italy on GitHub, or install via HACS.
License
MIT. See LICENSE.
Metadata
Release files for verisure-italy 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| verisure_italy-0.10.0.tar.gz | 82.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| verisure_italy-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 125.2 kB
Release files / verisure_italy-0.10.0.tar.gz
| Download URL | verisure_italy-0.10.0.tar.gz |
|---|---|
| Size | 82.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59cec891b764bcacb3ac0b58dbeccdfb219d0dcbfa111bce26f336ff519642a0
|
|
BLAKE2b-256 checksum How to use checksums |
02a714d9e4007ddf93cfe1cb27f5fbd34dcfaef5e1f73ef8f2f1e45c803483e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / verisure_italy-0.10.0-py3-none-any.whl
| Download URL | verisure_italy-0.10.0-py3-none-any.whl |
|---|---|
| Size | 43.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
497afcc226f198d1bc2050725b59b80ed58c539147e2c7d7eda5224b7f40e4c8
|
|
BLAKE2b-256 checksum How to use checksums |
9c0490de997ebf2092eceee7f077d158be6f59f0484332128d9532322ced8d65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|