🧪 Beta 2
Diagnostics exports could be stale without showing it. Raw payloads were only recorded when the integration polled — but every push resets the poll timer, so an actively pushing device was never polled and its payloads froze at the last poll, while all entities stayed perfectly current. Exports now record from both paths, and every payload carries captured_at and source (poll/push), with generated_at on the export itself.
Fenix schedules are now readable. state["timer"] is parsed and the existing Device schedule sensor works on both controllers. Read-only on Fenix for now. Bonus: the panel derives the start time from the ready time, so the gap is its own heat-up estimate — exposed as heat_up_min, useful because Fenix reports heat_up_time: 0.
The schedule arm switch remains Xenio-only — Fenix has no enable flag.
Thanks @fasdav for catching the frozen exports across four captures, and for retracting the conclusion it had suggested rather than letting it stand.