node-red-contrib-power-saver 3.0.4 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/docs/.vuepress/config.js +1 -1
  2. package/docs/.vuepress/dist/404.html +4 -4
  3. package/docs/.vuepress/dist/assets/js/{app.6191e356.js → app.8ccc81e3.js} +1 -1
  4. package/docs/.vuepress/dist/assets/js/runtime~app.7653fe7e.js +1 -0
  5. package/docs/.vuepress/dist/assets/js/v-510ed0d4.e5215a83.js +1 -0
  6. package/docs/.vuepress/dist/changelog/index.html +4 -4
  7. package/docs/.vuepress/dist/contribute/index.html +3 -3
  8. package/docs/.vuepress/dist/examples/example-nordpool-current-state.html +3 -3
  9. package/docs/.vuepress/dist/examples/example-nordpool-events-state.html +3 -3
  10. package/docs/.vuepress/dist/examples/example-tibber-mqtt.html +3 -3
  11. package/docs/.vuepress/dist/examples/index.html +3 -3
  12. package/docs/.vuepress/dist/guide/index.html +3 -3
  13. package/docs/.vuepress/dist/index.html +3 -3
  14. package/docs/.vuepress/dist/nodes/index.html +3 -3
  15. package/docs/.vuepress/dist/nodes/old-power-saver-doc.html +3 -3
  16. package/docs/.vuepress/dist/nodes/power-saver.html +3 -3
  17. package/docs/.vuepress/dist/nodes/ps-elvia-add-tariff.html +3 -3
  18. package/docs/.vuepress/dist/nodes/ps-receive-price.html +3 -3
  19. package/docs/.vuepress/dist/nodes/ps-strategy-best-save.html +3 -3
  20. package/docs/.vuepress/dist/nodes/ps-strategy-lowest-price.html +3 -3
  21. package/docs/.vuepress/dist/nodes/strategy-input.html +3 -3
  22. package/docs/changelog/README.md +17 -0
  23. package/package.json +3 -3
  24. package/src/handle-input.js +1 -7
  25. package/src/power-saver.js +1 -5
  26. package/src/receive-price-functions.js +2 -18
  27. package/src/strategy-lowest-price.js +2 -1
  28. package/src/utils.js +6 -0
  29. package/test/data/lowest-price-input-missing-end.json +197 -0
  30. package/test/data/lowest-price-result-missing-end.json +319 -0
  31. package/test/data/nordpool-events-state-2.json +288 -0
  32. package/test/receive-price.test.js +5 -4
  33. package/test/strategy-lowest-price.test.js +33 -0
  34. package/docs/.vuepress/dist/assets/js/runtime~app.62fa6694.js +0 -1
  35. package/docs/.vuepress/dist/assets/js/v-510ed0d4.481e9be8.js +0 -1
@@ -0,0 +1,288 @@
1
+ {
2
+ "_msgid": "584656e8b6b08fc4",
3
+ "payload": "1.523",
4
+ "topic": "",
5
+ "data": {
6
+ "entity_id": "sensor.nordpool_kwh_krsand",
7
+ "state": "1.523",
8
+ "attributes": {
9
+ "current_price": 1.523,
10
+ "average": 2.602,
11
+ "off peak 1": 1.768,
12
+ "off peak 2": 1.633,
13
+ "peak": 3.977,
14
+ "min": 1.523,
15
+ "max": 4.582,
16
+ "unit": "kWh",
17
+ "currency": "NOK",
18
+ "country": "Norway",
19
+ "region": "Kr.sand",
20
+ "low price": true,
21
+ "tomorrow_valid": true,
22
+ "today": [
23
+ 1.633, 1.584, 1.581, 1.583, 1.596, 1.661, 1.746, 2.763, 3.803, 3.921, 3.551, 4.172, 3.683, 3.742, 3.847, 4.315,
24
+ 4.582, 2.202, 2.153, 1.803, 1.722, 1.716, 1.569, 1.523
25
+ ],
26
+ "tomorrow": [
27
+ 1.588, 1.521, 1.492, 1.487, 1.497, 1.514, 1.583, 1.667, 1.729, 1.724, 1.707, 1.703, 1.692, 1.692, 1.692, 1.717,
28
+ 1.72, 1.718, 1.679, 1.661, 1.629, 1.652, 1.612, 1.587
29
+ ],
30
+ "raw_today": [
31
+ {
32
+ "start": "2021-12-14T00:00:00+01:00",
33
+ "end": "2021-12-14T01:00:00+01:00",
34
+ "value": 1.633
35
+ },
36
+ {
37
+ "start": "2021-12-14T01:00:00+01:00",
38
+ "end": "2021-12-14T02:00:00+01:00",
39
+ "value": 1.584
40
+ },
41
+ {
42
+ "start": "2021-12-14T02:00:00+01:00",
43
+ "end": "2021-12-14T03:00:00+01:00",
44
+ "value": 1.581
45
+ },
46
+ {
47
+ "start": "2021-12-14T03:00:00+01:00",
48
+ "end": "2021-12-14T04:00:00+01:00",
49
+ "value": 1.583
50
+ },
51
+ {
52
+ "start": "2021-12-14T04:00:00+01:00",
53
+ "end": "2021-12-14T05:00:00+01:00",
54
+ "value": 1.596
55
+ },
56
+ {
57
+ "start": "2021-12-14T05:00:00+01:00",
58
+ "end": "2021-12-14T06:00:00+01:00",
59
+ "value": 1.661
60
+ },
61
+ {
62
+ "start": "2021-12-14T06:00:00+01:00",
63
+ "end": "2021-12-14T07:00:00+01:00",
64
+ "value": 1.746
65
+ },
66
+ {
67
+ "start": "2021-12-14T07:00:00+01:00",
68
+ "end": "2021-12-14T08:00:00+01:00",
69
+ "value": 2.763
70
+ },
71
+ {
72
+ "start": "2021-12-14T08:00:00+01:00",
73
+ "end": "2021-12-14T09:00:00+01:00",
74
+ "value": 3.803
75
+ },
76
+ {
77
+ "start": "2021-12-14T09:00:00+01:00",
78
+ "end": "2021-12-14T10:00:00+01:00",
79
+ "value": 3.921
80
+ },
81
+ {
82
+ "start": "2021-12-14T10:00:00+01:00",
83
+ "end": "2021-12-14T11:00:00+01:00",
84
+ "value": 3.551
85
+ },
86
+ {
87
+ "start": "2021-12-14T11:00:00+01:00",
88
+ "end": "2021-12-14T12:00:00+01:00",
89
+ "value": 4.172
90
+ },
91
+ {
92
+ "start": "2021-12-14T12:00:00+01:00",
93
+ "end": "2021-12-14T13:00:00+01:00",
94
+ "value": 3.683
95
+ },
96
+ {
97
+ "start": "2021-12-14T13:00:00+01:00",
98
+ "end": "2021-12-14T14:00:00+01:00",
99
+ "value": 3.742
100
+ },
101
+ {
102
+ "start": "2021-12-14T14:00:00+01:00",
103
+ "end": "2021-12-14T15:00:00+01:00",
104
+ "value": 3.847
105
+ },
106
+ {
107
+ "start": "2021-12-14T15:00:00+01:00",
108
+ "end": "2021-12-14T16:00:00+01:00",
109
+ "value": 4.315
110
+ },
111
+ {
112
+ "start": "2021-12-14T16:00:00+01:00",
113
+ "end": "2021-12-14T17:00:00+01:00",
114
+ "value": 4.582
115
+ },
116
+ {
117
+ "start": "2021-12-14T17:00:00+01:00",
118
+ "end": "2021-12-14T18:00:00+01:00",
119
+ "value": 2.202
120
+ },
121
+ {
122
+ "start": "2021-12-14T18:00:00+01:00",
123
+ "end": "2021-12-14T19:00:00+01:00",
124
+ "value": 2.153
125
+ },
126
+ {
127
+ "start": "2021-12-14T19:00:00+01:00",
128
+ "end": "2021-12-14T20:00:00+01:00",
129
+ "value": 1.803
130
+ },
131
+ {
132
+ "start": "2021-12-14T20:00:00+01:00",
133
+ "end": "2021-12-14T21:00:00+01:00",
134
+ "value": 1.722
135
+ },
136
+ {
137
+ "start": "2021-12-14T21:00:00+01:00",
138
+ "end": "2021-12-14T22:00:00+01:00",
139
+ "value": 1.716
140
+ },
141
+ {
142
+ "start": "2021-12-14T22:00:00+01:00",
143
+ "end": "2021-12-14T23:00:00+01:00",
144
+ "value": 1.569
145
+ },
146
+ {
147
+ "start": "2021-12-14T23:00:00+01:00",
148
+ "end": "2021-12-15T00:00:00+01:00",
149
+ "value": 1.523
150
+ }
151
+ ],
152
+ "raw_tomorrow": [
153
+ {
154
+ "start": "2021-12-15T00:00:00+01:00",
155
+ "end": "2021-12-15T01:00:00+01:00",
156
+ "value": 1.588
157
+ },
158
+ {
159
+ "start": "2021-12-15T01:00:00+01:00",
160
+ "end": "2021-12-15T02:00:00+01:00",
161
+ "value": 1.521
162
+ },
163
+ {
164
+ "start": "2021-12-15T02:00:00+01:00",
165
+ "end": "2021-12-15T03:00:00+01:00",
166
+ "value": 1.492
167
+ },
168
+ {
169
+ "start": "2021-12-15T03:00:00+01:00",
170
+ "end": "2021-12-15T04:00:00+01:00",
171
+ "value": 1.487
172
+ },
173
+ {
174
+ "start": "2021-12-15T04:00:00+01:00",
175
+ "end": "2021-12-15T05:00:00+01:00",
176
+ "value": 1.497
177
+ },
178
+ {
179
+ "start": "2021-12-15T05:00:00+01:00",
180
+ "end": "2021-12-15T06:00:00+01:00",
181
+ "value": 1.514
182
+ },
183
+ {
184
+ "start": "2021-12-15T06:00:00+01:00",
185
+ "end": "2021-12-15T07:00:00+01:00",
186
+ "value": 1.583
187
+ },
188
+ {
189
+ "start": "2021-12-15T07:00:00+01:00",
190
+ "end": "2021-12-15T08:00:00+01:00",
191
+ "value": 1.667
192
+ },
193
+ {
194
+ "start": "2021-12-15T08:00:00+01:00",
195
+ "end": "2021-12-15T09:00:00+01:00",
196
+ "value": 1.729
197
+ },
198
+ {
199
+ "start": "2021-12-15T09:00:00+01:00",
200
+ "end": "2021-12-15T10:00:00+01:00",
201
+ "value": 1.724
202
+ },
203
+ {
204
+ "start": "2021-12-15T10:00:00+01:00",
205
+ "end": "2021-12-15T11:00:00+01:00",
206
+ "value": 1.707
207
+ },
208
+ {
209
+ "start": "2021-12-15T11:00:00+01:00",
210
+ "end": "2021-12-15T12:00:00+01:00",
211
+ "value": 1.703
212
+ },
213
+ {
214
+ "start": "2021-12-15T12:00:00+01:00",
215
+ "end": "2021-12-15T13:00:00+01:00",
216
+ "value": 1.692
217
+ },
218
+ {
219
+ "start": "2021-12-15T13:00:00+01:00",
220
+ "end": "2021-12-15T14:00:00+01:00",
221
+ "value": 1.692
222
+ },
223
+ {
224
+ "start": "2021-12-15T14:00:00+01:00",
225
+ "end": "2021-12-15T15:00:00+01:00",
226
+ "value": 1.692
227
+ },
228
+ {
229
+ "start": "2021-12-15T15:00:00+01:00",
230
+ "end": "2021-12-15T16:00:00+01:00",
231
+ "value": 1.717
232
+ },
233
+ {
234
+ "start": "2021-12-15T16:00:00+01:00",
235
+ "end": "2021-12-15T17:00:00+01:00",
236
+ "value": 1.72
237
+ },
238
+ {
239
+ "start": "2021-12-15T17:00:00+01:00",
240
+ "end": "2021-12-15T18:00:00+01:00",
241
+ "value": 1.718
242
+ },
243
+ {
244
+ "start": "2021-12-15T18:00:00+01:00",
245
+ "end": "2021-12-15T19:00:00+01:00",
246
+ "value": 1.679
247
+ },
248
+ {
249
+ "start": "2021-12-15T19:00:00+01:00",
250
+ "end": "2021-12-15T20:00:00+01:00",
251
+ "value": 1.661
252
+ },
253
+ {
254
+ "start": "2021-12-15T20:00:00+01:00",
255
+ "end": "2021-12-15T21:00:00+01:00",
256
+ "value": 1.629
257
+ },
258
+ {
259
+ "start": "2021-12-15T21:00:00+01:00",
260
+ "end": "2021-12-15T22:00:00+01:00",
261
+ "value": 1.652
262
+ },
263
+ {
264
+ "start": "2021-12-15T22:00:00+01:00",
265
+ "end": "2021-12-15T23:00:00+01:00",
266
+ "value": 1.612
267
+ },
268
+ {
269
+ "start": "2021-12-15T23:00:00+01:00",
270
+ "end": "2021-12-16T00:00:00+01:00",
271
+ "value": 1.587
272
+ }
273
+ ],
274
+ "unit_of_measurement": "NOK/kWh",
275
+ "friendly_name": "nordpool_kwh_krsand_nok_3_10_025",
276
+ "icon": "mdi:flash"
277
+ },
278
+ "last_changed": "2021-12-14T22:00:00.034750+00:00",
279
+ "last_updated": "2021-12-14T22:00:00.034750+00:00",
280
+ "context": {
281
+ "id": "1c81d6655547e2889f0347188f45cf58",
282
+ "parent_id": null,
283
+ "user_id": null
284
+ },
285
+ "timeSinceChangedMs": 1286197,
286
+ "original_state": "1.523"
287
+ }
288
+ }
@@ -96,8 +96,8 @@ describe("receive-price node", function () {
96
96
  });
97
97
  });
98
98
 
99
- it("should convert nordpool current state prices", function (done) {
100
- const nordpoolPrices = require("./data/nordpool-current-state-prices.json");
99
+ it("should convert nordpool complete current state data set", function (done) {
100
+ const nordpoolPrices = require("./data/nordpool-events-state-2.json");
101
101
  const convertedPrices = require("./data/converted-prices.json");
102
102
  convertedPrices.source = "Nordpool";
103
103
  const flow = [
@@ -113,10 +113,11 @@ describe("receive-price node", function () {
113
113
  const n1 = helper.getNode("n1");
114
114
  const n2 = helper.getNode("n2");
115
115
  n2.on("input", function (msg) {
116
- expect(msg).toHaveProperty("payload", convertedPrices);
116
+ expect(msg.payload.priceData.length).toEqual(48);
117
+ expect(msg.payload.source).toEqual("Nordpool");
117
118
  done();
118
119
  });
119
- n1.receive({ payload: nordpoolPrices });
120
+ n1.receive({ payload: nordpoolPrices.payload, data: nordpoolPrices.data });
120
121
  });
121
122
  });
122
123
  });
@@ -504,6 +504,39 @@ describe("ps-strategy-lowest-price node", function () {
504
504
  n1.receive({ payload: makePayload(input, time) });
505
505
  });
506
506
  });
507
+ it("fix bug", function (done) {
508
+ const input = require("./data/lowest-price-input-missing-end.json");
509
+ const result = require("./data/lowest-price-result-missing-end.json");
510
+ const flow = [
511
+ {
512
+ id: "n1",
513
+ type: "ps-strategy-lowest-price",
514
+ name: "test name",
515
+ fromTime: "22",
516
+ toTime: "08",
517
+ hoursOn: 3,
518
+ doNotSplit: true,
519
+ sendCurrentValueWhenRescheduling: true,
520
+ outputIfNoSchedule: false,
521
+ outputOutsidePeriod: false,
522
+ wires: [["n3"], ["n4"], ["n2"]],
523
+ },
524
+ { id: "n2", type: "helper" },
525
+ { id: "n3", type: "helper" },
526
+ { id: "n4", type: "helper" },
527
+ ];
528
+ helper.load(lowestPrice, flow, function () {
529
+ const n1 = helper.getNode("n1");
530
+ const n2 = helper.getNode("n2");
531
+ n2.on("input", function (msg) {
532
+ expect(msg).toHaveProperty("payload", result.payload);
533
+ n1.warn.should.not.be.called;
534
+ done();
535
+ });
536
+ const time = DateTime.fromISO(prices.priceData[10].start);
537
+ n1.receive({ payload: makePayload(input, time) });
538
+ });
539
+ });
507
540
  });
508
541
 
509
542
  function makeFlow(hoursOn) {
@@ -1 +0,0 @@
1
- (()=>{"use strict";var e,r,t,a={},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return a[e].call(t.exports,t,t.exports,n),t.exports}n.m=a,e=[],n.O=(r,t,a,o)=>{if(!t){var d=1/0;for(v=0;v<e.length;v++){for(var[t,a,o]=e[v],i=!0,c=0;c<t.length;c++)(!1&o||d>=o)&&Object.keys(n.O).every((e=>n.O[e](t[c])))?t.splice(c--,1):(i=!1,o<d&&(d=o));if(i){e.splice(v--,1);var s=a();void 0!==s&&(r=s)}}return r}o=o||0;for(var v=e.length;v>0&&e[v-1][2]>o;v--)e[v]=e[v-1];e[v]=[t,a,o]},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,t)=>(n.f[t](e,r),r)),[])),n.u=e=>"assets/js/"+({22:"v-1ad821fa",27:"v-0aca7ba6",88:"v-3706649a",283:"v-61f728ca",317:"v-5954bcb2",332:"v-08683c60",363:"v-0b5e3c8c",407:"v-b4a42144",418:"v-4637f9e4",495:"v-510ed0d4",509:"v-8daa1a0e",625:"v-5db8da3a",651:"v-e8c55052",745:"v-677dfaed",807:"v-fffb8e28",889:"v-7c87f26e",901:"v-30acb564"}[e]||e)+"."+{22:"85407071",27:"aec5ba75",88:"d7f73384",283:"802ab15e",293:"5e967839",317:"be07962c",332:"07fe8291",363:"d008d8bc",407:"6e0c5aa0",418:"22ab9413",491:"c183eba3",495:"481e9be8",509:"db8b59c6",625:"ac192f35",651:"5f85b6cd",745:"9bbbd037",807:"e815e852",889:"457a1a60",901:"73b8e29f"}[e]+".js",n.miniCssF=e=>{},n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="node-red-contrib-power-saver:",n.l=(e,a,o,d)=>{if(r[e])r[e].push(a);else{var i,c;if(void 0!==o)for(var s=document.getElementsByTagName("script"),v=0;v<s.length;v++){var b=s[v];if(b.getAttribute("src")==e||b.getAttribute("data-webpack")==t+o){i=b;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,n.nc&&i.setAttribute("nonce",n.nc),i.setAttribute("data-webpack",t+o),i.src=e),r[e]=[a];var l=(t,a)=>{i.onerror=i.onload=null,clearTimeout(f);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(a))),t)return t(a)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=l.bind(null,i.onerror),i.onload=l.bind(null,i.onload),c&&document.head.appendChild(i)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/node-red-contrib-power-saver/",(()=>{var e={523:0,460:0};n.f.j=(r,t)=>{var a=n.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(460|523)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>a=e[r]=[t,o]));t.push(a[2]=o);var d=n.p+n.u(r),i=new Error;n.l(d,(t=>{if(n.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),d=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+d+")",i.name="ChunkLoadError",i.type=o,i.request=d,a[1](i)}}),"chunk-"+r,r)}},n.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[d,i,c]=t,s=0;if(d.some((r=>0!==e[r]))){for(a in i)n.o(i,a)&&(n.m[a]=i[a]);if(c)var v=c(n)}for(r&&r(t);s<d.length;s++)o=d[s],n.o(e,o)&&e[o]&&e[o][0](),e[d[s]]=0;return n.O(v)},t=self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[495],{3707:(e,i,l)=>{l.r(i),l.d(i,{data:()=>a});const a={key:"v-510ed0d4",path:"/changelog/",title:"Change Log",lang:"en-US",frontmatter:{sidebar:"auto"},excerpt:"",headers:[{level:2,title:"3.0.3",slug:"_3-0-3",children:[]},{level:2,title:"3.0.2",slug:"_3-0-2",children:[]},{level:2,title:"3.0.1",slug:"_3-0-1",children:[]},{level:2,title:"3.0.0",slug:"_3-0-0",children:[]},{level:2,title:"2.1.0",slug:"_2-1-0",children:[]},{level:2,title:"2.0.5",slug:"_2-0-5",children:[]},{level:2,title:"2.0.4",slug:"_2-0-4",children:[]},{level:2,title:"2.0.3",slug:"_2-0-3",children:[]},{level:2,title:"2.0.2",slug:"_2-0-2",children:[]},{level:2,title:"2.0.1",slug:"_2-0-1",children:[]},{level:2,title:"2.0.0",slug:"_2-0-0",children:[]},{level:2,title:"1.0.9",slug:"_1-0-9",children:[]}],filePathRelative:"changelog/README.md",git:{updatedTime:16394709e5,contributors:[{name:"Otto Paulsen",email:"ottpau@gmail.com",commits:3},{name:"Otto Paulsen",email:"otto.paulsen@itema.no",commits:1}]}}},7478:(e,i,l)=>{l.r(i),l.d(i,{default:()=>d});const a=(0,l(6252).uE)('<h1 id="change-log" tabindex="-1"><a class="header-anchor" href="#change-log" aria-hidden="true">#</a> Change Log</h1><p>List the most significant changes, starting in version 1.0.9.</p><h2 id="_3-0-3" tabindex="-1"><a class="header-anchor" href="#_3-0-3" aria-hidden="true">#</a> 3.0.3</h2><ul><li>Fix bug in lowest price strategy, when period ends at midnight.</li><li>Fix labels for hours on, so they do not have leading zero.</li><li>Fix so source should be visible in output 3.</li></ul><h2 id="_3-0-2" tabindex="-1"><a class="header-anchor" href="#_3-0-2" aria-hidden="true">#</a> 3.0.2</h2><ul><li>Bugfix in Lowest Price node (not successful)</li></ul><h2 id="_3-0-1" tabindex="-1"><a class="header-anchor" href="#_3-0-1" aria-hidden="true">#</a> 3.0.1</h2><ul><li>Fix so elvia subscripion key is stored as credential</li><li>Fix bug on config for strategy nodes. Config was not saved properly.</li><li>Remove double output bug, and better handling when hoursOn &gt; period</li></ul><h2 id="_3-0-0" tabindex="-1"><a class="header-anchor" href="#_3-0-0" aria-hidden="true">#</a> 3.0.0</h2><ul><li>Deprecating old Power Saver node, adding multiple new nodes.</li><li>New node <code>ps-strategy-best-save</code> is replacing old node <code>Power Saver</code> together with the new <code>ps-receive-price</code> node.</li><li>Add new strategy node: <code>ps-strategy-lowest-price</code>.</li><li>Add new node: <code>ps-receive-price</code>.</li><li>Add gridd tariff for Elvia customers, using the <code>ps-elvia-add-tariff</code> node.</li><li>New documentation.</li><li>Change node category to Power Saver.</li></ul><h2 id="_2-1-0" tabindex="-1"><a class="header-anchor" href="#_2-1-0" aria-hidden="true">#</a> 2.1.0</h2><ul><li>Accept config as input, making it possible to dynamically change config</li><li>Fix dropdown for config value for selecting output when there is no schedule</li><li>Improve config screen and documentation</li></ul><h2 id="_2-0-5" tabindex="-1"><a class="header-anchor" href="#_2-0-5" aria-hidden="true">#</a> 2.0.5</h2><ul><li>Update links to examples</li></ul><h2 id="_2-0-4" tabindex="-1"><a class="header-anchor" href="#_2-0-4" aria-hidden="true">#</a> 2.0.4</h2><ul><li>Update doc and add examples</li></ul><h2 id="_2-0-3" tabindex="-1"><a class="header-anchor" href="#_2-0-3" aria-hidden="true">#</a> 2.0.3</h2><ul><li>Bugfix</li></ul><h2 id="_2-0-2" tabindex="-1"><a class="header-anchor" href="#_2-0-2" aria-hidden="true">#</a> 2.0.2</h2><ul><li>Fix so Nordpool data can be read directly from the current state node</li></ul><h2 id="_2-0-1" tabindex="-1"><a class="header-anchor" href="#_2-0-1" aria-hidden="true">#</a> 2.0.1</h2><ul><li>Fix bug that caused no schedule</li><li>Add config to output</li></ul><h2 id="_2-0-0" tabindex="-1"><a class="header-anchor" href="#_2-0-0" aria-hidden="true">#</a> 2.0.0</h2><ul><li>New and better algorithm to calculate savings, resulting in a better schedule.</li><li>Removed possibility to configure maximum hours to save per day, as this does not really make much sense.</li><li>Round savings to 4 decimals.</li><li>Set last savings hour to null when 0.</li></ul><h2 id="_1-0-9" tabindex="-1"><a class="header-anchor" href="#_1-0-9" aria-hidden="true">#</a> 1.0.9</h2><ul><li>Fix bug in saving last hour of the day.</li></ul>',26),t={},d=(0,l(3744).Z)(t,[["render",function(e,i){return a}]])},3744:(e,i)=>{i.Z=(e,i)=>{const l=e.__vccOpts||e;for(const[e,a]of i)l[e]=a;return l}}}]);