summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pyrisco.spec379
-rw-r--r--sources1
3 files changed, 381 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..07e9901 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..29321cd
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+befb11d778b029a6ab67f2c729c98f3d pyrisco-0.5.7.tar.gz