iobroker.tibberlink 5.0.3 → 6.0.0-beta.1

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 CHANGED
@@ -164,6 +164,21 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
164
164
  Placeholder for the next version (at the beginning of the line):
165
165
  ### **WORK IN PROGRESS**
166
166
  -->
167
+
168
+ ### 6.0.0-beta.1 (2025-10-03)
169
+
170
+ - (HombachC) BREAKING: hourly price states (0...23) are now quarterhourly (0...95)
171
+ - (HombachC) change price updates to 15 minutes resolution as default
172
+ - (HombachC) update tibber-api to 5.5.2
173
+ - (HombachC) update typescript to 5.9.3 (#777)
174
+ - (HombachC) add names to prices state folders
175
+
176
+ ### 5.0.4 (2025-09-27)
177
+
178
+ - (HombachC) prepared price updates to 15 minutes resolution (#384)
179
+ - (HombachC) update tibber-api to 5.4.2
180
+ - (HombachC) update chai system
181
+
167
182
  ### 5.0.3 (2025-09-17)
168
183
 
169
184
  - (HombachC) fix jsonconfig schema definition (#762)
@@ -177,27 +192,6 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
177
192
  - (HombachC) bump typescript
178
193
  - (HombachC) bump dependencies
179
194
 
180
- ### 5.0.1 (2025-08-15)
181
-
182
- - (HombachC) add decoder for EMH eHZB IMSys
183
- - (HombachC) remove creation of not feeded states
184
- - (HombachC) fix typo in error message (#731)
185
- - (HombachC) fix vulnerability
186
- - (HombachC) change power production to be polled by default (#721)
187
- - (HombachC) bump dependencies
188
-
189
- ### 5.0.0 (2025-05-30)
190
-
191
- - (HombachC) BREAKING: dropped node.js 18 support (#703)
192
- - (HombachC) BREAKING: dropped js-controller 5 support (#703)
193
- - (HombachC) add tests for node.js 24 (#717)
194
-
195
- ### 4.5.4 (2025-05-18)
196
-
197
- - (HombachC) fix special cases of local export value (#704)
198
- - (HombachC) remove tests for node.js 18
199
- - (HombachC) optimize asynchron code
200
-
201
195
  ### Old Changes see [CHANGELOG OLD](CHANGELOG_OLD.md)
202
196
 
203
197
  ## License
@@ -108,13 +108,13 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
108
108
  }
109
109
  return false;
110
110
  }
111
- async updatePricesTodayAllHomes(homeInfoList, forceUpdate = false) {
111
+ async updatePricesTodayAllHomes(homeInfoList, resolution, forceUpdate = false) {
112
112
  let okprice = true;
113
113
  for (const curHomeInfo of homeInfoList) {
114
114
  if (!curHomeInfo.PriceDataPollActive) {
115
115
  continue;
116
116
  }
117
- if (!(await this.updatePricesToday(curHomeInfo.ID, forceUpdate))) {
117
+ if (!(await this.updatePricesToday(curHomeInfo.ID, resolution, forceUpdate))) {
118
118
  okprice = false;
119
119
  }
120
120
  else {
@@ -124,7 +124,7 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
124
124
  }
125
125
  return okprice;
126
126
  }
127
- async updatePricesToday(homeId, forceUpdate = false) {
127
+ async updatePricesToday(homeId, resolution, forceUpdate = false) {
128
128
  try {
129
129
  let exDate = null;
130
130
  let exPricesToday = [];
@@ -137,7 +137,7 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
137
137
  const today = new Date();
138
138
  today.setHours(0, 0, 0, 0);
139
139
  if (!exDate || exDate <= today || forceUpdate) {
140
- const pricesToday = await this.tibberQuery.getTodaysEnergyPrices(homeId);
140
+ const pricesToday = await this.tibberQuery.getTodaysEnergyPrices(homeId, resolution);
141
141
  if (!(Array.isArray(pricesToday) && pricesToday.length > 0 && pricesToday[2]?.total)) {
142
142
  throw new Error(`Got invalid data structure from Tibber [you might not have a valid (or fully confirmed) contract]`);
143
143
  }
@@ -146,11 +146,11 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
146
146
  void this.checkAndSetValue(`Homes.${homeId}.PricesYesterday.json`, JSON.stringify(exPricesToday), "The prices yesterday as json");
147
147
  this.fetchPriceAverage(homeId, `PricesToday.average`, pricesToday);
148
148
  this.fetchPriceRemainingAverage(homeId, `PricesToday.averageRemaining`, pricesToday);
149
- this.fetchPriceMaximum(homeId, `PricesToday.maximum`, pricesToday.sort((a, b) => a.total - b.total));
150
- this.fetchPriceMinimum(homeId, `PricesToday.minimum`, pricesToday.sort((a, b) => a.total - b.total));
151
- for (const price of pricesToday) {
152
- const hour = new Date(price.startsAt.substr(0, 19)).getHours();
153
- await this.fetchPrice(homeId, `PricesToday.${hour}`, price);
149
+ this.fetchPriceMaximum(homeId, `PricesToday.maximum`, pricesToday);
150
+ this.fetchPriceMinimum(homeId, `PricesToday.minimum`, pricesToday);
151
+ for (let i = 0; i < pricesToday.length; i++) {
152
+ const price = pricesToday[i];
153
+ await this.fetchPrice(homeId, `PricesToday.${i}`, price);
154
154
  }
155
155
  if (Array.isArray(pricesToday) && pricesToday[2]?.startsAt) {
156
156
  void this.checkAndSetValue(`Homes.${homeId}.PricesToday.jsonBYpriceASC`, JSON.stringify(pricesToday.sort((a, b) => a.total - b.total)), "prices sorted by cost ascending as json");
@@ -180,13 +180,13 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
180
180
  }
181
181
  return false;
182
182
  }
183
- async updatePricesTomorrowAllHomes(homeInfoList, forceUpdate = false) {
183
+ async updatePricesTomorrowAllHomes(homeInfoList, resolution, forceUpdate = false) {
184
184
  let okprice = true;
185
185
  for (const curHomeInfo of homeInfoList) {
186
186
  if (!curHomeInfo.PriceDataPollActive) {
187
187
  continue;
188
188
  }
189
- if (!(await this.updatePricesTomorrow(curHomeInfo.ID, forceUpdate))) {
189
+ if (!(await this.updatePricesTomorrow(curHomeInfo.ID, resolution, forceUpdate))) {
190
190
  okprice = false;
191
191
  }
192
192
  else {
@@ -196,7 +196,7 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
196
196
  }
197
197
  return okprice;
198
198
  }
199
- async updatePricesTomorrow(homeId, forceUpdate = false) {
199
+ async updatePricesTomorrow(homeId, resolution, forceUpdate = false) {
200
200
  try {
201
201
  let exDate = null;
202
202
  let exPricesTomorrow = [];
@@ -210,7 +210,7 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
210
210
  morgen.setDate(morgen.getDate() + 1);
211
211
  morgen.setHours(0, 0, 0, 0);
212
212
  if (!exDate || exDate < morgen || forceUpdate) {
213
- const pricesTomorrow = await this.tibberQuery.getTomorrowsEnergyPrices(homeId);
213
+ const pricesTomorrow = await this.tibberQuery.getTomorrowsEnergyPrices(homeId, resolution);
214
214
  this.adapter.log.debug(`Got prices tomorrow from tibber api: ${JSON.stringify(pricesTomorrow)} Force: ${forceUpdate}`);
215
215
  void this.checkAndSetValue(`Homes.${homeId}.PricesTomorrow.json`, JSON.stringify(pricesTomorrow), "The prices tomorrow as json");
216
216
  if (pricesTomorrow.length === 0) {
@@ -225,13 +225,13 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
225
225
  return false;
226
226
  }
227
227
  else if (Array.isArray(pricesTomorrow)) {
228
- for (const price of pricesTomorrow) {
229
- const hour = new Date(price.startsAt.substr(0, 19)).getHours();
230
- await this.fetchPrice(homeId, `PricesTomorrow.${hour}`, price);
228
+ for (let i = 0; i < pricesTomorrow.length; i++) {
229
+ const price = pricesTomorrow[i];
230
+ await this.fetchPrice(homeId, `PricesTomorrow.${i}`, price);
231
231
  }
232
232
  this.fetchPriceAverage(homeId, `PricesTomorrow.average`, pricesTomorrow);
233
- this.fetchPriceMaximum(homeId, `PricesTomorrow.maximum`, pricesTomorrow.sort((a, b) => a.total - b.total));
234
- this.fetchPriceMinimum(homeId, `PricesTomorrow.minimum`, pricesTomorrow.sort((a, b) => a.total - b.total));
233
+ this.fetchPriceMaximum(homeId, `PricesTomorrow.maximum`, pricesTomorrow);
234
+ this.fetchPriceMinimum(homeId, `PricesTomorrow.minimum`, pricesTomorrow);
235
235
  void this.checkAndSetValue(`Homes.${homeId}.PricesTomorrow.jsonBYpriceASC`, JSON.stringify(pricesTomorrow.sort((a, b) => a.total - b.total)), "prices sorted by cost ascending as json");
236
236
  exDate = new Date(pricesTomorrow[2].startsAt);
237
237
  if (exDate && exDate >= morgen) {
@@ -288,63 +288,69 @@ class TibberAPICaller extends projectUtils_js_1.ProjectUtils {
288
288
  }
289
289
  async fetchPrice(homeId, objectDestination, price) {
290
290
  const basePath = `Homes.${homeId}.${objectDestination}`;
291
- await this.checkAndSetValueNumber(`${basePath}.total`, price.total, "Total price (energy + taxes)");
292
- void this.checkAndSetValueNumber(`${basePath}.energy`, price.energy, "Spotmarket energy price");
293
- void this.checkAndSetValueNumber(`${basePath}.tax`, price.tax, "Tax part of the price (energy, tax, VAT...)");
294
- void this.checkAndSetValue(`${basePath}.startsAt`, price.startsAt, "Start time of the price");
295
- void this.checkAndSetValue(`${basePath}.level`, price.level, "Price level compared to recent price values");
291
+ const date = new Date(price.startsAt);
292
+ const timeLabel = `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}`;
293
+ await this.adapter.setObject(basePath, {
294
+ type: "folder",
295
+ common: {
296
+ name: `valid from ${timeLabel}`,
297
+ },
298
+ native: {},
299
+ });
300
+ await this.checkAndSetValueNumber(`${basePath}.total`, price.total, `Total price (energy + taxes)`);
301
+ void this.checkAndSetValueNumber(`${basePath}.energy`, price.energy, `Spotmarket energy price`);
302
+ void this.checkAndSetValueNumber(`${basePath}.tax`, price.tax, `Tax part of the price (energy, tax, VAT...)`);
303
+ void this.checkAndSetValue(`${basePath}.startsAt`, price.startsAt, `Start time of the price`);
304
+ void this.checkAndSetValue(`${basePath}.level`, price.level, `Price level compared to recent price values`);
296
305
  }
297
306
  fetchPriceAverage(homeId, objectDestination, price) {
298
- const totalSum = price.reduce((sum, item) => {
299
- if (item && typeof item.total === "number") {
300
- return sum + item.total;
301
- }
302
- return sum;
303
- }, 0);
307
+ if (!price || price.length === 0) {
308
+ return;
309
+ }
310
+ const sumValues = (key) => price.reduce((sum, item) => (item && typeof item[key] === "number" ? sum + item[key] : sum), 0);
304
311
  const basePath = `Homes.${homeId}.${objectDestination}`;
305
- void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * (totalSum / price.length)) / 1000, "Todays total price average");
306
- const energySum = price.reduce((sum, item) => sum + item.energy, 0);
307
- void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * (energySum / price.length)) / 1000, "Todays average spotmarket price");
308
- const taxSum = price.reduce((sum, item) => sum + item.tax, 0);
309
- void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * (taxSum / price.length)) / 1000, "Todays average tax price");
312
+ void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * (sumValues("total") / price.length)) / 1000, "Todays total price average");
313
+ void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * (sumValues("energy") / price.length)) / 1000, "Todays average spotmarket price");
314
+ void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * (sumValues("tax") / price.length)) / 1000, "Todays average tax price");
310
315
  }
311
316
  fetchPriceRemainingAverage(homeId, objectDestination, price) {
317
+ if (!price || price.length === 0) {
318
+ return;
319
+ }
312
320
  const now = new Date();
313
- const currentHour = now.getHours();
314
- const filteredPrices = price.filter(item => {
315
- const itemHour = new Date(item.startsAt).getHours();
316
- return itemHour >= currentHour;
317
- });
318
- const remainingTotalSum = filteredPrices.reduce((sum, item) => {
319
- if (item && typeof item.total === "number") {
320
- return sum + item.total;
321
- }
322
- return sum;
323
- }, 0);
321
+ const remainingPrices = price.filter(item => item && new Date(item.startsAt) >= now);
322
+ if (remainingPrices.length === 0) {
323
+ return;
324
+ }
325
+ const sumValues = (key) => remainingPrices.reduce((sum, item) => (item && typeof item[key] === "number" ? sum + item[key] : sum), 0);
324
326
  const basePath = `Homes.${homeId}.${objectDestination}`;
325
- void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * (remainingTotalSum / filteredPrices.length)) / 1000, "Todays total price remaining average");
326
- const remainingEnergySum = filteredPrices.reduce((sum, item) => sum + item.energy, 0);
327
- void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * (remainingEnergySum / filteredPrices.length)) / 1000, "Todays remaining average spot market price");
328
- const remainingTaxSum = filteredPrices.reduce((sum, item) => sum + item.tax, 0);
329
- void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * (remainingTaxSum / filteredPrices.length)) / 1000, "Todays remaining average tax price");
327
+ void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * (sumValues("total") / remainingPrices.length)) / 1000, "Todays total price remaining average");
328
+ void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * (sumValues("energy") / remainingPrices.length)) / 1000, "Todays remaining average spot market price");
329
+ void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * (sumValues("tax") / remainingPrices.length)) / 1000, "Todays remaining average tax price");
330
330
  }
