v0.2.0
New Features
- Force-update mechanism for external dead-man-switch support (#53) — Tracks last force-update timestamp at coordinator level to ensure commands are sent to boiler and zone entities at least once per observation cycle. This prevents external dead-man-switches (e.g. Tasmota PulseTime) from reverting entity states due to inactivity.
- Watch controller entities for external state changes (#55) — Subscribes to state change events for all configured controller-level entities (heat request, summer mode, DHW active, circulation) and zone valve switches. Tracks expected states to distinguish self-initiated service calls from external changes, triggering a coordinator refresh on manual overrides for faster reaction. Listeners are re-setup on config reload to pick up entity changes.
- Valve unavailability as degraded/fail-safe trigger (#57) — Valve entity unavailable/unknown state now triggers zone degraded mode (and eventually fail-safe), matching the existing temperature sensor behavior. Also adds a warning log when the temperature entity is not found.
Bug Fixes
- Fix observation period alignment to respect configured value (#54) — The previous implementation used integer division to truncate observation periods to whole hours (e.g. 2.5h became 2h). Now uses seconds-based alignment from midnight, allowing any duration supported by the UI (10-minute granularity). Periods that don't divide evenly into 24 hours will have a truncated final period at midnight.
Improvements
- Shorter initializing timeout for faster fail-safe reporting (#58) — Zones stuck in INITIALIZING (e.g. misconfigured valve entities) now enter FAIL_SAFE after 2 minutes instead of waiting the full 1-hour timeout. The timeout selection lives in
update_failure_state()which returns aFailureStateResultbundling the transition and timeout used, so the coordinator logs the correct value without duplicating logic.
Breaking Changes
- Remove circulation pump sensor configuration (#59) — The
circulation_entityconfiguration option has been removed. This entity was previously used as an informational sensor to indicate when the boiler's circulation pump was running, but was never actively used in the controller logic. Existing configurations referencing this entity will need to be updated. Affected areas: config flow, controller config, coordinator listeners, and translations.
Documentation
- Tasmota relay configuration guide (#56) — New
docs/tasmota.mddocumenting how to configure Tasmota-flashed relay boards as UFH zone valve switches, covering relay naming, PulseTime dead-man-switch safety, and periodic MQTT status reporting rules.
Full Changelog: v0.1.1...v0.2.0