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 +7 -0
- package/io-package.json +27 -27
- package/lib/drivers/driver_emma.js +16 -2
- package/lib/drivers/index.js +1 -1
- package/lib/modbus/modbus_server.js +2 -4
- package/lib/register.js +1 -1
- package/package.json +8 -8
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.
|
|
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 :
|
|
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,
|
package/lib/drivers/index.js
CHANGED
|
@@ -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
|
|
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: '
|
|
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.
|
|
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.
|
|
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.
|
|
43
|
+
"@types/chai": "^4.3.20",
|
|
44
44
|
"@types/chai-as-promised": "^7.1.8",
|
|
45
|
-
"@types/mocha": "^10.0.
|
|
46
|
-
"@types/node": "^22.
|
|
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.
|
|
53
|
-
"mocha": "^10.
|
|
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.
|
|
57
|
+
"typescript": "~5.6.3"
|
|
58
58
|
},
|
|
59
59
|
"main": "main.js",
|
|
60
60
|
"files": [
|