The OVO portal does have a publicly available RESTful API, but because the UI makes heavy use of Javascript (JS ) scripts to do the webpage renders and these make JSON callback to the OVO server, so it is quite simple to use your favourite scripting language to automata downloading data and aggregating it into a database or equivalent.
I have written down-loaders for Python, and NodeRED (based on node.js) but I currently only maintain the latter. In essence your script will need to
As I have discussed on earlier podcasts and various topics, I have a Willis-based configuration for heating our low energy house, and control is implemented with a dedicated Raspberry Pi using a custom NodeRED application for our underfloor heating and SunAMP-based hot water. This system logs a lot of instrumentation temperatures every half hour and also any significant events such as turning on and off pumps and the heater.
Our electricity supplier has been OVO for the last 4 years