pyrisco
A Python library to communicate with Risco Cloud.
What it is and what it does
Pyrisco is an async Python library that bridges your code to Risco alarm systems, either through Risco Cloud's web service or direct local panel connection. It handles the low-level protocol details so you can query and control partitions and zones, arm/disarm, and receive real-time state updates without polling.
The library supports two main modes: Cloud mode uses Server-Sent Events for push updates (recommended) or polling, while Local mode connects directly to your panel. Both modes expose the same high-level API for reading zone and partition state and issuing control commands. The async design means it integrates naturally with Home Assistant and other event-driven systems. It depends only on aiohttp for HTTP operations.
Use it for:
- Home Assistant integration: subscribe to alarm state changes and trigger automations based on partition armed status or zone triggers.
- Security monitoring dashboard: poll alarm state periodically and display zone status, armed state, and recent events in a web interface.
- Automated response system: listen for specific zone triggers and execute actions like unlocking doors or sending alerts.
- Local panel control: connect directly to panel for offline arming/disarming without relying on cloud service availability.
- Event logging: fetch historical events from Risco Cloud and store them in a local database for audit or analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pyrisco provides an async Python interface to Risco alarm systems via Risco Cloud, supporting both real-time state updates through Server-Sent Events and manual polling, plus local control via direct panel connection.
Yes. Pyrisco is actively maintained, has no known vulnerabilities, installs with minimal friction, and is the primary Python interface to Risco systems. Install it if you need to integrate a Risco alarm into a Python automation or monitoring system. The async design and support for both cloud and local modes make it flexible for different deployment scenarios.
Install
pyrisco on PyPI
pip
pip install pyriscouv
uv add pyriscopoetry
poetry add pyriscoInstalling pyrisco
Before you install
Low friction: pure Python wheel with a single async dependency (aiohttp). Active maintenance with recent release (77 days ago). Requires Python 3.11 or above.
License in practice
MIT license permits commercial and private use with minimal restrictions; suitable for most integration and automation scenarios.
Quickstart
import asyncio
from pyrisco import RiscoCloud
async def main():
r = RiscoCloud(username, password, pin)
await r.login()
alarm = await r.get_state()
print(alarm.partitions[0].armed)
await r.close()
asyncio.run(main())
Requires Python 3.11 or above; Risco Cloud credentials (username, password, PIN) needed for authentication.
Verify before relying
- Whether local panel connection requires specific hardware or network setup beyond IP and port.
- Scope and frequency of automatic reconnection backoff behavior in production scenarios.
- Whether assumed_control_panel_state fallback is suitable for critical security decisions.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — aiohttp |
| Maintenance | actively maintained — 77 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,597/month — #14,812 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyrisco-0.8.0-py3-none-any.whl
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
total-connect-clientA Python client library for authenticating with…
permissive · top 15,000 on PyPI
roonapiPython client library for the Roon music server…
permissive · top 15,000 on PyPI
elmax-apiAn async Python client for the Elmax Cloud API…
permissive · top 15,000 on PyPI
launchdarkly-eventsourceConsumes Server-Sent Events (SSE) from remote…
permissive · top 5,000 on PyPI
elkm1-libAsynchronous Python library for communicating…
permissive · top 15,000 on PyPI
blinkpyA Python library for controlling and monitoring…
permissive · top 15,000 on PyPI
jaraco.abodeA Python library that interfaces with the Abode…
permissive · top 15,000 on PyPI
pyrainbirdCommunicates with Rain Bird WiFi LNK irrigation…
permissive · top 15,000 on PyPI
httsleephttsleep polls HTTP endpoints repeatedly until…
permissive · top 15,000 on PyPI