timmo001 / ovoenergy

Get energy data from OVO's API.
https://timmo.dev
Apache License 2.0
30 stars 16 forks source link

Polling rate is far too aggressive - risks getting blocked & is pointless anyway #21

Closed TotallyInformation closed 3 years ago

TotallyInformation commented 3 years ago

Description

The code makes too many requests to the API. It appears to poll the API every few minutes? However, I'm told by Ovo that the smart meters only send updates to Ovo once every 24 hours, just after midnight. So there is no point in polling so aggressively, you will not get different data.

Further, this is tempting Ovo to add mitigations to block access completely because uses of this code are hammering their servers.

Please change the poling rate accordingly.

Just to reiterate, the smart meters capture data every 30 minutes but they only upload to the servers once per day just after midnight.

Obviously, it would also not be a good thing for this code to have a fixed polling time (1am for example), since that would also put a horrible strain on the API servers at that time. It needs to be at least randomised over lets say an hour's slot (maybe 5-6am to miss any processing that Ovo need to do).

You need to bear in mind that you are effectively abusing an API that was designed by Ovo for their own internal use.

timmo001 commented 3 years ago

You'll want to raise this on the https://github.com/home-assistant/core project as this is where the polling is set. The polling interval can be changed in the __init__.py file there.

30 minutes seems to be a good interval. Of course, this is only the same request that a user would do on OVO's portal