Features
Completes the request-budget work started in v2026.9.12 for large installs (thanks @BrawnyBravo, #205 and #206):
- Local reads replace cloud reads: a device with a LAN or MQTT reading applied within the last 1.5 poll intervals skips that cycle's cloud request (at most five in a row, then one is forced). Only readings actually applied to state count — a command sent, a write-only LAN send or a discarded LAN readback do not.
- Idle cadence: on an install whose full cadence would overspend the daily budget, devices that have been off and unchanged for 30 minutes are polled one cycle in four. A command puts a device back on the normal cadence for five minutes. Installs under budget are unaffected.
- Rate-limit header back-off: the poll waits for Govee's reported reset instead of spending the requests that would earn a 429. It never defers two cycles in a row on the same reading.
Fixes made on review
- A cycle where every device was covered or deferred returned early and skipped MQTT health, LAN rescan/reads and pacing; it now runs them.
- Skip and idle counters start at per-device offsets so cloud reads are spread across cycles rather than arriving in one burst.