A python library to communicate with Risco Cloud.
Project description
PyRisco
A python interface to Risco alarm systems through Risco Cloud.
Installation
You can install pyrisco from PyPI:
pip3 install pyrisco
Python 3.7 and above are supported.
How to use
Cloud
RiscoCloud fallback mode
Pyrisco will instruct RiscoCloud to request updates from your control panel, if there is an issue RiscoCloud will return a 72 error code, if this happens,
- pyrisco will try a second time in fallback mode, which will request the last known state from RiscoCloud.
- A flag named
assumed_control_panel_statewill be set to True on the Alarm object to indicate that the state is assumed, rather than obtained from the panel. Assumed states could be stale.
Example
import asyncio
from pyrisco import RiscoCloud
async def test_cloud():
r = RiscoCloud("<username>", "<password>", "<pincode>")
# you can also pass your own session to login. It will not be closed
await r.login()
alarm = await r.get_state()
# partitions and zones are zero-based in Cloud
print(alarm.partitions[0].armed)
events = await r.get_events("2020-06-17T00:00:00Z", 10)
print(events[0].name)
print(alarm.zones[0].name)
print(alarm.zones[0].triggered)
print(alarm.zones[0].bypassed)
# arm partition 0
await r.partitions[0].arm()
# and disarm it
await r.partitions[0].disarm()
# Partial arming
await r.partitions[0].partial_arm()
# Group arming
await r.partitions[0].group_arm("B")
# or a zero based index
await r.partitions[0].group_arm(1)
# Don't forget to close when you're done
await r.close()
asyncio.run(test_cloud())
Local
import asyncio
from pyrisco import RiscoLocal
async def test_local():
# r = RiscoLocal("<host>", <port>, "<pincode>")
r = RiscoLocal("<host>", 1000, "<pincode>")
await r.connect()
# Register handlers
async def _error(error):
print(f'Error handler: {error}')
remove_error = r.add_error_handler(_error)
async def _event(event):
print(f'Event handler: {event}')
remove_event = r.add_event_handler(_event)
async def _default(command, result, *params):
print(f'Default handler: {command}, {result}, {params}')
remove_default = r.add_default_handler(_default)
async def _zone(zone_id, zone):
print(f'Zone handler: {zone_id}, {vars(zone)}')
remove_zone = r.add_zone_handler(_zone)
async def _partition(partition_id, partition):
print(f'Partition handler: {partition_id}, {vars(partition)}')
remove_partition = r.add_partition_handler(_partition)
await r.connect()
# partitions and zones are one-based in Cloud
print(r.partitions[1].armed)
print(r.zones[1].name)
print(r.zones[1].triggered)
print(r.zones[1].bypassed)
# arm partition 1
await r.partitions[1].arm()
# and disarm it
await r.partitions[1].disarm()
# Partial arming
await r.partitions[1].partial_arm()
# Group arming
await r.partitions[1].group_arm("B")
# or a zero based index
await r.partitions[1].group_arm(1)
# Don't forget to close when you're done
await r.disconnect()
asyncio.run(test_local())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyrisco-0.6.8.tar.gz.
File metadata
- Download URL: pyrisco-0.6.8.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fc4766760f700543cdbd1e9efd2c43a74bdc13416771ce005916d08e0ef5d85
|
|
| MD5 |
88b5a7bbdc3bfee82e1edf907830dc2e
|
|
| BLAKE2b-256 |
5484c32ba7f53754ea87edef19a985bcd7a23da954c046b2cbc98eb7c78d58fc
|
File details
Details for the file pyrisco-0.6.8-py3-none-any.whl.
File metadata
- Download URL: pyrisco-0.6.8-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
606a68526e09d6dbed8bcab1999c0facd2a76a76e5d98ef234d7eecdd9e12e20
|
|
| MD5 |
f42d6216783072064c3501c987828134
|
|
| BLAKE2b-256 |
f5de7b08b5543fa5c8a40fea13a85230e313cf672ef04c876008aea0034d5435
|