iobroker.sun2000 0.5.0 → 0.5.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
@@ -25,7 +25,8 @@ Feel free to follow the discussions in the german [iobroker forum](https://forum
25
25
 
26
26
  ## Documentation
27
27
 
28
- See the [documentation page](./docs/README.md)
28
+ See the [documentation page](./docs/README.md) or
29
+ browse in the [wiki](https://github.com/bolliy/ioBroker.sun2000/wiki)
29
30
 
30
31
  ## Supported hardware
31
32
 
@@ -50,6 +51,11 @@ See the [documentation page](./docs/README.md)
50
51
  Placeholder for the next version (at the beginning of the line):
51
52
  ### **WORK IN PROGRESS**
52
53
  -->
54
+ ### 0.5.1 (2024-03-11)
55
+ * Config page restructured
56
+ * read only the required string data
57
+ * fix interval medium
58
+
53
59
  ### 0.5.0 (2024-03-07)
54
60
  * Integration of [Huawei SmartLogger](https://support.huawei.com/enterprise/de/doc/EDOC1100130069/d8a00460)
55
61
  * some meter states the unit was changed (for example sun2000.0.meter.activePowerL1) (#56)
@@ -13,9 +13,9 @@
13
13
  "delay after modbus connected": "Verzögerung nach der Modbus-Verbindung",
14
14
  "automatic adjustment of the modbus settings": "automatische Anpassung der Modbus-Einstellungen",
15
15
  "ms.aktive": "Modbus-Proxy aktiv",
16
- "Modbus-proxy via TCP for read-only is active": "Modbus-Proxy über TCP (nur lesend) ist aktiv",
16
+ "Modbus-proxy via TCP for read-only is active": "Modbus-Proxy über TCP zum Nur-Lesen ist aktiv",
17
17
  "ms.address": "Modbus-Proxy-IP-Adresse",
18
- "If want to listen only at localhost use 127.0.0.1": "Wenn Sie nur auf localhost hören möchten, verwenden Sie 127.0.0.1",
18
+ "If want to listen only at localhost use 127.0.0.1": "Wenn Sie nur auf localhost zuhören möchten, verwenden Sie 127.0.0.1",
19
19
  "ms.port": "Modbus-Proxy-TCP-Port",
20
20
  "The Modbus-proxy TCP port": "Der Modbus-Proxy-TCP-Port",
21
21
  "The SDongle modbus ID": "Die SDongle-Modbus-ID – normalerweise 100",
@@ -23,6 +23,7 @@
23
23
  "Advanced logging": "Erweiterte Protokollierung von Modbus-Transaktionen",
24
24
  "sl.aktive": "SmartLogger aktiv",
25
25
  "SmartLogger active": "SmartLogger aktiv",
26
- "sl.meterId": "Modbus-ID des Zählers",
27
- "The Meter modbus ID": "Die Modbus-ID des Smart Power Sensors"
26
+ "sl.meterId": "Modbus-ID des SmartLogger-Messgeräts",
27
+ "The Meter modbus ID": "Die Modbus-ID des Messgeräts",
28
+ "sd.active": "SDongle aktiv"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive" : "SmartLogger active",
25
25
  "SmartLogger active" : "SmartLogger active",
26
26
  "sl.meterId" : "SmartLogger meter modbus ID",
27
- "The Meter modbus ID" : "The Meter modbus ID"
27
+ "The Meter modbus ID" : "The Meter modbus ID",
28
+ "sd.active" : "SDongle active"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger activo",
25
25
  "SmartLogger active": "SmartLogger activo",
26
26
  "sl.meterId": "ID modbus del medidor SmartLogger",
27
- "The Meter modbus ID": "El ID modbus del medidor"
27
+ "The Meter modbus ID": "El ID modbus del medidor",
28
+ "sd.active": "SDongle activo"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger actif",
25
25
  "SmartLogger active": "SmartLogger actif",
26
26
  "sl.meterId": "ID Modbus du compteur SmartLogger",
27
- "The Meter modbus ID": "L'ID Modbus du compteur"
27
+ "The Meter modbus ID": "L'ID Modbus du compteur",
28
+ "sd.active": "SDongle actif"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger attivo",
25
25
  "SmartLogger active": "SmartLogger attivo",
26
26
  "sl.meterId": "ID modbus del contatore SmartLogger",
27
- "The Meter modbus ID": "L'ID del modbus del contatore"
27
+ "The Meter modbus ID": "L'ID del modbus del contatore",
28
+ "sd.active": "SDongle attivo"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger actief",
25
25
  "SmartLogger active": "SmartLogger actief",
26
26
  "sl.meterId": "Modbus-ID van SmartLogger-meter",
27
- "The Meter modbus ID": "De Modbus-ID van de meter"
27
+ "The Meter modbus ID": "De Modbus-ID van de meter",
28
+ "sd.active": "SDongle actief"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger aktywny",
25
25
  "SmartLogger active": "SmartLogger aktywny",
26
26
  "sl.meterId": "Identyfikator Modbus miernika SmartLogger",
27
- "The Meter modbus ID": "Identyfikator Modbus miernika"
27
+ "The Meter modbus ID": "Identyfikator Modbus miernika",
28
+ "sd.active": "SDongle aktywny"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger ativo",
25
25
  "SmartLogger active": "SmartLogger ativo",
26
26
  "sl.meterId": "ID modbus do medidor SmartLogger",
27
- "The Meter modbus ID": "O ID do modbus do medidor"
27
+ "The Meter modbus ID": "O ID do modbus do medidor",
28
+ "sd.active": "SD Dongle ativo"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger активен",
25
25
  "SmartLogger active": "SmartLogger активен",
26
26
  "sl.meterId": "Идентификатор Modbus счетчика SmartLogger",
27
- "The Meter modbus ID": "Идентификатор Modbus измерителя"
27
+ "The Meter modbus ID": "Идентификатор Modbus измерителя",
28
+ "sd.active": "SD-ключ активен"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger активний",
25
25
  "SmartLogger active": "SmartLogger активний",
26
26
  "sl.meterId": "ID лічильника Modbus SmartLogger",
27
- "The Meter modbus ID": "ID лічильника modbus"
27
+ "The Meter modbus ID": "ID лічильника modbus",
28
+ "sd.active": "SDongle активний"
28
29
  }
@@ -24,5 +24,6 @@
24
24
  "sl.aktive": "SmartLogger 激活",
25
25
  "SmartLogger active": "SmartLogger 激活",
26
26
  "sl.meterId": "SmartLogger电表modbus ID",
27
- "The Meter modbus ID": "仪表 modbus ID"
27
+ "The Meter modbus ID": "仪表 modbus ID",
28
+ "sd.active": "SD加密狗激活"
28
29
  }
@@ -15,11 +15,11 @@
15
15
  "address": {
16
16
  "type": "text",
17
17
  "label": "address",
18
- "newLine": true,
19
18
  "tooltip": "The device ip address",
20
19
  "sm": 12,
21
20
  "md": 8,
22
- "lg": 2
21
+ "lg": 2,
22
+ "newLine": true
23
23
  },
24
24
  "port": {
25
25
  "type": "number",
@@ -35,7 +35,7 @@
35
35
  "label": "Modbus inverter IDs",
36
36
  "sm": 12,
37
37
  "md": 8,
38
- "lg": 3,
38
+ "lg": 2,
39
39
  "default": "1",
40
40
  "newLine": true,
41
41
  "tooltip": "The modbus inverter IDs, separated with character ,"
@@ -49,25 +49,29 @@
49
49
  "newLine": true,
50
50
  "tooltip": "Update interval to update the values from the inverters"
51
51
  },
52
- "mainHdr2": {
52
+ "mainHdr3": {
53
53
  "newLine": true,
54
54
  "type": "header",
55
- "text": "SmartLogger Settings",
55
+ "text": "SDongle Settings",
56
56
  "size": 2
57
57
  },
58
- "sl_active": {
58
+ "chipsTxt": {
59
+ "type": "staticText",
60
+ "text": "Provides the collected data from the SDongle",
61
+ "newLine": true
62
+ },
63
+ "sd_active": {
59
64
  "type": "checkbox",
60
- "label": "sl.aktive",
65
+ "label": "sd.active",
61
66
  "newLine": true,
62
- "tooltip": "SmartLogger active"
67
+ "tooltip": "SDongle active"
63
68
  },
64
- "sl_meterId": {
69
+ "sDongleId": {
65
70
  "type": "text",
66
- "label": "sl.meterId",
71
+ "label": "SDongleA modbus ID",
67
72
  "lg": 2,
68
- "newLine": true,
69
- "tooltip": "The Meter modbus ID"
70
- }
73
+ "newLine": true
74
+ }
71
75
  }
72
76
  },
73
77
  "tab2": {
@@ -113,6 +117,37 @@
113
117
  }
114
118
  },
115
119
  "tab3": {
120
+ "type": "panel",
121
+ "label": "Smart Logger",
122
+ "items": {
123
+ "mainHdr3": {
124
+ "newLine": true,
125
+ "type": "header",
126
+ "text": "SmartLogger Settings",
127
+ "size": 2
128
+ },
129
+ "chipsTxt": {
130
+ "type": "staticText",
131
+ "text": "The SmartLogger monitors and manages PV systems and energy storage systems. It converges all ports, converts protocols, collects and stores data, and centrally monitors and maintains the devices in the systems.",
132
+ "newLine": true
133
+ },
134
+ "sl_active": {
135
+ "type": "checkbox",
136
+ "label": "sl.aktive",
137
+ "newLine": true,
138
+ "tooltip": "SmartLogger active"
139
+ },
140
+ "sl_meterId": {
141
+ "type": "text",
142
+ "label": "sl.meterId",
143
+ "lg": 2,
144
+ "newLine": true,
145
+ "tooltip": "The Meter modbus ID"
146
+ }
147
+
148
+ }
149
+ },
150
+ "tab4": {
116
151
  "type": "panel",
117
152
  "label": "Modbus-proxy",
118
153
  "items": {
@@ -152,13 +187,6 @@
152
187
  "newLine": true,
153
188
  "tooltip" : "The Modbus-proxy TCP port"
154
189
  },
155
- "sDongleId": {
156
- "type": "text",
157
- "label": "SDongleA modbus ID",
158
- "lg": 2,
159
- "newLine": true,
160
- "tooltip": "The SDongle modbus ID"
161
- },
162
190
  "ms_log": {
163
191
  "type": "checkbox",
164
192
  "label": "ms.log",
@@ -166,6 +194,31 @@
166
194
  "tooltip": "Advanced logging"
167
195
  }
168
196
  }
169
- }
197
+ },
198
+ "tab5": {
199
+ "type": "panel",
200
+ "label": "help",
201
+ "items": {
202
+ "Hdr1": {
203
+ "newLine": true,
204
+ "type": "header",
205
+ "text": "How do I get help?",
206
+ "size": 2
207
+ },
208
+ "chipsTxt": {
209
+ "type": "staticText",
210
+ "text": "Do you need help? There are multiple ways of getting support. ",
211
+ "newLine": true
212
+ },
213
+ "staticLink1": {
214
+ "type": "staticLink",
215
+ "text": "Available help options",
216
+ "href": "https://github.com/bolliy/ioBroker.sun2000/wiki/Hilfe-(support)",
217
+ "icon": "info",
218
+ "button": true,
219
+ "newLine": true
220
+ }
221
+ }
222
+ }
170
223
  }
