diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pyrisco.spec | 379 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 381 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyrisco-0.5.7.tar.gz diff --git a/python-pyrisco.spec b/python-pyrisco.spec new file mode 100644 index 0000000..41a299c --- /dev/null +++ b/python-pyrisco.spec @@ -0,0 +1,379 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyrisco +Version: 0.5.7 +Release: 1 +Summary: A python library to communicate with Risco Cloud. +License: MIT +URL: https://github.com/OnFreund/PyRisco +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/43/19/27ebe156c0ce632daf4da4e887609da078aac3903c27a0499c366de3d115/pyrisco-0.5.7.tar.gz +BuildArch: noarch + +Requires: python3-aiohttp + +%description + +# PyRisco + +A python interface to Risco alarm systems through [Risco Cloud](https://riscocloud.com/ELAS/WebUI). + +## Installation + +You can install pyrisco from [PyPI](https://pypi.org/project/pyrisco/): + + pip3 install pyrisco + +Python 3.7 and above are supported. + + +## How to use + +### Cloud +```python +from pyrisco import RiscoCloud +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() +``` + +### Local +```python +from pyrisco import RiscoLocal +r = RiscoLocal("<host>", <port>, "<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() +``` + + +%package -n python3-pyrisco +Summary: A python library to communicate with Risco Cloud. +Provides: python-pyrisco +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyrisco + +# PyRisco + +A python interface to Risco alarm systems through [Risco Cloud](https://riscocloud.com/ELAS/WebUI). + +## Installation + +You can install pyrisco from [PyPI](https://pypi.org/project/pyrisco/): + + pip3 install pyrisco + +Python 3.7 and above are supported. + + +## How to use + +### Cloud +```python +from pyrisco import RiscoCloud +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() +``` + +### Local +```python +from pyrisco import RiscoLocal +r = RiscoLocal("<host>", <port>, "<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() +``` + + +%package help +Summary: Development documents and examples for pyrisco +Provides: python3-pyrisco-doc +%description help + +# PyRisco + +A python interface to Risco alarm systems through [Risco Cloud](https://riscocloud.com/ELAS/WebUI). + +## Installation + +You can install pyrisco from [PyPI](https://pypi.org/project/pyrisco/): + + pip3 install pyrisco + +Python 3.7 and above are supported. + + +## How to use + +### Cloud +```python +from pyrisco import RiscoCloud +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() +``` + +### Local +```python +from pyrisco import RiscoLocal +r = RiscoLocal("<host>", <port>, "<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() +``` + + +%prep +%autosetup -n pyrisco-0.5.7 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pyrisco -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.7-1 +- Package Spec generated @@ -0,0 +1 @@ +befb11d778b029a6ab67f2c729c98f3d pyrisco-0.5.7.tar.gz |
