ottopaulsen / node-red-contrib-power-saver

A Node-RED node to saver money by turning off when the power is most expensive
Other
71 stars 17 forks source link

[Request for new funtionality] Lowest price node. #35

Open SuperBigB opened 2 years ago

SuperBigB commented 2 years ago

I often see a price drop after midnight, and I can see some savings if I could schedule for 34 hours instead of 24.

Instead of planning to use the cheapest 12H in a 24H period, i could use the cheapest 17H over a 34H period. This could potencially save us a few NOK.

ottopaulsen commented 2 years ago

Thank you for the change suggestion. I am not going to make this change now, but will keep it as an idea.

Strixx76 commented 1 year ago

I would also like the option to look 36 hours a head. And that a new schedule was calculated as soon as the prices for next day arrives. This would save a lot for exampel when you automate chargeing EV.

ottopaulsen commented 1 year ago

Just a few thoughts:

I could make it possible to set more than 24 hours, for example 36. Then add an option to make a plan using all available prices if less than the configured number of hours are available. Make sure it is using the already saved plan unless the config is changed or more prices are received.

This could make it work also work in corner cases like when you start the system when only 24 hours of prices are available, or when you do not get new prices and so on.

However, what hours should the plan be calculated for? Let's say you want 1 hour on during 34 hours, starting at 14:00, and you get a plan where this hour is the very first hour. The next day, when new prices arrive, the cheapest hour is the last one. Then, if you stick with the 36 hour period you used first, you would get 33 + 23 hours off in a row. That is probably not what you want.

Another example (same config): Let's say you start the system at 10:00 and only have prices for the current day. Let's say the best hour is the last. Then when new prices arrive, the next hour is even cheaper. What shall be done then? Move the hour on in the new plan? Or if the cheapest hour was the first, and already passed, it cannot be moved.

There are some challenges to the logic around corner cases here that must be solved before this can be implemented in the Lowest Price node.

Maybe what you need is a completely new strategy? A strategy where we keep track of the last hours that were on, and make sure that in any period of x hours there is at least y hours on, and that it makes a plan ensuring this for any future period we have prices for, taking passed hours in consideration.

Strixx76 commented 1 year ago

Haven't given it so much thought but I can see the problems now how to implement it.

Maybe it would be better to implement a new strategy for very flexible consumers. As I wrote I need it for charging my EV. I normally need to charge it about 5 hours a week so it wouldn't be a problem if the on period keeps getting pushed forward every time we receive next days prices.

I guess it would be best if no schedule was calculated unless there is more than 24 hours of data. That means that the schedule is only recalculated every day when the next days prices arrives. If we would be in a period of lowest price at that according to previous schedule the node should send an message on the off output. When a new schedule is calculated it should discard how many hours it has been on before the recalculation, and always look for the amount of hours ahead the user wants.

marhoy commented 1 year ago

As I wrote I need it for charging my EV. I normally need to charge it about 5 hours a week so it wouldn't be a problem if the on period keeps getting pushed forward every time we receive next days prices.

But future prices is only available for the next 11-35 hours. So it's by definition impossible to find the cheapest 5-hour period during a week (from Monday to Sunday). You will end up postponing the charge, hoping that a cheaper prices will arrive. And when Sunday is approaching and you're forced to charge those 5 hours, you realize that the cheapest 5 hours was on Wednesday, but then it's too late...

Strixx76 commented 1 year ago

But future prices is only available for the next 11-35 hours.

My suggestion was: I would also like the option to look 36 hours a head.

So it's by definition impossible to find the cheapest 5-hour period during a week (from Monday to Sunday)

I don't want to find the cheapest 5-hour period during a week, I want to find the cheapest 5-hour period of all priced hours all the time, with the possibility to reschedule if there is a cheaper period the next day.

You will end up postponing the charge, hoping that a cheaper prices will arrive.

No. I will end up postponing until the price is the cheapest. When ever the price goes up there will be no reschedule. I might postponing the charging for more than a week, if the prices is getting lower an lower every day. And that would be perfectly fine. If I urgently need to charge my EV due to very low batt I can do that with a manual override.

ottopaulsen commented 10 months ago

Same suggestion in #181