Skip to main content

A Python client for controlling QuietCool Wireless RF Control Kit fans via BLE

Project description

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 Source

  1. Clone the repository:

    git clone https://github.com/emerose/quietcool.git
    cd quietcool
    
  2. Install the package:

    pip install .
    

Development Setup

  1. Clone the repository as above
  2. Install development dependencies:
    pip install -r requirements.txt
    
  3. 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. You can provide it in several ways (checked in this order):

  1. Command line argument: --id YOUR_API_ID
  2. Environment variable: QUIETCOOL=YOUR_API_ID
  3. Config files (first found is used):
    • /etc/quietcool
    • ~/.quietcool
    • ./.quietcool

2. Pairing

Before using the client, you need to pair it with your fan:

  1. Put your fan in pairing mode (using another device or the controller's "Pair" button)
  2. 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 fan
  • pair: 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quietcool-0.1.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quietcool-0.1.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file quietcool-0.1.1.tar.gz.

File metadata

  • Download URL: quietcool-0.1.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for quietcool-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a89d3de956142850031f9f735dff82c3df9cd841561f07fb1b6b8a4438daa2c2
MD5 ac0ff98adc70d911d4d5c6f20a4fbd44
BLAKE2b-256 8265c8628cf2f636d36752ff73af168095256ebd2841952442b63639962f2979

See more details on using hashes here.

Provenance

The following attestation bundles were made for quietcool-0.1.1.tar.gz:

Publisher: python-publish.yml on emerose/quietcool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quietcool-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: quietcool-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for quietcool-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a2b531b96dab75ec78b8397e672bb88f08d2c01de850cdb43f6008e4e219b378
MD5 e28c6b034e3908353a75958b255c13c1
BLAKE2b-256 6de3ce7574efa65447f88e13d5b51a3dd538e9addad2161268d40615a2c881ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for quietcool-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on emerose/quietcool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page