iobroker.tibberlink 2.2.2 → 2.3.2
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.
- package/README.md +16 -0
- package/admin/jsonConfig.json +10 -9
- package/build/lib/tibberAPICaller.js +51 -35
- package/build/lib/tibberAPICaller.js.map +1 -1
- package/build/lib/tibberCalculator.js +55 -34
- package/build/lib/tibberCalculator.js.map +1 -1
- package/build/lib/tibberHelper.js +5 -24
- package/build/lib/tibberHelper.js.map +1 -1
- package/build/lib/tibberPulse.js +1 -3
- package/build/lib/tibberPulse.js.map +1 -1
- package/build/main.js +3 -3
- package/build/main.js.map +1 -1
- package/io-package.json +61 -40
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -96,6 +96,22 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
|
|
|
96
96
|
|
|
97
97
|
! Note that missing version entries are typically dependency updates for improved security.
|
|
98
98
|
|
|
99
|
+
### 2.3.2 (2024-03-17)
|
|
100
|
+
|
|
101
|
+
- (HombachC) code optimizations
|
|
102
|
+
- (HombachC) fix undefined force mode (#349)
|
|
103
|
+
- (HombachC) fix poll of not existing current price state (#348)
|
|
104
|
+
- (HombachC) fix current price poll when configured as not to poll (#350)
|
|
105
|
+
- (HombachC) bump dependencies
|
|
106
|
+
|
|
107
|
+
### 2.3.1 (2024-03-10)
|
|
108
|
+
|
|
109
|
+
- (HombachC) BREAKING: Calculator channels of type 'smart battery buffer' will now switch outputs to 'OFF' only once, directly after setting the channel to Active=false (#332)
|
|
110
|
+
- (HombachC) Fixed error in jsonConfig.json (#329)
|
|
111
|
+
- (HombachC) deleted feed disconnect debug-message, cause warn message already exists
|
|
112
|
+
- (HombachC) bump typescript-eslint to gen 7
|
|
113
|
+
- (HombachC) bump dependencies
|
|
114
|
+
|
|
99
115
|
### 2.2.2 (2024-02-19)
|
|
100
116
|
|
|
101
117
|
- (HombachC) simplify internal state handling
|
package/admin/jsonConfig.json
CHANGED
|
@@ -431,6 +431,7 @@
|
|
|
431
431
|
"md": 6,
|
|
432
432
|
"lg": 4
|
|
433
433
|
},
|
|
434
|
+
|
|
434
435
|
"FeedConfigPowerFactor": {
|
|
435
436
|
"type": "checkbox",
|
|
436
437
|
"label": "PowerFactor",
|
|
@@ -440,7 +441,6 @@
|
|
|
440
441
|
"lg": 4,
|
|
441
442
|
"newLine": true
|
|
442
443
|
},
|
|
443
|
-
|
|
444
444
|
"FeedConfigSignalStrength": {
|
|
445
445
|
"type": "checkbox",
|
|
446
446
|
"label": "SignalStrength",
|
|
@@ -465,7 +465,8 @@
|
|
|
465
465
|
"pl": "Wartości napięcia i prądu - W przypadku kilku liczników te wartości mogą nie być uwzględnione w ramce danych, co może skutkować wartościami zerowymi. Inne odstępstwa mogą również wystąpić na podstawie konkretnej wersji firmware licznika. Wartości zerowe nie wygenerują stanu w twoich obiektach ioBroker.",
|
|
466
466
|
"uk": "Значення напруги та струму - В разі кількох лічильників ці значення можуть не включати в кадр даних, що може призвести до нульових значень. Інші відхилення також можуть виникнути на основі конкретної прошивки лічильника. Нульові значення не створять стан в ваших об'єктах ioBroker.",
|
|
467
467
|
"zh-cn": "电压和电流数值 - 在多台仪表的情况下,这些数值可能不包括在数据帧中,可能导致空值。根据电表的具体固件,还可能出现其他偏差。空值不会在您的ioBroker对象中生成状态。"
|
|
468
|
-
}
|
|
468
|
+
},
|
|
469
|
+
"newLine": true
|
|
469
470
|
},
|
|
470
471
|
|
|
471
472
|
"FeedConfigVoltagePhase1": {
|
|
@@ -613,6 +614,12 @@
|
|
|
613
614
|
"uk": "Домашній канал",
|
|
614
615
|
"zh-cn": "家庭通道"
|
|
615
616
|
},
|
|
617
|
+
"attr": "chHomeID",
|
|
618
|
+
"default": "No Home selected",
|
|
619
|
+
"filter": false,
|
|
620
|
+
"sort": false,
|
|
621
|
+
"width": "10% ",
|
|
622
|
+
"command": "HomesForCalculator",
|
|
616
623
|
"tooltip": {
|
|
617
624
|
"en": "select the home this channel should be attached to",
|
|
618
625
|
"de": "Wählen Sie das Zuhause aus, an das dieser Kanal angehängt werden soll",
|
|
@@ -625,13 +632,7 @@
|
|
|
625
632
|
"pl": "wybierz dom, do którego ten kanał powinien być podłączony",
|
|
626
633
|
"uk": "виберіть будинок, до якого має бути приєднаний цей канал",
|
|
627
634
|
"zh-cn": "选择要连接到的主页"
|
|
628
|
-
}
|
|
629
|
-
"attr": "chHomeID",
|
|
630
|
-
"default": "No Home selected",
|
|
631
|
-
"filter": false,
|
|
632
|
-
"sort": false,
|
|
633
|
-
"width": "10% ",
|
|
634
|
-
"command": "HomesForCalculator"
|
|
635
|
+
}
|
|
635
636
|
},
|
|
636
637
|
{
|
|
637
638
|
"type": "select",
|
|
@@ -55,13 +55,15 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
55
55
|
* updates current prices of all homes
|
|
56
56
|
*
|
|
57
57
|
* @param homeInfoList - homeInfo list object
|
|
58
|
-
* @param forceUpdate - force mode, without verification if existing data is fitting to current date
|
|
58
|
+
* @param forceUpdate - OPTIONAL: force mode, without verification if existing data is fitting to current date, default: false
|
|
59
59
|
* @returns okprice - got correct data
|
|
60
60
|
*/
|
|
61
|
-
async updateCurrentPriceAllHomes(homeInfoList, forceUpdate) {
|
|
61
|
+
async updateCurrentPriceAllHomes(homeInfoList, forceUpdate = false) {
|
|
62
62
|
let okprice = true;
|
|
63
|
-
for (const
|
|
64
|
-
if (!
|
|
63
|
+
for (const curHomeInfo of homeInfoList) {
|
|
64
|
+
if (!curHomeInfo.PriceDataPollActive)
|
|
65
|
+
continue;
|
|
66
|
+
if (!(await this.updateCurrentPrice(curHomeInfo.ID, forceUpdate)))
|
|
65
67
|
okprice = false; // single fault sets all false
|
|
66
68
|
}
|
|
67
69
|
return okprice;
|
|
@@ -70,17 +72,20 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
70
72
|
* updates current price of one home
|
|
71
73
|
*
|
|
72
74
|
* @param homeId - homeId string
|
|
73
|
-
* @param forceUpdate - force mode, without verification if existing data is fitting to current date
|
|
75
|
+
* @param forceUpdate - OPTIONAL: force mode, without verification if existing data is fitting to current date, default: false
|
|
74
76
|
* @returns okprice - got new data
|
|
75
77
|
*/
|
|
76
|
-
async updateCurrentPrice(homeId, forceUpdate) {
|
|
78
|
+
async updateCurrentPrice(homeId, forceUpdate = false) {
|
|
77
79
|
try {
|
|
78
80
|
if (homeId) {
|
|
79
81
|
let exDateCurrent = null;
|
|
80
|
-
|
|
82
|
+
let pricesToday = [];
|
|
81
83
|
const now = new Date();
|
|
84
|
+
if (!forceUpdate) {
|
|
85
|
+
exDateCurrent = new Date(await this.getStateValue(`Homes.${homeId}.CurrentPrice.startsAt`));
|
|
86
|
+
pricesToday = JSON.parse(await this.getStateValue(`Homes.${homeId}.PricesToday.json`));
|
|
87
|
+
}
|
|
82
88
|
// update remaining average
|
|
83
|
-
const pricesToday = JSON.parse(await this.getStateValue(`Homes.${homeId}.PricesToday.json`));
|
|
84
89
|
if (Array.isArray(pricesToday) && pricesToday[2] && pricesToday[2].startsAt) {
|
|
85
90
|
const exDateToday = new Date(pricesToday[2].startsAt);
|
|
86
91
|
if (now.getDate == exDateToday.getDate)
|
|
@@ -120,21 +125,20 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
120
125
|
* updates lists of todays prices of all homes
|
|
121
126
|
*
|
|
122
127
|
* @param homeInfoList - homeInfo list object
|
|
123
|
-
* @param forceUpdate - force mode, without verification if existing data is fitting to current date
|
|
128
|
+
* @param forceUpdate - OPTIONAL: force mode, without verification if existing data is fitting to current date, default: false
|
|
124
129
|
* @returns okprice - got correct data
|
|
125
130
|
*/
|
|
126
|
-
async updatePricesTodayAllHomes(homeInfoList, forceUpdate) {
|
|
131
|
+
async updatePricesTodayAllHomes(homeInfoList, forceUpdate = false) {
|
|
127
132
|
let okprice = true;
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
if (!homeInfoList[index].PriceDataPollActive)
|
|
133
|
+
for (const curHomeInfo of homeInfoList) {
|
|
134
|
+
if (!curHomeInfo.PriceDataPollActive)
|
|
131
135
|
continue;
|
|
132
|
-
if (!(await this.updatePricesToday(
|
|
133
|
-
okprice = false;
|
|
136
|
+
if (!(await this.updatePricesToday(curHomeInfo.ID, forceUpdate))) {
|
|
137
|
+
okprice = false;
|
|
134
138
|
}
|
|
135
139
|
else {
|
|
136
140
|
const now = new Date();
|
|
137
|
-
this.checkAndSetValue(this.getStatePrefix(
|
|
141
|
+
this.checkAndSetValue(this.getStatePrefix(curHomeInfo.ID, "PricesToday", "lastUpdate"), now.toString(), `last update of prices today`);
|
|
138
142
|
}
|
|
139
143
|
}
|
|
140
144
|
return okprice;
|
|
@@ -143,16 +147,16 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
143
147
|
* updates list of todays prices of one home
|
|
144
148
|
*
|
|
145
149
|
* @param homeId - homeId string
|
|
146
|
-
* @param forceUpdate - force mode, without verification if existing data is fitting to current date
|
|
150
|
+
* @param forceUpdate - OPTIONAL: force mode, without verification if existing data is fitting to current date, default: false
|
|
147
151
|
* @returns okprice - got correct data
|
|
148
152
|
*/
|
|
149
|
-
async updatePricesToday(homeId, forceUpdate) {
|
|
153
|
+
async updatePricesToday(homeId, forceUpdate = false) {
|
|
150
154
|
try {
|
|
151
155
|
let exDate = null;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
+
let exPricesToday = [];
|
|
157
|
+
if (!forceUpdate) {
|
|
158
|
+
exPricesToday = JSON.parse(await this.getStateValue(`Homes.${homeId}.PricesToday.json`));
|
|
159
|
+
}
|
|
156
160
|
if (Array.isArray(exPricesToday) && exPricesToday[2] && exPricesToday[2].startsAt) {
|
|
157
161
|
exDate = new Date(exPricesToday[2].startsAt);
|
|
158
162
|
}
|
|
@@ -160,6 +164,11 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
160
164
|
today.setHours(0, 0, 0, 0); // sets clock to 0:00
|
|
161
165
|
if (!exDate || exDate <= today || forceUpdate) {
|
|
162
166
|
const pricesToday = await this.tibberQuery.getTodaysEnergyPrices(homeId);
|
|
167
|
+
// POTENTIAL 2.3.1 better error logging
|
|
168
|
+
if (!(Array.isArray(pricesToday) && pricesToday.length > 0 && pricesToday[2] && pricesToday[2].total)) {
|
|
169
|
+
throw new Error(`Got invalid data structure from Tibber`);
|
|
170
|
+
}
|
|
171
|
+
// WIP
|
|
163
172
|
this.adapter.log.debug(`Got prices today from tibber api: ${JSON.stringify(pricesToday)} Force: ${forceUpdate}`);
|
|
164
173
|
this.checkAndSetValue(this.getStatePrefix(homeId, "PricesToday", "json"), JSON.stringify(pricesToday), "The prices today as json"); // write also it might be empty
|
|
165
174
|
this.fetchPriceAverage(homeId, `PricesToday.average`, pricesToday);
|
|
@@ -202,21 +211,20 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
202
211
|
* updates lists of tomorrows prices of all homes
|
|
203
212
|
*
|
|
204
213
|
* @param homeInfoList - homeInfo list object
|
|
205
|
-
* @param forceUpdate - force mode, without verification if existing data is fitting to current date
|
|
214
|
+
* @param forceUpdate - OPTIONAL: force mode, without verification if existing data is fitting to current date, default: false
|
|
206
215
|
* @returns okprice - got correct data
|
|
207
216
|
*/
|
|
208
|
-
async updatePricesTomorrowAllHomes(homeInfoList, forceUpdate) {
|
|
217
|
+
async updatePricesTomorrowAllHomes(homeInfoList, forceUpdate = false) {
|
|
209
218
|
let okprice = true;
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
if (!homeInfoList[index].PriceDataPollActive)
|
|
219
|
+
for (const curHomeInfo of homeInfoList) {
|
|
220
|
+
if (!curHomeInfo.PriceDataPollActive)
|
|
213
221
|
continue;
|
|
214
|
-
if (!(await this.updatePricesTomorrow(
|
|
222
|
+
if (!(await this.updatePricesTomorrow(curHomeInfo.ID, forceUpdate))) {
|
|
215
223
|
okprice = false; // single fault sets all false
|
|
216
224
|
}
|
|
217
225
|
else {
|
|
218
226
|
const now = new Date();
|
|
219
|
-
this.checkAndSetValue(this.getStatePrefix(
|
|
227
|
+
this.checkAndSetValue(this.getStatePrefix(curHomeInfo.ID, "PricesTomorrow", "lastUpdate"), now.toString(), `last update of prices tomorrow`);
|
|
220
228
|
}
|
|
221
229
|
}
|
|
222
230
|
return okprice;
|
|
@@ -225,14 +233,16 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
225
233
|
* updates list of tomorrows prices of one home
|
|
226
234
|
*
|
|
227
235
|
* @param homeId - homeId string
|
|
228
|
-
* @param forceUpdate - force mode, without verification if existing data is fitting to current date
|
|
236
|
+
* @param forceUpdate - OPTIONAL: force mode, without verification if existing data is fitting to current date, default: false
|
|
229
237
|
* @returns okprice - got new data
|
|
230
238
|
*/
|
|
231
|
-
async updatePricesTomorrow(homeId, forceUpdate) {
|
|
239
|
+
async updatePricesTomorrow(homeId, forceUpdate = false) {
|
|
232
240
|
try {
|
|
233
241
|
let exDate = null;
|
|
234
|
-
|
|
235
|
-
|
|
242
|
+
let exPricesTomorrow = [];
|
|
243
|
+
if (!forceUpdate) {
|
|
244
|
+
exPricesTomorrow = JSON.parse(await this.getStateValue(`Homes.${homeId}.PricesTomorrow.json`));
|
|
245
|
+
}
|
|
236
246
|
if (Array.isArray(exPricesTomorrow) && exPricesTomorrow[2] && exPricesTomorrow[2].startsAt) {
|
|
237
247
|
exDate = new Date(exPricesTomorrow[2].startsAt);
|
|
238
248
|
}
|
|
@@ -240,8 +250,6 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
240
250
|
morgen.setDate(morgen.getDate() + 1);
|
|
241
251
|
morgen.setHours(0, 0, 0, 0); // sets clock to 0:00
|
|
242
252
|
if (!exDate || exDate < morgen || forceUpdate) {
|
|
243
|
-
//if (!exDate || exDate <= morgen || forceUpdate) { FIX in 1.8.0
|
|
244
|
-
// -> try getting new data from Tibber server
|
|
245
253
|
const pricesTomorrow = await this.tibberQuery.getTomorrowsEnergyPrices(homeId);
|
|
246
254
|
this.adapter.log.debug(`Got prices tomorrow from tibber api: ${JSON.stringify(pricesTomorrow)} Force: ${forceUpdate}`);
|
|
247
255
|
this.checkAndSetValue(this.getStatePrefix(homeId, "PricesTomorrow", "json"), JSON.stringify(pricesTomorrow), "The prices tomorrow as json"); // write also it might be empty
|
|
@@ -325,6 +333,14 @@ class TibberAPICaller extends tibberHelper_1.TibberHelper {
|
|
|
325
333
|
this.adapter.log.error(this.generateErrorMessage(error, `pull of consumption data`));
|
|
326
334
|
}
|
|
327
335
|
}
|
|
336
|
+
/**
|
|
337
|
+
* Updates the list of tomorrow's prices for one home.
|
|
338
|
+
*
|
|
339
|
+
* @param homeId - The unique identifier of the home.
|
|
340
|
+
* @param objectDestination - The destination object for storing price data.
|
|
341
|
+
* @param price - The price object containing price information.
|
|
342
|
+
* @returns Promise<void> - Resolves when the price data is successfully fetched and updated.
|
|
343
|
+
*/
|
|
328
344
|
async fetchPrice(homeId, objectDestination, price) {
|
|
329
345
|
await this.checkAndSetValueNumber(this.getStatePrefix(homeId, objectDestination, "total"), price.total, "Total price (energy + taxes)");
|
|
330
346
|
this.checkAndSetValueNumber(this.getStatePrefix(homeId, objectDestination, "energy"), price.energy, "Spotmarket energy price");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tibberAPICaller.js","sourceRoot":"","sources":["../../src/lib/tibberAPICaller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tibberAPICaller.js","sourceRoot":"","sources":["../../src/lib/tibberAPICaller.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
53
53
|
this.adapter.config.CalculatorList[channel].chName = `Channel Name`;
|
|
54
54
|
}
|
|
55
55
|
const channelName = this.adapter.config.CalculatorList[channel].chName;
|
|
56
|
-
//#region *** setup channel
|
|
56
|
+
//#region *** setup channel folders ***
|
|
57
57
|
let typeDesc;
|
|
58
58
|
switch (this.adapter.config.CalculatorList[channel].chType) {
|
|
59
59
|
case tibberHelper_1.enCalcType.BestCost:
|
|
@@ -103,8 +103,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
103
103
|
this.adapter.log.debug(`Wrong type for chActive: ${valueActive}`);
|
|
104
104
|
}
|
|
105
105
|
//#endregion
|
|
106
|
-
/*
|
|
107
|
-
"best cost" | Input state: "TriggerPrice"
|
|
106
|
+
/* "best cost" | Input state: "TriggerPrice"
|
|
108
107
|
| Output state: "Output"
|
|
109
108
|
"best single hours" | Input state: "AmountHours"
|
|
110
109
|
| Output state: "Output"
|
|
@@ -121,7 +120,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
121
120
|
*/
|
|
122
121
|
switch (this.adapter.config.CalculatorList[channel].chType) {
|
|
123
122
|
case tibberHelper_1.enCalcType.BestCost:
|
|
124
|
-
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `AmountHours`).value);
|
|
123
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `AmountHours`).value); // INPUTS
|
|
125
124
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StartTime`).value);
|
|
126
125
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StopTime`).value);
|
|
127
126
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `EfficiencyLoss`).value);
|
|
@@ -130,9 +129,18 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
130
129
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockStartTime`).value);
|
|
131
130
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockStopTime`).value);
|
|
132
131
|
await this.setup_chTriggerPrice(homeId, channel);
|
|
132
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `Output2`).value); // OUTPUTS
|
|
133
|
+
// WIP
|
|
134
|
+
if (this.adapter.config.CalculatorList[channel].chTargetState.length > 10) {
|
|
135
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `Output`).value);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
// await this.setup_chOutput(homeId, channel);
|
|
139
|
+
}
|
|
140
|
+
//WIP
|
|
133
141
|
break;
|
|
134
142
|
case tibberHelper_1.enCalcType.BestSingleHours:
|
|
135
|
-
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value);
|
|
143
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value); // INPUTS
|
|
136
144
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StartTime`).value);
|
|
137
145
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StopTime`).value);
|
|
138
146
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `EfficiencyLoss`).value);
|
|
@@ -141,9 +149,10 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
141
149
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockStartTime`).value);
|
|
142
150
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockStopTime`).value);
|
|
143
151
|
await this.setup_chAmountHours(homeId, channel);
|
|
152
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `Output2`).value); // OUTPUTS
|
|
144
153
|
break;
|
|
145
154
|
case tibberHelper_1.enCalcType.BestHoursBlock:
|
|
146
|
-
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value);
|
|
155
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value); // INPUTS
|
|
147
156
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StartTime`).value);
|
|
148
157
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StopTime`).value);
|
|
149
158
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `EfficiencyLoss`).value);
|
|
@@ -152,9 +161,10 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
152
161
|
await this.setup_chAverageTotalCost(homeId, channel);
|
|
153
162
|
await this.setup_chBlockStartFullHour(homeId, channel);
|
|
154
163
|
await this.setup_chBlockEndFullHour(homeId, channel);
|
|
164
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `Output2`).value); // OUTPUTS
|
|
155
165
|
break;
|
|
156
166
|
case tibberHelper_1.enCalcType.BestCostLTF:
|
|
157
|
-
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `AmountHours`).value);
|
|
167
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `AmountHours`).value); // INPUTS
|
|
158
168
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `EfficiencyLoss`).value);
|
|
159
169
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `AverageTotalCost`).value);
|
|
160
170
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockStartTime`).value);
|
|
@@ -163,9 +173,10 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
163
173
|
await this.setup_chStartTime(homeId, channel);
|
|
164
174
|
await this.setup_chStopTime(homeId, channel);
|
|
165
175
|
await this.setup_chRepeatDays(homeId, channel);
|
|
176
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `Output2`).value); // OUTPUTS
|
|
166
177
|
break;
|
|
167
178
|
case tibberHelper_1.enCalcType.BestSingleHoursLTF:
|
|
168
|
-
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value);
|
|
179
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value); // INPUTS
|
|
169
180
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `EfficiencyLoss`).value);
|
|
170
181
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `AverageTotalCost`).value);
|
|
171
182
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockStartTime`).value);
|
|
@@ -174,9 +185,10 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
174
185
|
await this.setup_chStartTime(homeId, channel);
|
|
175
186
|
await this.setup_chStopTime(homeId, channel);
|
|
176
187
|
await this.setup_chRepeatDays(homeId, channel);
|
|
188
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `Output2`).value); // OUTPUTS
|
|
177
189
|
break;
|
|
178
190
|
case tibberHelper_1.enCalcType.BestHoursBlockLTF:
|
|
179
|
-
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value);
|
|
191
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value); // INPUTS
|
|
180
192
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `EfficiencyLoss`).value);
|
|
181
193
|
await this.setup_chAmountHours(homeId, channel);
|
|
182
194
|
await this.setup_chStartTime(homeId, channel);
|
|
@@ -185,9 +197,10 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
185
197
|
await this.setup_chAverageTotalCost(homeId, channel);
|
|
186
198
|
await this.setup_chBlockStartFullHour(homeId, channel);
|
|
187
199
|
await this.setup_chBlockEndFullHour(homeId, channel);
|
|
200
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `Output2`).value); // OUTPUTS
|
|
188
201
|
break;
|
|
189
202
|
case tibberHelper_1.enCalcType.SmartBatteryBuffer:
|
|
190
|
-
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value);
|
|
203
|
+
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `TriggerPrice`).value); // INPUTS
|
|
191
204
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StartTime`).value);
|
|
192
205
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `StopTime`).value);
|
|
193
206
|
this.adapter.delObjectAsync(this.getStatePrefix(homeId, `Calculations.${channel}`, `RepeatDays`).value);
|
|
@@ -199,10 +212,17 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
199
212
|
break;
|
|
200
213
|
default:
|
|
201
214
|
this.adapter.log.error(`Calculator Type for channel ${channel} not set, please do!`);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.*`);
|
|
205
|
-
|
|
215
|
+
} //end setup and delete channel states according to channel type
|
|
216
|
+
//#region *** subscribe state changes ***
|
|
217
|
+
// this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.*`);
|
|
218
|
+
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.Active`);
|
|
219
|
+
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.TriggerPrice`);
|
|
220
|
+
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.AmountHours`);
|
|
221
|
+
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.StartTime`);
|
|
222
|
+
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.StopTime`);
|
|
223
|
+
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.RepeatDays`);
|
|
224
|
+
this.adapter.subscribeStates(`Homes.${homeId}.Calculations.${channel}.EfficiencyLoss`);
|
|
225
|
+
//#endregion
|
|
206
226
|
}
|
|
207
227
|
catch (error) {
|
|
208
228
|
this.adapter.log.warn(this.generateErrorMessage(error, `setup of states for calculator`));
|
|
@@ -252,7 +272,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
252
272
|
async setup_chStartTime(homeId, channel) {
|
|
253
273
|
try {
|
|
254
274
|
const channelName = this.adapter.config.CalculatorList[channel].chName;
|
|
255
|
-
//***
|
|
275
|
+
//*** chStartTime ***
|
|
256
276
|
if (this.adapter.config.CalculatorList[channel].chStartTime === undefined) {
|
|
257
277
|
const today = new Date();
|
|
258
278
|
today.setHours(0, 0, 0, 0); // sets clock to 0:00
|
|
@@ -275,7 +295,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
275
295
|
async setup_chStopTime(homeId, channel) {
|
|
276
296
|
try {
|
|
277
297
|
const channelName = this.adapter.config.CalculatorList[channel].chName;
|
|
278
|
-
//***
|
|
298
|
+
//*** chStopTime ***
|
|
279
299
|
if (this.adapter.config.CalculatorList[channel].chStopTime === undefined) {
|
|
280
300
|
const today = new Date();
|
|
281
301
|
today.setHours(23, 59, 0, 0); // sets clock to 0:00
|
|
@@ -347,9 +367,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
347
367
|
this.adapter.log.warn(this.generateErrorMessage(error, `setup of state AverageTotalCost for calculator`));
|
|
348
368
|
}
|
|
349
369
|
}
|
|
350
|
-
async setup_chBlockStartFullHour(homeId, channel, delMode) {
|
|
351
|
-
if (delMode === undefined)
|
|
352
|
-
delMode = false;
|
|
370
|
+
async setup_chBlockStartFullHour(homeId, channel, delMode = false) {
|
|
353
371
|
try {
|
|
354
372
|
const channelName = this.adapter.config.CalculatorList[channel].chName;
|
|
355
373
|
this.checkAndSetValue(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockStartFullHour`), `-`, `first hour of determined block`, false, false);
|
|
@@ -360,9 +378,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
360
378
|
this.adapter.log.warn(this.generateErrorMessage(error, `write state BlockStartFullHour for calculator`));
|
|
361
379
|
}
|
|
362
380
|
}
|
|
363
|
-
async setup_chBlockEndFullHour(homeId, channel, delMode) {
|
|
364
|
-
if (delMode === undefined)
|
|
365
|
-
delMode = false;
|
|
381
|
+
async setup_chBlockEndFullHour(homeId, channel, delMode = false) {
|
|
366
382
|
try {
|
|
367
383
|
const channelName = this.adapter.config.CalculatorList[channel].chName;
|
|
368
384
|
this.checkAndSetValue(this.getStatePrefix(homeId, `Calculations.${channel}`, `BlockEndFullHour`), `-`, `end hour of determined block`, false, false);
|
|
@@ -373,10 +389,11 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
373
389
|
this.adapter.log.warn(this.generateErrorMessage(error, `write state BlockEndFullHour for calculator`));
|
|
374
390
|
}
|
|
375
391
|
}
|
|
376
|
-
async startCalculatorTasks() {
|
|
392
|
+
async startCalculatorTasks(onStateChange = false) {
|
|
377
393
|
if (!this.adapter.config.UseCalculator)
|
|
378
394
|
return;
|
|
379
395
|
const badComponents = ["tibberlink", "Homes", "Calculations"]; // we must not use an input as output!!
|
|
396
|
+
// WIP einen first Run mode implementieren, das muss nicht bei jedem Lauf durchgegangen werden
|
|
380
397
|
for (const channel in this.adapter.config.CalculatorList) {
|
|
381
398
|
if (!this.adapter.config.CalculatorList[channel] ||
|
|
382
399
|
!this.adapter.config.CalculatorList[channel].chTargetState ||
|
|
@@ -390,6 +407,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
390
407
|
if (!chTargetStateComponents.includes(badComponent))
|
|
391
408
|
foundAllBadComponents = false;
|
|
392
409
|
});
|
|
410
|
+
// WIP - oder enthält "Output"....
|
|
393
411
|
if (foundAllBadComponents) {
|
|
394
412
|
this.adapter.log.error(`Invalid destination state defined in calculator channel ${channel}. Please avoid specifying the activation state of this channel as the destination. Skipping channel execution.`);
|
|
395
413
|
continue;
|
|
@@ -407,6 +425,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
407
425
|
if (!chTargetState2Components.includes(badComponent))
|
|
408
426
|
foundAllBadComponents = false;
|
|
409
427
|
});
|
|
428
|
+
// WIP - oder enthält "Output"....
|
|
410
429
|
if (foundAllBadComponents) {
|
|
411
430
|
this.adapter.log.error(`Invalid second destination state defined in calculator channel ${channel}. Please avoid specifying the activation state of this channel as the destination. Skipping channel execution.`);
|
|
412
431
|
continue;
|
|
@@ -432,8 +451,14 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
432
451
|
case tibberHelper_1.enCalcType.BestHoursBlockLTF:
|
|
433
452
|
this.executeCalculatorBestHoursBlock(parseInt(channel), true);
|
|
434
453
|
break;
|
|
435
|
-
case tibberHelper_1.enCalcType.SmartBatteryBuffer:
|
|
436
|
-
|
|
454
|
+
case tibberHelper_1.enCalcType.SmartBatteryBuffer: // If Active=false been set just now - or still active then act - else just produce debug log in the following runs
|
|
455
|
+
// WIP #332 - 2.3.1
|
|
456
|
+
if (this.adapter.config.CalculatorList[channel].chActive || onStateChange) {
|
|
457
|
+
this.executeCalculatorSmartBatteryBuffer(parseInt(channel));
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
this.adapter.log.debug(`calculator channel: ${channel}-smart battery buffer; execution skipped because channel not set to active in channel states`);
|
|
461
|
+
}
|
|
437
462
|
break;
|
|
438
463
|
default:
|
|
439
464
|
this.adapter.log.debug(`unknown value for calculator type: ${this.adapter.config.CalculatorList[channel].chType}`);
|
|
@@ -457,9 +482,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
457
482
|
}
|
|
458
483
|
}
|
|
459
484
|
}
|
|
460
|
-
async executeCalculatorBestCost(channel, modeLTF) {
|
|
461
|
-
if (modeLTF === undefined)
|
|
462
|
-
modeLTF = false;
|
|
485
|
+
async executeCalculatorBestCost(channel, modeLTF = false) {
|
|
463
486
|
try {
|
|
464
487
|
let valueToSet = "";
|
|
465
488
|
const now = new Date();
|
|
@@ -500,9 +523,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
500
523
|
this.adapter.log.warn(this.generateErrorMessage(error, `execute calculator for best price ${modeLTF ? "LTF " : ""}in channel ${channel}`));
|
|
501
524
|
}
|
|
502
525
|
}
|
|
503
|
-
async executeCalculatorBestSingleHours(channel, modeLTF) {
|
|
504
|
-
if (modeLTF === undefined)
|
|
505
|
-
modeLTF = false;
|
|
526
|
+
async executeCalculatorBestSingleHours(channel, modeLTF = false) {
|
|
506
527
|
try {
|
|
507
528
|
let valueToSet = "";
|
|
508
529
|
const now = new Date();
|
|
@@ -564,9 +585,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
564
585
|
this.adapter.log.warn(this.generateErrorMessage(error, `execute calculator for best single hours ${modeLTF ? "LTF " : ""}in channel ${channel}`));
|
|
565
586
|
}
|
|
566
587
|
}
|
|
567
|
-
async executeCalculatorBestHoursBlock(channel, modeLTF) {
|
|
568
|
-
if (modeLTF === undefined)
|
|
569
|
-
modeLTF = false;
|
|
588
|
+
async executeCalculatorBestHoursBlock(channel, modeLTF = false) {
|
|
570
589
|
try {
|
|
571
590
|
let valueToSet = "";
|
|
572
591
|
const now = new Date();
|
|
@@ -652,6 +671,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
652
671
|
}
|
|
653
672
|
}
|
|
654
673
|
async executeCalculatorSmartBatteryBuffer(channel) {
|
|
674
|
+
//#region *** SPECIFICATION ***
|
|
655
675
|
/*
|
|
656
676
|
Summary:
|
|
657
677
|
Develop a channel that categorizes hourly energy prices into three groups—cheap, normal, and expensive.
|
|
@@ -680,6 +700,7 @@ class TibberCalculator extends tibberHelper_1.TibberHelper {
|
|
|
680
700
|
- Normal Hours - disable battery charging (OFF-1) and also disable feed into home energy system (OFF-2)
|
|
681
701
|
- Expensive Hours - disable battery charging (OFF-1) and enable feed into home energy system (ON-2)
|
|
682
702
|
*/
|
|
703
|
+
//#endregion
|
|
683
704
|
try {
|
|
684
705
|
let valueToSet = "";
|
|
685
706
|
let valueToSet2 = "";
|