171
224
  }
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "sun2000",
4
- "version": "0.5.0",
4
+ "version": "0.5.1",
5
5
  "news": {
6
+ "0.5.1": {
7
+ "en": "Config page restructured\nRead only the required string data\nfix interval medium",
8
+ "de": "Config-Seite umstrukturiert\nLesen Sie nur die gewünschten Stringdaten\nintervall mittel",
9
+ "ru": "Реструктуризация страницы настройки\nЧитайте только требуемые данные строки\nфиксированный интервал",
10
+ "pt": "Página de confiança reestruturada\nLeia apenas os dados de string necessários\nmédia de intervalo de correção",
11
+ "nl": "Configuratiepagina geherstructureerd\nAlleen de vereiste tekenreeksgegevens lezen\nfix interval medium",
12
+ "fr": "Config page restructurée\nLire seulement les données de chaîne requises\nintervalle de fixation moyen",
13
+ "it": "Pagina di configurazione ristrutturata\nLeggi solo i dati della stringa richiesti\nintervallo di fissaggio medio",
14
+ "es": "Reestructuración de la página de confidencialidad\nLea sólo los datos de cadena requeridos\nintervalo de fijación medio",
15
+ "pl": "Strona konfiguracyjna zrestrukturyzowana\nPrzeczytaj tylko wymagane dane łańcuchowe\nmedium interwałowe",
16
+ "uk": "Налаштування реструктуризації сторінки\nПрочитати тільки необхідні дані рядків\nфіксувати інтервал середні",
17
+ "zh-cn": "配置页面调整\n只读所需的字符串数据\n固定间隔介质"
18
+ },
6
19
  "0.5.0": {
7
20
  "en": "Integration of [Huawei SmartLogger](https://support.huawei.com/enterprise/de/doc/EDOC1100130069/d8a00460)\nsome meter states the unit was changed (for example sun2000.0.meter.activePowerL1) (#56)\nsun2000 serie M2 or higher can also be processed",
8
21
  "de": "Integration von [Huawei SmartLogger](https://support.huawei.com/enterprise/de/doc/EDOC1100130069/d8a00460)\neinige Zählerzustände wurden geändert (z.B. sun2000.0.meter.activePowerL1) (#56)\nsun2000 serie M2 oder höher kann auch verarbeitet werden",
@@ -80,19 +93,6 @@
80
93
  "pl": "Data umieszczenia w wykazie",
81
94
  "uk": "Вимоги до [Додати сонце2000 to last](https://github.com/ioBroker/ioBroker.repositories/pull/3219)",
82
95
  "zh-cn": "(https://github.com/ioBroker/ioBroker.repositories/pul/3219) 需求"
83
- },
84
- "0.2.0": {
85
- "en": "improve error handling (#34)\nadd simple optimizer info \nRiemann sum of input power with energy loss for new state `dailySolarYield`\ntry to recreate the `yield today` from the fusion portal",
86
- "de": "fehlerbehandlung verbessern (#34)\neinfache optimierer-info hinzufügen\nRiemann Summe der Eingangsleistung mit Energieverlust für neuen Zustand `dailySolarYield `\nversuchen, den `yield heute` aus dem fusionsportal wiederherzustellen",
87
- "ru": "улучшить обработку ошибок (#34)\nдобавить простую информацию о оптимизации\nRiemann Сумма входной мощности с потерей энергии для нового состояния `dailySolarYield \"\nпопытаться воссоздать «урожай сегодня» с портала синтеза",
88
- "pt": "melhorar o manuseio de erros (#34)\nadicionar informações de otimização simples\nRiemann soma de energia de entrada com perda de energia para novo estado `dailySolarYield \"\ntentar recriar o `yield hoje` do portal de fusão",
89
- "nl": "verbetering van de foutafhandeling (#34)\nvoeg eenvoudige optimalisatie info toe\nRiemann-som van het ingangsvermogen met energieverlies voor nieuwe toestand Wat\nproberen om de te recreëren van vandaag van de fusie portal",
90
- "fr": "améliorer la gestion des erreurs (#34)\najouter des informations d'optimisation simples\nRiemann somme de puissance d'entrée avec perte d'énergie pour le nouvel état `dailySolarYield \"\nessayer de recréer le « rendement aujourd'hui » du portail de fusion",
91
- "it": "migliorare la gestione degli errori (#34)\naggiungere semplici informazioni di ottimizzazione\nRiemann somma di potenza di ingresso con perdita di energia per nuovo stato `dailySolarYield #\ncercare di ricreare il `yield oggi` dal portale fusion",
92
- "es": "mejorar el manejo de errores (#34)\nañadir información de optimización simple\nRiemann suma de poder de entrada con pérdida de energía para el nuevo estado `dailySolarYield `\ntratar de recrear el `yield hoy' del portal de fusión",
93
- "pl": "poprawić obsługę błędów (# 34)\ndodaj proste informacje o optymalizacji\nRiemann suma mocy wejściowej z utratą energii dla nowego stanu \"dailySolarYeld '\nspróbuj odtworzyć \"wydajność dzisiaj\" z portalu syntezy jądrowej",
94
- "uk": "поліпшення обробки помилок (#34)\nдодати просту оптимізацію\nСума вхідної енергії з втратою енергії для нового стану `dailySolarYield й\nнамагатися відтворити `yield сьогодні` з порталу fusion",
95
- "zh-cn": "改进错误处理(# 34)\n添加简单的优化信息\nRiemann 输入功率总和, `\n尝试从聚变门户重现“今天”"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -176,6 +176,8 @@
176
176
  "port": 502,
177
177
  "modbusIds": "1",
178
178
  "updateInterval": 20,
179
+ "sd_active": false,
180
+ "sDongleId": "100",
179
181
  "timeout": 10000,
180
182
  "delay": 0,
181
183
  "connectDelay": 5000,
@@ -184,7 +186,6 @@
184
186
  "ms_address": "0.0.0.0",
185
187
  "ms_port": 502,
186
188
  "ms_log": false,
187
- "sDongleId": "100",
188
189
  "sl_active": false,
189
190
  "sl_meterId": 11
190
191
  },
@@ -143,7 +143,7 @@ class DriverBase {
143
143
  if (!reg.refresh) continue;
144
144
  //v0.4.0
145
145
  let interval = this.adapter.settings.lowInterval;
146
- if ( refreshRate === dataRefreshRate.medium) interval = this.adapter.settings.mediumInterval;
146
+ if ( reg.refresh === dataRefreshRate.medium) interval = this.adapter.settings.mediumInterval;
147
147
  if ((start - lastread) < interval) {
148
148
  this.adapter.log.debug('Last read reg for '+(start - lastread)+' ms - '+reg?.info);
149
149
  continue;
@@ -342,10 +342,10 @@ class InverterSun2000 extends DriverBase{
342
342
  reg.states.push(stateCu);
343
343
  reg.states.push(statePo);
344
344
  }
345
+ reg.length = noPVString * 2;
345
346
  }
346
347
  stringFieldsTemplate.generated = noPVString;
347
348
  //this.adapter.log.debug(JSON.stringify(reg));
348
-
349
349
  }
350
350
  },
