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.0.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.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quietcool-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 0b2619eee0ce0d00f24b13e768069d4a98aa5be544bf462431143099e4eb0e50
MD5 20b372a70accfa4ea5c97afbf32f671f
BLAKE2b-256 70a5aa6702aea95905dd99b5d1e6860dd40755a8a7c35d114a5699012604a274

See more details on using hashes here.

Provenance

The following attestation bundles were made for quietcool-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: quietcool-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c968f749ca6fec804b9de681966b5e694c5c0a039e61037a4d173c065296497d
MD5 f0d8179af2316c2bdbd43208a35770e7
BLAKE2b-256 5590586b3ee1f12f0a1ba9d7f7edde6069e97f317e020891ab14f781af7fa649

See more details on using hashes here.

Provenance

The following attestation bundles were made for quietcool-0.1.0-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