From 3867a824b379ec4093e938fd2adeb4a87ebde11f Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 06:41:22 +0000 Subject: automatic import of python-aioswitcher --- python-aioswitcher.spec | 696 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 696 insertions(+) create mode 100644 python-aioswitcher.spec (limited to 'python-aioswitcher.spec') diff --git a/python-aioswitcher.spec b/python-aioswitcher.spec new file mode 100644 index 0000000..23bff0d --- /dev/null +++ b/python-aioswitcher.spec @@ -0,0 +1,696 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aioswitcher +Version: 3.3.0 +Release: 1 +Summary: Switcher Python Integration. +License: Apache-2.0 +URL: https://pypi.org/project/aioswitcher/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/94/fc/a467027e6a50c70bf86d865e0397ed8145f4a4bb20f7f0b5c218729fbfb6/aioswitcher-3.3.0.tar.gz +BuildArch: noarch + + +%description +# Help Wanted + +

+ +Aioswitcher project is looking for maintainers and contributors!
+For various reasons, I can only keep maintaining this project as far as dependency bumps and publishing.
+As for new features and the occasional bug support, these will require other maintainers/contributors.
+
+If that's you - please feel free to ping me and I will do all I can to make the onboarding process easy. +
+

+ +# Switcher Python Integration
[![pypi-version]][11] [![pypi-downloads]][11] [![license-badge]][4] + +[![gh-build-status]][7] [![gh-pages-status]][8] [![codecov]][3] + +PyPi module integrating with various [Switcher][12] devices.
+Check out the [wiki pages][0] for a list of supported devices. + +```shell +pip install aioswitcher +``` + + + + + +
DocumentationWikiContributing
+ +## Example Usage + +
+ State Bridge + +```python +async def print_devices(delay): + def on_device_found_callback(device): + # a switcher device will broadcast a state message approximately every 4 seconds + print(asdict(device)) + + async with SwitcherBridge(on_device_found_callback): + await asyncio.sleep(delay) + +# run the bridge for 60 seconds +asyncio.run(print_devices(60)) +``` + +
+ +
+ Power Plug API + + ```python + async def control_power_plug(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType1Api(device_ip, device_id) as api: + # get the device current state + await api.get_state() + # turn the device on + await api.control_device(Command.ON) + # turn the device off + await api.control_device(Command.OFF) + # set the device name to 'my new name' + await api.set_device_name("my new name") + + asyncio.run(control_power_plug("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Water Heater API + + ```python + async def control_water_heater(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType1Api(device_ip, device_id) as api: + # get the device current state + await api.get_state() + # turn the device on for 15 minutes + await api.control_device(Command.ON, 15) + # turn the device off + await api.control_device(Command.OFF) + # set the device name to 'my new name' + await api.set_device_name("my new name") + # configure the device for 02:30 auto shutdown + await api.set_auto_shutdown(timedelta(hours=2, minutes=30)) + # get the schedules from the device + await api.get_schedules() + # delete and existing schedule with id 1 + await api.delete_schedule("1") + # create a new recurring schedule for 13:00-14:30 + # executing on sunday and friday + await api.create_schedule("13:00", "14:30", {Days.SUNDAY, Days.FRIDAY}) + + asyncio.run(control_water_heater("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Runner API + + ```python + async def control_runner(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType2Api(device_ip, device_id) as api: + # get the device current state + await api.get_shutter_state() + # open the shutter to 30% + await api.set_position(30) + # stop the shutter if currently rolling + await api.stop() + + asyncio.run(control_runner("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Breeze API + + ```python + async def control_breeze(device_ip, device_id, remote_manager, remote_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType2Api(device_ip, device_id) as api: + # get the device current state + await api.get_breeze_state() + # initialize the Breeze RemoteManager and get the remote + remote = remote_manager.get_remote(remote_id) + # prepare a control command that turns on the Breeze + # set to 24 degree (Celsius) cooling with vertical swing + # send command to the device + await api.control_breeze_device( + remote, + DeviceState.ON, + ThermostatMode.COOL, + 24, + ThermostatFanLevel.MEDIUM, + ThermostatSwing.ON, + ) + + # create the remote manager outside the context for re-using + remote_manager = SwitcherBreezeRemoteManager() + asyncio.run(control_breeze("111.222.11.22", "ab1c2d", remote_manager, "DLK65863")) + ``` + +
+ +## Command Line Helper Scripts + +- [discover_devices.py](https://github.com/TomerFi/aioswitcher/blob/dev/scripts/discover_devices.py) can discover devices and their + states. +- [control_device.py](https://github.com/TomerFi/aioswitcher/blob/dev/scripts/control_device.py) can control a device. + +## Disclaimer + +This is **NOT** an official module and it is **NOT** officially supported by the vendor.
+That said, thanks are in order to all the people at [Switcher][12] for their cooperation and general support. + +## Contributors + +Thanks goes to these wonderful people ([emoji key][1]): + + + + + + + + + + + + + + + + + + + + + + +
Aviad Golan
Aviad Golan

🔣
Dolev Ben Aharon
Dolev Ben Aharon

📖
Fabian Affolter
Fabian Affolter

💻
Itzik Ephraim
Itzik Ephraim

💻
Kesav890
Kesav890

📖
Liad Avraham
Liad Avraham

💻
Or Bin
Or Bin

💻
Shai rod
Shai rod

🔣
Shay Levy
Shay Levy

💻 🤔 🚧
dmatik
dmatik

📝 🤔 📓
jafar-atili
jafar-atili

💻 📖
+ + + + + + + +[0]: https://github.com/TomerFi/aioswitcher/wiki +[1]: https://allcontributors.org/docs/en/emoji-key +[3]: https://codecov.io/gh/TomerFi/aioswitcher +[4]: https://github.com/TomerFi/aioswitcher +[7]: https://github.com/TomerFi/aioswitcher/actions/workflows/stage.yml +[8]: https://aioswitcher.tomfi.info/ +[11]: https://pypi.org/project/aioswitcher +[12]: https://www.switcher.co.il/ + +[codecov]: https://codecov.io/gh/TomerFi/aioswitcher/graph/badge.svg +[gh-build-status]: https://github.com/TomerFi/aioswitcher/actions/workflows/stage.yml/badge.svg +[gh-pages-status]: https://github.com/TomerFi/aioswitcher/actions/workflows/pages.yml/badge.svg +[license-badge]: https://img.shields.io/github/license/tomerfi/aioswitcher +[pypi-downloads]: https://img.shields.io/pypi/dm/aioswitcher.svg?logo=pypi&color=1082C2 +[pypi-version]: https://img.shields.io/pypi/v/aioswitcher?logo=pypi + + +%package -n python3-aioswitcher +Summary: Switcher Python Integration. +Provides: python-aioswitcher +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aioswitcher +# Help Wanted + +

+ +Aioswitcher project is looking for maintainers and contributors!
+For various reasons, I can only keep maintaining this project as far as dependency bumps and publishing.
+As for new features and the occasional bug support, these will require other maintainers/contributors.
+
+If that's you - please feel free to ping me and I will do all I can to make the onboarding process easy. +
+

+ +# Switcher Python Integration
[![pypi-version]][11] [![pypi-downloads]][11] [![license-badge]][4] + +[![gh-build-status]][7] [![gh-pages-status]][8] [![codecov]][3] + +PyPi module integrating with various [Switcher][12] devices.
+Check out the [wiki pages][0] for a list of supported devices. + +```shell +pip install aioswitcher +``` + + + + + +
DocumentationWikiContributing
+ +## Example Usage + +
+ State Bridge + +```python +async def print_devices(delay): + def on_device_found_callback(device): + # a switcher device will broadcast a state message approximately every 4 seconds + print(asdict(device)) + + async with SwitcherBridge(on_device_found_callback): + await asyncio.sleep(delay) + +# run the bridge for 60 seconds +asyncio.run(print_devices(60)) +``` + +
+ +
+ Power Plug API + + ```python + async def control_power_plug(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType1Api(device_ip, device_id) as api: + # get the device current state + await api.get_state() + # turn the device on + await api.control_device(Command.ON) + # turn the device off + await api.control_device(Command.OFF) + # set the device name to 'my new name' + await api.set_device_name("my new name") + + asyncio.run(control_power_plug("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Water Heater API + + ```python + async def control_water_heater(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType1Api(device_ip, device_id) as api: + # get the device current state + await api.get_state() + # turn the device on for 15 minutes + await api.control_device(Command.ON, 15) + # turn the device off + await api.control_device(Command.OFF) + # set the device name to 'my new name' + await api.set_device_name("my new name") + # configure the device for 02:30 auto shutdown + await api.set_auto_shutdown(timedelta(hours=2, minutes=30)) + # get the schedules from the device + await api.get_schedules() + # delete and existing schedule with id 1 + await api.delete_schedule("1") + # create a new recurring schedule for 13:00-14:30 + # executing on sunday and friday + await api.create_schedule("13:00", "14:30", {Days.SUNDAY, Days.FRIDAY}) + + asyncio.run(control_water_heater("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Runner API + + ```python + async def control_runner(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType2Api(device_ip, device_id) as api: + # get the device current state + await api.get_shutter_state() + # open the shutter to 30% + await api.set_position(30) + # stop the shutter if currently rolling + await api.stop() + + asyncio.run(control_runner("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Breeze API + + ```python + async def control_breeze(device_ip, device_id, remote_manager, remote_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType2Api(device_ip, device_id) as api: + # get the device current state + await api.get_breeze_state() + # initialize the Breeze RemoteManager and get the remote + remote = remote_manager.get_remote(remote_id) + # prepare a control command that turns on the Breeze + # set to 24 degree (Celsius) cooling with vertical swing + # send command to the device + await api.control_breeze_device( + remote, + DeviceState.ON, + ThermostatMode.COOL, + 24, + ThermostatFanLevel.MEDIUM, + ThermostatSwing.ON, + ) + + # create the remote manager outside the context for re-using + remote_manager = SwitcherBreezeRemoteManager() + asyncio.run(control_breeze("111.222.11.22", "ab1c2d", remote_manager, "DLK65863")) + ``` + +
+ +## Command Line Helper Scripts + +- [discover_devices.py](https://github.com/TomerFi/aioswitcher/blob/dev/scripts/discover_devices.py) can discover devices and their + states. +- [control_device.py](https://github.com/TomerFi/aioswitcher/blob/dev/scripts/control_device.py) can control a device. + +## Disclaimer + +This is **NOT** an official module and it is **NOT** officially supported by the vendor.
+That said, thanks are in order to all the people at [Switcher][12] for their cooperation and general support. + +## Contributors + +Thanks goes to these wonderful people ([emoji key][1]): + + + + + + + + + + + + + + + + + + + + + + +
Aviad Golan
Aviad Golan

🔣
Dolev Ben Aharon
Dolev Ben Aharon

📖
Fabian Affolter
Fabian Affolter

💻
Itzik Ephraim
Itzik Ephraim

💻
Kesav890
Kesav890

📖
Liad Avraham
Liad Avraham

💻
Or Bin
Or Bin

💻
Shai rod
Shai rod

🔣
Shay Levy
Shay Levy

💻 🤔 🚧
dmatik
dmatik

📝 🤔 📓
jafar-atili
jafar-atili

💻 📖
+ + + + + + + +[0]: https://github.com/TomerFi/aioswitcher/wiki +[1]: https://allcontributors.org/docs/en/emoji-key +[3]: https://codecov.io/gh/TomerFi/aioswitcher +[4]: https://github.com/TomerFi/aioswitcher +[7]: https://github.com/TomerFi/aioswitcher/actions/workflows/stage.yml +[8]: https://aioswitcher.tomfi.info/ +[11]: https://pypi.org/project/aioswitcher +[12]: https://www.switcher.co.il/ + +[codecov]: https://codecov.io/gh/TomerFi/aioswitcher/graph/badge.svg +[gh-build-status]: https://github.com/TomerFi/aioswitcher/actions/workflows/stage.yml/badge.svg +[gh-pages-status]: https://github.com/TomerFi/aioswitcher/actions/workflows/pages.yml/badge.svg +[license-badge]: https://img.shields.io/github/license/tomerfi/aioswitcher +[pypi-downloads]: https://img.shields.io/pypi/dm/aioswitcher.svg?logo=pypi&color=1082C2 +[pypi-version]: https://img.shields.io/pypi/v/aioswitcher?logo=pypi + + +%package help +Summary: Development documents and examples for aioswitcher +Provides: python3-aioswitcher-doc +%description help +# Help Wanted + +

+ +Aioswitcher project is looking for maintainers and contributors!
+For various reasons, I can only keep maintaining this project as far as dependency bumps and publishing.
+As for new features and the occasional bug support, these will require other maintainers/contributors.
+
+If that's you - please feel free to ping me and I will do all I can to make the onboarding process easy. +
+

+ +# Switcher Python Integration
[![pypi-version]][11] [![pypi-downloads]][11] [![license-badge]][4] + +[![gh-build-status]][7] [![gh-pages-status]][8] [![codecov]][3] + +PyPi module integrating with various [Switcher][12] devices.
+Check out the [wiki pages][0] for a list of supported devices. + +```shell +pip install aioswitcher +``` + + + + + +
DocumentationWikiContributing
+ +## Example Usage + +
+ State Bridge + +```python +async def print_devices(delay): + def on_device_found_callback(device): + # a switcher device will broadcast a state message approximately every 4 seconds + print(asdict(device)) + + async with SwitcherBridge(on_device_found_callback): + await asyncio.sleep(delay) + +# run the bridge for 60 seconds +asyncio.run(print_devices(60)) +``` + +
+ +
+ Power Plug API + + ```python + async def control_power_plug(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType1Api(device_ip, device_id) as api: + # get the device current state + await api.get_state() + # turn the device on + await api.control_device(Command.ON) + # turn the device off + await api.control_device(Command.OFF) + # set the device name to 'my new name' + await api.set_device_name("my new name") + + asyncio.run(control_power_plug("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Water Heater API + + ```python + async def control_water_heater(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType1Api(device_ip, device_id) as api: + # get the device current state + await api.get_state() + # turn the device on for 15 minutes + await api.control_device(Command.ON, 15) + # turn the device off + await api.control_device(Command.OFF) + # set the device name to 'my new name' + await api.set_device_name("my new name") + # configure the device for 02:30 auto shutdown + await api.set_auto_shutdown(timedelta(hours=2, minutes=30)) + # get the schedules from the device + await api.get_schedules() + # delete and existing schedule with id 1 + await api.delete_schedule("1") + # create a new recurring schedule for 13:00-14:30 + # executing on sunday and friday + await api.create_schedule("13:00", "14:30", {Days.SUNDAY, Days.FRIDAY}) + + asyncio.run(control_water_heater("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Runner API + + ```python + async def control_runner(device_ip, device_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType2Api(device_ip, device_id) as api: + # get the device current state + await api.get_shutter_state() + # open the shutter to 30% + await api.set_position(30) + # stop the shutter if currently rolling + await api.stop() + + asyncio.run(control_runner("111.222.11.22", "ab1c2d")) + ``` + +
+ +
+ Breeze API + + ```python + async def control_breeze(device_ip, device_id, remote_manager, remote_id) : + # for connecting to a device we need its id and ip address + async with SwitcherType2Api(device_ip, device_id) as api: + # get the device current state + await api.get_breeze_state() + # initialize the Breeze RemoteManager and get the remote + remote = remote_manager.get_remote(remote_id) + # prepare a control command that turns on the Breeze + # set to 24 degree (Celsius) cooling with vertical swing + # send command to the device + await api.control_breeze_device( + remote, + DeviceState.ON, + ThermostatMode.COOL, + 24, + ThermostatFanLevel.MEDIUM, + ThermostatSwing.ON, + ) + + # create the remote manager outside the context for re-using + remote_manager = SwitcherBreezeRemoteManager() + asyncio.run(control_breeze("111.222.11.22", "ab1c2d", remote_manager, "DLK65863")) + ``` + +
+ +## Command Line Helper Scripts + +- [discover_devices.py](https://github.com/TomerFi/aioswitcher/blob/dev/scripts/discover_devices.py) can discover devices and their + states. +- [control_device.py](https://github.com/TomerFi/aioswitcher/blob/dev/scripts/control_device.py) can control a device. + +## Disclaimer + +This is **NOT** an official module and it is **NOT** officially supported by the vendor.
+That said, thanks are in order to all the people at [Switcher][12] for their cooperation and general support. + +## Contributors + +Thanks goes to these wonderful people ([emoji key][1]): + + + + + + + + + + + + + + + + + + + + + + +
Aviad Golan
Aviad Golan

🔣
Dolev Ben Aharon
Dolev Ben Aharon

📖
Fabian Affolter
Fabian Affolter

💻
Itzik Ephraim
Itzik Ephraim

💻
Kesav890
Kesav890

📖
Liad Avraham
Liad Avraham

💻
Or Bin
Or Bin

💻
Shai rod
Shai rod

🔣
Shay Levy
Shay Levy

💻 🤔 🚧
dmatik
dmatik

📝 🤔 📓
jafar-atili
jafar-atili

💻 📖
+ + + + + + + +[0]: https://github.com/TomerFi/aioswitcher/wiki +[1]: https://allcontributors.org/docs/en/emoji-key +[3]: https://codecov.io/gh/TomerFi/aioswitcher +[4]: https://github.com/TomerFi/aioswitcher +[7]: https://github.com/TomerFi/aioswitcher/actions/workflows/stage.yml +[8]: https://aioswitcher.tomfi.info/ +[11]: https://pypi.org/project/aioswitcher +[12]: https://www.switcher.co.il/ + +[codecov]: https://codecov.io/gh/TomerFi/aioswitcher/graph/badge.svg +[gh-build-status]: https://github.com/TomerFi/aioswitcher/actions/workflows/stage.yml/badge.svg +[gh-pages-status]: https://github.com/TomerFi/aioswitcher/actions/workflows/pages.yml/badge.svg +[license-badge]: https://img.shields.io/github/license/tomerfi/aioswitcher +[pypi-downloads]: https://img.shields.io/pypi/dm/aioswitcher.svg?logo=pypi&color=1082C2 +[pypi-version]: https://img.shields.io/pypi/v/aioswitcher?logo=pypi + + +%prep +%autosetup -n aioswitcher-3.3.0 + +%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-aioswitcher -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot - 3.3.0-1 +- Package Spec generated -- cgit v1.2.3