351
351
  //After 32000 read
@@ -627,7 +627,7 @@ class InverterSun2000 extends DriverBase{
627
627
  fn : (path) => {
628
628
  const disCharge = this.stateCache.get(path+'battery.currentDayDischargeCapacity')?.value;
629
629
  const charge = this.stateCache.get(path+'battery.currentDayChargeCapacity')?.value;
630
- let inputYield = this.stateCache.get(path+'dailyEnergyYield')?.value + (charge - disCharge)*0.97;
630
+ let inputYield = this.stateCache.get(path+'dailyEnergyYield')?.value *0.97 + charge - disCharge;
631
631
 
632
632
  if (inputYield < 0 || isNaN(inputYield)) inputYield = 0;
633
633
  this.stateCache.set(path+'derived.dailyInputYield', inputYield, {type: 'number'});
package/main.js CHANGED
@@ -50,6 +50,10 @@ class Sun2000 extends utils.Adapter {
50
50
  sl: {
51
51
  active : false,
52
52
  meterId: 11
53
+ },
54
+ sd: {
55
+ active : false,
56
+ sDongleId : 100
53
57
  }
54
58
  };
55
59
 
@@ -333,8 +337,9 @@ class Sun2000 extends utils.Adapter {
333
337
  this.settings.modbusConnectDelay = this.config.connectDelay; //ms
334
338
  this.settings.modbusAdjust = this.config.autoAdjust;
335
339
  this.settings.modbusIds = this.config.modbusIds.split(',').map((n) => {return Number(n);});
336
- this.settings.sDongleId = Number(this.config.sDongleId) ?? -1;
337
- if (this.settings.sDongleId < -1 && this.settings.sDongleId >= 255) this.settings.sDongleId = -1;
340
+ this.settings.sd.active = this.config.sd_active;
341
+ this.settings.sd.sDongleId = Number(this.config.sDongleId) ?? 0;
342
+ if (this.settings.sDongleId < 0 && this.settings.sDongleId >= 255) this.settings.sd.active = false;
338
343
  this.settings.highInterval = this.config.updateInterval*1000; //ms
339
344
  this.settings.ms.address = this.config.ms_address;
340
345
  this.settings.ms.port = this.config.ms_port;
@@ -379,16 +384,17 @@ class Sun2000 extends utils.Adapter {
379
384
  driverClass: driverClasses.loggerMeter
380
385
  });
381
386
  }
382
- } else {
383
- if (this.settings.sDongleId > 0) {
384
- this.devices.push({
385
- index: 0,
386
- duration: 0,
387
- modbusId: this.settings.sDongleId,
388
- driverClass: driverClasses.sdongle
389
- });
390
- }
391
387
  }
388
+ //v0.5.1
389
+ if (this.settings.sd.active) {
390
+ this.devices.push({
391
+ index: 0,
392
+ duration: 0,
393
+ modbusId: this.settings.sd.sDongleId,
394
+ driverClass: driverClasses.sdongle
395
+ });
396
+ }
397
+
392
398
  await this.adjustInverval();
393
399
  await this.StartProcess();
394
400
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.sun2000",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "sun2000",
5
5
  "author": {
6
6
  "name": "bolliy",