Yea, none of the companies I have worked for would have gone for anything like that due to the tight coupling between their code and algorithms. The thing is, the algorithms to optimize these things don't have to be that complex, a simple solution with if/else statements would get you a TON of energy savings and optimization of time of use.
I do plan on writing this software, but I am not sure when. I've been considering taking a year or so off (if I can save enough, or perhaps if my company dissolves or I am fired) to write a framework that you could add drivers for hardware to and add your own algorithms to. Basically, it's just a simple loop of "read telemetry from devices -> save telemetry to local database -> data processing steps (ELT/ETL stuff) -> optimize the use of these devices for some metric (energy use, peak power use, comfort, etc.) -> store results -> send new commands/parameters to the devices -> sleep(interval)" and then adding hardware device interface drivers and algorithms in there.
Edit: If you need to aggregate devices it's a bit harder, but I think it could be doable with distributed algorithms or with open-source interfaces between the utilities and individual customers. I am not sure of how that looks right now, but I prefer a world where millions of individuals run their grids the way they want (within safety regulations) and then they can sell their excess power to the grid via a standard protocol. Right now we're doing a lot of vacuuming of data that isn't necessary, since the data can easily be stored locally for these applications, with a distributed protocol. I actually think this is an application that could use blockchain in a neat way, but I would prefer to avoid that, if possible, due to the implications.
I do plan on writing this software, but I am not sure when. I've been considering taking a year or so off (if I can save enough, or perhaps if my company dissolves or I am fired) to write a framework that you could add drivers for hardware to and add your own algorithms to. Basically, it's just a simple loop of "read telemetry from devices -> save telemetry to local database -> data processing steps (ELT/ETL stuff) -> optimize the use of these devices for some metric (energy use, peak power use, comfort, etc.) -> store results -> send new commands/parameters to the devices -> sleep(interval)" and then adding hardware device interface drivers and algorithms in there.
Edit: If you need to aggregate devices it's a bit harder, but I think it could be doable with distributed algorithms or with open-source interfaces between the utilities and individual customers. I am not sure of how that looks right now, but I prefer a world where millions of individuals run their grids the way they want (within safety regulations) and then they can sell their excess power to the grid via a standard protocol. Right now we're doing a lot of vacuuming of data that isn't necessary, since the data can easily be stored locally for these applications, with a distributed protocol. I actually think this is an application that could use blockchain in a neat way, but I would prefer to avoid that, if possible, due to the implications.