A fully typed asyncio API for the Polyaire AirTouch AC controllers
Project description
pyairtouch
A fully typed asyncio API for the Polyaire AirTouch AC controllers.
The API supports the AirTouch 4 and AirTouch 5.
A unified public API is provided that encapsulates the underlying AirTouch version.
Example
import asyncio
import pyairtouch
async def main() -> None:
# Automatically discover AirTouch devices on the network.
discovered_airtouches = await pyairtouch.discover()
if not discovered_airtouches:
print("No AirTouch discovered")
return
for airtouch in discovered_airtouches:
print(f"Discovered: {airtouch.name} ({airtouch.host})")
# In this example we use the first discovered AirTouch (typically there is only one per network)
airtouch = discovered_airtouches[0]
# Connect to the AirTouch and read initial state.
success = await airtouch.init()
async def _on_ac_status_updated(ac_id: int) -> None:
aircon = airtouch.air_conditioners[ac_id]
print(
f"AC Status : {aircon.power_state.name} {aircon.mode.name} "
f"temp={aircon.current_temperature:.1f} set_point={aircon.target_temperature:.1f}"
)
for zone in aircon.zones:
print(
f"Zone Status: {zone.name:10} {zone.power_state.name:3} "
f"temp={zone.current_temperature:.1f} set_point={zone.target_temperature:.1f} "
f"damper={zone.current_damper_percentage}"
)
# Subscribe to AC status updates:
for aircon in airtouch.air_conditioners:
aircon.subscribe(_on_ac_status_updated)
# Print initial status
await _on_ac_status_updated(aircon.ac_id)
# Keep the demo running for a few minutes
await asyncio.sleep(300)
# Shutdown the connection
await airtouch.shutdown()
if __name__ == "__main__":
asyncio.run(main())
A more detailed example can be found in examples/example.py. The example can be run using the pdm run example
command.
Say Thank You
If you would like to make a donation as appreciation of my work, please use one of the links below:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyairtouch-2.0.0.tar.gz
(79.0 kB
view details)
Built Distribution
File details
Details for the file pyairtouch-2.0.0.tar.gz
.
File metadata
- Download URL: pyairtouch-2.0.0.tar.gz
- Upload date:
- Size: 79.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.18.2 CPython/3.10.12 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ca317bdd87fc9e2977e0ea0a7b89d493624d566188c493ba2300d53d395c229 |
|
MD5 | 793a33c2418cb47efed2db2c5c44efa6 |
|
BLAKE2b-256 | 7279d91df3c57fcfeb09523f286c9a7e4b22fcdcb61c5ff5179283f1c1766186 |
File details
Details for the file pyairtouch-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: pyairtouch-2.0.0-py3-none-any.whl
- Upload date:
- Size: 98.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: pdm/2.18.2 CPython/3.10.12 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 824a312965f1669a6c2b4cedac7f0fa11317273cf15e63b9d842aa4f2db94ca8 |
|
MD5 | 7530b79dfa4084cb0841f9dde5fcd7ae |
|
BLAKE2b-256 | df11e080f5bcbbac4499daf652fca2aecee243846606c1f516969bc6b65f6b18 |