Safer collection updates
- Preserve the last valid calendar when a refresh fails, including when malformed data appears after valid collection entries.
- Build replacement calendars before publishing them and serialize overlapping refreshes.
- Standardize success/failure reporting across collectors.
- Accept confirmed empty calendars while retaining existing dates for ambiguous empty responses from DeAfvalApp, Opzet, and Frisse Kliko.
Clearer stale-data reporting
- Add sensor attributes:
Last_update_success,Last_successful_update, andData_stale. - Continue showing matching cached collection dates after a failed refresh.
- Show
unknowninstead of “none” on today, tomorrow, and upcoming sensors when refresh health is stale and no matching cached date exists. - Keep past collection dates excluded from upcoming results.
Refresh-health timestamps reset when the integration restarts. Data_stale indicates refresh health, not an age-based expiry.
Full changelog: v6.5.37...v6.5.38