iobroker.sun2000 1.2.2 → 1.4.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 +7 -0
- package/io-package.json +27 -40
- package/lib/controls/config_map.js +36 -8
- package/lib/register.js +11 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -64,6 +64,13 @@ browse in the [wiki](https://github.com/bolliy/ioBroker.sun2000/wiki)
|
|
|
64
64
|
Placeholder for the next version (at the beginning of the line):
|
|
65
65
|
### **WORK IN PROGRESS**
|
|
66
66
|
-->
|
|
67
|
+
### 1.4.0 (2025-04-07)
|
|
68
|
+
* control: new control state `sun2000.0.control.externalPower` #76
|
|
69
|
+
* fixed issue detected by repository checker #166
|
|
70
|
+
|
|
71
|
+
### 1.3.0 (2025-04-02)
|
|
72
|
+
* usableSurplusPower: new control state `sun2000.0.control.usableSurplus.allowNegativeValue`
|
|
73
|
+
|
|
67
74
|
### 1.2.2 (2025-04-01)
|
|
68
75
|
* deploy 1.2
|
|
69
76
|
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "sun2000",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.4.0": {
|
|
7
|
+
"en": "control: new control state `sun2000.0.control.externalPower` #76\nfixed issue detected by repository checker #166",
|
|
8
|
+
"de": "steuerung: neuer Steuerzustand `sun2000.0.control.externalPower` #76\nbehobenes problem erkannt von repository checker #166",
|
|
9
|
+
"ru": "новый контрольный режим «sun2000.0.control.externalPower» #76\nфиксированная проблема, обнаруженная проверкой репозитория #166",
|
|
10
|
+
"pt": "controle: novo estado de controle `sun2000.0.control.externalPower` #76\nproblema fixo detectado pelo verificador de repositório #166",
|
|
11
|
+
"nl": "controle: nieuwe controle staat #76\nvaste uitgifte gedetecteerd door repository checker #166",
|
|
12
|
+
"fr": "contrôle: nouvel état de contrôle `sun2000.0.control.externalPower` #76\nproblème corrigé détecté par le vérificateur de dépôt #166",
|
|
13
|
+
"it": "controllo: nuovo stato di controllo `sun2000.0.control.externalPower` #76\nproblema fisso rilevato da repository checker #166",
|
|
14
|
+
"es": "control: nuevo estado de control `sun2000.0.control.externalPower` #76\nnúmero fijo detectado por el repositorio #166",
|
|
15
|
+
"pl": "control: nowy stan kontroli 'sun2000.0.control.externalPower' # 76\nstała emisja wykryta przez kontroler repozytorium # 166",
|
|
16
|
+
"uk": "контроль: новий стан управління `sun2000.0.control.externalPower` #76\nвиправлено проблему, виявлену репозиторійною перевіркою #166",
|
|
17
|
+
"zh-cn": "控制:新的控制状态`sun 2000.0.control.external Power ' 76号\n仓库检查器检测到的固定问题 # 166"
|
|
18
|
+
},
|
|
19
|
+
"1.3.0": {
|
|
20
|
+
"en": "usableSurplusPower: new control state `sun2000.0.control.usableSurplus.allowNegativeValue`",
|
|
21
|
+
"de": "usableSurplusPower: neuer Steuerzustand `sun2000.0.control.usableSurplus.allowNegativeValue `",
|
|
22
|
+
"ru": "usableSurplusPower: новое состояние управления 'sun2000.0.control.usableSurplus.allowНегативная ценность пункт",
|
|
23
|
+
"pt": "usableSurplusPower: novo estado de controle `sun2000.0.control.usableSurplus.allowValue negativo \"",
|
|
24
|
+
"nl": "bruikbareSurplusPower: nieuwe controlestatus Wat",
|
|
25
|
+
"fr": "utilisableSurplusPower: nouvel état de contrôle `sun2000.0.control.usableSurplus.allowNegativeValue \"",
|
|
26
|
+
"it": "usableSurplusPower: nuovo stato di controllo `sun2000.0.control.usableSurplus.allowValore negativo #",
|
|
27
|
+
"es": "usableSurplusPower: nuevo estado de control `sun2000.0.control.usableSurplus.allowNegativeValue `",
|
|
28
|
+
"pl": "usableSurplusPower: nowy stan kontroli 'Sun2000.0.control.usableSurplus.allowNegativeValue'",
|
|
29
|
+
"uk": "english, Українська, Français... й",
|
|
30
|
+
"zh-cn": "可用SurpusPower: 新的控制状态 `sun 2000.control.usurplus.allow NegativeValue ' `"
|
|
31
|
+
},
|
|
6
32
|
"1.2.2": {
|
|
7
33
|
"en": "deploy 1.2",
|
|
8
34
|
"de": "bereitstellung 1.2",
|
|
@@ -29,32 +55,6 @@
|
|
|
29
55
|
"uk": "тестовий реліз",
|
|
30
56
|
"zh-cn": "测试发布"
|
|
31
57
|
},
|
|
32
|
-
"1.2.1": {
|
|
33
|
-
"en": "dependency update",
|
|
34
|
-
"de": "aktualisierung der abhängigkeit",
|
|
35
|
-
"ru": "обновление зависимостей",
|
|
36
|
-
"pt": "atualização de dependência",
|
|
37
|
-
"nl": "afhankelijkheidsupdate",
|
|
38
|
-
"fr": "mise à jour de la dépendance",
|
|
39
|
-
"it": "aggiornamento della dipendenza",
|
|
40
|
-
"es": "actualización de la dependencia",
|
|
41
|
-
"pl": "aktualizacja zależności",
|
|
42
|
-
"uk": "оновлення залежності",
|
|
43
|
-
"zh-cn": "依赖性更新"
|
|
44
|
-
},
|
|
45
|
-
"1.2.0": {
|
|
46
|
-
"en": "dependency and configuration updates updates\nfix: Object state sDongle.OSVersion to short\nnew setting path for controlling the usableSurplus parameters `control.usableSurplus`",
|
|
47
|
-
"de": "abhängigkeit und konfiguration updates\nfix: Objektzustand sDongle. OSVersion kurz\nneuer Einstellpfad zur Steuerung des Nutzbar Überschüssige Parameter `control.usableSurplus `",
|
|
48
|
-
"ru": "обновления зависимостей и конфигураций\nобсуждение Object State sDongle. OSVersion to Short\nновый путь настройки для контроля полезного Дополнительные параметры 'control.usable Surplus пункт",
|
|
49
|
-
"pt": "atualizações de dependência e configuração\ncorreção: Objeto estado sDongle. OSVersion to short\nnovo caminho de configuração para controlar a usável Parâmetros do Surplus `control.usableSurplus \"",
|
|
50
|
-
"nl": "afhankelijkheid en configuratie updates\nfix: Object state sDongle. OSVersion to short\nnieuw instellingspad voor het bedienen van het bruikbare Overschotparameters Controle.bruikbaarSurplus Wat",
|
|
51
|
-
"fr": "mises à jour de la dépendance et de la configuration\ncorrection : État de l'objet sDongle. OSVersion à court\nnouveau chemin de réglage pour contrôler l'utilisable Paramètres excédentaires \"control.usableExcédent \"",
|
|
52
|
-
"it": "aggiornamenti di dipendenza e configurazione\ncorrezione: SDongle di stato dell'oggetto. OSVersione a breve\nnuovo percorso di regolazione per il controllo dell'utilizzabile Parametri in eccesso `control.usableSurplus #",
|
|
53
|
-
"es": "actualizaciones de dependencia y configuración\nresolver: \"Objeto estado sDongle\". OSVersion to short\nnuevo camino de configuración para controlar el usable Parámetros adicionales `control.usableSurplus `",
|
|
54
|
-
"pl": "aktualizacje zależności i konfiguracji\nfix: Object state sDongle. OSVersion to short\nnowa ścieżka ustawień do sterowania użytecznym Parametry nadwyżki 'control.usableSurplus'",
|
|
55
|
-
"uk": "оновлення залежності та конфігурації\nвиправити: Об'єктний стан sDongle. OSVersion до короткого\nновий шлях налаштування для контролю Параметри Surplus `control.usableSurplus й",
|
|
56
|
-
"zh-cn": "依赖性和配置更新\n固定:对象状态 sDongle。 OSVsion 缩写\n用于控制可用的新设置路径 盈余参数 `控制.可使用余额' `"
|
|
57
|
-
},
|
|
58
58
|
"1.1.0": {
|
|
59
59
|
"en": "startupTime/shutdownTime are read from the inverter as local time and not as UTC - fixed times are saved in path `derived`\nnew state [usableSurplusPower](https://github.com/bolliy/ioBroker.sun2000/wiki/%C3%9Cberschuss-(surplus))\ncontrol: checking and rounding integer numbers\nbetter solution for math rounding",
|
|
60
60
|
"de": "startzeit/Shutdown Zeit wird vom Wechselrichter als Ortszeit gelesen und nicht als UTC - Festzeiten werden im Pfad gespeichert `derived `\nneuer Staat [usableSurplusPower](https://github.com/bolliy/ioBroker.sun2000/wiki/%C3%9Cberschuss-(surplus))\nsteuerung: überprüfung und rundung ganzzahliger zahlen\nbessere lösung für matherundung",
|
|
@@ -80,19 +80,6 @@
|
|
|
80
80
|
"pl": "zaktualizowana dalsza wrażliwość przypadku nazwy statusu obiektu\nwymagają joBroker admin 7.4.10 lub wyższy # 154",
|
|
81
81
|
"uk": "оновлений подальший випадок чутливості назви стану об'єкта\nпотрібно ioBroker admin 7.4.10 або вище #154",
|
|
82
82
|
"zh-cn": "更新对象状态名称的进一步大小写灵敏度\n需要 ioBroker 管理员 7.4.10 或 以上 # 154"
|
|
83
|
-
},
|
|
84
|
-
"1.0.0": {
|
|
85
|
-
"en": "dependency and configuration updates\nupdated case sensitivity of the object status name\nInterval time of the slave inverter increased slightly\nRegister data is not read in \"Standby: detecting irradiation\" (0x0002) of the slave inverter\nControl: battery.maximumDischargePower is deprecated use \"maximumDischargingPower\" instead\nControl: battery.maximumChargePower is deprecated use \"maximumChargingPower\" instead\nbreaking changes\nNode.js 20 or higher required\nioBroker host (js-controller) 6.0.1 or higher\nioBroker admin 6.13.16 or higher",
|
|
86
|
-
"de": "abhängigkeits- und konfigurationsupdates\naktualisierte fallempfindlichkeit des objektstatusnamens\nDie Laufzeit des Slave-Wechselrichters stieg leicht an\nRegisterdaten werden nicht in \"Standby: Detektion von Bestrahlung\" (0x0002) des Slave-Wechselrichters gelesen\nSteuerung: batterie.maximumDischargePower ist deprecated verwenden \"maximumDischargingPower\" statt\nSteuerung: Batterie.maximumChargePower wird mit \"maximumChargingPower\" depreciert\nänderungen\nNode.js 20 oder höher erforderlich\nioBroker Host (js-controller) 6.0.1 oder höher\nioBroker admin 6.13.16 oder höher",
|
|
87
|
-
"ru": "обновления зависимости и конфигурации\nобновленная чувствительность случая имени состояния объекта\nИнтервал времени инвертора раба несколько увеличился\nРегистрационные данные не считываются в «Standby: Выявление облучения» (0x0002) рабского инвертора\nУправление: батарея.maximumDischargePower вместо этого депрецируется использование \"maximumDischargingPower\"\nУправление: батарея.maximumChargePower вместо этого депрецируется использование \"maximumChargingPower\"\nизменения\nNode.js 20 или выше требуется\nioBroker host (js-controller) 6.0.1 или выше\nioBroker admin 6.13.16 или выше",
|
|
88
|
-
"pt": "atualizações de dependência e configuração\nsensibilidade de caso atualizada do nome de status do objeto\nO tempo de intervalo do inversor de escravos aumentou ligeiramente\nOs dados de registro não são lidos em \"Standby: detecção de irradiação\" (0x0002) do inversor de escravos\nControl: battery.maximumDischargePower é deprecated use \"maximumDischargingPower\" em vez\nControle: battery.maximumChargePower é deprecated use \"maximumChargingPower\" em vez\nalterações de ruptura\nNode.js 20 ou mais necessários\nhospedeiro ioBroker (js-controller) 6.0.1 ou superior\nioBroker admin 6.13.16 ou superior",
|
|
89
|
-
"nl": "afhankelijkheid en configuratie-updates\nbijgewerkte gevoeligheid van de statusnaam van het object\nIntervaltijd van de slavenomvormer nam licht toe\nRegistergegevens worden niet gelezen in \"Standby: detectie van bestraling\" (0x0002) van de slavenomvormer\nControle: batterij.maximumDischargePower is verouderd gebruik \"maximumDischargingPower\" in plaats daarvan\nControle: batterij.maximumChargePower is verouderd gebruik \"maximumChargingPower\" in plaats daarvan\nwijzigingen breken\nNode.js 20 of hoger vereist\nioBroker-host (js-controller) 6.0.1 of hoger\nioBroker admin 6.13.16 of hoger",
|
|
90
|
-
"fr": "mises à jour de la dépendance et de la configuration\nsensibilité mise à jour du nom d'état de l'objet\nTemps d'intervalle de l'onduleur esclave augmenté légèrement\nLes données du registre ne sont pas lues dans \"Standby: detecting irradiation\" (0x0002) de l'onduleur esclave\nContrôle: batterie.maximumDischargePower est déprécié utiliser \"maximumDischargingPower\" à la place\nContrôle: batterie.maximumChargePower est déprécié utiliser \"maximumChargingPower\" à la place\ncasser les changements\nNode.js 20 ou plus requis\nioBroker host (js-controller) 6.0.1 ou plus\nioBroker admin 6.13.16 ou supérieur",
|
|
91
|
-
"it": "aggiornamenti di dipendenza e configurazione\nsensibilità caso aggiornata del nome di stato dell'oggetto\nIl tempo intervalente dell'inverter schiavo è aumentato leggermente\nI dati di registro non sono letti in \"Standby: rilevamento dell'irradiazione\" (0x0002) dell'inverter slave\nControllo: batteria.maximumDischargePower è deprecato uso \"maximumDischargingPower\" invece\nControllo: batteria.maximumChargePower è deprecato uso \"maximumChargingPower\" invece\ncambiamenti di rottura\nNode.js 20 o superiore richiesto\nioBroker host (js-controller) 6.0.1 o superiore\nioBroker admin 6.13.16 o superiore",
|
|
92
|
-
"es": "actualizaciones de dependencia y configuración\nsensibilidad actualizada del caso del nombre del estado del objeto\nEl tiempo intervalido del inversor de esclavos aumentó ligeramente\nLos datos del registro no se leen en \"Standby: detección de irradiación\" (0x0002) del inversor de esclavos\nControl: batería.maximumDischargePower es deprecated use \"maximumDischargingPower\" en su lugar\nControl: batería.maximumChargePower es el uso deprecatado \"maximumChargingPower\" en su lugar\ncambios de ruptura\nNode.js 20 o superior requerido\nioBroker host (js-controller) 6.0.1 o superior\nioBroker admin 6.13.16 o superior",
|
|
93
|
-
"pl": "aktualizacje zależności i konfiguracji\nzaktualizowana czułość przypadku nazwy statusu obiektu\nCzas interval inverter niewolnika nieznacznie wzrosła\nDane rejestracyjne nie są odczytywane w \"Standby: detection irradiation\" (0x0002) inwertera niewolnika\nKontrola: battery.maximumDischargePower jest zdeprecjonowane użycie \"maximumDischargingPower\" zamiast\nKontrola: battery.maximumChargePower jest przestarzałe użycie \"maximumChargingPower\" zamiast\nłamanie zmian\nNode.js 20 lub wyższe wymagane\njoBroker host (kontroler js-) 6.0.1 lub wyższy\njoBroker admin 6.13.16 lub wyższy",
|
|
94
|
-
"uk": "оновлення залежності та конфігурації\nоновлена чутливість корпусу назви стану об'єкта\nМіжвалий час раба інвертора трохи збільшилася\nЗареєструвати дані не читають в \"Станбі: виявлення опромінення\" (0x0002) рабоінвертора\nКонтроль: акумулятор.maximumDischargePower deprecated use \"maximumDischargingPower\" замість\nКонтроль: акумулятор.maximumChargePower deprecated use \"maximumChargingPower\" замість\nполомка змін\nNode.js 20 або вище\nioBroker host (js-controller) 6.0.1 або вище\nioBroker admin 6.13.16 або вище",
|
|
95
|
-
"zh-cn": "依赖和配置更新\n更新对象状态名称的大小写灵敏度\n奴隶倒转的间隔时间略有增加\n在奴隶反转器的\"Standby:检测辐照\"(0x0002)中不读登记数据\n控制: 电池. 最大充电Power被贬值 使用\"最大充电Power\"代替\n控制:电池. 最大管理员Power被贬值 使用\"最大充电Power\"代替\n断开更改\n需要20个或以上的节点\nioBroker 主机(js-controller) 6.0.1 或更高\nioBroker 管理员 6.13.16或以上"
|
|
96
83
|
}
|
|
97
84
|
},
|
|
98
85
|
"titleLang": {
|
|
@@ -26,6 +26,7 @@ class ConfigMap {
|
|
|
26
26
|
if (event.value < 0) {
|
|
27
27
|
event.value = 0;
|
|
28
28
|
}
|
|
29
|
+
event.value = Math.round(event.value);
|
|
29
30
|
return true;
|
|
30
31
|
},
|
|
31
32
|
},
|
|
@@ -45,6 +46,7 @@ class ConfigMap {
|
|
|
45
46
|
if (event.value < 0) {
|
|
46
47
|
event.value = 0;
|
|
47
48
|
}
|
|
49
|
+
event.value = Math.round(event.value);
|
|
48
50
|
return true;
|
|
49
51
|
},
|
|
50
52
|
},
|
|
@@ -64,6 +66,7 @@ class ConfigMap {
|
|
|
64
66
|
if (event.value < 0) {
|
|
65
67
|
event.value = 0;
|
|
66
68
|
}
|
|
69
|
+
event.value = Math.round(event.value);
|
|
67
70
|
return true;
|
|
68
71
|
},
|
|
69
72
|
},
|
|
@@ -83,6 +86,37 @@ class ConfigMap {
|
|
|
83
86
|
if (event.value < -1000) {
|
|
84
87
|
event.value = -1000;
|
|
85
88
|
}
|
|
89
|
+
event.value = Math.round(event.value);
|
|
90
|
+
return true;
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
state: {
|
|
95
|
+
id: 'usableSurplus.allowNegativeValue',
|
|
96
|
+
name: 'allow negative value',
|
|
97
|
+
type: 'boolean',
|
|
98
|
+
role: 'switch.enable',
|
|
99
|
+
desc: 'Allows negative value for usableSurplusPower',
|
|
100
|
+
},
|
|
101
|
+
fn: async event => {
|
|
102
|
+
if (event.value !== true && event.value !== false) {
|
|
103
|
+
event.value = false;
|
|
104
|
+
}
|
|
105
|
+
return true;
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
state: {
|
|
110
|
+
id: 'externalPower',
|
|
111
|
+
name: 'external power',
|
|
112
|
+
type: 'number',
|
|
113
|
+
role: 'level.power',
|
|
114
|
+
unit: 'kW',
|
|
115
|
+
desc: 'external energy production',
|
|
116
|
+
},
|
|
117
|
+
fn: async event => {
|
|
118
|
+
if (event.value < 0) event.values = 0;
|
|
119
|
+
event.value = Math.round(event.value * 1000) / 1000;
|
|
86
120
|
return true;
|
|
87
121
|
},
|
|
88
122
|
},
|
|
@@ -106,11 +140,6 @@ class ConfigMap {
|
|
|
106
140
|
}
|
|
107
141
|
this.adapter.subscribeStates(`${this._path}.*`);
|
|
108
142
|
this._initialized = true;
|
|
109
|
-
/*
|
|
110
|
-
if (this._initialized) {
|
|
111
|
-
this.log.info('Control: Config map initialized');
|
|
112
|
-
}
|
|
113
|
-
*/
|
|
114
143
|
}
|
|
115
144
|
|
|
116
145
|
/**
|
|
@@ -135,7 +164,7 @@ class ConfigMap {
|
|
|
135
164
|
const service = this._serviceMap.get(id);
|
|
136
165
|
if (state && service) {
|
|
137
166
|
if (state.val !== null) {
|
|
138
|
-
if (!state.ack) this.log.
|
|
167
|
+
if (!state.ack) this.log.debug(`Control: Event - state: ${this._path}.${id} changed: ${state.val} ack: ${state.ack}`);
|
|
139
168
|
const event = this._eventMap.get(id);
|
|
140
169
|
if (event) {
|
|
141
170
|
event.value = state.val;
|
|
@@ -170,11 +199,10 @@ class ConfigMap {
|
|
|
170
199
|
const service = this._serviceMap.get(event.id);
|
|
171
200
|
if (event.value !== null && service.fn) {
|
|
172
201
|
if (service.state.type === 'number') {
|
|
173
|
-
if (!this.isNumber(event)) {
|
|
202
|
+
if (!this.isNumber(event, false)) {
|
|
174
203
|
this.log.warn(`Control: Event is discarded because the value ${event.value} is not a number. State: ${this._path}.${event.id}`);
|
|
175
204
|
return;
|
|
176
205
|
}
|
|
177
|
-
event.value = Math.round(event.value * 100) / 100;
|
|
178
206
|
}
|
|
179
207
|
if (await service.fn(event)) {
|
|
180
208
|
await this.adapter.setState(`${this._path}.${event.id}`, { val: event.value, ack: true });
|
package/lib/register.js
CHANGED
|
@@ -42,6 +42,7 @@ class Registers {
|
|
|
42
42
|
role: 'value.power',
|
|
43
43
|
},
|
|
44
44
|
{ id: 'collected.usableSurplusPower', name: 'usable surplus power', type: 'number', unit: 'kW', role: 'value.power' },
|
|
45
|
+
{ id: 'collected.externalPower', name: 'external power', type: 'number', unit: 'kW', role: 'value.power' },
|
|
45
46
|
],
|
|
46
47
|
fn: inverters => {
|
|
47
48
|
let actPower = 0;
|
|
@@ -50,12 +51,14 @@ class Registers {
|
|
|
50
51
|
let chargeDischarge = 0;
|
|
51
52
|
|
|
52
53
|
function calcUsableSurplus() {
|
|
53
|
-
let surplusPower =
|
|
54
|
+
let surplusPower = 0;
|
|
54
55
|
if (this.adapter.control) {
|
|
56
|
+
surplusPower += meterPower;
|
|
55
57
|
const minSoc = this.adapter.control.get('usableSurplus.minSoc')?.value ?? 0;
|
|
56
58
|
const bufferSoc = this.adapter.control.get('usableSurplus.bufferSoc')?.value ?? 0;
|
|
57
59
|
const residualPower = this.adapter.control.get('usableSurplus.residualPower')?.value ?? 0;
|
|
58
60
|
const soc = this.stateCache.get('collected.SOC')?.value ?? 0;
|
|
61
|
+
const allowNegativeValue = this.adapter.control.get('usableSurplus.allowNegativeValue')?.value ?? false;
|
|
59
62
|
|
|
60
63
|
if (soc >= minSoc) {
|
|
61
64
|
surplusPower += chargeDischarge;
|
|
@@ -69,8 +72,10 @@ class Registers {
|
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
//this.adapter.log.info(`### TEST usableSurplus.minSoc ${minSoc}`);
|
|
75
|
+
if (!allowNegativeValue) {
|
|
76
|
+
if (surplusPower < 0.1) surplusPower = 0;
|
|
77
|
+
}
|
|
72
78
|
}
|
|
73
|
-
if (surplusPower < 0.1) surplusPower = 0;
|
|
74
79
|
return surplusPower;
|
|
75
80
|
}
|
|
76
81
|
|
|
@@ -85,9 +90,11 @@ class Registers {
|
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
const meterPower = this.stateCache.get('meter.activePower')?.value ?? 0;
|
|
93
|
+
const extPower = this.adapter.control.get('externalPower')?.value ?? 0;
|
|
94
|
+
//extPower = extPower / 1000;
|
|
88
95
|
|
|
89
96
|
//Zu geringe Erzeugerenegie
|
|
90
|
-
let houseConsum = actPower - meterPower;
|
|
97
|
+
let houseConsum = actPower - meterPower + extPower;
|
|
91
98
|
if (houseConsum < 0) {
|
|
92
99
|
houseConsum = 0;
|
|
93
100
|
}
|
|
@@ -102,6 +109,7 @@ class Registers {
|
|
|
102
109
|
this.stateCache.set('collected.usableSurplusPower', surplusPower, {
|
|
103
110
|
type: 'number',
|
|
104
111
|
});
|
|
112
|
+
this.stateCache.set('collected.externalPower', extPower, { type: 'number' });
|
|
105
113
|
},
|
|
106
114
|
},
|
|
107
115
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.sun2000",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "sun2000",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "bolliy",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@types/chai": "^4.3.20",
|
|
47
47
|
"@types/chai-as-promised": "^7.1.8",
|
|
48
48
|
"@types/mocha": "^10.0.10",
|
|
49
|
-
"@types/node": "^22.
|
|
49
|
+
"@types/node": "^22.14.0",
|
|
50
50
|
"@types/proxyquire": "^1.3.31",
|
|
51
51
|
"@types/sinon": "^17.0.4",
|
|
52
52
|
"@types/sinon-chai": "^3.2.12",
|