GitHub - LaStrada/pyfreshintellivent: Python interface for Fresh Intellivent Sky bathroom Fan using Bluetooth Low Energy. · GitHub
Skip to content

About

Python interface for Fresh Intellivent Sky bathroom Fan using Bluetooth Low Energy.

Topics

Resources

Stars

12 stars

Watchers

4 watching

Forks

Repository files navigation

pyfreshintellivent

CI

Async Bluetooth reader for Fresh Intellivent SKY sensors and settings.

The reader API replaces the legacy FreshIntelliVent connection/write API. Existing callers need to follow the migration guide.

Read a fan

From the repository root:

poetry install
poetry run python examples/read.py --authenticate

The script prompts for an existing authentication key without echoing it. Use --address to select a known fan. See examples for scanning and pairing to obtain a key.

In application code:

import asyncio
import os

from pyfreshintellivent import FreshIntelliventBluetoothDeviceData
from pyfreshintellivent.scanner import scan


async def main() -> None:
    device = await scan(timeout=10)
    if device is None:
        raise RuntimeError("No supported fan discovered")
    reader = FreshIntelliventBluetoothDeviceData(
        authentication_code=os.environ["FRESH_AUTH_CODE"],
        max_attempts=1,
    )
    result = await reader.update_device(device)
    print(f"RPM: {result.sensors.rpm}, mode: {result.sensors.mode}")


asyncio.run(main())

Reuse one reader per device for repeated polling. Applications that manage Bluetooth themselves can pass their own BLEDevice; Home Assistant integrations should obtain it through HA's Bluetooth manager.

Supported features

  • SKY sensor and configuration reads with an existing authentication key.
  • RPM, operating mode, device-reported temperature, raw sensor fields and configuration models.
  • Name-based SKY and ICE discovery. ICE reads remain provisional; see the device support.
  • Configuration packet encoders in SkyModeParser. These return bytes; the library does not send or confirm setting changes.

Humidity percentage is unavailable: humidity_raw, voc_raw and light_raw have no validated conversion to physical units. Temperature uses the dedicated protocol field; sensor placement and measurement accuracy remain unverified. See the protocol reference for services, characteristics and packet layouts.

Documentation

Supported Python versions are declared in package metadata.

Licensed under Apache 2.0.

About

Python interface for Fresh Intellivent Sky bathroom Fan using Bluetooth Low Energy.

Topics

Resources

Stars

12 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages