iobroker.sun2000 0.15.1 → 0.16.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 CHANGED
@@ -65,6 +65,13 @@ browse in the [wiki](https://github.com/bolliy/ioBroker.sun2000/wiki)
65
65
  Placeholder for the next version (at the beginning of the line):
66
66
  ### **WORK IN PROGRESS**
67
67
  -->
68
+ ### 0.16.0 (2024-11-01)
69
+ * dependency and configuration updates
70
+ * read additional register data of Huawei Emma
71
+
72
+ ### 0.15.2 (2024-10-30)
73
+ * EMMA Device was not initialized
74
+
68
75
  ### 0.15.1 (2024-10-28)
69
76
  * SDongle data was not written as object states
70
77
  * adjust the adapter settings
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "sun2000",
4
- "version": "0.15.1",
4
+ "version": "0.16.0",
5
5
  "news": {
6
+ "0.16.0": {
7
+ "en": "dependency and configuration updates\nread additional register data of Huawei Emma",
8
+ "de": "abhängigkeits- und konfigurationsupdates\nweitere Registrierungsdaten von Huawei Emma lesen",
9
+ "ru": "обновления зависимости и конфигурации\nпрочитать дополнительные данные реестра Huawei Эмма",
10
+ "pt": "atualizações de dependência e configuração\nleia dados de registro adicionais de Huawei Emma",
11
+ "nl": "afhankelijkheid en configuratie-updates\nlees extra registergegevens van Huawei Emma",
12
+ "fr": "mises à jour de la dépendance et de la configuration\nlire les données supplémentaires du registre de Huawei Emma",
13
+ "it": "aggiornamenti di dipendenza e configurazione\nleggere ulteriori dati di registro di Huawei Emma",
14
+ "es": "actualizaciones de dependencia y configuración\nleer más datos de registro de Huawei Emma",
15
+ "pl": "aktualizacje zależności i konfiguracji\nprzeczytaj dodatkowe dane rejestru Huawei Emma",
16
+ "uk": "оновлення залежності та конфігурації\nчитати додаткові реєстраційні дані Huawei Emma",
17
+ "zh-cn": "依赖和配置更新\n读取 Huawei Emma 的额外注册数据"
18
+ },
19
+ "0.15.2": {
20
+ "en": "EMMA Device was not initialized",
21
+ "de": "EMMA Gerät wurde nicht initialisiert",
22
+ "ru": "EMMA Устройство не было инициализировано",
23
+ "pt": "EMPRESA Dispositivo não inicializado",
24
+ "nl": "EMMA Apparaat is niet geïnitialiseerd",
25
+ "fr": "EMMA L'appareil n'a pas été initialisé",
26
+ "it": "EMMA Il dispositivo non è stato inizializzato",
27
+ "es": "EMMA No se inicializó el dispositivo",
28
+ "pl": "EMMA Urządzenie nie zostało zainicjowane",
29
+ "uk": "ЕММА Пристрої не було ініціалізовано",
30
+ "zh-cn": "埃马 设备未初始化"
31
+ },
6
32
  "0.15.1": {
7
33
  "en": "SDongle data was not written as object states\nadjust the adapter settings",
8
34
  "de": "SDongle Daten wurden nicht als Objektzustände geschrieben\nanpassung der adaptereinstellungen",
@@ -67,32 +93,6 @@
67
93
  "pl": "brak ostrzeżenia z sprawdzenia poprawnego numeru podczas czuwania: \"brak napromieniowania\"",
68
94
  "uk": "без попередження про перевірку дійсного числа під час очікування: \"не опромінення\"",
69
95
  "zh-cn": "在待命时不检查有效号码的警告 : “ 不辐射 ”"
70
- },
71
- "0.12.0": {
72
- "en": "Requirements from ioBroker Check and Service Bot #104\nadded battery packs #85\nadded config panel `Further Register`",
73
- "de": "Anforderungen an ioBroker Check und Service Bot #104\nakkupacks #85\nhinzufügen config panel `Weiter registrieren `",
74
- "ru": "Требования от ioBroker Check and Service Bot #104\n#85\nдобавленная панель конфигурации `Further Register \"",
75
- "pt": "Requisitos de ioBroker Check e Service Bot #104\npacotes de bateria adicionados #85\nadicionado painel de configuração `Further Register \"",
76
- "nl": "Vereisten van ioBroker Check and Service Bot #104\ntoegevoegde batterijpakketten #85\ntoegevoegd config paneel \"Verder registreren\" Wat",
77
- "fr": "Exigences de ioBroker Check and Service Bot #104\npacks de batterie supplémentaires #85\najouté panneau de configuration `Plus grand registre \"",
78
- "it": "Requisiti da ioBroker Check and Service Bot #104\nbatterie aggiunte #85\naggiunto pannello di configurazione `Further Register #",
79
- "es": "Requisitos de ioBroker Check and Service Bot #104\nañadir paquetes de batería #85\npanel de configuración añadido `Más registro `",
80
- "pl": "Wymagania dotyczące kontroli ioBroker i serwisu Bot # 104\ndodany zestaw baterii # 85\ndodany panel konfiguracyjny \"Dalszy rejestr '",
81
- "uk": "Вимоги до ioBroker Check and Service Bot #104\nдоданий акумуляторний пакет #85\nдодано панель налаштувань `Further Реєстр й",
82
- "zh-cn": "ioBroker检查和服务瓶的所需经费#104\n添加电池包# 85\n添加配置面板“ 进一步登记” `"
83
- },
84
- "0.11.0": {
85
- "en": "added a donation link in the adapter settings\ndependency updated",
86
- "de": "einen spendenlink in den adaptereinstellungen hinzugefügt\naktualisierte abhängigkeit",
87
- "ru": "добавлена ссылка пожертвований в настройках адаптера\nобновленные данные",
88
- "pt": "adicionou um link de doação nas configurações do adaptador\ndependência atualizada",
89
- "nl": "een donatielink toegevoegd in de adapterinstellingen\nafhankelijkheid bijgewerkt",
90
- "fr": "ajouté un lien de don dans les paramètres de l'adaptateur\nmise à jour de la dépendance",
91
- "it": "aggiunto un link di donazione nelle impostazioni dell'adattatore\naggiornamento della dipendenza",
92
- "es": "añadido un enlace de donación en la configuración del adaptador\nactualización de la dependencia",
93
- "pl": "dodano link do darowizny w ustawieniach adaptera\nzaktualizowana zależność",
94
- "uk": "додано посилання пожертвування в налаштуваннях адаптера\nоновлення залежності",
95
- "zh-cn": "在适配器设置中添加一个捐赠链接\n更新依赖关系"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -61,7 +61,7 @@ class Emma extends DriverBase{
61
61
  {
62
62
  address : 30302,
63
63
  length : 50,
64
- info : 'Emma sampled data',
64
+ info : 'Emma sampled data 1',
65
65
  refresh : dataRefreshRate.low,
66
66
  states: [{
67
67
  state: {id: 'emma.inverterTotalAbsorbedEnergy', name: 'Inverter total absorbed energy', type: 'number', unit: 'kWh', role: 'value.power.consumption', desc: 'reg:30302, len:4'},
@@ -190,7 +190,7 @@ class Emma extends DriverBase{
190
190
  },
191
191
  {
192
192
  address : 30380,
193
- length : 18,
193
+ length : 31,
194
194
  info : 'Emma sampled data 4',
195
195
  refresh : dataRefreshRate.low,
196
196
  states: [{
@@ -224,8 +224,21 @@ class Emma extends DriverBase{
224
224
  {
225
225
  state: {id: 'emma.yearlySupplyFromGrid', name: 'Yearly supply from grid', type: 'number', unit: 'kWh', role: 'value.power.consumption', desc: 'reg:30396, len:2'},
226
226
  register: {reg: 30396, type: dataType.uint32, gain: 100}
227
+ },
228
+ {
229
+ state: {id: 'emma.BackupTimeNotificationThreshold', name: 'Backup time notification threshold', type: 'number', unit: 'min', role: 'value', desc: 'reg:30406, len:1'},
230
+ register: {reg: 30406, type: dataType.uint16}
231
+ },
232
+ {
233
+ state: {id: 'emma.energyChargedThisMonth', name: 'Energy charged this month', type: 'number', unit: 'kWh', role: 'value.power.consumption', desc: 'reg:30407, len:2'},
234
+ register: {reg: 30407, type: dataType.uint32, gain: 100}
235
+ },
236
+ {
237
+ state: {id: 'emma.energyDischargedThisMonth', name: 'Energy discharged this month', type: 'number', unit: 'kWh', role: 'value.power.consumption', desc: 'reg:30409, len:2'},
238
+ register: {reg: 30409, type: dataType.uint32, gain: 100}
227
239
  }]
228
240
  },
241
+ /*
229
242
  {
230
243
  address : 30407,
231
244
  length : 4,
@@ -240,6 +253,7 @@ class Emma extends DriverBase{
240
253
  register: {reg: 30409, type: dataType.uint32, gain: 100}
241
254
  }]
242
255
  },
256
+ */
243
257
  {
244
258
  address : 31002,
245
259
  length : 1,
@@ -2,7 +2,7 @@
2
2
  const {driverClasses} = require(__dirname + '/../types.js');
3
3
  const {InverterInfo} = require(__dirname + '/driver_inverter.js');
4
4
  const {SmartLogger,SmartLoggerMeter} = require(__dirname + '/driver_slogger.js');
5
- const { Emma } = require(__dirname + '/driver_emma.js');
5
+ const Emma = require(__dirname + '/driver_emma.js');
6
6
  const Sdongle = require(__dirname + '/driver_sdongle.js');
7
7
  //const Scharger = require(__dirname + '/driver_scharger.js');
8
8
 
@@ -103,12 +103,10 @@ class ModbusServer {
103
103
  this.serverTCP && await this.close();
104
104
  });
105
105
  this.serverTCP.on('socketError', async (err) => {
106
+ this.log.warn('Modbus-proxy (socketError) '+err);
106
107
  //Network error
107
108
  if (err == 'ECONNRESET' ) {
108
- this.log.warn('Modbus-proxy (socketError) '+err);
109
109
  this.serverTCP && await this.close();
110
- } else {
111
- this.log.error('Modbus-proxy (socketError) '+err);
112
110
  }
113
111
  });
114
112
  }
@@ -164,7 +162,7 @@ class ModbusServer {
164
162
  } else {
165
163
  this._addInfoStat('#getMultipleHoldingRegisters',startAddr, length, unitId);
166
164
  await this.wait(500);
167
- callback({ modbusErrorCode: 0x01, msg: 'Device ID '+unitId+' not supported by device' });
165
+ callback({ modbusErrorCode: 0x01, msg: 'Illegal function (device does not support this read/write function)' });
168
166
  }
169
167
  } catch (err) {
170
168
  this._addInfoStat('#getMultipleHoldingRegisters',startAddr, length, unitId);
package/lib/register.js CHANGED
@@ -179,7 +179,7 @@ class Registers {
179
179
  }
180
180
  return device.instance.updateStates(modbusClient,refreshRate,duration);
181
181
  } else {
182
- this.adapter.logger.error('No device instance has been initialized!');
182
+ this.adapter.logger.error('No device instance for has been initialized! {index:'+device?.index+', driverClass:'+device?.driverClass+', modbusID:'+device?.modbusId+'}');
183
183
  return 0;
184
184
  }
185
185
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.sun2000",
3
- "version": "0.15.1",
3
+ "version": "0.16.0",
4
4
  "description": "sun2000",
5
5
  "author": {
6
6
  "name": "bolliy",
@@ -27,7 +27,7 @@
27
27
  "node": ">= 18"
28
28
  },
29
29
  "dependencies": {
30
- "@iobroker/adapter-core": "^3.2.1",
30
+ "@iobroker/adapter-core": "^3.2.2",
31
31
  "modbus-serial": "^8.0.17",
32
32
  "suncalc2": "^1.8.1",
33
33
  "tcp-port-used": "^1.0.2"
@@ -40,21 +40,21 @@
40
40
  "@iobroker/adapter-dev": "^1.3.0",
41
41
  "@iobroker/testing": "^5.0.0",
42
42
  "@tsconfig/node16": "^16.1.3",
43
- "@types/chai": "^4.3.19",
43
+ "@types/chai": "^4.3.20",
44
44
  "@types/chai-as-promised": "^7.1.8",
45
- "@types/mocha": "^10.0.7",
46
- "@types/node": "^22.7.4",
45
+ "@types/mocha": "^10.0.9",
46
+ "@types/node": "^22.8.6",
47
47
  "@types/proxyquire": "^1.3.31",
48
48
  "@types/sinon": "^17.0.3",
49
49
  "@types/sinon-chai": "^3.2.12",
50
50
  "chai": "^4.5.0",
51
51
  "chai-as-promised": "^7.1.2",
52
- "eslint": "^8.57.0",
53
- "mocha": "^10.7.3",
52
+ "eslint": "^8.57.1",
53
+ "mocha": "^10.8.2",
54
54
  "proxyquire": "^2.1.3",
55
55
  "sinon": "^19.0.2",
56
56
  "sinon-chai": "^3.7.0",
57
- "typescript": "~5.6.2"
57
+ "typescript": "~5.6.3"
58
58
  },
59
59
  "main": "main.js",
60
60
  "files": [