Releases: kayl-codes/homeassistant-comexio
Release list
Comexio v0.8.1
This release fixes several stability issues in the statistics unit migration, suppresses a spurious aiohttp session warning on HA restart, and improves the extension offline detection with a proper HA Repair notification.
🚀 New Features & Enhancements
- Extension Offline Repair Issue: When an extension module goes offline during runtime, a HA Repair notification is now created listing the affected module(s) — it auto-resolves once all modules are back online. Modules that are already offline at startup are logged at INFO level only, so intentionally decommissioned hardware no longer generates a spurious alert. (#11)
✨ Improvements & Fixes
- Statistics unit migration reliability: Detection now uses the correct
statistics_unit_of_measurementkey (HA 2024+), and the guard condition is tightened tonot stored_unit— the migration no longer re-runs on every restart once it has already completed. (#9) - Bootstrap deadlock eliminated:
async_block_till_done()replaced withasyncio.sleep()in the background statistics-fix task — HA startup no longer stalls for up to 5 minutes when the recorder queue is active. (#9) - Offline extension orphan guard: Entity IDs of offline extension IOs are snapshotted before the cleanup loop and excluded from orphaned-statistics detection, preventing false Repair issues from reappearing on every restart. (#9)
- aiohttp session warning suppressed:
ComexioAPI.close()is now a no-op —async_create_clientsessionmanages the session lifecycle, so HA no longer warns about the integration closing a managed session on full restart. (#10) unit_classdeprecation resolved:async_update_statistics_metadatanow passesnew_unit_class=None(universally valid), eliminating the deprecation warning scheduled to break in HA 2026.11. (#9)max=0override fixed: A falsy-check bug innumber.pycaused a validmaxvalue of0on analog IO outputs to be silently replaced with100.0. Fixed by checkingis not Noneinstead. (#9)
⚠️ Requirements & Notes
- Full HA restart recommended after updating (coordinator behaviour change for extension offline handling; new translation keys for the Repair notification).
Comexio v0.8.0
This release introduces a proper reconfigure flow for connection credentials, replaces the polling interval slider with a curated dropdown, and adds automatic offline extension detection.
🚀 New Features & Enhancements
- Reconfigure Flow: Host, username, admin password, API user/pass are now editable via ⋮ → Reconfigure — no re-setup needed. Blank password fields keep the existing value; a login test runs before saving.
- Polling Interval Dropdown: Free-range slider replaced by a curated list: 1 / 5 / 10 / 15 / 30 / 45 / 60 / 120 / 300 / 600 / 1440 min.
- Offline Extension Detection: Extension modules that go offline are detected automatically on every coordinator poll — their entities and sub-device are removed from HA until the module comes back online.
- Diagnostic Sensor — Offline Extensions: New sensor on the hub device shows the count of currently offline extensions and lists them via the
extensionsstate attribute. - Orphaned Statistics Repair on Startup: Detection now runs immediately after entity cleanup instead of waiting up to 15 min for the next scheduled poll.
✨ Improvements & Fixes
- Options flow cleanup: Credential fields removed from the options form — connection details live exclusively in
config_entry.dataand are managed via the new reconfigure flow. - Coordinator credential source: Credentials now read directly from
entry.data, preventing stale options values from overriding a reconfigure. - Recorder stability:
state_classreturnsNonefor sensors of offline extensions, preventing recorder unit-mismatch warnings when a module goes offline with an incomplete$ioTypesmap. - Transition logging: Coordinator now logs which extensions went offline or came back online on each state change.
async_migrate_entity_ids()extracted as a shared coordinator helper (used by both the repair flow and the migration button).
📖 Documentation
- New
CONFIGURATION.md: Bilingual (EN + DE) guide with all UI screenshots and field descriptions — covers setup, settings, reconfigure, WebIO sync, and repair flow. - README: Updated configuration section with reconfigure tip, options note, and link to the new guide.
⚠️ Requirements & Notes
- Full HA restart required after updating (new translation keys for the reconfigure step and polling dropdown).
- Existing entries: Credentials stored in
config_entry.optionsfrom the old options flow are cleaned up automatically the first time you save via Reconfigure.
Version 0.7.5
This is a massive under-the-hood update that significantly improves the performance, stability, and robustness of the Comexio integration. It also introduces new features based on community feedback.
🚀 New Features & Enhancements
- Customizable Cover Keywords: You can now define your own comma-separated keywords (e.g.,
shutter, volet, rolladen) for automatic cover detection. This can be configured during the initial setup or later in the integration's options. - New Translations: The integration is now fully translated into French and Spanish.
✨ Improvements & Fixes
- Major Performance Boost: The logic for parsing the Comexio configuration has been completely rewritten. It now uses compiled patterns and optimized lookups, which significantly speeds up the background audit process.
- Improved UI State Consistency: Switches and sliders in the Home Assistant UI will now more reliably reflect the actual state of the device, especially after a failed API call.
- Smarter Password Handling: The options dialog no longer pre-fills password fields, enhancing security and improving the user experience on validation errors.
🔒 Under-the-Hood: Security & Robustness
This release includes a huge number of fixes that make the integration "bulletproof" against unexpected server responses and network conditions:
- Hardened the API client against various connection errors, invalid JSON data, and malformed responses from the Comexio server.
- Fixed several race conditions that could occur during data updates and sync processes.
- Improved handling of Home Assistant's lifecycle for reloads and setup retries, preventing session leaks.
- Made the integration more robust in complex network environments, including full support for IPv6 and offline scenarios.
Version 0.7.1
🚀 New Features & Improvements
- Custom Naming Schemas: Users can now define custom naming patterns for IOs and Markers via the integration options menu (e.g.
{ExtName} {IoId} {IoTitle}). - Core-Compliant Entity IDs: Removed the server alias from the default naming schema to fully leverage Home Assistant's native device-name prefixing (
has_entity_name = True). This prevents duplicate server names in theentity_idwhile keeping the UI friendly name perfectly readable. - Stable Unique IDs: Standardized and hardened the
unique_idgeneration across all platforms (e.g.,comexio_iosrv1_ud1_q4). This ensures long-term database stability and prevents orphaned entities, even if entity types change in the future. - Safe Dictionary Formatting: Implemented a
SafeDictfallback to prevent the integration from crashing if a user provides an invalid variable in the custom naming schema.
Version 0.7.0
🐛 Bug Fixes & Improvements
- Web-IO Device Creation: Radically overhauled the API payload for creating Web-IO devices to strictly match Comexio requirements. Fixed missing identifiers and authentication bugs.
- Authentication Flag: Fixed the
form_loginattribute in the Web-IO template and device creation. It is now correctly set to2("Never") to prevent Comexio from blocking webhook execution. - Payload Variables: Fixed a crash during device recreation where an undefined variable (
new) was referenced instead ofbase_id. - Sync Error Handling: Introduced a dedicated
sync_errorstate. The UI button and sync sensor will now reliably display an error state if the Delta-Sync or upload process fails, rather than reverting to "Idle".
🎉 This release marks a massive stability upgrade for the Web-IO interface between Comexio and Home Assistant!
Version 0.6.4
🏷️ Entity Naming Standardization & Diagnostic Sensors
This release heavily focuses on aligning the integration's internal architecture with strict Home Assistant Core standards.
🚀 Enhancements
- Entity Naming Standard: All platforms (Sensors, Switches, Numbers, Binary Sensors) now strictly adhere to the modern HA naming standard (
has_entity_name = True). This guarantees clean, uniform, and predictableentity_idgeneration for all current and future Comexio devices. - New Sync Status Sensor: Added a dedicated
Web-IO Sync Statussensor. You can now easily track the current sync mode, progress (in %), and the exact active step directly from your dashboard or the device view. - Diagnostic Grouping: System-level entities (like the Sync buttons and the new Status sensor) are now properly grouped under the
Diagnosticsection of the Home Assistant device page to keep your primary controls clean. - Unified Notifications: Standardized all backend-generated UI pop-ups to English to bypass global localization limitations in Home Assistant Core.
🐛 Bugfixes
- Fixed a string termination syntax error in the
sensor.pyplatform.
Version 0.6.3
✨ Auto-Discovery & Dynamic IP Updates
This release brings major Quality-of-Life improvements to the setup process and long-term maintenance of the integration!
🚀 New Features
- Smart Auto-Discovery: Setting up the integration is now easier than ever. When adding a new Comexio server, the integration will automatically scan your local network for known Comexio DNS hostnames (like
comexio,comexio.local,comexio.fritz.box, etc.). If found, the IP address will be instantly pre-filled in the setup dialog. - Dynamic Host / IP Updates: Did your router assign a new IP address to your Comexio server? No problem! You can now easily change the Host/IP address directly via the integration's Configure menu (Settings -> Devices & Services -> Comexio -> Configure) without having to delete and reinstall the integration. The coordinator will seamlessly reconnect in the background.
🐛 Bugfixes & Maintenance
- Fixed a minor evaluation bug in the
config_flowinitialization step. - Cleaned up the codebase by extracting hardcoded fallback IPs into a centralized constant (
DEFAULT_HOST).
Version 0.6.2
🧹 Code Quality & Maintenance Update
This release focuses entirely on "under the hood" improvements to make the integration more robust and future-proof. There are no functional changes or breaking changes in this update, so your existing setup will continue to work exactly as before!
🛠️ Technical Changes
- Static Type Hints: Added comprehensive Python type annotations across all entity platforms (
sensor,binary_sensor,switch,number, andbutton). - Core Readiness: This aligns the codebase much closer to the strict code quality and typing standards required by the official Home Assistant Core repository.
- Developer Experience: Significantly improves code readability and IDE autocompletion, laying a solid and clean foundation for future feature development.
feat: Add local brand images for new HA UI
🎨 Local Brand Images Support
Following the recent architectural changes announced by the Home Assistant team regarding the Brands Proxy API, this release introduces native support for local brand images.
Changes:
- Added a new
brand/subdirectory inside the integration folder (custom_components/comexio/brand/). - Moved
icon.pngandlogo.pnginto this new directory.
Home Assistant (starting with 2025.3) will now automatically serve these local images directly in the UI, eliminating the need to submit logos to the official external HA brands repository.
Release 0.6.0: Initial HACS Support
🎉 Initial Public Release
This is the first official release of the custom Comexio integration for Home Assistant, now fully compatible with HACS (Home Assistant Community Store)!
✨ Features & Changes
- HACS Support: Refactored the entire folder structure (
custom_components/comexio/) and addedhacs.jsonto allow easy installation via HACS custom repositories. - Security Enhancement: Removed hardcoded default credentials from
config_flow.pyto prevent accidental credential leaks. Users now start with clean, empty input fields during setup. - Code Quality: Enforced Unix (LF) line endings across all Python and JSON files to ensure native compatibility with Home Assistant Core running on Linux.
- Documentation: Added a comprehensive, bilingual
README.md(English & German) including a step-by-step installation guide.
🚀 How to install
Please follow the instructions in the README to add this repository to HACS and install the integration.