QuietCool Client
A Python client for controlling QuietCool Wireless RF Control Kit fans via Bluetooth Low Energy (BLE).
Overview
This client allows you to interact with QuietCool whole house fans that use the Wireless RF Control Kit. It provides functionality to:
- Pair with fans
- Get fan information and status
- Control fan settings
- Monitor temperature and humidity
- Manage presets
Installation
From PyPI
You can install the package directly from PyPI using pip:
pip install quietcool
From Source
-
Clone the repository:
git clone https://github.com/emerose/quietcool.git cd quietcool
-
Install the package:
pip install .
Development Setup
- Clone the repository as above
- Install development dependencies:
pip install -r requirements.txt
- Install package in editable mode:
pip install -e .
Prerequisites
- Python 3.10 or higher
- A QuietCool fan with Wireless RF Control Kit
- Bluetooth Low Energy (BLE) support on your device
- bleak - A GATT client software, used for Bluetooth Low Energy communication
Getting Started
1. API ID Setup
The client requires an API ID to authenticate with the fan. The ID is an
alphanumeric (hex?) string of the form a1b2c1d2a2b1c2d1, and is used to
identify / authenticate the client. You can generate your own and provide it in
several ways (checked in this order):
- Command line argument:
--id YOUR_API_ID - Environment variable:
QUIETCOOL=YOUR_API_ID - Config files (first found is used):
./.quietcool~/.quietcool/etc/quietcool
2. Pairing
Before using the client, you need to pair it with your fan:
- Put your fan in pairing mode (using another device or the controller's "Pair" button)
- Run:
quietcool pair
3. Basic Usage
Get fan information:
quietcool info
Example output:
{
"faninfo": {
"name": "sunroom fan",
"model": "7",
"serial_num": "RSE2008539"
},
"params": {
"mode": "Idle",
"fan_type": "THREE",
"temp_high": 120,
"temp_medium": 100,
"temp_low": 80,
"humidity_high": 90,
"humidity_low": 255,
"humidity_range": "LOW",
"hour": 1,
"minute": 0,
"time_range": "MEDIUM"
},
"version": {
"version": "IT-BLT-ATTICFAN_V2.6",
"protect_temp": 182,
"create_date": "2023.07.25",
"create_mode": "online",
"hw_version": "A"
},
"presets": [
{
"name": "Summer",
"temp_high": 120,
"temp_med": 100,
"temp_low": 80,
"humidity_off": 90,
"humidity_on": 255,
"humidity_speed": "LOW"
},
{
"name": "Winter",
"temp_high": 255,
"temp_med": 255,
"temp_low": 255,
"humidity_off": 255,
"humidity_on": 255,
"humidity_speed": "LOW"
}
],
"workstate": {
"mode": "Idle",
"range": "CLOSE",
"sensor_state": "OK",
"temperature": 71.3,
"humidity": 36
}
}
Command Line Options
usage:
quietcool [-h] [--id ID] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [command]
Commands:
info: Dumps detailed information about the connected fanpair: Pairs the client with a fan (fan must be in pairing mode)
Options:
--id ID: API ID string--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}: Set logging level (default: WARNING)-h, --help: Show help message
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for quietcool 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quietcool-0.1.2.tar.gz | 11.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quietcool-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.0 kB
Release files / quietcool-0.1.2.tar.gz
| Download URL | quietcool-0.1.2.tar.gz |
|---|---|
| Size | 11.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a647b039e9d96698d0bd6f6d7c291254a03c0e18871ce77d56737ec15dcf4752
|
|
BLAKE2b-256 checksum How to use checksums |
ff45b73d08de508022fa8bd4b3d9a84621a0e062c0a8a5796a4490c8eaa4e516
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 6, 2025.
Transparency logRelease files / quietcool-0.1.2-py3-none-any.whl
| Download URL | quietcool-0.1.2-py3-none-any.whl |
|---|---|
| Size | 10.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b32ef52a419d476029164093c9d882913229044ef0b9b2f164ede2457fcc6aa
|
|
BLAKE2b-256 checksum How to use checksums |
f9ced7d74fad30ccab061aaea87fc462bbfd9495b12efc5e4083163db03d6ddb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 6, 2025.
Transparency log