Replies: 4 comments 3 replies
-
Do you pass the current_state(s) for the deferrable load(s) to mpc? It is the way to tell mpc the current deferrable load is active and in my exprience should stop the postponing you see. Other than that, are you are sure you start and end_time to step translations is correct? I mean, you are sure your runtime parameters are correct is a way that start_timesteps_of_each_deferrable_load will be zero for your deferrable load when you are in the defined timerange 20-6 and it doesn't shift to 20:00 the next day. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Full template:
|
Beta Was this translation helpful? Give feedback.
-
Hi, thank you for this. I added def_current_state as run time now. However I can't see how this will prevent the shifting of the deferrable? I am going to try it and see if the postponing stops. Another question: how do you cope with 'operating_hours_of_each_deferrable_load', I generated some yaml which counts down to zero as time progresses, otherwise if operating_hours_of_each_deferrable_load remains a constant I get ' Infeasible ' outcome. |
Beta Was this translation helpful? Give feedback.
-
Hi All,
I am working on a kind of flexible deferrable load programming. What I want to do is define a deferrable load window say between 20:00 - 06:00 (the next day) runtime 6h and load of 2150 W. I have made a gui in HA for that with on/off boolean. So the moment I switch on this window, EMHASS will calculate in that time window the optimal 6h for the deferrable to operate, I use MPC. I have the start time (20:00) in timesteps and the end time in timesteps (06:00), there is a battery in the PV system.
What I do now is the following:
When enough data are available I run a day-ahead and store the data with dh_ prefix, that happens when I switch on the deferrable0 load (there is an automation made for it). I take the dh_p_deferrable0 array and look up the timeslot where the deferrable goes from 0 to a positive value, that's my real start time of the deferrable0, then I look up the timeslot where the deferrable0 goes from positive to 0, that's my real end time. Those two timeslots I store in 2 helpers: input_text.deferrable0_start_time and input_text.deferrable0_end_time, so the are fixed. Then MPC takes over with input_text.deferrable0_start_time and input_text.deferrable0_end_time as runtime for the timesteps, I don't want to change those values anymore. I run MPC every five minutes an store those data as wel with mpc_ prefix.
I see the following when running MPC: deferrable load keeps on shifting forward during the rolling window which I have. So start and end time shift also and my decreasing deferrable0 hour sensor will not start to decrease. That's the reason I use the start and end time from the day_ahead optimization which is run once. I now run it manually again to synchronize the day_ahead and mpc deferrable0 hours. I hope there is an easier way to accomplish my goals. I can share yaml when needed. Or is the shifting deferrable0 hours a bug in MPC? I can't tell. Any help is appreciated here.
Beta Was this translation helpful? Give feedback.
All reactions