331
331
  fetchPriceMaximum(homeId, objectDestination, price) {
332
- if (!price || typeof price[23].total !== "number") {
332
+ if (!price || price.length === 0) {
333
+ return;
333
334
  }
335
+ const maxEntry = price.reduce((max, current) => (current.total > max.total ? current : max));
334
336
  const basePath = `Homes.${homeId}.${objectDestination}`;
335
- void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * price[23].total) / 1000, "Todays total price maximum");
336
- void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * price[23].energy) / 1000, "Todays spotmarket price at total price maximum");
337
- void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * price[23].tax) / 1000, "Todays tax price at total price maximum");
338
- void this.checkAndSetValue(`${basePath}.level`, price[23].level, "Price level compared to recent price values");
339
- void this.checkAndSetValue(`${basePath}.startsAt`, price[23].startsAt, "Start time of the price maximum");
337
+ void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * maxEntry.total) / 1000, "Todays total price maximum");
338
+ void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * maxEntry.energy) / 1000, "Todays spotmarket price at total price maximum");
339
+ void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * maxEntry.tax) / 1000, "Todays tax price at total price maximum");
340
+ void this.checkAndSetValue(`${basePath}.level`, maxEntry.level, "Price level compared to recent price values");
341
+ void this.checkAndSetValue(`${basePath}.startsAt`, maxEntry.startsAt, "Start time of the price maximum");
340
342
  }
