diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pyintesishome.spec | 268 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 270 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyintesishome-1.8.4.tar.gz diff --git a/python-pyintesishome.spec b/python-pyintesishome.spec new file mode 100644 index 0000000..15c0780 --- /dev/null +++ b/python-pyintesishome.spec @@ -0,0 +1,268 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyintesishome +Version: 1.8.4 +Release: 1 +Summary: A python3 library for running asynchronus communications with IntesisHome Smart AC Controllers +License: MIT +URL: https://github.com/jnimmo/pyIntesisHome +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ee/fe/4ecb455a92870d5c15ce50162f4806e6884175f1691d3a87937e611aa694/pyintesishome-1.8.4.tar.gz +BuildArch: noarch + +Requires: python3-aiohttp + +%description +# pyIntesisHome +This project is a python3 library for interfacing with Intesis air conditioning controllers, including cloud control of IntesisHome (Airconwithme + anywAiR) and local control of IntesisBox devices. +It is fully asynchronous using the aiohttp library, and utilises the private API used by the IntesisHome mobile apps. + +### Home Assistant +To use with [Home Assistant](https://www.home-assistant.io/integrations/intesishome/), add the following to your configuration.yaml + +#### IntesisHome configuration example +```yaml +climate: + - platform: intesishome + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +#### IntesisBox configuration example +```yaml +climate: + - platform: intesishome + device: IntesisBox + host: 192.168.1.50 +``` + + +## Library usage + - Instantiate the IntesisHome controller device with username and password for the user.intesishome.com website. + - Status can be polled using the poll_status command suggested maximum of once every 5 minutes. + - Commands are sent using a TCP connection to the API which will then remain open until the connection times out. + - While the persistent TCP connection is open, status updates are pushed to the device over the socket meaning polling is not required (check using *is_connected* property) + - Callbacks to be notified of state updates can be added with the add_callback() method. + +### Library basic example +```python +import asyncio +from pyintesishome import IntesisHome + +async def main(loop): + controller = IntesisHome('username', 'password', loop=loop, device_type='airconwithme') + await controller.connect() + print(repr(controller.get_devices())) + # Imagine you have a device with id 12015601252591 + if await controller.get_power_state('12015601252591') == 'off': + await controller.set_power_on('12015601252591') + + await controller.set_mode_heat('12015601252591') + await controller.set_temperature('12015601252591', 22) + await controller.set_fan_speed('12015601252591','quiet') + +if __name__ == "__main__": + loop = asyncio.get_event_loop() + result = loop.run_until_complete(main(loop)) + +``` +### Control methods + + - set_mode_heat(deviceID) + - set_mode_cool(deviceID) + - set_mode_fan(deviceID) + - set_mode_dry(deviceID) + - set_mode_auto(deviceID) + - set_temperature(deviceID, temperature) + - set_fan_speed(deviceID, 'quiet' | 'low' | 'medium' | 'high' | 'auto') + - set_power_on(deviceID) + - set_power_off(deviceID) + + + +%package -n python3-pyintesishome +Summary: A python3 library for running asynchronus communications with IntesisHome Smart AC Controllers +Provides: python-pyintesishome +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyintesishome +# pyIntesisHome +This project is a python3 library for interfacing with Intesis air conditioning controllers, including cloud control of IntesisHome (Airconwithme + anywAiR) and local control of IntesisBox devices. +It is fully asynchronous using the aiohttp library, and utilises the private API used by the IntesisHome mobile apps. + +### Home Assistant +To use with [Home Assistant](https://www.home-assistant.io/integrations/intesishome/), add the following to your configuration.yaml + +#### IntesisHome configuration example +```yaml +climate: + - platform: intesishome + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +#### IntesisBox configuration example +```yaml +climate: + - platform: intesishome + device: IntesisBox + host: 192.168.1.50 +``` + + +## Library usage + - Instantiate the IntesisHome controller device with username and password for the user.intesishome.com website. + - Status can be polled using the poll_status command suggested maximum of once every 5 minutes. + - Commands are sent using a TCP connection to the API which will then remain open until the connection times out. + - While the persistent TCP connection is open, status updates are pushed to the device over the socket meaning polling is not required (check using *is_connected* property) + - Callbacks to be notified of state updates can be added with the add_callback() method. + +### Library basic example +```python +import asyncio +from pyintesishome import IntesisHome + +async def main(loop): + controller = IntesisHome('username', 'password', loop=loop, device_type='airconwithme') + await controller.connect() + print(repr(controller.get_devices())) + # Imagine you have a device with id 12015601252591 + if await controller.get_power_state('12015601252591') == 'off': + await controller.set_power_on('12015601252591') + + await controller.set_mode_heat('12015601252591') + await controller.set_temperature('12015601252591', 22) + await controller.set_fan_speed('12015601252591','quiet') + +if __name__ == "__main__": + loop = asyncio.get_event_loop() + result = loop.run_until_complete(main(loop)) + +``` +### Control methods + + - set_mode_heat(deviceID) + - set_mode_cool(deviceID) + - set_mode_fan(deviceID) + - set_mode_dry(deviceID) + - set_mode_auto(deviceID) + - set_temperature(deviceID, temperature) + - set_fan_speed(deviceID, 'quiet' | 'low' | 'medium' | 'high' | 'auto') + - set_power_on(deviceID) + - set_power_off(deviceID) + + + +%package help +Summary: Development documents and examples for pyintesishome +Provides: python3-pyintesishome-doc +%description help +# pyIntesisHome +This project is a python3 library for interfacing with Intesis air conditioning controllers, including cloud control of IntesisHome (Airconwithme + anywAiR) and local control of IntesisBox devices. +It is fully asynchronous using the aiohttp library, and utilises the private API used by the IntesisHome mobile apps. + +### Home Assistant +To use with [Home Assistant](https://www.home-assistant.io/integrations/intesishome/), add the following to your configuration.yaml + +#### IntesisHome configuration example +```yaml +climate: + - platform: intesishome + username: YOUR_USERNAME + password: YOUR_PASSWORD +``` + +#### IntesisBox configuration example +```yaml +climate: + - platform: intesishome + device: IntesisBox + host: 192.168.1.50 +``` + + +## Library usage + - Instantiate the IntesisHome controller device with username and password for the user.intesishome.com website. + - Status can be polled using the poll_status command suggested maximum of once every 5 minutes. + - Commands are sent using a TCP connection to the API which will then remain open until the connection times out. + - While the persistent TCP connection is open, status updates are pushed to the device over the socket meaning polling is not required (check using *is_connected* property) + - Callbacks to be notified of state updates can be added with the add_callback() method. + +### Library basic example +```python +import asyncio +from pyintesishome import IntesisHome + +async def main(loop): + controller = IntesisHome('username', 'password', loop=loop, device_type='airconwithme') + await controller.connect() + print(repr(controller.get_devices())) + # Imagine you have a device with id 12015601252591 + if await controller.get_power_state('12015601252591') == 'off': + await controller.set_power_on('12015601252591') + + await controller.set_mode_heat('12015601252591') + await controller.set_temperature('12015601252591', 22) + await controller.set_fan_speed('12015601252591','quiet') + +if __name__ == "__main__": + loop = asyncio.get_event_loop() + result = loop.run_until_complete(main(loop)) + +``` +### Control methods + + - set_mode_heat(deviceID) + - set_mode_cool(deviceID) + - set_mode_fan(deviceID) + - set_mode_dry(deviceID) + - set_mode_auto(deviceID) + - set_temperature(deviceID, temperature) + - set_fan_speed(deviceID, 'quiet' | 'low' | 'medium' | 'high' | 'auto') + - set_power_on(deviceID) + - set_power_off(deviceID) + + + +%prep +%autosetup -n pyintesishome-1.8.4 + +%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-pyintesishome -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 1.8.4-1 +- Package Spec generated @@ -0,0 +1 @@ +40ea9e97a06d76fa4ca10537214e1393 pyintesishome-1.8.4.tar.gz |