zinen / node-red-contrib-nordpool-api-plus

7 stars 5 forks source link

Feature Request: add "Next Day" prices to the API response #18

Closed Nornode closed 11 months ago

Nornode commented 1 year ago

As discussed here: https://github.com/ottopaulsen/node-red-contrib-power-saver/issues/137

It would be great to also get next-day prices when available. This way we could lose reliance on a correctly configured Nordpool integration on Home Assistant.

zinen commented 1 year ago

Using 'msg.date' will get you any day you want. E.g. sending date of tomorrow and you should be happy?

Nornode commented 1 year ago

Thanks for quick answer! I would have hoped to get the next date when available (possibly through a tick box in the node settings?). Specifying which exact date is 'tomorrow' builds complexity from the perspective of the flow and bring inherent errors with it.

As said, it would be great to remove the dependency from Homeassistant for this pricing data.

zinen commented 1 year ago

I see your point regarding complexity of next day. 32b3a1f should fix this. A new release v4.4.0 is published now.

However to do a continues lookup to see when new prices is available I would require a centralized server or doing a lot of request against nordpool data archive - neither is something I wanna do. I suggest making an inject node running each day at 15:00 o'clock (central European time) to prices for next day. This should work 99% of the days of the year. I notice here my experience with nordpool data outage of some sort meaning this approach would fail some days each year.

Special see the new action on input field in screenshot to reduce complexity.

example

jtagcat commented 1 year ago

Could we do 'all available' (today + if possible tomorrow)? I agree the scheduling should be left up to the user.

Right now I have to get today's date, change it to CET, then copy it over to date2 and add one. Afterwards I request two dates, and join with timeout (since when tommorow fails, it doesn't return 0 objects, but fails completely) + then merge the joined values with a conditional whether the 2nd value exists. (massive timesink, the following is for future:) Then I convert the values to my timezone from the original timestamp, and remove all values before now. At this point I can actually use the data.

zinen commented 12 months ago

Fixed in version 4.5.0