Highlights
- New
buttonplatform for write-only commands like start/stop/pause, with per-button availability gating on status properties. - Fixes a regression from 0.36 where properties with
unavailable: <value>could disappear at integration startup; entities now exist and toggle between available and unavailable as the underlying value changes (e.g. program-gated controls appear automatically once a program is selected — no integration reload needed). - Cloud rejections from any write path now surface as clean Home Assistant notifications instead of raw tracebacks in the log.
Bug fixes
- Restore entities that v0.36.0 inadvertently hid: properties with
unavailable: <value>are no longer skipped at startup. They are always created and reportavailable = Falsewhen the current value matches the sentinel, then flip to available automatically on the next poll once the value changes. #530 - Wrap cloud-side rejections from
select.async_select_option,switch.async_turn_on/async_turn_offinServiceValidationErrorso users see a clean notification instead of aLifeConnectErrortraceback throughentity_service_call. #531 - Extend the same error wrapping to every entity-level write path (including the new
buttonplatform) by centralizing it inConnectLifeEntity.async_update_device, and to the bypass services (connectlife.set_action,connectlife.update) which call the coordinator directly. #532
General improvements
- Add a
buttonplatform for write-only commands. Data dictionaries can declare top-levelbuttons:entries that map a key to awritepayload; buttons can be gated viaavailable_whenagainst a read-only status property (e.g. enable start/stop only when remote control is allowed), and feature overrides candisableinherited buttons on variants that don't support them. #527
Full Changelog: v0.36.0...v0.37.0