341
343
  fetchPriceMinimum(homeId, objectDestination, price) {
344
+ if (!price || price.length === 0) {
345
+ return;
346
+ }
347
+ const minEntry = price.reduce((min, current) => (current.total < min.total ? current : min));
342
348
  const basePath = `Homes.${homeId}.${objectDestination}`;
343
- void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * price[0].total) / 1000, "Todays total price minimum");
344
- void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * price[0].energy) / 1000, "Todays spotmarket price at total price minimum");
345
- void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * price[0].tax) / 1000, "Todays tax price at total price minimum");
346
- void this.checkAndSetValue(`${basePath}.level`, price[0].level, "Price level compared to recent price values");
347
- void this.checkAndSetValue(`${basePath}.startsAt`, price[0].startsAt, "Start time of the price minimum");
349
+ void this.checkAndSetValueNumber(`${basePath}.total`, Math.round(1000 * minEntry.total) / 1000, "Todays total price minimum");
350
+ void this.checkAndSetValueNumber(`${basePath}.energy`, Math.round(1000 * minEntry.energy) / 1000, "Todays spotmarket price at total price minimum");
351
+ void this.checkAndSetValueNumber(`${basePath}.tax`, Math.round(1000 * minEntry.tax) / 1000, "Todays tax price at total price minimum");
352
+ void this.checkAndSetValue(`${basePath}.level`, minEntry.level, "Price level compared to recent price values");
353
+ void this.checkAndSetValue(`${basePath}.startsAt`, minEntry.startsAt, "Start time of the price minimum");
348
354
  }
349
355
  emptyingPrice(homeId, objectDestination) {
350
356
  const basePath = `Homes.${homeId}.${objectDestination}`;
@@ -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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"}