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.12.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.12.0.tar.gz | 83.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| verisure_italy-0.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 127.1 kB
Release files / verisure_italy-0.12.0.tar.gz
| Download URL | verisure_italy-0.12.0.tar.gz |
|---|---|
| Size | 83.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d331317d53bb34bfb541cf9b77a061b9d9318c8bb0bb9ce02604ac01bf32c740
|
|
BLAKE2b-256 checksum How to use checksums |
1acd9b32e8b86d7f5e899099951381eaa51ffa394096a962c6286b24e7767f89
|
| 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.12.0-py3-none-any.whl
| Download URL | verisure_italy-0.12.0-py3-none-any.whl |
|---|---|
| Size | 43.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5a557887d0405d5fee35deb6986ebaf69f092e58605a1b00c9f03f5fe51c2af9
|
|
BLAKE2b-256 checksum How to use checksums |
4d61000f144afbf875f32a664a4e303a04a0847c8c80aaf913b90fe14beb9a31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|