beyarkay / eskom-calendar

Get your loadshedding schedule in your calendar and never be left in the dark! Open-source, up-to-date, and developer friendly.
https://eskomcalendar.co.za
GNU General Public License v3.0
190 stars 35 forks source link

Remove loadshedding slots that are <30m long #407

Closed beyarkay closed 1 year ago

beyarkay commented 1 year ago

Usually eskom won't bother to load shed slots that are <30m long, although I haven't been able to find anything official that declares this policy.

Nonetheless, those 30m slots should probably be removed.

stevebissett commented 1 year ago

I saw an article from CoCT that discussed the last 30m of any scheduled slot as a period of restoring power to the grid.

In the case where load is high, whole areas may not be able to be switched on at the same time (i.e. winter peaks). This gives each area a 30 minute switch on period. I have failed to find the article again - but will drop it here.

Thanks for the consideration.

beyarkay commented 1 year ago

This should be fixed by dee85a9, We'll see if the build goes through correctly.

beyarkay commented 1 year ago

Note that this will not remove the 30 minute events from the CSV file.

I'm working on a full API which should make this sort of thing a lot cleaner, but basically the CSV file is treated as the unfiltered source of truth, and the ICS files are treated as the end-user, prettier, friendlier version. I don't think it's a good idea to remove information from the CSV.

When the API is set up, I'll probably be able to include a flag that can be set to toggle this sort of thing, so you can choose how much pre-processing you want us to do for you. But until then, I'm going to put all the raw data I can in the CSV file.

Note that there was a funky edge case, where stage X starts for 30 minutes, then stage Y starts immediately afterwards for >30minutes. The code will correctly not remove that initial 30 minute slot, since in reality this is >30m of loadshedding.

beyarkay commented 1 year ago

All looks good! (Note that the website uses the CSV file behind the scenes for legacy reasons. I've got an issue open to fix this.)