pyrisco
A Python library to communicate with Risco Cloud.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or above; Risco Cloud credentials (username, password, PIN) needed for authentication.
- Low friction: pure Python wheel with a single async dependency (aiohttp).
- Active maintenance with recent release (77 days ago).
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; suitable for most integration and automation scenarios.
last release 2026-05-29 (77 days) · last repo commit 2026-05-29 · 14 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 74,597 downloads/mo, #14,812 on PyPI
Alternatives
Verify before relying
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())- 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.
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 on it.
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
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.
Requires Python 3.11 or above; Risco Cloud credentials (username, password, PIN) needed for authentication.
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())
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 packageaiohttp |
| 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 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: pyrisco-0.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “risco alarm system integration”
- pyriscoPyrisco provides an async Python interface to Risco alarm systems via…
- total-connect-clientA Python client library for authenticating with and controlling…
- jaraco.abodeA Python library that interfaces with the Abode home security system…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also total-connect-client · roonapi · elmax-api · launchdarkly-eventsource · elkm1-lib · blinkpy · jaraco.abode · pyrainbird · httsleep