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.11.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.11.0.tar.gz | 83.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| verisure_italy-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.7 kB
Release files / verisure_italy-0.11.0.tar.gz
| Download URL | verisure_italy-0.11.0.tar.gz |
|---|---|
| Size | 83.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
88977f1d9c1f27d2baa54cbf2368239ca9ab02632ef1fe4bee9648f35eb165ef
|
|
BLAKE2b-256 checksum How to use checksums |
79ebd86000d37789a511c9b4b58533065f3ae3d6585df66f54f7d61d9f37ecc2
|
| 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.11.0-py3-none-any.whl
| Download URL | verisure_italy-0.11.0-py3-none-any.whl |
|---|---|
| Size | 43.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d2acf39cf8efd031aac53770b61e6df834cbe8ac31bad781f511a35ca51fcd92
|
|
BLAKE2b-256 checksum How to use checksums |
a481d6abe600910b010f516ab6000d39c210c80115e694577255240f55923185
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|