Skip to main content

winix-api

PyPI downloads

Credit: Ported from regaw-leinad/winix-api.

This library provides a Python client for interacting with Winix devices. It includes classes for authenticating with the Winix API (WinixAuth), managing a user account (WinixAccount), as well as interacting with Winix devices (WinixAPI).

Requirements

Installation

Install via pip (recommended to use a virtual environment):

pip install winix-api

Or clone and install locally:

git clone https://github.com/yourusername/winix-api.git
cd winix-api
pip install .

Usage

Authentication

The WinixAuth class is used for authenticating with the Winix API. You can use it to log in with a username and password, or to refresh an existing session.

from winix_api.winix_auth import WinixAuth

# Log in with a username and password
auth = WinixAuth.login('<username>', '<password>')

# Refresh an existing session
refreshed_auth = WinixAuth.refresh('<refresh_token>', '<user_id>')

Managing a User Account

The WinixAccount class is used for managing a user account. You can use it to get a list of devices associated with the account.

from winix_api.winix_account import WinixAccount

# Create a WinixAccount from credentials
account = WinixAccount.from_credentials('<username>', '<password>')

# Create a WinixAccount from existing auth credentials
account2 = WinixAccount.from_refresh_token('<username>', '<refresh_token>', '<user_id>')

# Get a list of devices associated with the account
devices = account.devices
for device in devices:
        print(device.__dict__)

Interacting with a Device

from winix_api.winix_api import WinixAPI
from winix_api.winix_types import Power, Mode, Airflow, AirQuality, Plasmawave

# Assume this is defined throughout the examples
device_id = '<your_device_id>'

Get and set the Power state

power = WinixAPI.get_power(account, device_id)
print('off?:', power == Power.Off)

# Set power on
WinixAPI.set_power(account, device_id, Power.On)

Get and set the Mode

mode = WinixAPI.get_mode(account, device_id)
print('manual?:', mode == Mode.Manual)

# Set to auto
WinixAPI.set_mode(account, device_id, Mode.Auto)

Get and set the Airflow speed

airflow = WinixAPI.get_airflow(account, device_id)
print('turbo?:', airflow == Airflow.Turbo)

# Set to low
WinixAPI.set_airflow(account, device_id, Airflow.Low)

Get the Air Quality

air_quality = WinixAPI.get_air_quality(account, device_id)
print('quality:', air_quality)

Get and set the Plasmawave state

plasma = WinixAPI.get_plasmawave(account, device_id)
print('plasmawave on?:', plasma == Plasmawave.On)

# Set to off
WinixAPI.set_plasmawave(account, device_id, Plasmawave.Off)

Get the Ambient Light

ambient_light = WinixAPI.get_ambient_light(account, device_id)
print('ambientLight:', ambient_light)

Get the Filter Hours

filter_hours = WinixAPI.get_filter_hours(account, device_id)
print('filterHours:', filter_hours)

Error Handling

API errors are raised as exceptions with descriptive messages. You can also use helper functions:

from winix_api.errors import is_response_error, get_error_message

if is_response_error('no data'):
        print(get_error_message('no data'))

Development & Testing

  • Run tests:
    make test
    
  • View coverage:
    make coverage
    
  • Clean build/test artifacts:
    make clean
    

License

MIT

Disclaimer

This project is not affiliated with or endorsed by Winix. Use at your own risk.

Release files for winix-api 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for winix-api 0.1.2
File Size Uploaded
winix_api-0.1.2.tar.gz 9.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for winix-api 0.1.2
File Interpreter ABI Platform
winix_api-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 18.7 kB

Release files / winix_api-0.1.2.tar.gz

Download URL winix_api-0.1.2.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d1f9aa4b8b3c65c71e9484acd44d585210cda97e0eacfad29f402f3b58218834
BLAKE2b-256 checksum
How to use checksums
beac2e0f3aa2948c126fb9736d65e284f510dc944a4099f2d94cb0d8cba9a2b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.19

Release files / winix_api-0.1.2-py3-none-any.whl

Download URL winix_api-0.1.2-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
96139b0a7d5c02b9ff4428dc3bb5f0f6e657118b4fd2b152de5b977913ef7bac
BLAKE2b-256 checksum
How to use checksums
50efd99a1b743ac621e5391439ebf44011f719219dfd7d24a8f5b4c7cc636205
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.19

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page