MyHOME for Home Assistant โ Project Roadmap & Architectural Status¶
Welcome to the development roadmap and architectural status overview for the MyHOME for Home Assistant integration.
Our overarching mission is to provide the most reliable, complete, and high-performance integration between Home Assistant and the BTicino / Legrand SCS OpenWebNet ecosystem. We adhere to strict standards: zero-latency asynchronous architecture, hardware-level protocol fidelity, 100% automated test coverage, and full Home Assistant Core 2025/2026 compatibility.
Tip
For release-by-release changelogs, capability matrices, and direct GitHub compare links across all releases, see the companion document:
๐ Beta Evolution, Architectural Milestones & Delta Explorer
๐บ๏ธ Current Delivery Status (v2.0.0 Beta Series, b16 Released)¶
The major architectural milestones originally planned across Phases 1 through 4 have been consolidated, fully implemented, and validated with 100% statement and branch test coverage across the v2.0.0b1 through v2.0.0b16 releases. v2.0.0b15 was published on 2026-10-07; v2.0.0b16 follows with the 83 pull requests merged since, on OWNd 2.0.0b11. The remaining work is v2.0.0 stabilization: see Final Stabilization below.
gantt
title MyHOME Integration Status & Roadmap
dateFormat YYYY-MM-DD
section Delivered in Phase 1 & 2 (b1 โ b8)
Dual Async Transports & Core Architecture (P1) :done, 2026-08-01, 2026-09-01
Lovelace In-Band Bus Monitor Card (<myhome-bus-card>) :done, 2026-08-15, 2026-09-10
Standalone OWNd Library & Master WHO Catalog :done, 2026-09-01, 2026-09-10
section Delivered in Phase 3 & 4 (b9 โ b13)
Command Translation (WHAT=1000) Frame Filtering :done, 2026-09-10, 2026-09-11
CEN/CEN+ UI Device Triggers & Pruning Exemption :done, 2026-09-10, 2026-09-11
DALI HSV Color (Dim 12) & Tunable White (Dim 14) :done, 2026-09-10, 2026-09-11
Central Unit Coordination 3550 / 4695 :done, 2026-09-10, 2026-09-11
Hardware Gateway Profiles (F454, MHS1, MH200) :done, 2026-09-10, 2026-09-11
Deterministic Plant Trace Replay Engine (P5) :done, 2026-09-10, 2026-09-11
Engine Upgrade: OWNd 2.0.0b8 (HMAC SHA-1/SHA-256) :done, 2026-09-12, 2026-09-18
Climate Fan Mode Persistence (#404) :done, 2026-09-15, 2026-09-18
Home Assistant Platinum Quality Scale Alignment :done, 2026-09-15, 2026-09-18
section Released in v2.0.0b14 (2026-09-30)
Multi-Gateway Plant Isolation Architecture (#453) :done, 2026-09-19, 2026-09-24
Climate Zone HVAC Action & State Diagnostics (#457) :done, 2026-09-20, 2026-09-25
F500 FM Tuner Dimension Reports & RDS Decoding :done, 2026-09-21, 2026-09-26
Touchscreen Profiles (AM4890, H4890, LN4890) :done, 2026-09-22, 2026-09-27
F520 Proactive Energy Meter Bus Sweeps (#494) :done, 2026-09-24, 2026-09-30
section Released in v2.0.0b15 (2026-10-07)
CEN/CEN+ Trigger Isolation (#601) & Phantom Illuminance Fix (#604) :done, 2026-10-01, 2026-10-02
Read-Only Alarm Panel with AUX Arm/Disarm (#564) :done, 2026-10-01, 2026-10-03
Device Fault Repairs (#593) & Blank-Start Discovery (#578) :done, 2026-10-01, 2026-10-03
Ignored Addresses Option (#611) & Dimmer No-Load WHAT 19 (#619) :done, 2026-10-03, 2026-10-04
Firmware-Aware Gateway Profiles (OWNd#80) :done, 2026-10-04, 2026-10-05
section Released in v2.0.0b16
WHO 4 Seasons, Holiday Programs & Humidity (#657, #689, #712) :done, 2026-10-08, 2026-10-14
WHO 22 Tuner RDS (#695) & WHO 25 Scenario Plus (#671) :done, 2026-10-08, 2026-10-16
Cover Start-Up Floor & Full Runs (#702, #707, #708) :done, 2026-10-08, 2026-10-17
Venetian Blind Slat Tilt (#492, #508) :done, 2026-09-23, 2026-10-18
Impulse Gate & Garage Covers, Intercom Events (#667) :done, 2026-10-08, 2026-10-19
Expose HA Entities to the Bus (#750) :done, 2026-10-14, 2026-10-21
section Final Stabilization
v2.0.0 Release Candidate & Distribution Consultation :2026-10-05, 2026-11-15
๐ฆ What is Shipped & Operational in the v2.0.0 Series¶
The following table summarizes the completed architectural features and protocol subsystems verified across the current beta series:
| Priority / Feature | Subsystem | Implementation Status | Highlights |
|---|---|---|---|
| Standalone Protocol Engine (P1) | Core | โ
Shipped (OWNd 2.0.0b8) |
Fully decoupled, strongly typed async engine on PyPI; supports legacy clear-text, numeric, and modern HMAC-SHA1 / HMAC-SHA256 session handshakes. |
| Multi-Gateway Isolation Architecture | Core / Routing | โ Shipped (#453) | Namespaced dispatchers, independent session queues, and cross-gateway bus protection eliminating cross-talk in multi-gateway installations. |
| CEN / CEN+ UI Device Triggers (P2) | WHO=15 / 25 | โ Shipped | Native Home Assistant UI device triggers with preserved 4-digit addressing ("0001"), parent gateway isolation, and all 8 press/held/release actions with repeat debouncing. |
| In-Place Gateway Reconfiguration | Config / Options | โ Shipped | Update IP address, password, or hardware model directly through Options Flow without deleting devices or breaking entity IDs. |
| Dynamic Command Worker Concurrency | Transports | โ Shipped | User-configurable (1โ4 workers) command concurrency automatically capped to hardware-safe limits per gateway model (e.g. 1 for MH200/MH201, 4 for F454/MHS1). |
| Native Hardware Bus Timers | WHO=1 | โ Shipped | Offloaded countdown timers on Legrand DIN actuators (F411) via myhome.turn_on_timed or duration parameters in light.turn_on / switch.turn_on. |
| Central Unit Coordination (P4) | WHO=4 | โ Shipped | Dedicated master coordination for 99-zone Central Unit (#0, model 3550) and 4-zone Central Unit (#0#1, model 4695). Master Seasonal switches propagate to subordinate zones. |
| Climate Zone State Diagnostics | WHO=4 | โ Shipped (#404, #457) | Dynamic HVAC action deduction (heating, cooling, idle), fan mode persistence across restarts, and startup diagnostic sweeps. |
| Real-World CI Trace Replay Engine (P5) | Testing / CI | โ Shipped | Automated pytest fixture engine (tests/test_trace_replay.py) replaying authentic on-wire captures across multiple plants (Nicola Cavallo #247, MH200 physical plant, F454/MH202 captures, F418U2 dimmers). |
| DALI Tunable White & Color | WHO=1 | โ Shipped | DALI DT8 tunable white (Kelvin 2000Kโ6535K / mireds, Dimension 14), native HSV color promotion (Dimension 12), and smooth dimming speed curves. |
| Declared Groups & Assumed State | WHO=1 | โ Shipped (#368) | Lighting groups with assumed-state inference and automated targeted status sweeps (broadcast_resync) upon intercepting group (WHERE=#1) or all-off (WHERE=0) frames. |
| Cover Concurrency & Travel Calibration | WHO=2 | โ Shipped (#433) | Virtual travel-time positioning, dedicated cover run-stop locks, hardware feedback (Dimension 10), and Lovelace calibration dashboard card. |
| Sound System 2.0 & Streaming Proxy | WHO=16 / 22 | โ Shipped | Multi-room matrix amplifier control (F441/F441M), volume normalization (0โ31 scale), F500 FM Tuner RDS decoding, and Dynamic Proxy Decoders for Music Assistant / Spotify. |
| Energy Management & Metering | WHO=18 | โ Shipped (#494) | Instantaneous active power (W), line voltage (V), current (mA), cumulative totalizers, and proactive bus sweeps for F520 DIN meters. |
| Burglar Alarm | WHO=5 | โ Shipped | Partitions, arm away/home, disarm, panic trigger, and zone 0 synchronization for central units (3485/3486). |
| Dry Contacts & Technical Alarms | WHO=25 | โ Shipped | Dynamic discovery, device class suffix stripping (#247), inverted contact states, and event dispatching for Legrand 3477 binary sensors. |
| Lovelace Bus Monitor Card | Frontend | โ
Shipped (<myhome-bus-card>) |
Live scrolling stream, color-coded WHO badges, scoped custom element registry self-healing (#277), syntax injector, and 1-click clipboard export. |
๐ Integration Quality Scale (IQS) Alignment¶
MyHOME is engineered to achieve the official Home Assistant ๐ฅ Platinum Quality Seal (Home Assistant Integration Quality Scale) for potential Core inclusion, ensuring the highest architectural standards regardless of distribution model.
Note
Community Consultation on Upstream Core Inclusion vs. Independent Distribution:
While the integration strictly adheres to 100% of Home Assistant Core Platinum standards, the maintainers and community have not decided on upstream Core inclusion. As discussed in community channels (see RFC Discussion #248), there are important trade-offs:
- Benefits of Core inclusion: Automatic out-of-the-box discovery for new Home Assistant users without requiring HACS; official documentation on home-assistant.io.
- Drawbacks & Advantages of remaining an independent custom component:
- Release Agility: Rapid deployment of bugfixes, firmware quirk workarounds, and new WHO dimension features without waiting for monthly Home Assistant Core release windows.
- Dedicated Diagnostic Frontend: Continued bundling and rapid iteration of the in-band <myhome-bus-card> Lovelace tool and live bus monitors, which are constrained within Core repository guidelines.
- Community Traces & Plant Fixtures: Fast, unencumbered additions of real-world captures and experimental protocol options.
Feedback from installers and users is actively welcomed in our Discussions.
All 54 quality scale rules are tracked in custom_components/myhome/quality_scale.yaml and continuously validated by scripts/verify_ha_standards.py:
graph LR
subgraph Bronze["๐ฅ Bronze Tier (100% Satisfied)"]
B1["has_entity_name = True"]
B2["entry.runtime_data Mapping"]
B3["async_setup Action Registration"]
B4["Config Entry Unique IDs"]
end
subgraph Silver["๐ฅ Silver Tier (100% Satisfied)"]
S1["100.0% Strict Test Coverage"]
S2["ServiceValidationError Handlers"]
S3["PARALLEL_UPDATES = 0 Declarations"]
S4["No Blocking Event Loop Calls"]
end
subgraph Gold["๐ฅ Gold Tier (100% Satisfied)"]
G1["async_step_reconfigure"]
G2["strings.json & en.json Translations"]
G3["icons.json Translatable Icons"]
G4["Home Assistant Repairs Framework"]
G5["diagnostics.py Platform"]
end
subgraph Platinum["๐ Platinum Tier (100% Satisfied)"]
P1["Async Client Library (OWNd)"]
P2["Zero HA Imports in Client Engine"]
P3["Strict Anti-Drift Sentinels"]
end
Bronze --> Silver --> Gold --> Platinum
๐ Quality Scale Audit Highlights¶
- Bronze Tier:
has-entity-name: All entity implementations inherit device names cleanly without manualself.entity_idoverrides.runtime-data: 100% single-source access viaentry.runtime_data(MyHomeDatadataclass); zero legacyhass.data[DOMAIN]global lookups.-
action-setup: Service actions registered once inasync_setupand preserved across individual entry reloads. -
Silver Tier:
test-coverage: Enforced strict 100.0% statement and branch coverage across all integration modules (verified bytests/test_coverage_enforcer.py).-
parallel-updates: ExplicitPARALLEL_UPDATES = 0declared across all 9 platform files to guarantee event-driven thread safety. -
Gold Tier:
reconfiguration-flow: In-place gateway IP address, port, password, and model corrections supported natively in the UI.repair-issues: Built-in repairs platform (repairs.py) raising user-actionable diagnostics (e.g. unconfigured gateway timezone sentinel999, duplicate address alerts, model conflicts).-
diagnostics: Comprehensive diagnostics export with automatic redaction of passwords and tokens. -
Platinum Tier:
async-dependency: Zero blocking network calls; standalone asynchronous client engine (OWNd==2.0.0b8) on PyPI.clean-separation: OWNd engine imports zero Home Assistant symbols and runs independently on Linux/Windows/macOS.
๐ Real-World Trace Coverage Schematic (What We Have vs. What We Need)¶
To eliminate regression risks and verify complex timing constraints, our Trace Replay Engine (tests/test_trace_replay.py) replays authentic on-wire captures against the Home Assistant integration.
Below is the updated status of real-world captures in CI, and remaining niche plant scenarios where community traces are welcomed:
๐บ๏ธ System Coverage Overview¶
graph TD
subgraph Gateways["๐๏ธ Gateways & Transports"]
GW_MHS1["๐ข MyHomeServer1<br/>(Full 70+ dev plant #247)"]
GW_F454["๐ข F454<br/>(High-speed IP capture #466)"]
GW_MH200["๐ข MH200 / MH200N<br/>(Physical plant & captures #466)"]
GW_MH202["๐ข MH202<br/>(Physical plant capture #466)"]
GW_F461["๐ข F461<br/>(DALI DIN Web Server)"]
GW_H4890["๐ข H4890 / AM4890<br/>(Touchscreen IP gateway #466)"]
GW_F455["๐ข F455<br/>(Physical plant capture #466)"]
GW_3578["๐ก Legrand 3578<br/>(Serial/ZigBee Loopback)"]
end
subgraph Subsystems["โ๏ธ Protocol Subsystems & Scenarios"]
SUB_LIGHT["๐ข Lighting / Relays (WHO 1)<br/>(4-digit & on/off covered)"]
SUB_DALI["๐ข DALI DT8 / HSV (WHO 1)<br/>(Dim 12 HSV + Dim 14 TW)"]
SUB_F418["๐ข F418U2 Dimmers (WHO 1)<br/>(MH200 & F454 captures #501)"]
SUB_TIMER["๐ข DIN Bus Timers (WHO 1)<br/>(Timed execution covered)"]
SUB_GRP["๐ข Lighting Groups (WHO 1)<br/>(Assumed state & resync #368)"]
SUB_COV_V["๐ข Covers Virtual (WHO 2)<br/>(Travel-time positioning #433)"]
SUB_COV_H["๐ข Covers Hardware (WHO 2)<br/>(Dim 10 status covered)"]
SUB_CU3550["๐ข Central Unit 3550 (WHO 4)<br/>(99-zone master mode)"]
SUB_CU4695["๐ข Central Unit 4695 (WHO 4)<br/>(4-zone master mode)"]
SUB_FANCOIL["๐ข Fancoil Thermostat (WHO 4)<br/>(Dim 11 fan speeds & offsets)"]
SUB_ENERGY["๐ข Energy Management (WHO 18)<br/>(W, V, mA & F520 sweeps #494)"]
SUB_DRY["๐ข Dry Contacts (WHO 25)<br/>(Technical alarms & AUX)"]
SUB_CEN["๐ข CEN / CEN+ (WHO 15/25)<br/>(Triggers & long-press debounce)"]
SUB_AUDIO["๐ข Multi-Room Audio (WHO 16)<br/>(Matrix routing & F500 tuner)"]
SUB_ALARM["๐ข Burglar Alarm (WHO 5)<br/>(Partitions & central unit)"]
SUB_ROUTER["๐ข F422 Bus Router<br/>(Cross-bus #4#02 routing covered)"]
end
subgraph Engine["๐งช CI Test Suite"]
HARNESS["tests/test_trace_replay.py<br/>(100% Deterministic Replay)"]
end
GW_MHS1 --> HARNESS
GW_F454 --> HARNESS
GW_MH200 --> HARNESS
GW_MH202 --> HARNESS
GW_F461 --> HARNESS
GW_H4890 --> HARNESS
GW_F455 --> HARNESS
SUB_LIGHT --> HARNESS
SUB_DALI --> HARNESS
SUB_F418 --> HARNESS
SUB_TIMER --> HARNESS
SUB_GRP --> HARNESS
SUB_COV_V --> HARNESS
SUB_COV_H --> HARNESS
SUB_CU3550 --> HARNESS
SUB_CU4695 --> HARNESS
SUB_FANCOIL --> HARNESS
SUB_ENERGY --> HARNESS
SUB_DRY --> HARNESS
SUB_CEN --> HARNESS
SUB_AUDIO --> HARNESS
SUB_ALARM --> HARNESS
SUB_ROUTER --> HARNESS
classDef covered fill:#2e7d32,stroke:#1b5e20,color:#ffffff;
classDef partial fill:#f57f17,stroke:#e65100,color:#ffffff;
class GW_MHS1,GW_F454,GW_MH200,GW_MH202,GW_F461,GW_H4890,GW_F455,SUB_LIGHT,SUB_DALI,SUB_F418,SUB_TIMER,SUB_GRP,SUB_COV_V,SUB_COV_H,SUB_CU3550,SUB_CU4695,SUB_FANCOIL,SUB_ENERGY,SUB_DRY,SUB_CEN,SUB_AUDIO,SUB_ALARM,SUB_ROUTER covered;
class GW_3578 partial;
๐๏ธ Table 1: Gateway Models & Hardware Transports¶
| Gateway Model | Status | Current Evidence / Fixture | Community Trace Needed / Target Scenario |
|---|---|---|---|
| MyHomeServer1 (MHS1) | ๐ข Covered | tests/fixtures/plants/issue_247_nicolacavallo84/ (100 on-wire frames from @nicolacavallo84) |
None needed โ full production plant active in CI. |
| F454 | ๐ข Covered | Nicola Cavallo capture #247 + F454 traces in #466 & #501 | None needed โ high-speed multi-session plant active in CI. |
| MH200 / MH200N | ๐ข Covered | tests/fixtures/plants/mh200_physical_plant/ (107 frames) + issue #466 & #501 traces |
None needed โ physical plant with 62 lights, 7 switches, 11 covers active in CI. |
| MH202 | ๐ข Covered | Real-world plant capture in #466 | None needed โ verified against physical MH202 installation. |
| H4890 / AM4890 | ๐ข Covered | Livinglight / Axolute 3.5" touchscreen capture in #466 | None needed โ verified against physical display gateway. |
| F461 Web Server | ๐ข Covered | Issue #273 capture (@lyubomirtraykov) | None needed โ DALI DT8 ballasts verified. |
| F455 | ๐ข Covered | Real-world plant capture in #466 (@lionelser) | None needed โ verified against physical F455 basic gateway. |
| Legrand 3578 USB/Serial | ๐ก Profile Verified | Loopback transport tests in tests/test_gateway.py |
Real-world USB serial stream: Raw byte capture from physical OpenZigBee installation (WHERE=<id>#9). |
โ๏ธ Table 2: Subsystems, Dimensions & Edge Scenarios¶
| Subsystem & Domain | Status | Current Evidence / Fixture | Community Trace Status |
|---|---|---|---|
| Lighting (WHO = 1) โ Relays & Dimmers | ๐ข Covered | F411U2, F418, F418U2 (#501), 4-digit addressing 1000, 0910, MH200 plant |
Baseline covered. |
| Lighting (WHO = 1) โ DALI Tunable White & Color | ๐ข Covered | Dimension 14 (Kelvin 2000Kโ6535K / mireds) + Dimension 12 HSV color | Baseline covered. |
| Lighting (WHO = 1) โ Groups & Broadcasts | ๐ข Covered | Declared groups, assumed-state inference, and automated broadcast_resync (#368) |
Resolved in b12/b13. |
| Covers (WHO = 2) โ Travel-Time & Feedback | ๐ข Covered | Nicola Cavallo capture (*2*0*42##, LN4661M2) + Dimension 10 status feedback |
Baseline covered. |
| Covers (WHO = 2) โ Run-Stop Lock & Centralized Triggers | ๐ข Covered | Dedicated cover lock (#433) + WHO=2 centralized automation triggers (#466) | Resolved in b14. |
| Thermoregulation (WHO = 4) โ Central Units | ๐ข Covered | 99-zone Central Unit 3550 (#0) + 4-zone Central Unit 4695 (#0#1) |
Baseline covered. |
| Thermoregulation (WHO = 4) โ Fancoils & Actions | ๐ข Covered | Dimension 11 3-speed fancoils, temperature offsets, dynamic HVAC action (#457) | Baseline covered. |
| Sound System (WHO = 16 / 22) โ Matrix & Tuner | ๐ข Covered | F441/F441M matrix amplifier control, Dynamic Streaming Proxy, F500 FM Tuner RDS | Baseline covered. |
| Energy Management (WHO = 18) | ๐ข Covered | Active power (W), line voltage (V), current (mA), cumulative energy, F520 sweep (#494) | Baseline covered. |
| Burglar Alarm (WHO = 5) | ๐ข Covered | Partitions, arm away/home, disarm, panic trigger, central units (3485/3486) | Baseline covered. |
| CEN / CEN+ (WHO = 15 / 25) โ Dry Contacts & Triggers | ๐ข Covered | F482V12 / 3477 binary sensors, 8-action UI device triggers with long-press repeat debounce | Baseline covered. |
| F422 Cross-Bus Router | ๐ข Covered | MH200 physical plant trace (tests/fixtures/plants/mh200_physical_plant/, #4#02) |
Baseline covered. |
๐ Dual-Track Guide: How Community Testers Can Submit a Trace¶
We offer two simple ways to contribute real-world bus traces, tailored to your technical setup:
๐ท๏ธ Track A: Zero-CLI via Home Assistant UI (Fastest & Easiest)¶
Ideal for standard users running Home Assistant with the MyHOME integration:
- Sweep the Bus: In Home Assistant, go to Developer Tools > Services and call
myhome.sweep_bus(or trigger it from the Lovelace Bus Monitor Card). This actively queries all lighting, cover, HVAC, and gateway diagnostic states in under 3 seconds. - Download Diagnostics: Navigate to Settings > Devices & Services > MyHOME > click the three dots (
โฎ) > Download diagnostics (or click๐ Export Traceon the<myhome-bus-card>). - Submit: Attach the downloaded
.jsonfile to RFC Discussion #248 or open a GitHub Issue. - Privacy Guarantee: Home Assistant and MyHOME automatically redact all passwords, authentication tokens, and private credentials before exporting.
๐ป Track B: Standalone Python Tool (Test Benches & Integrators)¶
Ideal for installers, bench testers, and developers testing isolated gateways without Home Assistant installed:
- Run the Trace Recorder:
- Active Sweep & Listen: The script automatically executes the diagnostic status sweep, listens for ambient button presses or scenario bursts, and scrubs sensitive credentials.
- Drop & Commit: The tool writes a complete ready-to-test fixture folder in
tests/fixtures/plants/<model>_plant/. - Instant CI Verification: Run
pytest tests/test_trace_replay.pyโ our parameterized test runner automatically discovers and tests your plant with zero additional test code required! Submit a Pull Request.
๐ฌ Community Links & Resources¶
Please share your feedback, real-world bus captures, and questions in our community channels:
๐ Beta Evolution & Differences Matrix โ Side-by-side capabilities across all releases
๐ Join the Community Discussion on RFC #248
๐ Report Beta Issues or Submit Bus Traces