iobroker.senec 1.6.7 → 1.6.9
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 +15 -20
- package/admin/jsonConfig.json +100 -66
- package/io-package.json +54 -43
- package/main.js +69 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,8 +16,11 @@
|
|
|
16
16
|
[Dokumentation DE](docs/de/README.md)<br>
|
|
17
17
|
[Documentation EN](docs/en/README.md)
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
Initially targeted at the Senec Home V2.1 System.
|
|
20
|
+
In the Senec.Home system, only selected values can be changed by the adapter. Use of this functionality is at your own risk and must be activated manually in the configuration beforehand.
|
|
21
|
+
Senec currently also no longer provides a reliable way to influence peak shaving via the web interface. For this purpose, mein-senec.de must be used.
|
|
22
|
+
Whether other systems (e.g. V3) also work with it depends on whether they are also based on lala.cgi and provide the same JSON information.
|
|
23
|
+
Even with integration into the Senec.Clound it is not guaranteed that the data can still be retrieved via the web interface (for this please report your experiences).
|
|
21
24
|
|
|
22
25
|
Systems that might work:
|
|
23
26
|
* Senec Home 4.0 / Blei
|
|
@@ -40,6 +43,8 @@ Systems that might work:
|
|
|
40
43
|
* OEM LG
|
|
41
44
|
* Solarinvert Storage 10.0 / Blei
|
|
42
45
|
|
|
46
|
+
SENEC Systems that don't provide a local webinterface might be monitored by using the API functionality only. Please contact the developer if you have any input on this.
|
|
47
|
+
|
|
43
48
|
## Disclaimer
|
|
44
49
|
**All product and company names or logos are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them or any associated subsidiaries! This personal project is maintained in spare time and has no business goal.**
|
|
45
50
|
|
|
@@ -293,6 +298,14 @@ This channel contains values polled from SENEC App-API.
|
|
|
293
298
|
|
|
294
299
|
|
|
295
300
|
## Changelog
|
|
301
|
+
### 1.6.9 (NoBl)
|
|
302
|
+
* Added switch in config to enable active control of appliance (you will need activate this, if you want to control the appliance via the adapter)
|
|
303
|
+
* Improved handling of forced loading (please report if we need more appliance-states covered by this)
|
|
304
|
+
* Minor improvements and bugfixes
|
|
305
|
+
|
|
306
|
+
### 1.6.8 (NoBl)
|
|
307
|
+
* Added switch control.ForceLoadBattery to start/stop charging battery. Use this to start/stop forced charging (like with dynamic power prices, ...).
|
|
308
|
+
|
|
296
309
|
### 1.6.7 (NoBl)
|
|
297
310
|
* Added option to turn off local polling.
|
|
298
311
|
|
|
@@ -332,24 +345,6 @@ This channel contains values polled from SENEC App-API.
|
|
|
332
345
|
* ALL Wallbox datapoints have been removed from high priority polling. Only some users even have a SENEC wallbox. Please reconfigure via the new config dialogue.
|
|
333
346
|
* Possible Candidate for stable. Please report any findings!
|
|
334
347
|
|
|
335
|
-
### 1.4.3 (NoBl)
|
|
336
|
-
* Working on https connection. Please test and report!
|
|
337
|
-
|
|
338
|
-
### 1.4.2 (NoBl)
|
|
339
|
-
* Added option to use https for connecting to SENEC (only activate if your appliance supports / requires this!)
|
|
340
|
-
|
|
341
|
-
### 1.4.1 (NoBl)
|
|
342
|
-
* Fix: Autarky calculations are working again.
|
|
343
|
-
|
|
344
|
-
### 1.4.0 (NoBl)
|
|
345
|
-
* Added object caching along with some minor code updates. Due to the amount of objects we deal with caching is about mandatory.
|
|
346
|
-
|
|
347
|
-
### 1.3.10 (NoBl)
|
|
348
|
-
* Fixed wrong Unit for STATISTIC.LIVE_WB_ENERGY
|
|
349
|
-
* Updated to json Admin UI
|
|
350
|
-
* Technical Updates
|
|
351
|
-
* Added more state_attr definitions
|
|
352
|
-
|
|
353
348
|
### [Former Updates](CHANGELOG_old.md)
|
|
354
349
|
|
|
355
350
|
## License
|
package/admin/jsonConfig.json
CHANGED
|
@@ -52,6 +52,40 @@
|
|
|
52
52
|
"default": true,
|
|
53
53
|
"newLine": true
|
|
54
54
|
},
|
|
55
|
+
"control_active": {
|
|
56
|
+
"type": "checkbox",
|
|
57
|
+
"sm": 12,
|
|
58
|
+
"md": 6,
|
|
59
|
+
"lg": 6,
|
|
60
|
+
"label": {
|
|
61
|
+
"en": "Activate active appliance control",
|
|
62
|
+
"de": "Aktive Gerätesteuerung aktivieren",
|
|
63
|
+
"ru": "Активировать активный контроль качества",
|
|
64
|
+
"pt": "Ativar o controle ativo do aparelho",
|
|
65
|
+
"nl": "Activeer actieve controle",
|
|
66
|
+
"fr": "Activer le contrôle des appareils actifs",
|
|
67
|
+
"it": "Attivare il controllo degli apparecchi attivi",
|
|
68
|
+
"es": "Activar el control activo del dispositivo",
|
|
69
|
+
"pl": "Aktywnie działające urządzenia kontrolne",
|
|
70
|
+
"uk": "Активувати активний контроль додатків",
|
|
71
|
+
"zh-cn": "积极控制"
|
|
72
|
+
},
|
|
73
|
+
"help": {
|
|
74
|
+
"en": "lala.cgi connection reuquired! When activated it is possible to control SENEC appliance via 'control' datapoints. You accept any potential risks incurred by activating this option possibly including loss of warranty.",
|
|
75
|
+
"de": "lala.cgi Verbindung erforderlich! Mit Aktivierung ist es möglich, das SENEC Gerät über die 'control' Datenpunkte zu steuern. Sie akzeptieren potenzielle Risiken, die durch die Aktivierung dieser Option entstehen, einschließlich eines möglichen Garantieverlusts.",
|
|
76
|
+
"ru": "lala.cgi соединение reuquired! При активации можно контролировать приборы SENEC с помощью контрольных точек данных. Вы принимаете любые потенциальные риски, понесенные в действие этот вариант, возможно, включая потерю гарантии.",
|
|
77
|
+
"pt": "lala.cgi conexão reuquired! Quando ativado é possível controlar o aparelho SENEC através de datapoints de controle. Você aceita quaisquer riscos potenciais incorridos ativando esta opção possivelmente incluindo perda de garantia.",
|
|
78
|
+
"nl": "lala.cgi connectie vernieuwd! Als het geactiveerd is, is het mogelijk om SENEC toepassing te controleren via controlegegevens. Je accepteert potentiële risico's door deze optie te activeren inclusief het verlies van huiszoekingsbevel.",
|
|
79
|
+
"fr": "lala.cgi connexion reuquired! Lorsqu'il est activé, il est possible de contrôler l'appareil SENEC via des points de données de contrôle. Vous acceptez tout risque potentiel en activant cette option, y compris la perte de garantie.",
|
|
80
|
+
"it": "collegamento lala.cgi richiesto! Quando è attivato è possibile controllare l'apparecchio SENEC tramite i datapoint di controllo. Accetti eventuali rischi potenziali sostenuti attivando questa opzione eventualmente inclusa la perdita di garanzia.",
|
|
81
|
+
"es": "lala.cgi conexión reuquired! Cuando se activa es posible controlar el dispositivo SENEC a través de puntos de datos de control. Usted acepta cualquier riesgo potencial incurrido activando esta opción posiblemente incluyendo la pérdida de garantía.",
|
|
82
|
+
"pl": "lala.cgi connection reuquired (ang.). Po uruchomieniu może kontrolować urządzenia SENEC poprzez punkty kontroli danych. Przyjmujesz jakiekolwiek potencjalne ryzyko zanieczyszczeń poprzez aktywację tej możliwości, w tym utratę gwarancji.",
|
|
83
|
+
"uk": "lala.cgi підключення reuquired! При активації можна керувати за допомогою контрольних точок даних. Ви приймаєте будь-які потенційні ризики, що виникли внаслідок активації цього варіанту, можливо, включаючи втрату гарантії.",
|
|
84
|
+
"zh-cn": "lala.cgi的联系 询问! 在启动时,可通过控制数据点控制SENECliance。 你接受采取这种选择可能带来的任何潜在风险,包括丧失逮捕证。."
|
|
85
|
+
},
|
|
86
|
+
"default": false,
|
|
87
|
+
"newLine": false
|
|
88
|
+
},
|
|
55
89
|
"senecip": {
|
|
56
90
|
"type": "text",
|
|
57
91
|
"sm": 12,
|
|
@@ -368,17 +402,17 @@
|
|
|
368
402
|
"zh-cn": "高级Prio Polling BMS-Datapoint"
|
|
369
403
|
},
|
|
370
404
|
"help": {
|
|
371
|
-
"en": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
372
|
-
"de": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
373
|
-
"ru": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
374
|
-
"pt": "Auto-Adicionado: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
375
|
-
"nl": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
376
|
-
"fr": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
377
|
-
"it": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
378
|
-
"es": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
379
|
-
"pl": "Auto-Added: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
380
|
-
"uk": "Автододаток: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE",
|
|
381
|
-
"zh-cn": "自动: CELL_TEMPERATURES_MODULE_A,CELL_TEMPERATURES_MODULE_B,CELL_TEMPERATURES_MODULE_C,CELL_TEMPERATURES_MODULE_D,CELL_VOLTAGES_MODULE_A,CELL_VOLTAGES_MODULE_B,CELL_VOLTAGES_MODULE_C,CELL_VOLTAGES_MODULE_D,CURRENT,SOC,SYSTEM_SOC,TEMP_MAX,TEMP_MIN,VOLTAGE"
|
|
405
|
+
"en": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
406
|
+
"de": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
407
|
+
"ru": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
408
|
+
"pt": "Auto-Adicionado: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
409
|
+
"nl": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
410
|
+
"fr": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
411
|
+
"it": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
412
|
+
"es": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
413
|
+
"pl": "Auto-Added: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
414
|
+
"uk": "Автододаток: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE",
|
|
415
|
+
"zh-cn": "自动: CELL_TEMPERATURES_MODULE_A, CELL_TEMPERATURES_MODULE_B, CELL_TEMPERATURES_MODULE_C, CELL_TEMPERATURES_MODULE_D, CELL_VOLTAGES_MODULE_A, CELL_VOLTAGES_MODULE_B, CELL_VOLTAGES_MODULE_C, CELL_VOLTAGES_MODULE_D, CURRENT, SOC, SYSTEM_SOC, TEMP_MAX, TEMP_MIN, VOLTAGE"
|
|
382
416
|
},
|
|
383
417
|
"default": "",
|
|
384
418
|
"newLine": true
|
|
@@ -423,17 +457,17 @@
|
|
|
423
457
|
"zh-cn": "高级Prio Polling ENERGY-Datapoint"
|
|
424
458
|
},
|
|
425
459
|
"help": {
|
|
426
|
-
"en": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
427
|
-
"de": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
428
|
-
"ru": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
429
|
-
"pt": "Auto-Adicionado: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
430
|
-
"nl": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
431
|
-
"fr": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
432
|
-
"it": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
433
|
-
"es": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
434
|
-
"pl": "Auto-Added: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
435
|
-
"uk": "Автододаток: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW",
|
|
436
|
-
"zh-cn": "自动: STAT_STATE,GUI_BAT_DATA_POWER,GUI_INVERTER_POWER,GUI_HOUSE_POW,GUI_GRID_POW,GUI_BAT_DATA_FUEL_CHARGE,GUI_CHARGING_INFO,GUI_BOOSTING_INFO,GUI_BAT_DATA_POWER,GUI_BAT_DATA_VOLTAGE,GUI_BAT_DATA_CURRENT,GUI_BAT_DATA_FUEL_CHARGE,GUI_BAT_DATA_OA_CHARGING,STAT_LIMITED_NET_SKEW"
|
|
460
|
+
"en": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
461
|
+
"de": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
462
|
+
"ru": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
463
|
+
"pt": "Auto-Adicionado: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
464
|
+
"nl": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
465
|
+
"fr": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
466
|
+
"it": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
467
|
+
"es": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
468
|
+
"pl": "Auto-Added: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
469
|
+
"uk": "Автододаток: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING",
|
|
470
|
+
"zh-cn": "自动: STAT_STATE, GUI_BAT_DATA_POWER, GUI_INVERTER_POWER, GUI_HOUSE_POW, GUI_GRID_POW, GUI_BAT_DATA_FUEL_CHARGE, GUI_CHARGING_INFO, GUI_BOOSTING_INFO, GUI_BAT_DATA_POWER, GUI_BAT_DATA_VOLTAGE, GUI_BAT_DATA_CURRENT, GUI_BAT_DATA_FUEL_CHARGE, GUI_BAT_DATA_OA_CHARGING, STAT_LIMITED_NET_SKEW, SAFE_CHARGE_FORCE, SAFE_CHARGE_PROHIBIT, SAFE_CHARGE_RUNNING"
|
|
437
471
|
},
|
|
438
472
|
"default": "",
|
|
439
473
|
"newLine": true
|
|
@@ -478,17 +512,17 @@
|
|
|
478
512
|
"zh-cn": "高级Prio Polling PV1-Datapoint"
|
|
479
513
|
},
|
|
480
514
|
"help": {
|
|
481
|
-
"en": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
482
|
-
"de": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
483
|
-
"ru": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
484
|
-
"pt": "Auto-Adicionado: POWER_RATIO,MPP_POWER",
|
|
485
|
-
"nl": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
486
|
-
"fr": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
487
|
-
"it": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
488
|
-
"es": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
489
|
-
"pl": "Auto-Added: POWER_RATIO,MPP_POWER",
|
|
490
|
-
"uk": "Автододаток: POWER_RATIO,MPP_POWER",
|
|
491
|
-
"zh-cn": "自动: POWER_RATIO,MPP_POWER"
|
|
515
|
+
"en": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
516
|
+
"de": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
517
|
+
"ru": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
518
|
+
"pt": "Auto-Adicionado: POWER_RATIO, MPP_POWER",
|
|
519
|
+
"nl": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
520
|
+
"fr": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
521
|
+
"it": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
522
|
+
"es": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
523
|
+
"pl": "Auto-Added: POWER_RATIO, MPP_POWER",
|
|
524
|
+
"uk": "Автододаток: POWER_RATIO, MPP_POWER",
|
|
525
|
+
"zh-cn": "自动: POWER_RATIO, MPP_POWER"
|
|
492
526
|
},
|
|
493
527
|
"default": "",
|
|
494
528
|
"newLine": true
|
|
@@ -533,17 +567,17 @@
|
|
|
533
567
|
"zh-cn": "高级Prio Polling PWR_UNIT-Datapoint"
|
|
534
568
|
},
|
|
535
569
|
"help": {
|
|
536
|
-
"en": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
537
|
-
"de": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
538
|
-
"ru": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
539
|
-
"pt": "Auto-Adicionado: POWER_L1,POWER_L2,POWER_L3",
|
|
540
|
-
"nl": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
541
|
-
"fr": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
542
|
-
"it": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
543
|
-
"es": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
544
|
-
"pl": "Auto-Added: POWER_L1,POWER_L2,POWER_L3",
|
|
545
|
-
"uk": "Автододаток: POWER_L1,POWER_L2,POWER_L3",
|
|
546
|
-
"zh-cn": "自动: POWER_L1,POWER_L2,POWER_L3"
|
|
570
|
+
"en": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
571
|
+
"de": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
572
|
+
"ru": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
573
|
+
"pt": "Auto-Adicionado: POWER_L1, POWER_L2, POWER_L3",
|
|
574
|
+
"nl": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
575
|
+
"fr": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
576
|
+
"it": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
577
|
+
"es": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
578
|
+
"pl": "Auto-Added: POWER_L1, POWER_L2, POWER_L3",
|
|
579
|
+
"uk": "Автододаток: POWER_L1, POWER_L2, POWER_L3",
|
|
580
|
+
"zh-cn": "自动: POWER_L1, POWER_L2, POWER_L3"
|
|
547
581
|
},
|
|
548
582
|
"default": "",
|
|
549
583
|
"newLine": true
|
|
@@ -588,17 +622,17 @@
|
|
|
588
622
|
"zh-cn": "高级Prio Polling PM1OBJ1-Datapoint"
|
|
589
623
|
},
|
|
590
624
|
"help": {
|
|
591
|
-
"en": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
592
|
-
"de": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
593
|
-
"ru": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
594
|
-
"pt": "Auto-Adicionado: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
595
|
-
"nl": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
596
|
-
"fr": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
597
|
-
"it": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
598
|
-
"es": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
599
|
-
"pl": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
600
|
-
"uk": "Автододаток: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
601
|
-
"zh-cn": "自动: FREQ,
|
|
625
|
+
"en": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
626
|
+
"de": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
627
|
+
"ru": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
628
|
+
"pt": "Auto-Adicionado: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
629
|
+
"nl": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
630
|
+
"fr": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
631
|
+
"it": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
632
|
+
"es": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
633
|
+
"pl": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
634
|
+
"uk": "Автододаток: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
635
|
+
"zh-cn": "自动: FREQ, U_AC, I_AC, P_AC, P_TOTAL"
|
|
602
636
|
},
|
|
603
637
|
"default": "",
|
|
604
638
|
"newLine": true
|
|
@@ -643,17 +677,17 @@
|
|
|
643
677
|
"zh-cn": "高级Prio Polling PM1OBJ2-Datapoint"
|
|
644
678
|
},
|
|
645
679
|
"help": {
|
|
646
|
-
"en": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
647
|
-
"de": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
648
|
-
"ru": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
649
|
-
"pt": "Auto-Adicionado: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
650
|
-
"nl": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
651
|
-
"fr": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
652
|
-
"it": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
653
|
-
"es": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
654
|
-
"pl": "Auto-Added: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
655
|
-
"uk": "Автододаток: FREQ,U_AC,I_AC,P_AC,P_TOTAL",
|
|
656
|
-
"zh-cn": "自动: FREQ,
|
|
680
|
+
"en": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
681
|
+
"de": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
682
|
+
"ru": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
683
|
+
"pt": "Auto-Adicionado: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
684
|
+
"nl": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
685
|
+
"fr": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
686
|
+
"it": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
687
|
+
"es": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
688
|
+
"pl": "Auto-Added: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
689
|
+
"uk": "Автододаток: FREQ, U_AC, I_AC, P_AC, P_TOTAL",
|
|
690
|
+
"zh-cn": "自动: FREQ, U_AC, I_AC, P_AC, P_TOTAL"
|
|
657
691
|
},
|
|
658
692
|
"default": "",
|
|
659
693
|
"newLine": true
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "senec",
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.9",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.6.9": {
|
|
7
|
+
"en": "Improved battery forced loading, added switch in config to allow active control of appliance.",
|
|
8
|
+
"de": "Manuelles Laden verbessert, zusätzlicher Schalter in Config, um aktive Steuerung des Gerätes zu erlauben.",
|
|
9
|
+
"ru": "Улучшенная батарея принудительная загрузка, добавил переключатель в config, чтобы позволить активный контроль прибора.",
|
|
10
|
+
"pt": "Carga forçada da bateria melhorada, interruptor adicionado em config para permitir o controle ativo do aparelho.",
|
|
11
|
+
"nl": "Geïmproviseerde batterij geforceerde lading, toegevoegd schakelaar in config om actieve controle over goedkeuring toe te staan.",
|
|
12
|
+
"fr": "Amélioration du chargement forcé de la batterie, commutateur ajouté dans la configuration pour permettre le contrôle actif de l'appareil.",
|
|
13
|
+
"it": "Caricamento forzato della batteria migliorato, interruttore aggiunto in configurazione per consentire il controllo attivo dell'apparecchio.",
|
|
14
|
+
"es": "Carga forzada de batería mejorada, interruptor añadido en configuración para permitir el control activo del aparato.",
|
|
15
|
+
"pl": "Poprawione baterie wymusiły obciążenie, dodano przełącznik w celu umożliwienia aktywnej kontroli urządzenia.",
|
|
16
|
+
"uk": "Покращений акумулятор примусового навантаження, доданий перемикач в настройку, щоб забезпечити активний контроль за приладом.",
|
|
17
|
+
"zh-cn": "改善强迫装载的电池,加起来,允许积极控制输电。."
|
|
18
|
+
},
|
|
19
|
+
"1.6.8": {
|
|
20
|
+
"en": "Added switch control.ForceLoadBattery to start/stop charging battery. Use this to start/stop forced charging (like with dynamic power prices, ...).",
|
|
21
|
+
"de": "Schalter control.ForceLoadBattery hinzugefügt, um ein Laden des Speichers zu forcieren (analog zur Funktion im lokalen Interface). Nützlich in Verbindung mit dynamischen Stromtarifen, etc.",
|
|
22
|
+
"ru": "Добавлен контроль переключателя. СилаLoad Батарея для начала / остановки зарядки батареи. Используйте это для начала / остановки принудительного зарядки (например, с динамическими ценами питания, ...).",
|
|
23
|
+
"pt": "Adicionado controle de interruptor. Força Bateria para iniciar / parar de carregar bateria. Use isso para iniciar / parar de carga forçada (como com preços de energia dinâmica, ...).",
|
|
24
|
+
"nl": "Veranderingscontrole. Force Batterijen om te starten/ stop met batterijen. Gebruik dit om te beginnen en stop met het opladen van dynamische krachtprijzen.",
|
|
25
|
+
"fr": "Ajout de la commande. ForceLoad Batterie de démarrage/arrêt de batterie de charge. Utilisez ceci pour commencer / arrêter la charge forcée (comme avec les prix de puissance dynamique, ...).",
|
|
26
|
+
"it": "Aggiunta di controllo dell'interruttore. Forza! Batteria per avviare / fermare la batteria di ricarica. Utilizzare questo per avviare / fermare la ricarica forzata (come con i prezzi di potenza dinamica, ...).",
|
|
27
|
+
"es": "Control de cambio añadido. ForceLoad Batería para iniciar / detener la batería de carga. Utilice esto para iniciar / detener la carga forzada (como con los precios de potencia dinámicos, ...).",
|
|
28
|
+
"pl": "Kontrola przełącznikowa. ForceLoad Bateria rozpoczynająca/zatrzymanie baterii. Wykorzystuje to do rozpoczęcia/stopowania (jak z dynamicznymi cenami mocy).",
|
|
29
|
+
"uk": "Додано контроль перемикання. Приват24 Акумулятор для запуску / зарядки акумулятора. Використовуйте це для запуску / stop примусової зарядки (наприклад, з динамічними цінами потужності, ...).",
|
|
30
|
+
"zh-cn": "添加了转换控制。 部队 开始/禁止劫持电池。 利用这开始/禁止强迫征集(与动态发电价格相似,......)。."
|
|
31
|
+
},
|
|
6
32
|
"1.6.7": {
|
|
7
33
|
"en": "Added option to turn off local polling.",
|
|
8
34
|
"de": "Option hinzugefügt, um die lokale Abfrage der Appliance abzuschalten.",
|
|
@@ -106,45 +132,6 @@
|
|
|
106
132
|
"pl": "Możesz teraz skonfigurować żądanie SENEC App API.",
|
|
107
133
|
"uk": "Ви можете налаштувати запит на SENEC App API.",
|
|
108
134
|
"zh-cn": "如今,你可以准备要求SENECSP。."
|
|
109
|
-
},
|
|
110
|
-
"1.5.2": {
|
|
111
|
-
"en": "Added more datapoints. If you experience messages in log - feel free to add them yourself to state_attr on github (pull request)",
|
|
112
|
-
"de": "Weitere Datenpunkte hinzugefügt. Du kennst weitere? Bitte PullRequest auf Github für state_attr.",
|
|
113
|
-
"ru": "Добавили больше точек данных. Если вы испытываете сообщения в логе - не стесняйтесь добавлять их самостоятельно в state_attr на github (по запросу)",
|
|
114
|
-
"pt": "Adicionado mais datapoints. Se você tiver mensagens no log - sinta-se livre para adicioná-las ao state_attr no github (requisito de envio)",
|
|
115
|
-
"nl": "Voegde meer datapoints toe. Als je berichten in het logboek ervaart, voel je vrij om ze zelf toe te voegen aan github (pull verzoek)",
|
|
116
|
-
"fr": "Ajout d'autres points de données. Si vous éprouvez des messages dans log - n'hésitez pas à les ajouter à state_attr sur github (demande de puissance)",
|
|
117
|
-
"it": "Aggiunti altri datapoint. Se si verificano messaggi in log - sentitevi liberi di aggiungerli a state_attr su github (domanda di voto)",
|
|
118
|
-
"es": "Se agregaron más puntos de datos. Si experimentas mensajes en el registro - no dudes en añadirlos a state_attr en github (pregunta completa)",
|
|
119
|
-
"pl": "Dodać więcej danych. Jeśli znajdziesz wiadomości w dzienniku – czuje się wolny, aby dodać ich do stanu_attr na github (pułki)",
|
|
120
|
-
"uk": "Додано більше точок даних. Якщо ви відчуваєте повідомлення в журналі - не соромтеся додати їх до стану_attr на github",
|
|
121
|
-
"zh-cn": "增加数据点。 如果你在逻辑上有信息,就认为可以自由地补充你自己的国家:对Tithub(要求)表示怀疑。"
|
|
122
|
-
},
|
|
123
|
-
"1.5.1": {
|
|
124
|
-
"en": "Added more datapoints. If you experience messages in log - feel free to add them yourself to state_attr on github (pull request)",
|
|
125
|
-
"de": "Weitere Datenpunkte hinzugefügt. Du kennst weitere? Bitte PullRequest auf Github für state_attr.",
|
|
126
|
-
"ru": "Добавили больше точек данных. Если вы испытываете сообщения в логе - не стесняйтесь добавлять их самостоятельно в state_attr на github (по запросу)",
|
|
127
|
-
"pt": "Adicionado mais datapoints. Se você tiver mensagens no log - sinta-se livre para adicioná-las ao state_attr no github (requisito de envio)",
|
|
128
|
-
"nl": "Voegde meer datapoints toe. Als je berichten in het logboek ervaart, voel je vrij om ze zelf toe te voegen aan github (pull verzoek)",
|
|
129
|
-
"fr": "Ajout d'autres points de données. Si vous éprouvez des messages dans log - n'hésitez pas à les ajouter à state_attr sur github (demande de puissance)",
|
|
130
|
-
"it": "Aggiunti altri datapoint. Se si verificano messaggi in log - sentitevi liberi di aggiungerli a state_attr su github (domanda di voto)",
|
|
131
|
-
"es": "Se agregaron más puntos de datos. Si experimentas mensajes en el registro - no dudes en añadirlos a state_attr en github (pregunta completa)",
|
|
132
|
-
"pl": "Dodać więcej danych. Jeśli znajdziesz wiadomości w dzienniku – czuje się wolny, aby dodać ich do stanu_attr na github (pułki)",
|
|
133
|
-
"uk": "Додано більше точок даних. Якщо ви відчуваєте повідомлення в журналі - не соромтеся додати їх до стану_attr на github",
|
|
134
|
-
"zh-cn": "增加数据点。 如果你在逻辑上有信息,就认为可以自由地补充你自己的国家:对Tithub(要求)表示怀疑。"
|
|
135
|
-
},
|
|
136
|
-
"1.5.0": {
|
|
137
|
-
"en": "Added configuration section to add datapoints to high priority polling. Please be aware of the possible issues this could cause (if too many datapoints added) and use at your own risk. ALL Wallbox datapoints have been removed from high priority polling. Only some users even have a SENEC wallbox. Please reconfigure via the new config dialogue. Possible Candidate for stable. Please report any findings!",
|
|
138
|
-
"de": "Konfigurationsabschnitt hinzugefügt, um zusätzliche Datenpunkte mit hoher Priorität abzufragen. Bitte beachten Sie die möglichen Probleme, die dies verursachen könnte (wenn zu viele Datenpunkte hinzugefügt wurden). Nutzung auf eigenes Risiko. Standardgemäß werden nun keine Wallbox-Datenpunkte mehr mit hoher Priorität abgefragt (zu wenige User haben eine SENEC Wallbox). Diese nun bitte über den neuen Configdialog konfigurieren. Möglicher Kandidat für stable - bitte alle Probleme reporten.",
|
|
139
|
-
"ru": "Добавлен раздел конфигурации, чтобы добавить данные точки к высокому приоритетному опросу. Пожалуйста, имейте в виду возможные проблемы, которые могут вызвать (если слишком много добавленных данных) и использовать на вашем собственном риске. Все точки данных Wallbox были удалены из высококачественного опроса. Только некоторые пользователи даже имеют SENEC wallbox. Пожалуйста, обратите внимание на новый диалог.",
|
|
140
|
-
"pt": "Seção de configuração adicionada para adicionar datapoints a votação de alta prioridade. Por favor, esteja ciente dos possíveis problemas que isso poderia causar (se muitos datapoints adicionados) e usar em seu próprio risco. TODOS os datapoints da Wallbox foram removidos da votação de alta prioridade. Apenas alguns usuários têm uma caixa de parede SENEC. Por favor, reconfigure através do novo diálogo de configuração.",
|
|
141
|
-
"nl": "Toegevoegd configuration sectie om gegevens toe te voegen aan hoge prioriteitsvervuiling. Wees alsjeblieft op de hoogte van de mogelijke kwesties die dit kan veroorzaken... als te veel datapoints toegevoegd zijn en gebruik maken van je eigen risico. Alle Wallbox datapoints zijn verwijderd van hoge prioriteitsvervuiling. Alleen sommige gebruikers hebben zelfs een SENEC muurdoos. Herconfiguur via de nieuwe dialoog.",
|
|
142
|
-
"fr": "Ajout de la section de configuration pour ajouter des points de données à un sondage prioritaire. S'il vous plaît être conscient des problèmes possibles qui pourraient causer (si trop de points de données ajoutés) et utiliser à vos propres risques. Tous les points de données de Wallbox ont été retirés du vote prioritaire. Seuls certains utilisateurs ont même une boîte murale SENEC. Veuillez reconfigurer via le nouveau dialogue de configuration.",
|
|
143
|
-
"it": "Aggiunta sezione di configurazione per aggiungere datapoints ad inquinamento ad alta priorità. Si prega di essere consapevoli dei possibili problemi che questo potrebbe causare (se troppi punti di dati aggiunti) e utilizzare a proprio rischio. Tutti i datapoint di Wallbox sono stati rimossi dall'inquinamento ad alta priorità. Solo alcuni utenti hanno anche una parete SENEC. Si prega di riconfigurare tramite il nuovo dialogo di configurazione.",
|
|
144
|
-
"es": "Se agregó la sección de configuración para añadir puntos de datos a encuestas de alta prioridad. Tenga en cuenta los posibles problemas que esto podría causar (si se añaden demasiados datos) y utilizar a su propio riesgo. Todos los puntos de datos de Wallbox han sido eliminados de encuestas de alta prioridad. Sólo algunos usuarios tienen una caja de pared SENEC. Por favor reconfigure a través del nuevo diálogo de configuración.",
|
|
145
|
-
"pl": "Wtedy sekcja konfiguracji dodania punktów danych do wysokiego priorytetu. Poświadczenie o możliwych zagadnieniach może powodować (jeśli są zbyt wiele punktów danych) i wykorzystać swój własny ryzyko. ALL Wallbox datapoints zostały usunięte z wysokiego priorytetu. Tylko niektórzy użytkownicy mają nawet SENEC. Powraca się poprzez nowe dialogi.",
|
|
146
|
-
"uk": "Додано розділ конфігурації, щоб додати точки даних до високого пріоритетного опитування. Будь ласка, будь ласка, будь ласка, будь ласка, зв'яжіться з нами та користуйтеся власним ризиком. Усі точки даних Wallbox видаляються з високого пріоритетного опитування. Тільки деякі користувачі навіть мають скриньку SENEC. Будь ласка, переадресація через новий діалог налаштування.",
|
|
147
|
-
"zh-cn": "增加数据点以进行高度优先投票。 请了解可能出现的问题(如果数据点增加),并利用你自己的风险。 已从高优先投票中删除了所有Wil箱数据点。 只有一些用户甚至有SENEC墙箱。 请通过新的混凝土对话进行改组。."
|
|
148
135
|
}
|
|
149
136
|
},
|
|
150
137
|
"docs": {
|
|
@@ -213,6 +200,7 @@
|
|
|
213
200
|
},
|
|
214
201
|
"native": {
|
|
215
202
|
"lala_use": true,
|
|
203
|
+
"control_active": false,
|
|
216
204
|
"senecip": "0.0.0.0",
|
|
217
205
|
"interval": 10,
|
|
218
206
|
"intervalLow": 60,
|
|
@@ -250,14 +238,16 @@
|
|
|
250
238
|
"api_pwd": ""
|
|
251
239
|
},
|
|
252
240
|
"objects": [],
|
|
253
|
-
"instanceObjects": [
|
|
241
|
+
"instanceObjects": [
|
|
242
|
+
{
|
|
254
243
|
"_id": "info",
|
|
255
244
|
"type": "channel",
|
|
256
245
|
"common": {
|
|
257
246
|
"name": "Information"
|
|
258
247
|
},
|
|
259
248
|
"native": {}
|
|
260
|
-
},
|
|
249
|
+
},
|
|
250
|
+
{
|
|
261
251
|
"_id": "info.connection",
|
|
262
252
|
"type": "state",
|
|
263
253
|
"common": {
|
|
@@ -269,6 +259,27 @@
|
|
|
269
259
|
"def": false
|
|
270
260
|
},
|
|
271
261
|
"native": {}
|
|
272
|
-
}
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"_id": "control",
|
|
265
|
+
"type": "channel",
|
|
266
|
+
"common": {
|
|
267
|
+
"name": "Control Buttons"
|
|
268
|
+
},
|
|
269
|
+
"native": {}
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"_id": "control.ForceLoadBattery",
|
|
273
|
+
"type": "state",
|
|
274
|
+
"common": {
|
|
275
|
+
"role": "switch",
|
|
276
|
+
"name": "Force Load Battery",
|
|
277
|
+
"type": "boolean",
|
|
278
|
+
"read": true,
|
|
279
|
+
"write": true,
|
|
280
|
+
"def": false
|
|
281
|
+
},
|
|
282
|
+
"native": {}
|
|
283
|
+
}
|
|
273
284
|
]
|
|
274
285
|
}
|
package/main.js
CHANGED
|
@@ -22,6 +22,9 @@ const apiLoginUrl = apiUrl + "/login";
|
|
|
22
22
|
const apiSystemsUrl = apiUrl + "/anlagen";
|
|
23
23
|
const apiKnownSystems = []
|
|
24
24
|
|
|
25
|
+
const batteryOn = '{"ENERGY":{"SAFE_CHARGE_FORCE":"u8_01","SAFE_CHARGE_PROHIBIT":"","SAFE_CHARGE_RUNNING":"","LI_STORAGE_MODE_START":"","LI_STORAGE_MODE_STOP":"","LI_STORAGE_MODE_RUNNING":"","STAT_STATE":""}}';
|
|
26
|
+
const batteryOff = '{"ENERGY":{"SAFE_CHARGE_FORCE":"","SAFE_CHARGE_PROHIBIT":"u8_01","SAFE_CHARGE_RUNNING":"","LI_STORAGE_MODE_START":"","LI_STORAGE_MODE_STOP":"","LI_STORAGE_MODE_RUNNING":"","STAT_STATE":""}}';
|
|
27
|
+
|
|
25
28
|
let apiConnected = false;
|
|
26
29
|
let lalaConnected = false;
|
|
27
30
|
let apiLoginToken = "";
|
|
@@ -50,6 +53,7 @@ class Senec extends utils.Adapter {
|
|
|
50
53
|
name: 'senec',
|
|
51
54
|
});
|
|
52
55
|
this.on('ready', this.onReady.bind(this));
|
|
56
|
+
this.on('stateChange', this.onStateChange.bind(this));
|
|
53
57
|
this.on('unload', this.onUnload.bind(this));
|
|
54
58
|
}
|
|
55
59
|
|
|
@@ -84,16 +88,69 @@ class Senec extends utils.Adapter {
|
|
|
84
88
|
} else {
|
|
85
89
|
this.log.warn("Usage of SENEC App API not configured. Only polling appliance via local network if configured.");
|
|
86
90
|
}
|
|
91
|
+
|
|
87
92
|
if (lalaConnected || apiConnected) {
|
|
88
93
|
this.setState('info.connection', true, true);
|
|
89
94
|
} else {
|
|
90
95
|
this.log.error("Neither local connection nor API connection configured. Please check config!");
|
|
91
96
|
}
|
|
97
|
+
if (this.config.control_active) {
|
|
98
|
+
this.log.info("Active appliance control activated!");
|
|
99
|
+
await this.subscribeStatesAsync("control.*"); // subscribe on all state changes in control.
|
|
100
|
+
await this.subscribeStatesAsync("ENERGY.STAT_STATE");
|
|
101
|
+
}
|
|
92
102
|
} catch (error) {
|
|
93
103
|
this.log.error(error);
|
|
94
104
|
this.setState('info.connection', false, true);
|
|
95
105
|
}
|
|
96
106
|
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @param {string} id
|
|
110
|
+
* @param {ioBroker.State | null | undefined} state
|
|
111
|
+
*/
|
|
112
|
+
async onStateChange(id, state) {
|
|
113
|
+
if (state && !state.ack) {
|
|
114
|
+
this.log.debug("State changed: " + id + " ( " + JSON.stringify(state) + " )");
|
|
115
|
+
|
|
116
|
+
if (this.config.control_active) { // All state-changes for .control.* need active config value
|
|
117
|
+
if (id === this.namespace + ".control.ForceLoadBattery" && lalaConnected) {
|
|
118
|
+
const url = connectVia + this.config.senecip + "/lala.cgi";
|
|
119
|
+
try {
|
|
120
|
+
if (state.val) {
|
|
121
|
+
this.log.info("Enable force battery charging ...");
|
|
122
|
+
this.evalPoll(JSON.parse(await this.doGet(url, batteryOn, this, this.config.pollingTimeout, true), reviverNumParse));
|
|
123
|
+
} else {
|
|
124
|
+
this.log.info("Disable force battery charging ...");
|
|
125
|
+
this.evalPoll(JSON.parse(await this.doGet(url, batteryOff, this, this.config.pollingTimeout, true), reviverNumParse));
|
|
126
|
+
}
|
|
127
|
+
} catch (error) {
|
|
128
|
+
this.log.error(error);
|
|
129
|
+
this.log.error("Failed to control: setting force battery charging mode to " + state.val);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
this.setStateAsync(id, { val: state.val, ack: true }); // Verarbeitung bestätigen
|
|
136
|
+
|
|
137
|
+
} else if (state && id === this.namespace + ".ENERGY.STAT_STATE") { // states that do have state.ack already
|
|
138
|
+
this.log.debug("State changed: " + id + " ( " + JSON.stringify(state) + " )");
|
|
139
|
+
const forceLoad = await this.getStateAsync(this.namespace + ".control.ForceLoadBattery");
|
|
140
|
+
if (state.val == 8 || state.val == 9) {
|
|
141
|
+
if (state.val == 9) this.log.info("Battery forced loading completed (battery full).");
|
|
142
|
+
if (!forceLoad.val) {
|
|
143
|
+
this.log.info("Battery forced loading activated (from outside or just lag). Syncing control-state.");
|
|
144
|
+
this.setStateChangedAsync(this.namespace + ".control.ForceLoadBattery", { val: true, ack: true });
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
if (forceLoad.val) {
|
|
148
|
+
this.log.info("Battery forced loading deactivated (from outside or just lag). Syncing control-state.");
|
|
149
|
+
this.setStateChangedAsync(this.namespace + ".control.ForceLoadBattery", { val: false, ack: true });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
97
154
|
|
|
98
155
|
/**
|
|
99
156
|
* Is called when adapter shuts down - callback has to be called under any circumstances!
|
|
@@ -129,7 +186,7 @@ class Senec extends utils.Adapter {
|
|
|
129
186
|
if (this.config.disclaimer && this.config.highPrio_BMS_active) this.addUserDps(value, objectsSet, this.config.highPrio_BMS);
|
|
130
187
|
break;
|
|
131
188
|
case "ENERGY":
|
|
132
|
-
["STAT_STATE","GUI_BAT_DATA_POWER","GUI_INVERTER_POWER","GUI_HOUSE_POW","GUI_GRID_POW","GUI_BAT_DATA_FUEL_CHARGE","GUI_CHARGING_INFO","GUI_BOOSTING_INFO","GUI_BAT_DATA_POWER","GUI_BAT_DATA_VOLTAGE","GUI_BAT_DATA_CURRENT","GUI_BAT_DATA_FUEL_CHARGE","GUI_BAT_DATA_OA_CHARGING","STAT_LIMITED_NET_SKEW"].forEach(item => objectsSet.add(item));
|
|
189
|
+
["STAT_STATE","GUI_BAT_DATA_POWER","GUI_INVERTER_POWER","GUI_HOUSE_POW","GUI_GRID_POW","GUI_BAT_DATA_FUEL_CHARGE","GUI_CHARGING_INFO","GUI_BOOSTING_INFO","GUI_BAT_DATA_POWER","GUI_BAT_DATA_VOLTAGE","GUI_BAT_DATA_CURRENT","GUI_BAT_DATA_FUEL_CHARGE","GUI_BAT_DATA_OA_CHARGING","STAT_LIMITED_NET_SKEW","SAFE_CHARGE_FORCE","SAFE_CHARGE_PROHIBIT","SAFE_CHARGE_RUNNING"].forEach(item => objectsSet.add(item));
|
|
133
190
|
if (this.config.disclaimer && this.config.highPrio_ENERGY_active) this.addUserDps(value, objectsSet, this.config.highPrio_ENERGY);
|
|
134
191
|
break;
|
|
135
192
|
case "PV1":
|
|
@@ -353,6 +410,7 @@ class Senec extends utils.Adapter {
|
|
|
353
410
|
);
|
|
354
411
|
});
|
|
355
412
|
}
|
|
413
|
+
|
|
356
414
|
|
|
357
415
|
/**
|
|
358
416
|
* Read values from Senec Home V2.1
|
|
@@ -489,8 +547,10 @@ class Senec extends utils.Adapter {
|
|
|
489
547
|
if (period == api_trans["THIS_YEAR"].dp) await this.insertAllTimeHistory(system, key, new Date(obj.aggregation.startzeitpunkt).getFullYear(), Number((value.wert).toFixed(0)), value.einheit);
|
|
490
548
|
}
|
|
491
549
|
}
|
|
492
|
-
|
|
493
|
-
|
|
550
|
+
if (obj.aggregation.stromverbrauch.wert != 0) {
|
|
551
|
+
const autarky = Number((((obj.aggregation.stromerzeugung.wert - obj.aggregation.netzeinspeisung.wert - obj.aggregation.speicherbeladung.wert + obj.aggregation.speicherentnahme.wert) / obj.aggregation.stromverbrauch.wert) * 100).toFixed(2));
|
|
552
|
+
await this.doState(pfx + "Autarkie", autarky, "", "%", false);
|
|
553
|
+
}
|
|
494
554
|
await this.updateAllTimeHistory(system);
|
|
495
555
|
}
|
|
496
556
|
|
|
@@ -498,6 +558,8 @@ class Senec extends utils.Adapter {
|
|
|
498
558
|
* inserts a value for a given key and year into AllTimeValueStore
|
|
499
559
|
*/
|
|
500
560
|
async insertAllTimeHistory(system, key, year, value, einheit) {
|
|
561
|
+
if (key === '__proto__' || key === 'constructor' || key === 'prototype') return; // Security fix
|
|
562
|
+
if (!isNaN(year) || !isNaN(value)) return; // Security fix
|
|
501
563
|
const pfx = "_api.Anlagen." + system + ".Statistik.AllTime.";
|
|
502
564
|
const valueStore = pfx + "valueStore";
|
|
503
565
|
const statsObj = await this.getStateAsync(valueStore);
|
|
@@ -535,8 +597,10 @@ class Senec extends utils.Adapter {
|
|
|
535
597
|
await this.doState(pfx + key, Number(sum.toFixed(0)), "", einheit, false);
|
|
536
598
|
}
|
|
537
599
|
}
|
|
538
|
-
|
|
539
|
-
|
|
600
|
+
if (sums.stromverbrauch != 0) {
|
|
601
|
+
const autarky = Number((((sums.stromerzeugung - sums.netzeinspeisung - sums.speicherbeladung + sums.speicherentnahme) / sums.stromverbrauch) * 100).toFixed(0));
|
|
602
|
+
await this.doState(pfx + "Autarkie", autarky, "", "%", false);
|
|
603
|
+
}
|
|
540
604
|
}
|
|
541
605
|
|
|
542
606
|
/**
|