diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-17 05:12:23 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-17 05:12:23 +0000 |
commit | 358c01a061db8325c325b877df96c499350249d0 (patch) | |
tree | 03fea8f1b93a47f562460a4a49fab20b44c24e18 | |
parent | 9ce35eea3fce0a0d4792b166cfeff1c982d4b87c (diff) |
automatic import of python-airzonecloud
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-airzonecloud.spec | 900 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 902 insertions, 0 deletions
@@ -0,0 +1 @@ +/AirzoneCloud-1.2.2.tar.gz diff --git a/python-airzonecloud.spec b/python-airzonecloud.spec new file mode 100644 index 0000000..41a4e82 --- /dev/null +++ b/python-airzonecloud.spec @@ -0,0 +1,900 @@ +%global _empty_manifest_terminate_build 0 +Name: python-AirzoneCloud +Version: 1.2.2 +Release: 1 +Summary: Python3 library for Airzone Cloud API +License: MIT License +URL: https://github.com/max13fr/AirzoneCloud +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e0/6b/7d41c51c0fc3c683840b084ca87c792554fc1eacbbb7d5e083375ca27bc0/AirzoneCloud-1.2.2.tar.gz +BuildArch: noarch + + +%description +# Airzone Cloud + +- [Airzone Cloud](#airzone-cloud) + - [Presentation](#presentation) + - [Abstract](#abstract) + - [Module classes](#module-classes) + - [Usage](#usage) + - [Install](#install) + - [Start API](#start-api) + - [Get installations](#get-installations) + - [Get installations](#get-installations-1) + - [Get groups for each installation](#get-groups-for-each-installation) + - [Get devices for each grou of each installation](#get-devices-for-each-grou-of-each-installation) + - [Get all devices from all installations shortcut](#get-all-devices-from-all-installations-shortcut) + - [Control a device](#control-a-device) + - [HVAC mode](#hvac-mode) + - [Available modes](#available-modes) + - [List supported modes for each devices](#list-supported-modes-for-each-devices) + - [Set HVAC mode on a master thermostat device (and all linked thermostats)](#set-hvac-mode-on-a-master-thermostat-device-and-all-linked-thermostats) + - [API documentation](#api-documentation) + - [Tests](#tests) + - [Update configuration in config_test.json](#update-configuration-in-config_testjson) + - [Run test script](#run-test-script) + +## Presentation + +### Abstract + +Allow to communicate easily with Airzone Cloud to retrieve information or to send commands (on/off, temperature, HVAC mode, ...) + +This library manage the main Airzone Cloud API (try to connect to [www.airzonecloud.com](https://www.airzonecloud.com) to be sure). + +Official API documentation is available here : https://developers.airzonecloud.com/docs/web-api/ + +### Module classes + +- **AirzoneCloud** : represent your AirzoneCloud account. Contains a list of your **installations** : + - **Installation**: represent one of your installation (like your home, an office, ...). Contains a list of its **groups** : + - **Group** : represent a group of **devices** in the installation + - **Device** : represent your thermostat to control + + + +## Usage + +### Install + +```bash +pip3 install AirzoneCloud +``` + +### Start API + +```python +from AirzoneCloud import AirzoneCloud +api = AirzoneCloud("email@domain.com", "password") +``` + +### Get installations + +```python +for installation in api.installations: + print( + "Installation(name={}, access_type={}, ws_ids=[{}], id={})".format( + installation.name, installation.access_type, ", ".join(installation.ws_ids), installation.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home, access_type=admin, ws_ids=[AA:BB:CC:DD:EE:FF], id=60f5cb990123456789abdcef) +</pre> + +### Get installations + +```python +for installation in api.installations: + print( + "Installation(name={}, access_type={}, ws_ids=[{}], id={})".format( + installation.name, installation.access_type, ", ".join(installation.ws_ids), installation.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home, access_type=admin, ws_ids=[AA:BB:CC:DD:EE:FF], id=60f5cb990123456789abdcef) +</pre> + +### Get groups for each installation + +```python +for installation in api.installations: + print(installation) + for group in installation.groups: + print( + " Group(name={}, installation={}, id={})".format( + group.name, group.installation.name, group.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home) + Group(name=System 1, installation=Home, id=60f5cb990123456789abdce0) +</pre> + +### Get devices for each grou of each installation + +```python +for installation in api.installations: + print(installation) + for group in installation.groups: + print(" " + str(group)) + for device in group.devices: + print( + " Device(name={}, is_connected={}, is_on={}, mode={}, current_temp={}, target_temp={}, id={}, ws_id={})".format( + device.name, + device.is_connected, + device.is_on, + device.mode, + device.current_temperature, + device.target_temperature, + device.id, + device.ws_id, + ) + ) +``` + +Output : + +<pre> +Installation(name=Home) + Group(name=System 1, installation=Home) + Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.9, target_temp=20.0, id=60f5cb990123456789abdce1, ws_id=AA:BB:CC:DD:EE:FF) + Device(name=Ch parents, is_connected=True, is_on=False, mode=heating, current_temp=17.2, target_temp=18.0, id=60f5cb990123456789abdce2, ws_id=AA:BB:CC:DD:EE:FF) + Device(name=Ch bebe, is_connected=True, is_on=False, mode=heating, current_temp=18.6, target_temp=19.5, id=60f5cb990123456789abdce3, ws_id=AA:BB:CC:DD:EE:FF) +</pre> + +### Get all devices from all installations shortcut + +```python +for device in api.all_devices: + print( + "Device(name={}, is_on={}, mode={}, current_temp={}, target_temp={}, id={})".format( + device.name, + device.is_on, + device.mode, + device.current_temperature, + device.target_temperature, + device.id, + ) + ) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.9, target_temp=20.0, id=60f5cb990123456789abdce1, ws_id=AA:BB:CC:DD:EE:FF) +Device(name=Ch parents, is_connected=True, is_on=False, mode=heating, current_temp=17.2, target_temp=18.0, id=60f5cb990123456789abdce2, ws_id=AA:BB:CC:DD:EE:FF) +Device(name=Ch bebe, is_connected=True, is_on=False, mode=heating, current_temp=18.6, target_temp=19.5, id=60f5cb990123456789abdce3, ws_id=AA:BB:CC:DD:EE:FF) +</pre> + +### Control a device + +All actions by default are waiting 1 second then refresh the device. +You can disable this behavior by adding auto_refresh=False. + +```python +# get first device +device = api.all_devices[0] +print(device) + +# start device & set temperature +device.turn_on(auto_refresh=False).set_temperature(22) +print(device) + +# stopping device +device.turn_off() +print(device) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=False, mode=heating, current_temp=20.8, target_temp=20.0) +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.8, target_temp=22.0) +Device(name=Salon, is_connected=True, is_on=False, mode=heating, current_temp=20.8, target_temp=22.0) +</pre> + +### HVAC mode + +#### Available modes + +- **stop** : Stop mode +- **auto** : Automatic mode +- **cooling** : Cooling mode +- **heating** : Heating mode +- **ventilation** : Ventilation mode +- **dehumidify** : Dehumidifier / Dry mode +- **emergency-heating** : Emergency heat mode +- **air-heating** : Heat air mode (only compatible systems) +- **radiant-heating** : Heat radiant mode (only compatible systems) +- **combined-heating** : Heat combined mode (only compatible systems) +- **air-cooling** : Cooling air mode (only compatible systems) +- **radiant-cooling** : Cooling radiant mode (only compatible systems) +- **combined-cooling** : Cooling combined mode (only compatible systems) + +Only master thermostat device can update the mode. + +#### List supported modes for each devices + +```python +for device in api.all_devices: + print( + "Device(name={}, mode={}, modes_availables={})".format( + device.name, + device.mode, + device.modes_availables, + ) + ) +``` + +Output : + +<pre> +Device(name=Salon, mode=heating, modes_availables=['cooling', 'heating', 'ventilation', 'dehumidify', 'stop']) +Device(name=Ch parents, mode=heating, modes_availables=[]) +Device(name=Ch bebe, mode=heating, modes_availables=[]) +</pre> + +If modes_availables is an empty list, your device is not the master thermostat. + +#### Set HVAC mode on a master thermostat device (and all linked thermostats) + +```python +device = api.all_devices[0] +print(device) + +# set mode to cooling +device.set_mode("cooling") +print(device) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.8, target_temp=20.0) +Device(name=Salon, is_connected=True, is_on=True, mode=cooling, current_temp=20.8, target_temp=20.0) +</pre> + +## API documentation + +[API full doc](API.md) + +## Tests + +### Update configuration in config_test.json + +- **email** : used to log-in to you AirzoneCloud account (default to *changeme@example.com*) +- **password** : used to log-in to you AirzoneCloud account (default to *changeme*) +- **log_level** : minimum level of log to display : DEBUG | INFO | WARNING | ERROR | CRITICIAL (default to *INFO*) +- **display_group_properties** : display all properties for each group (default to *true*). +- **display_device_properties** : display all properties for each device (default to *true*). +- **display_api_token** : ask to display token used to connect to the AirzoneCloud API (default to *false*). Useful for https://developers.airzonecloud.com/docs/web-api/ +- **refresh_before_display** : ask to call all refresh functions before displaying for test purpose (default to *false*). + +### Run test script + +```bash +./test.py +``` + +%package -n python3-AirzoneCloud +Summary: Python3 library for Airzone Cloud API +Provides: python-AirzoneCloud +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-AirzoneCloud +# Airzone Cloud + +- [Airzone Cloud](#airzone-cloud) + - [Presentation](#presentation) + - [Abstract](#abstract) + - [Module classes](#module-classes) + - [Usage](#usage) + - [Install](#install) + - [Start API](#start-api) + - [Get installations](#get-installations) + - [Get installations](#get-installations-1) + - [Get groups for each installation](#get-groups-for-each-installation) + - [Get devices for each grou of each installation](#get-devices-for-each-grou-of-each-installation) + - [Get all devices from all installations shortcut](#get-all-devices-from-all-installations-shortcut) + - [Control a device](#control-a-device) + - [HVAC mode](#hvac-mode) + - [Available modes](#available-modes) + - [List supported modes for each devices](#list-supported-modes-for-each-devices) + - [Set HVAC mode on a master thermostat device (and all linked thermostats)](#set-hvac-mode-on-a-master-thermostat-device-and-all-linked-thermostats) + - [API documentation](#api-documentation) + - [Tests](#tests) + - [Update configuration in config_test.json](#update-configuration-in-config_testjson) + - [Run test script](#run-test-script) + +## Presentation + +### Abstract + +Allow to communicate easily with Airzone Cloud to retrieve information or to send commands (on/off, temperature, HVAC mode, ...) + +This library manage the main Airzone Cloud API (try to connect to [www.airzonecloud.com](https://www.airzonecloud.com) to be sure). + +Official API documentation is available here : https://developers.airzonecloud.com/docs/web-api/ + +### Module classes + +- **AirzoneCloud** : represent your AirzoneCloud account. Contains a list of your **installations** : + - **Installation**: represent one of your installation (like your home, an office, ...). Contains a list of its **groups** : + - **Group** : represent a group of **devices** in the installation + - **Device** : represent your thermostat to control + + + +## Usage + +### Install + +```bash +pip3 install AirzoneCloud +``` + +### Start API + +```python +from AirzoneCloud import AirzoneCloud +api = AirzoneCloud("email@domain.com", "password") +``` + +### Get installations + +```python +for installation in api.installations: + print( + "Installation(name={}, access_type={}, ws_ids=[{}], id={})".format( + installation.name, installation.access_type, ", ".join(installation.ws_ids), installation.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home, access_type=admin, ws_ids=[AA:BB:CC:DD:EE:FF], id=60f5cb990123456789abdcef) +</pre> + +### Get installations + +```python +for installation in api.installations: + print( + "Installation(name={}, access_type={}, ws_ids=[{}], id={})".format( + installation.name, installation.access_type, ", ".join(installation.ws_ids), installation.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home, access_type=admin, ws_ids=[AA:BB:CC:DD:EE:FF], id=60f5cb990123456789abdcef) +</pre> + +### Get groups for each installation + +```python +for installation in api.installations: + print(installation) + for group in installation.groups: + print( + " Group(name={}, installation={}, id={})".format( + group.name, group.installation.name, group.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home) + Group(name=System 1, installation=Home, id=60f5cb990123456789abdce0) +</pre> + +### Get devices for each grou of each installation + +```python +for installation in api.installations: + print(installation) + for group in installation.groups: + print(" " + str(group)) + for device in group.devices: + print( + " Device(name={}, is_connected={}, is_on={}, mode={}, current_temp={}, target_temp={}, id={}, ws_id={})".format( + device.name, + device.is_connected, + device.is_on, + device.mode, + device.current_temperature, + device.target_temperature, + device.id, + device.ws_id, + ) + ) +``` + +Output : + +<pre> +Installation(name=Home) + Group(name=System 1, installation=Home) + Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.9, target_temp=20.0, id=60f5cb990123456789abdce1, ws_id=AA:BB:CC:DD:EE:FF) + Device(name=Ch parents, is_connected=True, is_on=False, mode=heating, current_temp=17.2, target_temp=18.0, id=60f5cb990123456789abdce2, ws_id=AA:BB:CC:DD:EE:FF) + Device(name=Ch bebe, is_connected=True, is_on=False, mode=heating, current_temp=18.6, target_temp=19.5, id=60f5cb990123456789abdce3, ws_id=AA:BB:CC:DD:EE:FF) +</pre> + +### Get all devices from all installations shortcut + +```python +for device in api.all_devices: + print( + "Device(name={}, is_on={}, mode={}, current_temp={}, target_temp={}, id={})".format( + device.name, + device.is_on, + device.mode, + device.current_temperature, + device.target_temperature, + device.id, + ) + ) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.9, target_temp=20.0, id=60f5cb990123456789abdce1, ws_id=AA:BB:CC:DD:EE:FF) +Device(name=Ch parents, is_connected=True, is_on=False, mode=heating, current_temp=17.2, target_temp=18.0, id=60f5cb990123456789abdce2, ws_id=AA:BB:CC:DD:EE:FF) +Device(name=Ch bebe, is_connected=True, is_on=False, mode=heating, current_temp=18.6, target_temp=19.5, id=60f5cb990123456789abdce3, ws_id=AA:BB:CC:DD:EE:FF) +</pre> + +### Control a device + +All actions by default are waiting 1 second then refresh the device. +You can disable this behavior by adding auto_refresh=False. + +```python +# get first device +device = api.all_devices[0] +print(device) + +# start device & set temperature +device.turn_on(auto_refresh=False).set_temperature(22) +print(device) + +# stopping device +device.turn_off() +print(device) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=False, mode=heating, current_temp=20.8, target_temp=20.0) +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.8, target_temp=22.0) +Device(name=Salon, is_connected=True, is_on=False, mode=heating, current_temp=20.8, target_temp=22.0) +</pre> + +### HVAC mode + +#### Available modes + +- **stop** : Stop mode +- **auto** : Automatic mode +- **cooling** : Cooling mode +- **heating** : Heating mode +- **ventilation** : Ventilation mode +- **dehumidify** : Dehumidifier / Dry mode +- **emergency-heating** : Emergency heat mode +- **air-heating** : Heat air mode (only compatible systems) +- **radiant-heating** : Heat radiant mode (only compatible systems) +- **combined-heating** : Heat combined mode (only compatible systems) +- **air-cooling** : Cooling air mode (only compatible systems) +- **radiant-cooling** : Cooling radiant mode (only compatible systems) +- **combined-cooling** : Cooling combined mode (only compatible systems) + +Only master thermostat device can update the mode. + +#### List supported modes for each devices + +```python +for device in api.all_devices: + print( + "Device(name={}, mode={}, modes_availables={})".format( + device.name, + device.mode, + device.modes_availables, + ) + ) +``` + +Output : + +<pre> +Device(name=Salon, mode=heating, modes_availables=['cooling', 'heating', 'ventilation', 'dehumidify', 'stop']) +Device(name=Ch parents, mode=heating, modes_availables=[]) +Device(name=Ch bebe, mode=heating, modes_availables=[]) +</pre> + +If modes_availables is an empty list, your device is not the master thermostat. + +#### Set HVAC mode on a master thermostat device (and all linked thermostats) + +```python +device = api.all_devices[0] +print(device) + +# set mode to cooling +device.set_mode("cooling") +print(device) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.8, target_temp=20.0) +Device(name=Salon, is_connected=True, is_on=True, mode=cooling, current_temp=20.8, target_temp=20.0) +</pre> + +## API documentation + +[API full doc](API.md) + +## Tests + +### Update configuration in config_test.json + +- **email** : used to log-in to you AirzoneCloud account (default to *changeme@example.com*) +- **password** : used to log-in to you AirzoneCloud account (default to *changeme*) +- **log_level** : minimum level of log to display : DEBUG | INFO | WARNING | ERROR | CRITICIAL (default to *INFO*) +- **display_group_properties** : display all properties for each group (default to *true*). +- **display_device_properties** : display all properties for each device (default to *true*). +- **display_api_token** : ask to display token used to connect to the AirzoneCloud API (default to *false*). Useful for https://developers.airzonecloud.com/docs/web-api/ +- **refresh_before_display** : ask to call all refresh functions before displaying for test purpose (default to *false*). + +### Run test script + +```bash +./test.py +``` + +%package help +Summary: Development documents and examples for AirzoneCloud +Provides: python3-AirzoneCloud-doc +%description help +# Airzone Cloud + +- [Airzone Cloud](#airzone-cloud) + - [Presentation](#presentation) + - [Abstract](#abstract) + - [Module classes](#module-classes) + - [Usage](#usage) + - [Install](#install) + - [Start API](#start-api) + - [Get installations](#get-installations) + - [Get installations](#get-installations-1) + - [Get groups for each installation](#get-groups-for-each-installation) + - [Get devices for each grou of each installation](#get-devices-for-each-grou-of-each-installation) + - [Get all devices from all installations shortcut](#get-all-devices-from-all-installations-shortcut) + - [Control a device](#control-a-device) + - [HVAC mode](#hvac-mode) + - [Available modes](#available-modes) + - [List supported modes for each devices](#list-supported-modes-for-each-devices) + - [Set HVAC mode on a master thermostat device (and all linked thermostats)](#set-hvac-mode-on-a-master-thermostat-device-and-all-linked-thermostats) + - [API documentation](#api-documentation) + - [Tests](#tests) + - [Update configuration in config_test.json](#update-configuration-in-config_testjson) + - [Run test script](#run-test-script) + +## Presentation + +### Abstract + +Allow to communicate easily with Airzone Cloud to retrieve information or to send commands (on/off, temperature, HVAC mode, ...) + +This library manage the main Airzone Cloud API (try to connect to [www.airzonecloud.com](https://www.airzonecloud.com) to be sure). + +Official API documentation is available here : https://developers.airzonecloud.com/docs/web-api/ + +### Module classes + +- **AirzoneCloud** : represent your AirzoneCloud account. Contains a list of your **installations** : + - **Installation**: represent one of your installation (like your home, an office, ...). Contains a list of its **groups** : + - **Group** : represent a group of **devices** in the installation + - **Device** : represent your thermostat to control + + + +## Usage + +### Install + +```bash +pip3 install AirzoneCloud +``` + +### Start API + +```python +from AirzoneCloud import AirzoneCloud +api = AirzoneCloud("email@domain.com", "password") +``` + +### Get installations + +```python +for installation in api.installations: + print( + "Installation(name={}, access_type={}, ws_ids=[{}], id={})".format( + installation.name, installation.access_type, ", ".join(installation.ws_ids), installation.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home, access_type=admin, ws_ids=[AA:BB:CC:DD:EE:FF], id=60f5cb990123456789abdcef) +</pre> + +### Get installations + +```python +for installation in api.installations: + print( + "Installation(name={}, access_type={}, ws_ids=[{}], id={})".format( + installation.name, installation.access_type, ", ".join(installation.ws_ids), installation.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home, access_type=admin, ws_ids=[AA:BB:CC:DD:EE:FF], id=60f5cb990123456789abdcef) +</pre> + +### Get groups for each installation + +```python +for installation in api.installations: + print(installation) + for group in installation.groups: + print( + " Group(name={}, installation={}, id={})".format( + group.name, group.installation.name, group.id + ) + ) +``` + +Output : + +<pre> +Installation(name=Home) + Group(name=System 1, installation=Home, id=60f5cb990123456789abdce0) +</pre> + +### Get devices for each grou of each installation + +```python +for installation in api.installations: + print(installation) + for group in installation.groups: + print(" " + str(group)) + for device in group.devices: + print( + " Device(name={}, is_connected={}, is_on={}, mode={}, current_temp={}, target_temp={}, id={}, ws_id={})".format( + device.name, + device.is_connected, + device.is_on, + device.mode, + device.current_temperature, + device.target_temperature, + device.id, + device.ws_id, + ) + ) +``` + +Output : + +<pre> +Installation(name=Home) + Group(name=System 1, installation=Home) + Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.9, target_temp=20.0, id=60f5cb990123456789abdce1, ws_id=AA:BB:CC:DD:EE:FF) + Device(name=Ch parents, is_connected=True, is_on=False, mode=heating, current_temp=17.2, target_temp=18.0, id=60f5cb990123456789abdce2, ws_id=AA:BB:CC:DD:EE:FF) + Device(name=Ch bebe, is_connected=True, is_on=False, mode=heating, current_temp=18.6, target_temp=19.5, id=60f5cb990123456789abdce3, ws_id=AA:BB:CC:DD:EE:FF) +</pre> + +### Get all devices from all installations shortcut + +```python +for device in api.all_devices: + print( + "Device(name={}, is_on={}, mode={}, current_temp={}, target_temp={}, id={})".format( + device.name, + device.is_on, + device.mode, + device.current_temperature, + device.target_temperature, + device.id, + ) + ) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.9, target_temp=20.0, id=60f5cb990123456789abdce1, ws_id=AA:BB:CC:DD:EE:FF) +Device(name=Ch parents, is_connected=True, is_on=False, mode=heating, current_temp=17.2, target_temp=18.0, id=60f5cb990123456789abdce2, ws_id=AA:BB:CC:DD:EE:FF) +Device(name=Ch bebe, is_connected=True, is_on=False, mode=heating, current_temp=18.6, target_temp=19.5, id=60f5cb990123456789abdce3, ws_id=AA:BB:CC:DD:EE:FF) +</pre> + +### Control a device + +All actions by default are waiting 1 second then refresh the device. +You can disable this behavior by adding auto_refresh=False. + +```python +# get first device +device = api.all_devices[0] +print(device) + +# start device & set temperature +device.turn_on(auto_refresh=False).set_temperature(22) +print(device) + +# stopping device +device.turn_off() +print(device) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=False, mode=heating, current_temp=20.8, target_temp=20.0) +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.8, target_temp=22.0) +Device(name=Salon, is_connected=True, is_on=False, mode=heating, current_temp=20.8, target_temp=22.0) +</pre> + +### HVAC mode + +#### Available modes + +- **stop** : Stop mode +- **auto** : Automatic mode +- **cooling** : Cooling mode +- **heating** : Heating mode +- **ventilation** : Ventilation mode +- **dehumidify** : Dehumidifier / Dry mode +- **emergency-heating** : Emergency heat mode +- **air-heating** : Heat air mode (only compatible systems) +- **radiant-heating** : Heat radiant mode (only compatible systems) +- **combined-heating** : Heat combined mode (only compatible systems) +- **air-cooling** : Cooling air mode (only compatible systems) +- **radiant-cooling** : Cooling radiant mode (only compatible systems) +- **combined-cooling** : Cooling combined mode (only compatible systems) + +Only master thermostat device can update the mode. + +#### List supported modes for each devices + +```python +for device in api.all_devices: + print( + "Device(name={}, mode={}, modes_availables={})".format( + device.name, + device.mode, + device.modes_availables, + ) + ) +``` + +Output : + +<pre> +Device(name=Salon, mode=heating, modes_availables=['cooling', 'heating', 'ventilation', 'dehumidify', 'stop']) +Device(name=Ch parents, mode=heating, modes_availables=[]) +Device(name=Ch bebe, mode=heating, modes_availables=[]) +</pre> + +If modes_availables is an empty list, your device is not the master thermostat. + +#### Set HVAC mode on a master thermostat device (and all linked thermostats) + +```python +device = api.all_devices[0] +print(device) + +# set mode to cooling +device.set_mode("cooling") +print(device) +``` + +Output : + +<pre> +Device(name=Salon, is_connected=True, is_on=True, mode=heating, current_temp=20.8, target_temp=20.0) +Device(name=Salon, is_connected=True, is_on=True, mode=cooling, current_temp=20.8, target_temp=20.0) +</pre> + +## API documentation + +[API full doc](API.md) + +## Tests + +### Update configuration in config_test.json + +- **email** : used to log-in to you AirzoneCloud account (default to *changeme@example.com*) +- **password** : used to log-in to you AirzoneCloud account (default to *changeme*) +- **log_level** : minimum level of log to display : DEBUG | INFO | WARNING | ERROR | CRITICIAL (default to *INFO*) +- **display_group_properties** : display all properties for each group (default to *true*). +- **display_device_properties** : display all properties for each device (default to *true*). +- **display_api_token** : ask to display token used to connect to the AirzoneCloud API (default to *false*). Useful for https://developers.airzonecloud.com/docs/web-api/ +- **refresh_before_display** : ask to call all refresh functions before displaying for test purpose (default to *false*). + +### Run test script + +```bash +./test.py +``` + +%prep +%autosetup -n AirzoneCloud-1.2.2 + +%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-AirzoneCloud -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.2-1 +- Package Spec generated @@ -0,0 +1 @@ +0eae768eb7e0616af6e0f287bcdb8d9c AirzoneCloud-1.2.2.tar.gz |