Tags: blacktop/clim8
Tags
chore: Add HTTP/2 workaround and improve API reliability Disable HTTP/2 to prevent connection hangs, reduce default timeout to 30s, and add periodic device cache refresh. Implement rollback on SetTemperature failures and verify temperature changes. Extract ParseTemperature for reuse and add token invalidation on 401 responses with automatic re-authentication.
chore: Add retry logic with exponential backoff to HTTP requests Implements exponential backoff with jitter for transient failures like network errors, rate limits (429), and server errors (5xx). Client errors (4xx except 429) are treated as permanent and fail immediately without retry. Configurable retry attempts (5) and intervals (500ms to 30s).
Reuse Eight Sleep client across daemon lifetime Previously a new client was created and started for each action execution and state sync check. This was inefficient and could cause connection issues. Now a single client is created at daemon startup and reused for all operations throughout its lifetime.
Fix overnight schedule handling and export temp conversion - Check yesterday's schedule to handle overnight schedules correctly - Export TempToHeatingLevel function and remove duplicate code - Replace abs() helper with inline calculation - Improve documentation for overnight schedule logic
Add configurable sync interval for device state checks feat: new --sync-interval flag to control how often the daemon checks and syncs device state, reducing unnecessary API calls. The sync now runs on a separate ticker, and the default interval is set to 5 minutes. Also removes redundant state sync from the main schedule processing loop.
PreviousNext