Skip to content

Back off exponentially on repeated CheckWatt rate limits - #98

Open
SmilingSweetSwede wants to merge 1 commit into
faanskit:masterfrom
SmilingSweetSwede:fix/429-backoff
Open

SmilingSweetSwede wants to merge 1 commit into
faanskit:masterfrom
SmilingSweetSwede:fix/429-backoff

Conversation

@SmilingSweetSwede

Copy link
Copy Markdown

Since 0.3.0 the coordinator honours Retry-After, but when CheckWatt answers 429 without it the library default of one minute keeps us polling at full speed. This doubles the wait for every consecutive 429, up to 30 minutes, and starts over after a successful update. Refs #92 , #93

Tested with the suite in tests/ on HA 2025.12.0. I don't have a CheckWatt account, so I can't verify against the real API.

pyCheckwatt 0.3.0 passes CheckWatt's Retry-After through to Home Assistant,
but when the header is missing the library default of one minute means the
coordinator keeps polling at full speed while still being throttled.

Double the wait for every consecutive 429 (1, 2, 4 ... 30 minutes), never
shorter than what CheckWatt itself asks for, and start over after the next
successful update.

Refs faanskit#92, faanskit#93
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant