node-red-contrib-power-saver 3.2.3 → 3.4.0

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 (137) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +1 -1
  3. package/docs/.vuepress/clientAppEnhance.js +5 -0
  4. package/docs/.vuepress/components/BestSaveVerificator.vue +306 -0
  5. package/docs/.vuepress/components/DonateButtons.vue +87 -0
  6. package/docs/.vuepress/config.js +36 -7
  7. package/docs/.vuepress/dist/404.html +5 -5
  8. package/docs/.vuepress/dist/assets/css/563.styles.99f4a8aa.css +1 -0
  9. package/docs/.vuepress/dist/assets/css/835.styles.c5afb22b.css +1 -0
  10. package/docs/.vuepress/dist/assets/css/{styles.e835bef6.css → styles.031dcf27.css} +2 -1
  11. package/docs/.vuepress/dist/assets/img/best-save-config.79a2f39a.png +0 -0
  12. package/docs/.vuepress/dist/assets/img/copy-payload-best-save.b9192985.png +0 -0
  13. package/docs/.vuepress/dist/assets/img/heat-capacitor-temperatureVsPrice.6e74905b.png +0 -0
  14. package/docs/.vuepress/dist/assets/img/node-ps-strategy-heat-capacitor-cascade-control.2e75ed9e.png +0 -0
  15. package/docs/.vuepress/dist/assets/img/node-ps-strategy-heat-capacitor-simple-flow-example.29d9bf59.png +0 -0
  16. package/docs/.vuepress/dist/assets/img/oven-setpoint-calculation.5bda0eec.png +0 -0
  17. package/docs/.vuepress/dist/assets/img/overshoot-time.b3b5d70e.png +0 -0
  18. package/docs/.vuepress/dist/assets/js/262.cf2c57d2.js +1 -0
  19. package/docs/.vuepress/dist/assets/js/{293.5e967839.js → 293.08ea5200.js} +0 -0
  20. package/docs/.vuepress/dist/assets/js/331.15ee3c51.js +1 -0
  21. package/docs/.vuepress/dist/assets/js/{491.c183eba3.js → 491.17a98f38.js} +0 -0
  22. package/docs/.vuepress/dist/assets/js/619.8ba1b1f6.js +2 -0
  23. package/docs/.vuepress/dist/assets/js/{812.79dad458.js.LICENSE.txt → 619.8ba1b1f6.js.LICENSE.txt} +0 -0
  24. package/docs/.vuepress/dist/assets/js/811.6a3392d5.js +1 -0
  25. package/docs/.vuepress/dist/assets/js/app.e881e9b6.js +1 -0
  26. package/docs/.vuepress/dist/assets/js/runtime~app.8bebaa00.js +1 -0
  27. package/docs/.vuepress/dist/assets/js/{v-0607240a.661e1808.js → v-0607240a.a57c2199.js} +0 -0
  28. package/docs/.vuepress/dist/assets/js/{v-08683c60.a6b9cf5b.js → v-08683c60.ccafdcab.js} +0 -0
  29. package/docs/.vuepress/dist/assets/js/v-0aca7ba6.4f3573a3.js +1 -0
  30. package/docs/.vuepress/dist/assets/js/v-0b5e3c8c.76407435.js +1 -0
  31. package/docs/.vuepress/dist/assets/js/{v-1ad821fa.6e2194d0.js → v-1ad821fa.5978386f.js} +0 -0
  32. package/docs/.vuepress/dist/assets/js/v-1b3a0ab8.def099e9.js +1 -0
  33. package/docs/.vuepress/dist/assets/js/{v-1e2b191e.98cc227b.js → v-1e2b191e.88dc5555.js} +0 -0
  34. package/docs/.vuepress/dist/assets/js/v-29504124.4aca27d5.js +1 -0
  35. package/docs/.vuepress/dist/assets/js/{v-30acb564.f2fcd69f.js → v-30acb564.529a3c16.js} +0 -0
  36. package/docs/.vuepress/dist/assets/js/v-4637f9e4.5cc542f6.js +1 -0
  37. package/docs/.vuepress/dist/assets/js/v-4c28314d.48fc6e75.js +1 -0
  38. package/docs/.vuepress/dist/assets/js/v-510ed0d4.b58000bf.js +1 -0
  39. package/docs/.vuepress/dist/assets/js/{v-5954bcb2.182daf70.js → v-5954bcb2.937005d0.js} +0 -0
  40. package/docs/.vuepress/dist/assets/js/{v-5db8da3a.f2de6cb9.js → v-5db8da3a.3de3588d.js} +1 -1
  41. package/docs/.vuepress/dist/assets/js/{v-61f728ca.6fdbbb92.js → v-61f728ca.21d432fe.js} +1 -1
  42. package/docs/.vuepress/dist/assets/js/v-677dfaed.1ad4c776.js +1 -0
  43. package/docs/.vuepress/dist/assets/js/v-7446a652.74b21d0b.js +1 -0
  44. package/docs/.vuepress/dist/assets/js/v-7c87f26e.5e3553b0.js +1 -0
  45. package/docs/.vuepress/dist/assets/js/v-84304104.f66996c5.js +1 -0
  46. package/docs/.vuepress/dist/assets/js/{v-8daa1a0e.dde202c9.js → v-8daa1a0e.c06c5c76.js} +1 -1
  47. package/docs/.vuepress/dist/assets/js/{v-b4a42144.9e5f9728.js → v-b4a42144.733e4e7c.js} +0 -0
  48. package/docs/.vuepress/dist/assets/js/v-e8c55052.9664f731.js +1 -0
  49. package/docs/.vuepress/dist/assets/js/v-fffb8e28.525be02a.js +1 -0
  50. package/docs/.vuepress/dist/changelog/index.html +5 -5
  51. package/docs/.vuepress/dist/contribute/index.html +5 -5
  52. package/docs/.vuepress/dist/examples/example-cascade-temperature-control.html +286 -0
  53. package/docs/.vuepress/dist/examples/example-heat-capacitor.html +229 -0
  54. package/docs/.vuepress/dist/examples/example-next-schedule-entity.html +6 -6
  55. package/docs/.vuepress/dist/examples/example-nordpool-current-state.html +6 -7
  56. package/docs/.vuepress/dist/examples/example-nordpool-events-state.html +6 -6
  57. package/docs/.vuepress/dist/examples/example-tibber-mqtt.html +6 -7
  58. package/docs/.vuepress/dist/examples/index.html +5 -5
  59. package/docs/.vuepress/dist/faq/best-save-viewer.html +15 -0
  60. package/docs/.vuepress/dist/faq/index.html +5 -5
  61. package/docs/.vuepress/dist/guide/index.html +6 -6
  62. package/docs/.vuepress/dist/index.html +5 -5
  63. package/docs/.vuepress/dist/nodes/index.html +5 -5
  64. package/docs/.vuepress/dist/nodes/old-power-saver-doc.html +7 -7
  65. package/docs/.vuepress/dist/nodes/power-saver.html +5 -5
  66. package/docs/.vuepress/dist/nodes/ps-elvia-add-tariff.html +5 -5
  67. package/docs/.vuepress/dist/nodes/ps-general-add-tariff.html +5 -5
  68. package/docs/.vuepress/dist/nodes/ps-receive-price.html +8 -8
  69. package/docs/.vuepress/dist/nodes/ps-strategy-best-save.html +27 -8
  70. package/docs/.vuepress/dist/nodes/ps-strategy-heat-capacitor.html +242 -0
  71. package/docs/.vuepress/dist/nodes/ps-strategy-lowest-price.html +22 -7
  72. package/docs/.vuepress/dist/nodes/strategy-input.html +5 -5
  73. package/docs/README.md +4 -1
  74. package/docs/changelog/README.md +22 -0
  75. package/docs/contribute/README.md +11 -3
  76. package/docs/examples/README.md +8 -2
  77. package/docs/examples/example-cascade-temperature-control.md +345 -0
  78. package/docs/examples/example-heat-capacitor.md +271 -0
  79. package/docs/examples/example-nordpool-current-state.md +0 -1
  80. package/docs/examples/example-tibber-mqtt.md +0 -1
  81. package/docs/faq/README.md +28 -1
  82. package/docs/faq/best-save-viewer.md +61 -0
  83. package/docs/images/best-save-config.png +0 -0
  84. package/docs/images/copy-payload-best-save.png +0 -0
  85. package/docs/images/heat-capacitor-temperatureVsPrice.png +0 -0
  86. package/docs/images/node-ps-strategy-heat-capacitor-cascade-control.png +0 -0
  87. package/docs/images/node-ps-strategy-heat-capacitor-simple-flow-example.png +0 -0
  88. package/docs/images/node-ps-strategy-heat-capacitor.png +0 -0
  89. package/docs/images/oven-setpoint-calculation.png +0 -0
  90. package/docs/images/overshoot-time.png +0 -0
  91. package/docs/images/temperature-manipulation-config.png +0 -0
  92. package/docs/nodes/README.md +7 -1
  93. package/docs/nodes/ps-strategy-best-save.md +95 -8
  94. package/docs/nodes/ps-strategy-heat-capacitor.md +346 -0
  95. package/docs/nodes/ps-strategy-lowest-price.md +57 -0
  96. package/package.json +8 -3
  97. package/src/handle-input.js +32 -10
  98. package/src/strategy-best-save.html +0 -21
  99. package/src/strategy-best-save.js +8 -11
  100. package/src/strategy-heat-capacitor-functions.js +246 -0
  101. package/src/strategy-heat-capacitor.html +85 -0
  102. package/src/strategy-heat-capacitor.js +125 -0
  103. package/test/commands-input.test.js +47 -0
  104. package/test/data/best-save-result.json +1 -2
  105. package/test/data/converted-prices.json +1 -1
  106. package/test/data/current-undefined-prices.json +197 -0
  107. package/test/data/current-undefined-result.json +208 -0
  108. package/test/data/lowest-price-result-missing-end.json +2 -1
  109. package/test/data/multiple-trades.json +53 -0
  110. package/test/data/reconfigResult.js +56 -294
  111. package/test/data/reconfigResult_old2.js +75 -0
  112. package/test/data/tibber-decreasing-24h.json +101 -0
  113. package/test/data/tibber-decreasing2-24h.json +101 -0
  114. package/test/data/tibber-result-end-0-24h.json +1 -0
  115. package/test/data/tibber-result-end-0.json +1 -0
  116. package/test/send-config-input.test.js +3 -37
  117. package/test/strategy-best-save-test-utils.js +2 -1
  118. package/test/strategy-best-save.test.js +14 -8
  119. package/test/strategy-heat-capacitor-node.test.js +183 -0
  120. package/test/strategy-heat-capacitor.test.js +105 -0
  121. package/test/test-utils.js +1 -7
  122. package/test/utils.test.js +0 -33
  123. package/docs/.vuepress/dist/assets/img/best-save-config.93fa3c21.png +0 -0
  124. package/docs/.vuepress/dist/assets/js/812.79dad458.js +0 -2
  125. package/docs/.vuepress/dist/assets/js/app.49ad6d54.js +0 -1
  126. package/docs/.vuepress/dist/assets/js/runtime~app.547d0f4e.js +0 -1
  127. package/docs/.vuepress/dist/assets/js/v-0aca7ba6.b42fad7f.js +0 -1
  128. package/docs/.vuepress/dist/assets/js/v-0b5e3c8c.3b37457f.js +0 -1
  129. package/docs/.vuepress/dist/assets/js/v-4637f9e4.b320f5e8.js +0 -1
  130. package/docs/.vuepress/dist/assets/js/v-510ed0d4.3c7e0056.js +0 -1
  131. package/docs/.vuepress/dist/assets/js/v-677dfaed.0013f083.js +0 -1
  132. package/docs/.vuepress/dist/assets/js/v-7446a652.d05e2648.js +0 -1
  133. package/docs/.vuepress/dist/assets/js/v-7c87f26e.1127dcf5.js +0 -1
  134. package/docs/.vuepress/dist/assets/js/v-e8c55052.8384b053.js +0 -1
  135. package/docs/.vuepress/dist/assets/js/v-fffb8e28.3406fd88.js +0 -1
  136. package/test/data/adjustedResult.js +0 -302
  137. package/test/data/adjustedResult_old.js +0 -154
@@ -0,0 +1,47 @@
1
+ const expect = require("expect");
2
+ const helper = require("node-red-node-test-helper");
3
+ const bestSave = require("../src/strategy-best-save.js");
4
+ const prices = require("./data/converted-prices.json");
5
+ const result = require("./data/best-save-result.json");
6
+ const { testPlan, equalPlan } = require("./test-utils");
7
+ const { makeFlow, makePayload } = require("./strategy-best-save-test-utils");
8
+
9
+ helper.init(require.resolve("node-red"));
10
+
11
+ describe("send command as input", () => {
12
+ beforeEach(function (done) {
13
+ helper.startServer(done);
14
+ });
15
+
16
+ afterEach(function (done) {
17
+ helper.unload().then(function () {
18
+ helper.stopServer(done);
19
+ });
20
+ });
21
+
22
+ it("should send output on command", function (done) {
23
+ const flow = makeFlow(3, 2, true);
24
+ let pass = 1;
25
+ helper.load(bestSave, flow, function () {
26
+ const n1 = helper.getNode("n1");
27
+ const n2 = helper.getNode("n2");
28
+ n1.sendCurrentValueWhenRescheduling = true;
29
+ n2.on("input", function (msg) {
30
+ switch (pass) {
31
+ case 1:
32
+ pass++;
33
+ expect(equalPlan(result, msg.payload)).toBeTruthy();
34
+ expect(msg.payload.sentOnCommand).toBeFalsy();
35
+ n1.receive({ payload: { commands: { sendSchedule: true } } });
36
+ break;
37
+ case 2:
38
+ expect(equalPlan(result, msg.payload)).toBeTruthy();
39
+ expect(msg.payload.sentOnCommand).toBeTruthy();
40
+ done();
41
+ break;
42
+ }
43
+ });
44
+ n1.receive({ payload: makePayload(prices, testPlan.time) });
45
+ });
46
+ });
47
+ });
@@ -351,7 +351,6 @@
351
351
  "maxHoursToSaveInSequence": 3,
352
352
  "minHoursOnAfterMaxSequenceSaved": 2,
353
353
  "minSaving": 0.001,
354
- "outputIfNoSchedule": false,
355
- "scheduleOnlyFromCurrentTime": false
354
+ "outputIfNoSchedule": false
356
355
  }
357
356
  }
@@ -194,4 +194,4 @@
194
194
  "start": "2021-10-12T23:00:00.000+02:00"
195
195
  }
196
196
  ]
197
- }
197
+ }
@@ -0,0 +1,197 @@
1
+ {
2
+ "priceData": [
3
+ {
4
+ "value": 1.792,
5
+ "start": "2022-01-12T00:00:00+01:00"
6
+ },
7
+ {
8
+ "value": 1.761,
9
+ "start": "2022-01-12T01:00:00+01:00"
10
+ },
11
+ {
12
+ "value": 1.744,
13
+ "start": "2022-01-12T02:00:00+01:00"
14
+ },
15
+ {
16
+ "value": 1.741,
17
+ "start": "2022-01-12T03:00:00+01:00"
18
+ },
19
+ {
20
+ "value": 1.752,
21
+ "start": "2022-01-12T04:00:00+01:00"
22
+ },
23
+ {
24
+ "value": 1.773,
25
+ "start": "2022-01-12T05:00:00+01:00"
26
+ },
27
+ {
28
+ "value": 1.773,
29
+ "start": "2022-01-12T06:00:00+01:00"
30
+ },
31
+ {
32
+ "value": 1.832,
33
+ "start": "2022-01-12T07:00:00+01:00"
34
+ },
35
+ {
36
+ "value": 1.863,
37
+ "start": "2022-01-12T08:00:00+01:00"
38
+ },
39
+ {
40
+ "value": 1.826,
41
+ "start": "2022-01-12T09:00:00+01:00"
42
+ },
43
+ {
44
+ "value": 1.795,
45
+ "start": "2022-01-12T10:00:00+01:00"
46
+ },
47
+ {
48
+ "value": 1.753,
49
+ "start": "2022-01-12T11:00:00+01:00"
50
+ },
51
+ {
52
+ "value": 1.75,
53
+ "start": "2022-01-12T12:00:00+01:00"
54
+ },
55
+ {
56
+ "value": 1.738,
57
+ "start": "2022-01-12T13:00:00+01:00"
58
+ },
59
+ {
60
+ "value": 1.717,
61
+ "start": "2022-01-12T14:00:00+01:00"
62
+ },
63
+ {
64
+ "value": 1.707,
65
+ "start": "2022-01-12T15:00:00+01:00"
66
+ },
67
+ {
68
+ "value": 1.708,
69
+ "start": "2022-01-12T16:00:00+01:00"
70
+ },
71
+ {
72
+ "value": 1.707,
73
+ "start": "2022-01-12T17:00:00+01:00"
74
+ },
75
+ {
76
+ "value": 1.692,
77
+ "start": "2022-01-12T18:00:00+01:00"
78
+ },
79
+ {
80
+ "value": 1.661,
81
+ "start": "2022-01-12T19:00:00+01:00"
82
+ },
83
+ {
84
+ "value": 1.64,
85
+ "start": "2022-01-12T20:00:00+01:00"
86
+ },
87
+ {
88
+ "value": 1.634,
89
+ "start": "2022-01-12T21:00:00+01:00"
90
+ },
91
+ {
92
+ "value": 1.614,
93
+ "start": "2022-01-12T22:00:00+01:00"
94
+ },
95
+ {
96
+ "value": 1.598,
97
+ "start": "2022-01-12T23:00:00+01:00"
98
+ },
99
+ {
100
+ "value": 1.569,
101
+ "start": "2022-01-13T00:00:00+01:00"
102
+ },
103
+ {
104
+ "value": 1.548,
105
+ "start": "2022-01-13T01:00:00+01:00"
106
+ },
107
+ {
108
+ "value": 1.518,
109
+ "start": "2022-01-13T02:00:00+01:00"
110
+ },
111
+ {
112
+ "value": 1.507,
113
+ "start": "2022-01-13T03:00:00+01:00"
114
+ },
115
+ {
116
+ "value": 1.501,
117
+ "start": "2022-01-13T04:00:00+01:00"
118
+ },
119
+ {
120
+ "value": 1.508,
121
+ "start": "2022-01-13T05:00:00+01:00"
122
+ },
123
+ {
124
+ "value": 1.544,
125
+ "start": "2022-01-13T06:00:00+01:00"
126
+ },
127
+ {
128
+ "value": 1.612,
129
+ "start": "2022-01-13T07:00:00+01:00"
130
+ },
131
+ {
132
+ "value": 1.646,
133
+ "start": "2022-01-13T08:00:00+01:00"
134
+ },
135
+ {
136
+ "value": 1.654,
137
+ "start": "2022-01-13T09:00:00+01:00"
138
+ },
139
+ {
140
+ "value": 1.656,
141
+ "start": "2022-01-13T10:00:00+01:00"
142
+ },
143
+ {
144
+ "value": 1.648,
145
+ "start": "2022-01-13T11:00:00+01:00"
146
+ },
147
+ {
148
+ "value": 1.617,
149
+ "start": "2022-01-13T12:00:00+01:00"
150
+ },
151
+ {
152
+ "value": 1.613,
153
+ "start": "2022-01-13T13:00:00+01:00"
154
+ },
155
+ {
156
+ "value": 1.612,
157
+ "start": "2022-01-13T14:00:00+01:00"
158
+ },
159
+ {
160
+ "value": 1.611,
161
+ "start": "2022-01-13T15:00:00+01:00"
162
+ },
163
+ {
164
+ "value": 1.618,
165
+ "start": "2022-01-13T16:00:00+01:00"
166
+ },
167
+ {
168
+ "value": 1.616,
169
+ "start": "2022-01-13T17:00:00+01:00"
170
+ },
171
+ {
172
+ "value": 1.617,
173
+ "start": "2022-01-13T18:00:00+01:00"
174
+ },
175
+ {
176
+ "value": 1.601,
177
+ "start": "2022-01-13T19:00:00+01:00"
178
+ },
179
+ {
180
+ "value": 1.568,
181
+ "start": "2022-01-13T20:00:00+01:00"
182
+ },
183
+ {
184
+ "value": 1.565,
185
+ "start": "2022-01-13T21:00:00+01:00"
186
+ },
187
+ {
188
+ "value": 1.506,
189
+ "start": "2022-01-13T22:00:00+01:00"
190
+ },
191
+ {
192
+ "value": 1.468,
193
+ "start": "2022-01-13T23:00:00+01:00"
194
+ }
195
+ ],
196
+ "source": "Nordpool"
197
+ }
@@ -0,0 +1,208 @@
1
+ {
2
+ "schedule": [
3
+ {
4
+ "time": "2022-01-12T18:00:00+01:00",
5
+ "value": true
6
+ },
7
+ {
8
+ "time": "2022-01-13T17:00:00+01:00",
9
+ "value": false
10
+ },
11
+ {
12
+ "time": "2022-01-13T23:00:00+01:00",
13
+ "value": true
14
+ }
15
+ ],
16
+ "hours": [
17
+ {
18
+ "price": 1.692,
19
+ "onOff": true,
20
+ "start": "2022-01-12T18:00:00+01:00",
21
+ "saving": null
22
+ },
23
+ {
24
+ "price": 1.661,
25
+ "onOff": true,
26
+ "start": "2022-01-12T19:00:00+01:00",
27
+ "saving": null
28
+ },
29
+ {
30
+ "price": 1.64,
31
+ "onOff": true,
32
+ "start": "2022-01-12T20:00:00+01:00",
33
+ "saving": null
34
+ },
35
+ {
36
+ "price": 1.634,
37
+ "onOff": true,
38
+ "start": "2022-01-12T21:00:00+01:00",
39
+ "saving": null
40
+ },
41
+ {
42
+ "price": 1.614,
43
+ "onOff": true,
44
+ "start": "2022-01-12T22:00:00+01:00",
45
+ "saving": null
46
+ },
47
+ {
48
+ "price": 1.598,
49
+ "onOff": true,
50
+ "start": "2022-01-12T23:00:00+01:00",
51
+ "saving": null
52
+ },
53
+ {
54
+ "price": 1.569,
55
+ "onOff": true,
56
+ "start": "2022-01-13T00:00:00+01:00",
57
+ "saving": null
58
+ },
59
+ {
60
+ "price": 1.548,
61
+ "onOff": true,
62
+ "start": "2022-01-13T01:00:00+01:00",
63
+ "saving": null
64
+ },
65
+ {
66
+ "price": 1.518,
67
+ "onOff": true,
68
+ "start": "2022-01-13T02:00:00+01:00",
69
+ "saving": null
70
+ },
71
+ {
72
+ "price": 1.507,
73
+ "onOff": true,
74
+ "start": "2022-01-13T03:00:00+01:00",
75
+ "saving": null
76
+ },
77
+ {
78
+ "price": 1.501,
79
+ "onOff": true,
80
+ "start": "2022-01-13T04:00:00+01:00",
81
+ "saving": null
82
+ },
83
+ {
84
+ "price": 1.508,
85
+ "onOff": true,
86
+ "start": "2022-01-13T05:00:00+01:00",
87
+ "saving": null
88
+ },
89
+ {
90
+ "price": 1.544,
91
+ "onOff": true,
92
+ "start": "2022-01-13T06:00:00+01:00",
93
+ "saving": null
94
+ },
95
+ {
96
+ "price": 1.612,
97
+ "onOff": true,
98
+ "start": "2022-01-13T07:00:00+01:00",
99
+ "saving": null
100
+ },
101
+ {
102
+ "price": 1.646,
103
+ "onOff": true,
104
+ "start": "2022-01-13T08:00:00+01:00",
105
+ "saving": null
106
+ },
107
+ {
108
+ "price": 1.654,
109
+ "onOff": true,
110
+ "start": "2022-01-13T09:00:00+01:00",
111
+ "saving": null
112
+ },
113
+ {
114
+ "price": 1.656,
115
+ "onOff": true,
116
+ "start": "2022-01-13T10:00:00+01:00",
117
+ "saving": null
118
+ },
119
+ {
120
+ "price": 1.648,
121
+ "onOff": true,
122
+ "start": "2022-01-13T11:00:00+01:00",
123
+ "saving": null
124
+ },
125
+ {
126
+ "price": 1.617,
127
+ "onOff": true,
128
+ "start": "2022-01-13T12:00:00+01:00",
129
+ "saving": null
130
+ },
131
+ {
132
+ "price": 1.613,
133
+ "onOff": true,
134
+ "start": "2022-01-13T13:00:00+01:00",
135
+ "saving": null
136
+ },
137
+ {
138
+ "price": 1.612,
139
+ "onOff": true,
140
+ "start": "2022-01-13T14:00:00+01:00",
141
+ "saving": null
142
+ },
143
+ {
144
+ "price": 1.611,
145
+ "onOff": true,
146
+ "start": "2022-01-13T15:00:00+01:00",
147
+ "saving": null
148
+ },
149
+ {
150
+ "price": 1.618,
151
+ "onOff": true,
152
+ "start": "2022-01-13T16:00:00+01:00",
153
+ "saving": null
154
+ },
155
+ {
156
+ "price": 1.616,
157
+ "onOff": false,
158
+ "start": "2022-01-13T17:00:00+01:00",
159
+ "saving": 0.148
160
+ },
161
+ {
162
+ "price": 1.617,
163
+ "onOff": false,
164
+ "start": "2022-01-13T18:00:00+01:00",
165
+ "saving": 0.149
166
+ },
167
+ {
168
+ "price": 1.601,
169
+ "onOff": false,
170
+ "start": "2022-01-13T19:00:00+01:00",
171
+ "saving": 0.133
172
+ },
173
+ {
174
+ "price": 1.568,
175
+ "onOff": false,
176
+ "start": "2022-01-13T20:00:00+01:00",
177
+ "saving": 0.1
178
+ },
179
+ {
180
+ "price": 1.565,
181
+ "onOff": false,
182
+ "start": "2022-01-13T21:00:00+01:00",
183
+ "saving": 0.097
184
+ },
185
+ {
186
+ "price": 1.506,
187
+ "onOff": false,
188
+ "start": "2022-01-13T22:00:00+01:00",
189
+ "saving": 0.038
190
+ },
191
+ {
192
+ "price": 1.468,
193
+ "onOff": true,
194
+ "start": "2022-01-13T23:00:00+01:00",
195
+ "saving": null
196
+ }
197
+ ],
198
+ "source": "Nordpool",
199
+ "config": {
200
+ "maxHoursToSaveInSequence": "6",
201
+ "minHoursOnAfterMaxSequenceSaved": "3",
202
+ "minSaving": 0.1,
203
+ "sendCurrentValueWhenRescheduling": true,
204
+ "outputIfNoSchedule": true
205
+ },
206
+ "time": "2022-01-12T17:29:33.411+01:00",
207
+ "version": "3.2.3"
208
+ }
@@ -313,7 +313,8 @@
313
313
  "sendCurrentValueWhenRescheduling": true,
314
314
  "outputIfNoSchedule": false,
315
315
  "outputOutsidePeriod": false
316
- }
316
+ },
317
+ "sentOnCommand": false
317
318
  },
318
319
  "_msgid": "892aabf20811e69f"
319
320
  }
@@ -0,0 +1,53 @@
1
+ {
2
+ "source": "Tibber",
3
+ "priceData": [
4
+ { "value": 1.4157, "start": "2022-02-06T00:00:00.000+01:00" },
5
+ { "value": 1.3705, "start": "2022-02-06T01:00:00.000+01:00" },
6
+ { "value": 1.2487, "start": "2022-02-06T02:00:00.000+01:00" },
7
+ { "value": 1.1812, "start": "2022-02-06T03:00:00.000+01:00" },
8
+ { "value": 0.9632, "start": "2022-02-06T04:00:00.000+01:00" },
9
+ { "value": 1.0862, "start": "2022-02-06T05:00:00.000+01:00" },
10
+ { "value": 1.2638, "start": "2022-02-06T06:00:00.000+01:00" },
11
+ { "value": 1.3266, "start": "2022-02-06T07:00:00.000+01:00" },
12
+ { "value": 1.3734, "start": "2022-02-06T08:00:00.000+01:00" },
13
+ { "value": 1.4653, "start": "2022-02-06T09:00:00.000+01:00" },
14
+ { "value": 1.513, "start": "2022-02-06T10:00:00.000+01:00" },
15
+ { "value": 1.518, "start": "2022-02-06T11:00:00.000+01:00" },
16
+ { "value": 1.505, "start": "2022-02-06T12:00:00.000+01:00" },
17
+ { "value": 1.5038, "start": "2022-02-06T13:00:00.000+01:00" },
18
+ { "value": 1.5239, "start": "2022-02-06T14:00:00.000+01:00" },
19
+ { "value": 1.5269, "start": "2022-02-06T15:00:00.000+01:00" },
20
+ { "value": 1.5464, "start": "2022-02-06T16:00:00.000+01:00" },
21
+ { "value": 1.5553, "start": "2022-02-06T17:00:00.000+01:00" },
22
+ { "value": 1.6066, "start": "2022-02-06T18:00:00.000+01:00" },
23
+ { "value": 1.5541, "start": "2022-02-06T19:00:00.000+01:00" },
24
+ { "value": 1.5437, "start": "2022-02-06T20:00:00.000+01:00" },
25
+ { "value": 1.4912, "start": "2022-02-06T21:00:00.000+01:00" },
26
+ { "value": 1.473, "start": "2022-02-06T22:00:00.000+01:00" },
27
+ { "value": 1.4281, "start": "2022-02-06T23:00:00.000+01:00" },
28
+ { "value": 1.4179, "start": "2022-02-07T00:00:00.000+01:00" },
29
+ { "value": 1.3966, "start": "2022-02-07T01:00:00.000+01:00" },
30
+ { "value": 1.3953, "start": "2022-02-07T02:00:00.000+01:00" },
31
+ { "value": 1.3939, "start": "2022-02-07T03:00:00.000+01:00" },
32
+ { "value": 1.3962, "start": "2022-02-07T04:00:00.000+01:00" },
33
+ { "value": 1.4335, "start": "2022-02-07T05:00:00.000+01:00" },
34
+ { "value": 1.5191, "start": "2022-02-07T06:00:00.000+01:00" },
35
+ { "value": 1.6244, "start": "2022-02-07T07:00:00.000+01:00" },
36
+ { "value": 1.6508, "start": "2022-02-07T08:00:00.000+01:00" },
37
+ { "value": 1.6142, "start": "2022-02-07T09:00:00.000+01:00" },
38
+ { "value": 1.5632, "start": "2022-02-07T10:00:00.000+01:00" },
39
+ { "value": 1.5516, "start": "2022-02-07T11:00:00.000+01:00" },
40
+ { "value": 1.4922, "start": "2022-02-07T12:00:00.000+01:00" },
41
+ { "value": 1.5288, "start": "2022-02-07T13:00:00.000+01:00" },
42
+ { "value": 1.5522, "start": "2022-02-07T14:00:00.000+01:00" },
43
+ { "value": 1.5526, "start": "2022-02-07T15:00:00.000+01:00" },
44
+ { "value": 1.5799, "start": "2022-02-07T16:00:00.000+01:00" },
45
+ { "value": 1.6909, "start": "2022-02-07T17:00:00.000+01:00" },
46
+ { "value": 1.7136, "start": "2022-02-07T18:00:00.000+01:00" },
47
+ { "value": 1.703, "start": "2022-02-07T19:00:00.000+01:00" },
48
+ { "value": 1.675, "start": "2022-02-07T20:00:00.000+01:00" },
49
+ { "value": 1.6173, "start": "2022-02-07T21:00:00.000+01:00" },
50
+ { "value": 1.5638, "start": "2022-02-07T22:00:00.000+01:00" },
51
+ { "value": 1.4645, "start": "2022-02-07T23:00:00.000+01:00" }
52
+ ]
53
+ }