Custom integration for Home Assistant that connects to the Verisure / Securitas Direct GraphQL API. Control alarm modes, read detailed zone status, refresh camera snapshots, and automate via services.
Full documentation (user guide, developer guide, architecture, API reference, examples, roadmap): docs/index.md · Documentation overview
Quick links: Installation · Configuration · Entities · Services · Troubleshooting
- ✅ Complete authentication with 2FA (OTP via SMS)
- ✅ Automatic session management
- ✅ Multiple installations supported
- ✅ Alarm services (arm/disarm, status)
- ✅ Modern GraphQL API (doesn't use obsolete
vsurelibrary)
- Home Assistant 2026.8.1 (Core; Python >=3.14.2)
- Verisure/Securitas Direct account
- DNI/NIE and account password
- Make sure you have HACS installed
- Add this repository as a custom integration in HACS
- Search for "My Verisure" in the HACS store
- Click "Download"
- Restart Home Assistant
- Go to Settings > Devices & Services > Integrations
- Search for "My Verisure" and configure it
- Download this repository
- Copy the
my_verisurefolder to<config_dir>/custom_components/ - Restart Home Assistant
- Configure the integration from the interface
- Go to Settings > Devices & Services > Integrations
- Search for "My Verisure" and click "Configure"
- Enter your DNI/NIE (without hyphens)
- Enter your password
- Select the phone to receive the OTP code
- Enter the OTP code you receive via SMS
- Done! The integration will configure automatically
Home Assistant assigns entity IDs from friendly names and unique IDs (see custom_components/my_verisure/). Typical patterns:
- Often:
alarm_control_panel.my_verisure(single panel per config entry; verify in Developer tools → States) - States:
disarmed,armed_home,armed_away,armed_night, transitional states during operations - Features: ARM_HOME / ARM_NIGHT / ARM_AWAY
- General Alarm Status, Active Alarms, Panel State (good for automations), Last Updated — entity IDs depend on your install (see Entities doc)
- Internal Day / Night / Total, External — zone booleans (
binary_sensor.*)
- Snapshot camera entities and Refresh Camera Images button when devices exist — see Entities
See docs/user-guide/entities.md and docs/user-guide/automations.md.
Arms the alarm in away mode.
service: my_verisure.arm_away
data:
installation_id: "6220569"Arms the alarm in home mode.
service: my_verisure.arm_home
data:
installation_id: "6220569"Arms the alarm in night mode.
service: my_verisure.arm_night
data:
installation_id: "6220569"Disarms the alarm.
service: my_verisure.disarm
data:
installation_id: "6220569"Additional services: my_verisure.get_status, my_verisure.refresh_camera_images — see docs/user-guide/services.md.
New to the project? Start here: QUICKSTART.md (5-minute setup)
If you're using OrbStack, use this simple Docker setup:
# Start Home Assistant
./dev docker-start
# Access at http://localhost:8123
# View logs
./dev docker-logs
# Stop
./dev docker-stopSee complete guide: OrbStack Setup
For Docker Desktop users who want integrated debugging:
# Using the dev helper script
./dev devcontainer # Opens in Cursor/VS Code DevContainer
./dev start # Start Home Assistant
./dev logs # View logs
# Or manually
cursor . # Open in Cursor (or: code .)
# Reopen in Container (Cursor will prompt you)
container start # Start Home Assistant
# Access at http://localhost:7123Cursor users: Works identically to VS Code! All DevContainer features, debugging, and extensions are fully compatible.
See complete guides:
- Local Development Setup
- OrbStack Setup ← Use this if you have OrbStack
To set up the development environment for CLI and core library development:
# Clone the repository
git clone <repository-url>
cd my_verisure
# Create and activate virtual environment
python3.14 -m venv .ha-2026.8-venv
source .ha-2026.8-venv/bin/activate # Windows: use an equivalent Python 3.14 environment
# Install the pinned validation dependencies
HA_PYTHON=/tmp/ha-2026.8.1-venv/bin/python make installThe project includes a reproducible testing system:
- CLI tests covering the command-line interface
- Core tests covering application and repository behavior
- Home Assistant lifecycle and platform tests
- Contextual coverage is generated by
make coverageand is not committed.
Using the repository Makefile:
make test-ha-2026-8 # Complete suite against HA Core 2026.8.1
make coverage # Coverage report
make lint-critical # CI-critical lint checks
make type-check # Complete mypy gate
make git-check # Architecture, compilation and dependencies
make ci # All local release gatesThe direct commands below are useful for focused debugging only:
python -m pytest cli/tests -q
python -m pytest custom_components/my_verisure/core/tests -qAll development dependencies are automatically installed from requirements-dev.txt:
Home Assistant Core 2026.8.1
Python >=3.14.2
pytest-homeassistant-custom-component 0.13.355
my_verisure/
├── cli/ # Command-line interface
│ ├── commands/ # CLI commands
│ ├── tests/ # CLI tests
│ └── utils/ # CLI utilities
├── custom_components/ # Home Assistant integration
│ └── my_verisure/ # Integration and embedded application core
├── requirements-dev.txt # Development/test dependencies
├── Makefile # Canonical development and verification commands
├── scripts/ # Reproducible validation helpers
└── README.md # This file
- Fork the repository
- Create a feature branch
- Make your changes
- Run the gates:
make ci - Ensure all tests pass and coverage is maintained
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Include logs and configuration details
See CHANGELOG.md for a detailed history of changes.