I got a feature request via a private message related to different kind of grid tariffs compared to what is currently supported by the (very simple) tariff calculator.
At least in Norway there is this kind of tariff scheme which encourages the consumers to spread their load so that there would be less sharp peaks:
Optimizing against this objective introduces one new optimization target, but is conceptually fully doable. I’ll use our house as an example here. I know that
- base consumption is around 650 W during winter
- electric vehicle charger is 11 kW
- sauna is 11 kW
- boiler is 3 kW
- ground source heat pump is 2 kW
- Washing machine, dish washer, oven etc obviously come on top of this. I’ll discuss them later below.
This means that I can not avoid peaks which would be less than 11 650 W. So with the Norwegian grid pricing scheme our house would fall into the 10-15 kW category. But I could avoid the next categories and save up to 3960 NOK per year which is is about 580 EUR by keeping the peaks under 15 kW.
Optimizing the schedules for all of this is conceptually doable but I would like to brainstorm the logic with the community. Here are my initial thoughts.
First of all, we need to define the max concurrent load for the optimizations. Let it be 14.5 kW in this example.
We would have one timeseries Item in addition to the control points items that we currently have. Let this be called ConcurrentLoad.
The optimizer would first allocate the base load to this timeseries. Then, it would start from the biggest load, I.e. the EV charger in our case. I can use the time constraints (earliest start, latest end) which are already now present in GenericOptimizer. Let’s say that I have defined that I need 3 hours to charge the car. GenericOptimizer would find the cheapest consecutive period, let’s say it would be from 02:00 until 05:00. The ConcurrentLoad time series would now contain value 11650 for this time period and 650 for all others.
I obviously don’t control our sauna via optimizations so the next thing to optimize would be the boiler. Let’s say I need 2 hours for that. It consumes 3 kW so the optimizer would find the cheapest period which respects the max threshold 14.5 kW. Since 02:00-05:00 already has 11650W, it would not schedule the boiler to this period but to the first possible cheapest period. Let this be 00:00-02:00.
So the timeseries would now have 3650W for 00:00-02:00, 11650W for 02:00-05:00 and 650 for all other times.
It would then proceed to the optimization of the heating. It takes 2000W so that can be scheduled anywhere because the 14.5 kW threshold is not exceeded even if the heating occurs at the same time with the EV charging.
When it comes to dish washer and washing machine, the only thing to keep in mind is that they would not be ON at the same time as EV charging + ground source heat pump. I schedule them in the evening (using their built in timers) so that they run during the night and so that the washing machine stops just before I wake up. But I can easily use the time constraints of the GenericOptimizer to force the EV charging to take place for example between 22:00 and 04:00 so that 04:00-07:00 is always available for washing machine and dishwasher.
This would mean that the only remaining thing is to keep an eye for the other loads when heating the sauna (typically in the evening). In practice: don’t have the oven or dish washer ON at the same time with sauna.
Thoughts anyone?
Cheers,
Markus