🎉 MyHOME v2.0.0b14 Pre-Release: built on your bus traces #561
Replies: 2 comments 5 replies
|
b14 feedback – MH200N (model 44) + F441/F500N audio, F411 covers, F428 dry contact Upgraded from the v2-phase1-architecture branch to 2.0.0b14 (OWNd 2.0.0b9). Everything I use works: Volume down on the amplifiers now works (the 161000*… issue is gone) 🎉 One small issue: button.mh200n_gateway_calibrate_all_covers is permanently unavailable, although this gateway has many discovered F411 covers (each has its own working "Calibrate travel time" button). It looks like the "no covers on this gateway" check from d2e2fa3 doesn't find the covers here. No functional impact – I've disabled the entity for now. Side note for the calibration docs: my F411 actuators report the stop only after their 60 s run-time limit (last_run_seconds: 60.34), so auto-calibration can't measure them. Setting the travel times manually with set_cover_travel_time works fine. Thanks for the great work! |
|
I have two quick questions: the side panel is still not available—is this add-on still dedicated to you developers? P.s |
Uh oh!
There was an error while loading. Please reload this page.
🎉 MyHOME v2.0.0b14 is out
MyHOME v2.0.0b14 is merged and ready for field testing. It is a big one: 105 pull requests since b13, on top of the new OWNd 2.0.0b9. Release notes and
myhome.zip: v2.0.0b14.Before the list of changes, the most important part of this post.
❤️ Thank you for the traces
When we opened the call for real bus traces in #466, we hoped for a few captures to fill the gaps in the test corpus. What we got was dozens of sweeps and traces from gateways we do not own, from people who took the time to press buttons, run a sweep, export the file and describe what they did.
Every one of those traces went into the test suite. When we replayed them, they caught bugs that nobody had run into yet. Several of the fixes below were made before anyone saw the problem at home:
169was routed to heating zone69and could create a phantom zone (Climate: a temperature probe (WHERE >= 100) is routed to zone WHERE-100 and can discover a phantom zone #549 → fix(climate): a temperature probe is not zone WHERE-100 #550). It also showed that a setpoint change echoed as dimension 12 mode3left the target temperature stale (climate: trailing '3' on WHO 4 dimension 12 is read as protection/off, so _target_temperature goes stale #454 → fix(climate): a dimension 12 mode 3 of a running zone is its new setpoint (#454) #552), and that 11 zones that never answer cost about 70 s of startup polling (perf(climate): stop polling heating zones that never answer #555, test: pin the #553 debug log where the gateway NACKs the dead climate zones #557). None of these had been reported.*#5*0##with 8 zone frames. Without it, those plants would have got phantom alarm entities (test(466): add MH200N burglar alarm, diagnostic and timed turn-on trace (#466) #488 → fix(alarm): ignore phantom zone telemetry and purge orphaned partitions on MH200/MH200N (#466, #488) #490). Your F500N report fixed the tuner reports (fix(media_player): parse real OWNSoundEvent dimensions and handle malformed RDS frames #497), and your clock observation fixedmyhome.sync_timeon the MH200N (MH200N:myhome.sync_timesets date and timezone but not the time (DIMENSION 22vs0) #520 → fix(services): send DIMENSION 0 alongside DIMENSION 22 during sync_time (#520) #522).21,22, …) map to scenario objects (test(traces): ingest physical MyHomeServer1 CEN+, cover, and diagnostic golden samples (#466) #512 → feat(cenplus): support wire WHERE address resolution and KW8011 lifecycle (#466) #515). They also gave us the first WHO 1001 diagnostics in the corpus, and your "1-second delay scenario" workaround for Living Now controls.long_pressfive times (CEN / CEN+ buttons don't show up in the new automation UI #418 → fix(cen+): long_press once per hold, repeats as long_press_repeat #439).The Hardware Trace Availability Matrix now has at least one trace for 8 gateway models (F454, F461, 4890 family, MH200, MH200N, MH201, MH202, MyHomeServer1). A bug in code that a trace covers fails CI before it can reach a release. The matrix is on the docs site and in #466, and CI keeps it up to date.
Thank you, all of you. Most of this release came out of your traces. 🙏
📖 Documentation on GitHub Pages
Everything is at openwebnet-ha.github.io/MyHOME/dev:
/dev/follows the development branch and matches b14 right now;/beta/and a frozen per-beta snapshot (/2.0.0b14/) will follow shortly. The v0.9.4 docs stay at/0.9.4/.[!NOTE]and[!WARNING]now show as boxes on the site instead of as raw text.🌟 Most important new features and fixes
🔀 Multiple gateways and shared buses (#459, #525, #531)
🔊 Sound system (WHO 16) and Music Assistant
🌡️ Climate (WHO 4)
🪟 Covers
🔘 CEN / CEN+
long_pressonce; the repeats fire the newlong_press_repeattrigger (fix(cen+): long_press once per hold, repeats as long_press_repeat #439).💡 Lights
unknown_stateattribute (fix(light): keep the last state when a light reports an unknown WHAT #456, fix(light): an unknown WHAT does not keep a state restored at startup #458, fix(gateway): skip lighting scope events when is_on is None #465).🔌 Gateway and reliability
*1*0*0##) stopped the event listener and made every entity unavailable until a reload (fix(gateway): a general "all lights off" (*1*0*0##) killed the event listener — entities unavailable until reload #455).sync_timesets the clock on the MH200N (fix(services): send DIMENSION 0 alongside DIMENSION 22 during sync_time (#520) #522).🌍 Translations
🛡️ What we improved in CI
mypy --stricterrors. The gate is fixed and the errors are cleared (fix(typing): make the strict-typing gate fail, and clear the 11 errors behind it #560).from __future__stays in the right place (test(standards): enforce valid Python syntax and strict __future__ positioning #518); no raw WHERE reads outside reviewed code (refactor: one WHO 4 WHERE grammar and a CI guard against raw WHERE reads #556).__init__, cover, gateway sessions, light and the media player were split into smaller modules, so the code is easier to review and test (refactor(init): decompose __init__.py into legacy_yaml and migrate sibling modules (Milestone 1) #467, refactor(cover): encapsulate calibration hub, motion math, and isolate multi-gateway state (Milestone 2) #468, refactor: decompose init, cover, and gateway session/event runners (Milestones 1–3) #472, refactor(light): extract SoftwareFadeEngine and DaliFeatureLock subsystems (Milestone 4) #485, refactor(media_player): split the audio zone entity into layered modules #559).long_pressnow fires once per hold. If you relied on it repeating, uselong_press_repeat.offfan mode; the thermostats do not support it.🧪 How to test
Update to v2.0.0b14 via HACS (enable Show beta versions). Home Assistant 2026.3 or newer is required.
We would especially like feedback on:
And please keep the traces coming in #466. A sweep takes a minute from the bus card (Export Trace) or with
myhome.sweep_bus, and it goes straight into the test suite. The gaps still open are in the matrix. 📡Found a bug? Open an issue and link this discussion.
Thank you all for helping build the next MyHOME! 🚀
All reactions