Skip to content

v2.0.0b16

Pre-release
Pre-release

Choose a tag to compare

@GreenGrassBlueOcean GreenGrassBlueOcean released this 21 Oct 19:14
8bdbabc

🚀 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: 100 is 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##, and 0 is 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 / 100 sends 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 for open / closed see 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 with myhome.set_cover_travel_time; 0 turns 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: 40 sends the level frame).
  • Timed runs end at the actuator's stop status. When the gateway relays *2*0*WHERE## after a stop, the position and last_run_seconds are 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_time refuses 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: true on 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 remove advanced: true (#761, #762).

Other changes

  • Expose Home Assistant to the bus: a declarative expose engine 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_action derived 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 the native_* 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_addresses can 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 --strict checked 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