Skip to content

Merge ASYNC-branch into MAIN#236

Merged
bouwew merged 980 commits intomainfrom
async
May 25, 2025
Merged

Merge ASYNC-branch into MAIN#236
bouwew merged 980 commits intomainfrom
async

Conversation

@bouwew
Copy link
Copy Markdown
Contributor

@bouwew bouwew commented May 23, 2025

Summary by CodeRabbit

  • New Features

    • Complete asynchronous redesign with modern type-safe API for Plugwise USB-Stick integration.
    • Added comprehensive local caching for nodes and network registrations.
    • Enhanced node support with async load, initialize, and state management for Circle, Circle Plus, Sense, Scan, Switch, Celsius, and SED devices.
    • New subscription mechanism for node feature updates and event-driven architecture.
    • Detailed energy pulse and calibration helpers for improved energy data handling.
    • Added extensive enums, data classes, and protocols defining device features and states.
    • Introduced async connection manager, sender, receiver, and prioritized request queue for USB-Stick communication.
    • Added helper modules for utilities, caching, firmware support, and subscription management.
  • Bug Fixes

    • Fixed edge cases in device discovery, cache handling, and energy log management.
    • Corrected minor typos and improved error handling across modules.
  • Refactor

    • Removed synchronous, thread-based connection and message controller in favor of async connection components.
    • Replaced legacy parser with async message processing pipeline.
    • Streamlined message request and response classes with explicit async send and await patterns.
    • Overhauled node implementations to async classes with improved caching and event subscriptions.
    • Simplified constants and error classes for clarity and maintainability.
    • Consolidated node factory for type-based instantiation.
  • Chores

    • Updated dependencies to use pyserial-asyncio-fast and aiofiles; dropped deprecated packages.
    • Adjusted Python version support to 3.13.
    • Cleaned up project metadata and configuration files.
    • Added helper modules for utilities, caching, and firmware support.
    • Updated GitHub workflows and pre-commit configurations.
  • Documentation

    • Refined changelog entries detailing major async rewrite and feature additions.
    • Added comprehensive docstrings and type annotations throughout.
  • Tests

    • Introduced extensive binary test data for USB stick message-response validation.
  • Revert

    • Removed legacy synchronous connection, parser, and controller modules.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants