Skip to content

Releases: bramd/qstream-ha

v0.2.1

Choose a tag to compare

@bramd bramd released this 10 Nov 10:19
45b3d40

What's Changed

Bug Fixes

  • Fix failing test_init.py tests (#5)

Details

Fixed three failing tests in test_init.py that were using incorrect setup methods:

  • test_clear_timer_service_registered: Changed from YAML-based setup to proper config entry setup
  • test_clear_timer_service_calls_cancel: Replaced MagicMock with MockConfigEntry
  • test_clear_timer_service_idempotent: Same fix as above

All tests now properly use MockConfigEntry and config entry-based setup, ensuring the integration's tests accurately reflect its config-entry-only architecture.

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@bramd bramd released this 10 Nov 09:55
ec14e98

What's Changed

Features

  • Add clear_timer service to clear timer and return fan to base program (#4)
  • Add Dutch (Nederlands) translation support (#3)
  • Add release skill to repository for contributors

Bug Fixes

  • Unregister service when last entry removed
  • Update hacs.json to current spec (remove unsupported keys)
  • Correct coordinator failure test to check last_update_success
  • Update coordinator tests to use async_refresh
  • Enable custom integrations in pytest fixtures
  • Configure pytest asyncio mode
  • Add custom_components to Python path for tests

Documentation

  • Add QStream skills documentation
  • Add services.yaml for clear_timer service
  • Add brand assets creation and submission design
  • Clarify skill documentation structure
  • Add Dutch translation design
  • Add release skill design

CI/Build

  • Bump actions/checkout from 4 to 5 (#1)
  • Bump actions/setup-python from 5 to 6 (#2)
  • Add Dependabot configuration
  • Add HACS action validation workflow
  • Add hassfest validation workflow

Full Changelog: v0.1.0...v0.2.0

v0.1.0 - Initial Release

Choose a tag to compare

@bramd bramd released this 25 Oct 23:36
556ef37

QStream Home Assistant Integration - Initial Release

This is the first production-ready release of the QStream Home Assistant custom integration for BUVA QStream 2.0 ventilation fans.

Features

Fan Control

  • 5 Preset Modes: Low, Medium, High, Turbo, and Boost
    • Low through Turbo use 4-hour timer duration
    • Boost uses 10-minute timer duration (matching official app)
    • Presets map to device levels 0-4
  • Percentage Control: Full 0-100% speed control via slider
  • Automatic Preset Detection: UI shows active preset when speed matches
  • On/Off Control: Turn fan timer on or cancel timer

Demand Control

  • Switch Entity: Enable/disable automatic speed adjustment based on air quality
  • Preserves current speed when toggling demand control

Sensors

  • Air Quality Index (AQI): Primary sensor with caching for reliability
  • Flow Sensors: Analog flow, set flow, actual flow (diagnostic)
  • Timer/Schedule: Timer remaining, schedule enabled (diagnostic)
  • Binary Sensors: Valve state, timer active, schedule enabled (diagnostic)

Reliability Features

  • DataUpdateCoordinator: 30-second polling interval with automatic retry
  • AQI Caching: Returns last known value during intermittent failures
  • Request Delays: 0.5s delay between commands to prevent HTTP 503 errors
  • Immediate State Updates: Uses async_refresh() for instant UI feedback

Installation

HACS (Recommended)

  1. Add custom repository: https://github.com/bramd/qstream-ha
  2. Search for "QStream" in HACS
  3. Click Install
  4. Restart Home Assistant
  5. Add integration via Settings → Devices & Services → Add Integration

Manual

  1. Copy custom_components/qstream to your HA config directory
  2. Restart Home Assistant
  3. Add integration via Settings → Devices & Services → Add Integration

Configuration

  • Host: IP address or hostname of your QStream device
  • Name: Friendly name for the device (optional, defaults to "QStream Fan")

Requirements

  • Home Assistant 2025.4.4 or newer
  • Python 3.11 or newer
  • BUVA QStream 2.0 device on local network

Dependencies

  • qstream>=0.2.0 - Python library for QStream device communication

Known Limitations

  • Integration polls device every 30 seconds (no push notifications)
  • AQI endpoint may occasionally return HTTP 503 (handled gracefully with caching)
  • Device can only handle one command at a time (handled with delays)

Technical Details

  • IoT Class: Local Polling
  • Config Flow: UI-based configuration
  • Entity Platform: Fan, Switch, Sensor, Binary Sensor
  • Architecture: DataUpdateCoordinator pattern with CoordinatorEntity

Credits

Built with ❤️ using Claude Code

Support

Report issues at: https://github.com/bramd/qstream-ha/issues