Skip to main content

A Python CLI tool for monitoring and managing HVAC device settings using the Kumo cloud API

Project description

HVAC Stability

A Python CLI tool for monitoring and managing HVAC device settings using the Kumo cloud API. This tool helps ensure your HVAC devices are following their scheduled setpoints and can automatically fix discrepancies.

Features

  • Device Discovery: Automatically discover and list all HVAC devices
  • Schedule Monitoring: Check if devices are following their programmed schedules
  • Bulk Operations: Check or fix settings across all devices at once
  • Temperature Conversion: Support for both Fahrenheit and Celsius
  • Detailed Reporting: Clear status reports with critical vs minor issues
  • Automated Fixes: Automatically adjust device settings to match schedules

Installation

Use uv and uvx:

uvx hvac-stability --help

Quick Start

1. Login and Setup

# Login to Kumo cloud service
uvx hvac-stability login

# List all discovered devices
uvx hvac-stability list --verbose

2. Check Device Status

# Check all devices at once
uvx hvac-stability check-device-settings all

# Check a specific device
uvx hvac-stability check-device-settings "Device Name"

# Check with exit codes for automation
uvx hvac-stability check-device-settings all --exit-code

3. Fix Issues

# Fix all devices that are out of sync
uvx hvac-stability fix-device-settings all

# Fix a specific device
uvx hvac-stability fix-device-settings "Device Name"

# Preview changes without applying them
uvx hvac-stability fix-device-settings all --dry-run

Example Usage

Checking All Devices

$ uvx hvac-stability check-device-settings all
Checking all 5 device(s)...

(1/5) Checking Living Room (ABC123)
⚠️ Living Room has 1 minor issue(s) (no critical problems)

(2/5) Checking Office (DEF456) Office is in sync!

(3/5) Checking Bedroom 1 (GHI789) Bedroom 1 is in sync!

(4/5) Checking Bedroom 2 (JKL012)
🔥 Bedroom 2 has 1 critical issue(s)!
   Cool Setpoint: 68.0°F  74.3°F

(5/5) Checking Master Suite (MNO345) Master Suite is in sync!

Summary:
   Total devices checked: 5
   Devices in sync: 3
   Devices with critical issues: 1
   Devices with minor issues: 1

🔥 1 device(s) need immediate attention!

Fixing Issues

$ uvx hvac-stability fix-device-settings "Bedroom 2"
Processing Bedroom 2 (JKL012)

Changes needed for Bedroom 2:
   Cool Setpoint: 68.0°F  74.3°F

Applying 1 change(s) to Bedroom 2...
✅ Applied 1 change(s) to Bedroom 2

Summary:
   Total devices processed: 1
   Devices fixed: 1
   Devices already in sync: 0 Successfully processed 1 device(s)!

Detailed Single Device Check

$ uvx hvac-stability check-device-settings "Bedroom 2"
Checking Settings for Bedroom 2 (JKL012)

                   Settings Comparison
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Setting            Current       Expected    Status ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━┩
│ Heat Setpoint       68.0°F        68.0°F      OK  │
│ Cool Setpoint       74.3°F        74.3°F      OK  │
│ Mode               autoHeat        auto       OK  │
│ Fan Speed            auto          auto       OK  │
│ Vane Direction       auto          auto       OK  │
└─────────────────┴──────────────┴──────────────┴────────┘

Checked at: 2025-08-03 12:33:12
✅ Bedroom 2 is in sync!

Commands

Core Commands

  • login - Authenticate with the Kumo cloud service
  • list - Display all discovered devices
  • check-device-settings - Check if devices match their schedules
  • fix-device-settings - Automatically fix out-of-sync devices

Device Management

  • store-device-ip - Store local IP addresses for faster communication
  • show-schedule - Display device scheduling information

Configuration

The tool uses environment variables and local configuration files:

  • Credentials: Stored securely in ~/.local/var/hvac_stability/.credentials
  • Device Data: Cached in ~/.local/var/hvac_stability/devices.json
  • Temperature Unit: Set via KUMO_TEMPERATURE_UNIT (F or C)

Environment Variables

export KUMO_AUTH_USERNAME="your_username"
export KUMO_AUTH_PASSWORD="your_password"
export KUMO_TEMPERATURE_UNIT="F"  # or "C"
export KUMO_DATA_PATH="~/.local/var/hvac_stability/"

Issue Types

The tool categorizes issues into two types:

🔥 Critical Issues

  • Temperature setpoints that don't match the schedule
  • These require immediate attention and can affect comfort/efficiency

⚠️ Minor Issues

  • Mode variations (auto/autoCool/autoHeat differences)
  • Fan speed or vane direction discrepancies
  • These are typically normal HVAC behavior and less concerning

Exit Codes

When using --exit-code flag:

  • 0 - All devices in sync or only minor issues
  • 1 - Critical issues found or errors occurred

This makes the tool suitable for automation and monitoring scripts.

Development

Project Structure

  • src/hvac_stability/cli.py - Main CLI application
  • Uses typer for command-line interface
  • Uses pykumo for Kumo cloud API integration
  • Uses rich for enhanced terminal output

Building and Testing

# Install development dependencies
uv sync

# Check code syntax
uv run python -m py_compile src/hvac_stability/cli.py

# Run the application
uv run hvac-stability --help

Troubleshooting

Authentication Issues

  • Verify credentials with hvac-stability login
  • Check that your Kumo account has access to the devices

Device Communication

  • Use store-device-ip to cache local IP addresses for faster access
  • Some devices may require schedule setup in the Kumo app first

Schedule Issues

  • Ensure devices have active schedules configured
  • Check that schedule events are set to "active" and "in use"

License

This project is for personal HVAC management and monitoring.

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

hvac_stability-0.1.1.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

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

hvac_stability-0.1.1-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hvac_stability-0.1.1.tar.gz
  • Upload date:
  • Size: 32.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hvac_stability-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ec70852cc46cf9a0eeb9d95b811ac9f2a8fca3c64111915de90e88fade7e0845
MD5 6a09587caa70474176c7b93b7a6f7177
BLAKE2b-256 abec43dc8f096ccd0dcea701230a1d268ac659a3a5eb595bd3c8f6a5ace682ce

See more details on using hashes here.

Provenance

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

Publisher: pypi-package.yml on offbyone/kumo-hvac-management

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

File details

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

File metadata

  • Download URL: hvac_stability-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hvac_stability-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c931a5d05ed055fca049eeac1b8bcc1e7702e273712485be75a570ed08e64913
MD5 566272251555e77e8df2155962c434bf
BLAKE2b-256 ae030f609535b46c03b6b930a02888f16be24f78145864cd7af5cc706f71194f

See more details on using hashes here.

Provenance

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

Publisher: pypi-package.yml on offbyone/kumo-hvac-management

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