hjdhjd / homebridge-myq

:car: myQ Liftmaster and Chamberlain Plugin for Homebridge https://github.com/nfarina/homebridge
Other
568 stars 43 forks source link

Feature Request: Exponentially Backoff requests after receiving Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. #1125

Closed bamodio closed 9 months ago

bamodio commented 9 months ago

Is your feature request related to a problem? Please describe: Looks like myQ wants to throttle, which is reasonable. HOwever, we keep on making requests every 3 seconds for 90 minutes. That's 1800 dead requests, network traffic, and love that myQ won't give us back. ;)

Describe the solution you'd like: Could we do an exponential backoff retry strategy for requests, e.g. after 3s, 10s, 30s, 90s, 150s, 300s up to that max?

Describe alternatives you've considered: Ignore it and let traffic be. Disable plugin temporarily (although that deletes myQ devices from homebridge)

Additional context: Related to #1121 and #1119

Examples of continuous network requests and errors, every 3 seconds.

[10/15/2023, 6:46:30 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:33 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:36 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:39 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:42 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:45 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:48 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:51 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:54 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:46:57 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:47:00 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity. [10/15/2023, 6:47:03 PM] [myQ] myQ API error: Temporary myQ API server-side issues encountered: 429 - Too Many Requests. This typically indicates a myQ API lockout for a 60-90 minute period before resuming API connectivity.

bamodio commented 9 months ago

Related to #1121 and #1119

hjdhjd commented 9 months ago

While I appreciate the earnestness, you proceed from a false presumption that the error is what it says it is. 😄 This error is part of a new wave of pedantic behavior by the MyQ API, when you don't speak to it just so. It is not in fact us spamming the API. I've been maintaining this API a very long time, and I'm all too aware of its limitations, challenges, quirks, and yuckiness.

This isn't a backoff problem. Spend some time here for some history and context: https://github.com/hjdhjd/myq/blob/99e39834767eff53c933bfdd19b4c31af4714de7/src/myq-api.ts#L15

Thanks for the request - won't be implementing this, as there's nothing to implement here. 😄

Edited for additional commentary: https://github.com/hjdhjd/homebridge-myq/issues/1126#issuecomment-1763476073

ghost commented 9 months ago

Came here looking for this. Guess I’ll leave as is for now and let the 429s pile up.

SpencerKaiser commented 9 months ago

As I commented in the other thread, I had to deactivate the plugin overnight to resolve 🤔