iobroker.sun2000 2.4.5 → 2.5.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.
package/lib/tools.js CHANGED
@@ -166,6 +166,11 @@ class RiemannSum {
166
166
  constructor(autoResetAtMitnight = true) {
167
167
  this._resetAtMitnight = autoResetAtMitnight;
168
168
  this.reset();
169
+ this._startInitialized = false;
170
+ }
171
+
172
+ get startInitialized() {
173
+ return this._startInitialized;
169
174
  }
170
175
 
171
176
  get lastDate() {
@@ -211,10 +216,17 @@ class RiemannSum {
211
216
  return this._sum;
212
217
  }
213
218
 
214
- setStart(sum, ts) {
219
+ setStart(sum, ts, setStartInitialized = true) {
215
220
  if (!isNaN(sum)) {
216
221
  this._sum = sum;
217
- this._lastDate = new Date(ts);
222
+ if (ts === undefined) {
223
+ this._lastDate = new Date();
224
+ } else {
225
+ this._lastDate = new Date(ts);
226
+ }
227
+ if (setStartInitialized) {
228
+ this._startInitialized = true;
229
+ }
218
230
  } else {
219
231
  this.reset();
220
232
  }
@@ -253,7 +265,7 @@ const createAsyncLock = () => {
253
265
  /**
254
266
  * Warten auf einen Wert, der von einer Funktion zurückgegeben wird.
255
267
  * Der Wert wird alle 100ms geprüft. Wenn der Wert innerhalb der angegebenen Zeit nicht gesetzt wurde, wird ein Timeout-Fehler zurückgegeben.
256
- * @param {Function} func - Die Funktion, die den Wert zurückgibt.
268
+ * @param {unknown} func - Die Funktion, die den Wert zurückgibt.
257
269
  * @param {number} [timeout] - Die maximale Wartezeit in ms.
258
270
  * @returns {Promise} - Ein Promise, das den Wert zurückgibt oder einen Timeout-Fehler wirft.
259
271
  */
package/main.js CHANGED
@@ -486,6 +486,8 @@ class Sun2000 extends utils.Adapter {
486
486
  //further battery register
487
487
  this.settings.ds.batteryUnits = this.config.ds_bu;
488
488
  this.settings.ds.batteryPacks = this.config.ds_bp;
489
+ //statistics
490
+ this.settings.statistics = { liveInterval: this.config.stat_liveInterval || 5 }; //min
489
491
 
490
492
  if (this.settings.modbusAdjust) {
491
493
  await this.setState('info.JSONhealth', { val: '{message: "Adjust modbus settings"}', ack: true });
@@ -684,6 +686,9 @@ class Sun2000 extends utils.Adapter {
684
686
  this.mitnightTimer && this.clearTimeout(this.mitnightTimer);
685
687
  this.watchDogHandle && this.clearInterval(this.watchDogHandle);
686
688
  this.modbusClient && this.modbusClient.close();
689
+ if (typeof this.state.destroy === 'function') {
690
+ this.state.destroy();
691
+ }
687
692
  this.setState('info.connection', false, true);
688
693
  callback();
689
694
  } catch {
@@ -747,6 +752,13 @@ class Sun2000 extends utils.Adapter {
747
752
  this.state.statistics.handleTemplateChange(chartType, state);
748
753
  }
749
754
  }
755
+
756
+ //sun2000.0.statistics.dataDef.consumptionBreakdown
757
+ if (idArray[2] == 'statistics' && idArray[3] == 'dataDef' && idArray[4] == 'consumptionBreakdown') {
758
+ if (this.state.statistics && typeof this.state.statistics.handleBreakdownChange === 'function') {
759
+ this.state.statistics.handleBreakdownChange(state);
760
+ }
761
+ }
750
762
  } else {
751
763
  // The state was deleted
752
764
  this.logger.info(`state ${id} deleted`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.sun2000",
3
- "version": "2.4.5",
3
+ "version": "2.5.0",
4
4
  "description": "sun2000",
5
5
  "author": {
6
6
  "name": "bolliy",
@@ -24,7 +24,7 @@
24
24
  "url": "https://github.com/bolliy/ioBroker.sun2000.git"
25
25
  },
26
26
  "engines": {
27
- "node": ">= 20"
27
+ "node": ">= 22"
28
28
  },
29
29
  "dependencies": {
30
30
  "@iobroker/adapter-core": "^3.3.2",
@@ -34,17 +34,16 @@
34
34
  "javascript-stringify": "^2.1.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@alcalzone/release-script": "^5.1.1",
38
- "@alcalzone/release-script-plugin-iobroker": "^5.1.2",
39
- "@alcalzone/release-script-plugin-license": "^5.1.1",
40
- "@alcalzone/release-script-plugin-manual-review": "^5.1.1",
37
+ "@alcalzone/release-script": "^5.2.1",
38
+ "@alcalzone/release-script-plugin-iobroker": "^5.2.0",
39
+ "@alcalzone/release-script-plugin-license": "^5.2.0",
40
+ "@alcalzone/release-script-plugin-manual-review": "^5.2.0",
41
41
  "@iobroker/adapter-dev": "^1.5.0",
42
- "@iobroker/eslint-config": "^2.2.0",
42
+ "@iobroker/eslint-config": "^2.3.4",
43
43
  "@iobroker/testing": "^5.2.2",
44
44
  "@tsconfig/node22": "^22.0.5",
45
- "@types/node": "^25.6.0",
46
- "globals": "^16.5.0",
47
- "typescript": "~5.9.3"
45
+ "@types/node": "^22.19.19",
46
+ "typescript": "~6.0.3"
48
47
  },
49
48
  "main": "main.js",
50
49
  "files": [