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/README.md +5 -5
- package/admin/jsonConfig.json5 +33 -0
- package/io-package.json +16 -15
- package/lib/drivers/driver_emma.js +6 -6
- package/lib/drivers/driver_inverter.js +67 -23
- package/lib/json_helper.js +3 -25
- package/lib/modbus/modbus_server.js +1 -1
- package/lib/register.js +174 -26
- package/lib/statistics/breakdownChartHelper.js +131 -0
- package/lib/statistics/consumptionBreakdown.js +304 -0
- package/lib/statistics/statistics.js +1453 -0
- package/lib/tools.js +15 -3
- package/main.js +12 -0
- package/package.json +9 -10
- package/lib/statistics.js +0 -1412
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
|
-
|
|
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 {
|
|
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.
|
|
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": ">=
|
|
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.
|
|
38
|
-
"@alcalzone/release-script-plugin-iobroker": "^5.
|
|
39
|
-
"@alcalzone/release-script-plugin-license": "^5.
|
|
40
|
-
"@alcalzone/release-script-plugin-manual-review": "^5.
|
|
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.
|
|
42
|
+
"@iobroker/eslint-config": "^2.3.4",
|
|
43
43
|
"@iobroker/testing": "^5.2.2",
|
|
44
44
|
"@tsconfig/node22": "^22.0.5",
|
|
45
|
-
"@types/node": "^
|
|
46
|
-
"
|
|
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": [
|