diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pyrainbird.spec | 204 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 206 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyrainbird-2.0.1.tar.gz diff --git a/python-pyrainbird.spec b/python-pyrainbird.spec new file mode 100644 index 0000000..a4f21cc --- /dev/null +++ b/python-pyrainbird.spec @@ -0,0 +1,204 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyrainbird +Version: 2.0.1 +Release: 1 +Summary: Rain Bird Controller +License: MIT +URL: https://github.com/allenporter/pyrainbird +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f7/61/9605169475f3d6d537fac4509fdc2dd4964d9dab65e73601209dc5cfadca/pyrainbird-2.0.1.tar.gz +BuildArch: noarch + +Requires: python3-pycryptodome +Requires: python3-requests +Requires: python3-PyYAML +Requires: python3-pydantic +Requires: python3-dateutil +Requires: python3-ical + +%description +Python module for interacting with [WiFi LNK](https://www.rainbird.com/products/module-wi-fi-lnk) module of the Rain Bird Irrigation system. This project has no affiliation with Rain Bird. + +This module communicates directly towards the IP Address of the WiFi module. You can start/stop the irrigation, get the currently active zone, and other controller settings. This library currently only has very limited cloud support. Also there are a number of Rain Bird devices with very different command APIs. + +See [documentation](https://allenporter.github.io/pyrainbird/) for full quickstart and API reference. +See the [github project](https://github.com/allenporter/pyrainbird). + +# Quickstart + +This is an example usage to get the current irrigation state for all available +irrigation zones: +``` +import aiohttp +from pyrainbird import async_client + +async with aiohttp.ClientSession() as client: + controller: AsyncRainbirdController = async_client.CreateController( + client, + "192.168.1.1", + "password" + ) + zones = await controller.get_available_stations() + states = await controller.get_zone_states() + for zone in zones: + if zone in states.active_set: + print("Sprinkler zone {zone} is active") +``` + +See [examples](examples/) for additional details on how to use the APIs and an example command +line tool for querying the device. + +# Compatibility + +This library has been tested with the following devices: + + - ESP-TM2 + +You are welcome to file an issue for improved compatibility with your device especially if you +include debug logs that capture the API responses form the device. + +See [CONTRIBUTING](CONTRIBUTING.md) for details on developing in the library itself, such as +running the tests and other tooling used in development. + + +%package -n python3-pyrainbird +Summary: Rain Bird Controller +Provides: python-pyrainbird +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyrainbird +Python module for interacting with [WiFi LNK](https://www.rainbird.com/products/module-wi-fi-lnk) module of the Rain Bird Irrigation system. This project has no affiliation with Rain Bird. + +This module communicates directly towards the IP Address of the WiFi module. You can start/stop the irrigation, get the currently active zone, and other controller settings. This library currently only has very limited cloud support. Also there are a number of Rain Bird devices with very different command APIs. + +See [documentation](https://allenporter.github.io/pyrainbird/) for full quickstart and API reference. +See the [github project](https://github.com/allenporter/pyrainbird). + +# Quickstart + +This is an example usage to get the current irrigation state for all available +irrigation zones: +``` +import aiohttp +from pyrainbird import async_client + +async with aiohttp.ClientSession() as client: + controller: AsyncRainbirdController = async_client.CreateController( + client, + "192.168.1.1", + "password" + ) + zones = await controller.get_available_stations() + states = await controller.get_zone_states() + for zone in zones: + if zone in states.active_set: + print("Sprinkler zone {zone} is active") +``` + +See [examples](examples/) for additional details on how to use the APIs and an example command +line tool for querying the device. + +# Compatibility + +This library has been tested with the following devices: + + - ESP-TM2 + +You are welcome to file an issue for improved compatibility with your device especially if you +include debug logs that capture the API responses form the device. + +See [CONTRIBUTING](CONTRIBUTING.md) for details on developing in the library itself, such as +running the tests and other tooling used in development. + + +%package help +Summary: Development documents and examples for pyrainbird +Provides: python3-pyrainbird-doc +%description help +Python module for interacting with [WiFi LNK](https://www.rainbird.com/products/module-wi-fi-lnk) module of the Rain Bird Irrigation system. This project has no affiliation with Rain Bird. + +This module communicates directly towards the IP Address of the WiFi module. You can start/stop the irrigation, get the currently active zone, and other controller settings. This library currently only has very limited cloud support. Also there are a number of Rain Bird devices with very different command APIs. + +See [documentation](https://allenporter.github.io/pyrainbird/) for full quickstart and API reference. +See the [github project](https://github.com/allenporter/pyrainbird). + +# Quickstart + +This is an example usage to get the current irrigation state for all available +irrigation zones: +``` +import aiohttp +from pyrainbird import async_client + +async with aiohttp.ClientSession() as client: + controller: AsyncRainbirdController = async_client.CreateController( + client, + "192.168.1.1", + "password" + ) + zones = await controller.get_available_stations() + states = await controller.get_zone_states() + for zone in zones: + if zone in states.active_set: + print("Sprinkler zone {zone} is active") +``` + +See [examples](examples/) for additional details on how to use the APIs and an example command +line tool for querying the device. + +# Compatibility + +This library has been tested with the following devices: + + - ESP-TM2 + +You are welcome to file an issue for improved compatibility with your device especially if you +include debug logs that capture the API responses form the device. + +See [CONTRIBUTING](CONTRIBUTING.md) for details on developing in the library itself, such as +running the tests and other tooling used in development. + + +%prep +%autosetup -n pyrainbird-2.0.1 + +%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-pyrainbird -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.1-1 +- Package Spec generated @@ -0,0 +1 @@ +953a8155f7b36b99824bd95bd5ccd065 pyrainbird-2.0.1.tar.gz |
