Repository navigation
v2.0.0b16
Pre-release
Pre-release
🚀 Pre-Release: v2.0.0b16 (Field-Testing Beta)
83 pull requests since b15, on OWNd 2.0.0b11. Requires Home Assistant 2026.3 or newer.
⚠️ Behaviour changes: covers (WHO 2), #466 / #702
- Advanced covers:
set_cover_position: 100is now a plain UP. It sends the same frame as the open button (*2*1*WHERE##) instead of the level command*#2*WHERE*#11#001*100##, and0is a plain DOWN. Both are full runs to the limit switch, also when the actuator already reports that end. Not yet verified on an F454 / MH201. - Timed covers:
set_cover_position: 0/100sends no stop frame and settles on a timer. The motor stops on its limit switch. The entity reports 0 % / 100 % once the stored travel time plus 2 s has passed, instead of waiting for the actuator's own stop status (about 60 s late on a MyHOMEServer1, never on a gateway that does not relay it). Automations waiting foropen/closedsee the change at that point, which can be a few seconds before a slow curtain physically arrives. The open and close buttons are unchanged. - Small moves are widened or stretched, so they are no longer exact. A timed cover runs at least its
min_motor_pulse(default 0.4 s, set per cover in YAML or withmyhome.set_cover_travel_time;0turns it off), and the estimate books that longer run (50 % → 51 % on a 5 s cover ends at 58 % with the default). An advanced cover is sent at least a 2 % level change (50 % → 51 % is sent as 52 %). A move whose run reaches an end becomes a full run to that end. Sending the cover to 0 % or 100 % re-syncs it (#708). - No widening while an advanced cover is moving. While the actuator runs it reports the level it started from, so a retarget goes out as asked (40 → 80, then
set_cover_position: 40sends the level frame). - Timed runs end at the actuator's stop status. When the gateway relays
*2*0*WHERE##after a stop, the position andlast_run_secondsare taken from that status instead of the moment the stop was written, which was about 0.5 s short per run on a MyHOMEServer1 (#707). A keypad run that lasts the full travel time is now reported as reaching the end (#760).
See the cover docs for the details and the known limits.
⚠️ Other behaviour changes
myhome.sync_timerefuses time zones with a half-hour offset (e.g.Asia/Kolkata, UTC+5:30) with a translated error. The WHO 13 time-zone field carries whole hours only; b15 (on OWNd 2.0.0b10) set the gateway clock with a truncated offset without saying so (#764).advanced: trueon a standard F411 shutter now logs a startup warning. Those actuators have no position reporting, so the position stayed at 50 % and calibration was refused; the error now says to removeadvanced: true(#761, #762).
Other changes
- Expose Home Assistant to the bus: a declarative
exposeengine projects HA entities and the clock onto free SCS addresses: virtual WHO 1 / WHO 2 actuators that a wall control can drive (mirroring HA state back to its LEDs), WHO 4 virtual temperature probes, WHO 18 virtual energy meters and the WHO 13 bus clock. Custom actions run as Home Assistant scripts (#750). - Covers: Venetian blind slat tilt as timed slat pulses (
slat_tilt,slat_time) (#508); impulse garage and gate covers on WHO 1 relays with optional safety approval, door-entry strike locks and doorbell events (#667); native broadcast for general covers behind an interface (#679); a cover stop overtakes other queued frames (#694); cover kinematics split into pluggable strategies (#739). - Lighting: 2-digit Area 0 point addresses
01–09(#713); ON dimmers on a fresh install are probed for brightness support (#742); timed turn-on uses the OWNd builders (#659); lights the startup sweep already reported are not polled again (#701); area and group re-syncs only skip once every member has echoed, counting only the members' own echoes in the commanded state (#740, #749). - Thermoregulation (WHO 4): season frames, a generic setpoint mode and the central unit's season (#657, #725); holiday and vacation program attributes (#689); zone humidity remembered and queried at startup (#712); F461 zones polled, AUTO on standalone zones, fan coils per season, season kept across restarts (#714, #715);
hvac_actionderived from the season when the actuator carries no heating flag (#721); standalone default follows the plant (#698); 10 s command timeouts on the F455 removed (#675); migrated to thenative_*temperature API (#665). - Sound system: tuner frequency, preset and RDS read from WHO 22, with optional per-frequency pictures (#695); sound source commands and wall transport steps (#651); amplifiers no longer woken by volume status reports (#670); one decision engine for the power state (#683); an idle decoder can be claimed from a parked group (#723).
- Scenarios: WHO 25 Scenario Plus commands and events (#671); WHO 17 scene events (#656).
- Gateways: H4684 / LGRH4684 and MH201 identification (#652, #722); kernel and distribution in the diagnostic sweep (#711); user commands go ahead of status polls (#685); one frame scheduler with per-target ordering (#738); the HA web session is used for discovery (#757).
- Setup and migration: device settings that only exist in
myhome.yaml(travel times, feature flags) are copied into the config entry, so they survive if the file is removed; while the file exists it stays in charge (#742). Blank-start discovery skips phantom entities (#686).ignored_addressescan be cleared in the options (#666). Restored sensors keep their entity IDs (#678), and legacy entity names survive the Home Assistant 2026.11 registry migration (#727). Brand icons are bundled for Home Assistant 2026.3+ and HACS (#741). - Energy (WHO 18): active power queries and the Dimension 1200 stream lifecycle aligned (#661).
- Robustness: stricter checks on infeasible service input, WebSocket frames and volume bounds (#747); no private OWNd access or runtime shims left (#737, #745);
mypy --strictchecked against the pinned OWNd 2.0.0b11 (#765). - Tests and CI: live traces from F461, F454, F455, F453AV, MH200, MH200N, MH202 and MyHomeServer1 plants are replayed in CI, and gateway profiles are checked against the firmware oracle (#720, #743, #745, #766). Home Assistant deprecations fail CI (#728, #729). 4,393 tests passing at 100 % statement coverage.
Docs: https://openwebnet-ha.github.io/MyHOME/beta/
Feedback and logs: https://github.com/orgs/OpenWebNet-HA/discussions/770