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())
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-0.6.0.tar.gz
(67.2 kB
view hashes)
Built Distribution
pyairtouch-0.6.0-py3-none-any.whl
(84.3 kB
view hashes)
Close
Hashes for pyairtouch-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf3965e4aaf8caef349c9b28e40dbc468888e6e6b7b6b71f3c65411f500510eb |
|
MD5 | 483002aa59cf87ae8f98d5a9874504c4 |
|
BLAKE2b-256 | 5e2e8b594f22b6e28f8e6af562ab4d270daa20473935330060e222ebe28d6606 |