iobroker.sigenergy 2.3.1 → 2.3.3

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
@@ -153,6 +153,12 @@ Status and power readings for the DC charger.
153
153
 
154
154
  ## Changelog
155
155
 
156
+ ### 2.3.3 (2026-06-11)
157
+ - (ssbingo) fix: suppress repeated register read warnings after first occurrence for plant/inverter/acCharger/dcCharger/pss/pid; subsequent failures log at debug level only
158
+
159
+ ### 2.3.2 (2026-06-10)
160
+ - (ssbingo) fix: show 'pre-V2.6' instead of 'unknown' when device responds but has no extended plant registers; add per-probe debug log with Modbus exception message
161
+
156
162
  ### 2.3.1 (2026-06-10)
157
163
  - (ssbingo) feat: detect Modbus protocol level on startup by probing registers 30088/30200/30228/30286; read firmware version (30525); log result and store as info.protocolLevel state
158
164
 
package/io-package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "sigenergy",
4
- "version": "2.3.1",
4
+ "version": "2.3.3",
5
5
  "news": {
6
- "2.3.1": {
7
- "en": "(ssbingo) feat: detect Modbus protocol level on startup by probing registers 30088/30200/30228/30286; read firmware version (30525); log result and store as info.protocolLevel state",
8
- "de": "(ssbingo) feat: Modbus-Protokollebene beim Start durch Probe von Registern 30088/30200/30228/30286 erkennen; Firmware-Version (30525) lesen; Ergebnis loggen und als info.protocolLevel-State speichern",
9
- "ru": "(ssbingo) feat: определение уровня протокола Modbus при запуске путём опроса регистров 30088/30200/30228/30286; чтение версии прошивки (30525); журналирование результата и сохранение в состояние info.protocolLevel",
10
- "pt": "(ssbingo) feat: detectar nível do protocolo Modbus no arranque sondando registos 30088/30200/30228/30286; ler versão de firmware (30525); registar resultado e guardar como estado info.protocolLevel",
11
- "nl": "(ssbingo) feat: Modbus-protocolniveau bij opstarten detecteren door registers 30088/30200/30228/30286 te sonderen; firmwareversie (30525) lezen; resultaat loggen en opslaan als info.protocolLevel-state",
12
- "fr": "(ssbingo) feat: détection du niveau de protocole Modbus au démarrage en sondant les registres 30088/30200/30228/30286 ; lecture de la version firmware (30525) ; journalisation du résultat et stockage dans l'état info.protocolLevel",
13
- "it": "(ssbingo) feat: rilevamento del livello del protocollo Modbus all'avvio sondando i registri 30088/30200/30228/30286; lettura della versione firmware (30525); registrazione del risultato e salvataggio come stato info.protocolLevel",
14
- "es": "(ssbingo) feat: detectar nivel de protocolo Modbus en el arranque sondeando registros 30088/30200/30228/30286; leer versión de firmware (30525); registrar resultado y almacenar como estado info.protocolLevel",
15
- "pl": "(ssbingo) feat: wykrywanie poziomu protokołu Modbus przy uruchomieniu przez próbkowanie rejestrów 30088/30200/30228/30286; odczyt wersji firmware (30525); logowanie wyniku i zapis jako stan info.protocolLevel",
16
- "uk": "(ssbingo) feat: виявлення рівня протоколу Modbus при запуску шляхом зондування регістрів 30088/30200/30228/30286; зчитування версії прошивки (30525); журналювання результату та збереження як стан info.protocolLevel",
17
- "zh-cn": "(ssbingo) feat: 启动时通过探测寄存器 30088/30200/30228/30286 检测 Modbus 协议级别;读取固件版本(30525);记录结果并存储为 info.protocolLevel 状态"
6
+ "2.3.3": {
7
+ "en": "(ssbingo) fix: suppress repeated register read warnings after first occurrence for plant/inverter/acCharger/dcCharger/pss/pid; subsequent failures log at debug level only",
8
+ "de": "(ssbingo) fix: wiederholte Register-Lesewarnungen nach erstem Auftreten für plant/inverter/acCharger/dcCharger/pss/pid unterdrückt; weitere Fehler nur noch auf Debug-Ebene protokolliert",
9
+ "ru": "(ssbingo) fix: подавление повторяющихся предупреждений о чтении регистров после первого возникновения для plant/inverter/acCharger/dcCharger/pss/pid; последующие ошибки логируются только на уровне debug",
10
+ "pt": "(ssbingo) fix: suprimir avisos repetidos de leitura de registos após primeira ocorrência para plant/inverter/acCharger/dcCharger/pss/pid; falhas subsequentes registadas apenas ao nível debug",
11
+ "nl": "(ssbingo) fix: herhaalde register-leeswaarschuwingen na eerste voorkomen onderdrukken voor plant/inverter/acCharger/dcCharger/pss/pid; volgende fouten alleen op debug-niveau gelogd",
12
+ "fr": "(ssbingo) fix: supprimer les avertissements répétés de lecture de registres après la première occurrence pour plant/inverter/acCharger/dcCharger/pss/pid ; les échecs suivants sont journalisés au niveau debug uniquement",
13
+ "it": "(ssbingo) fix: sopprimere gli avvisi ripetuti di lettura registro dopo la prima occorrenza per plant/inverter/acCharger/dcCharger/pss/pid; i guasti successivi vengono registrati solo a livello debug",
14
+ "es": "(ssbingo) fix: suprimir advertencias repetidas de lectura de registros tras la primera aparición para plant/inverter/acCharger/dcCharger/pss/pid; los fallos posteriores solo se registran a nivel debug",
15
+ "pl": "(ssbingo) fix: tłumienie powtarzających się ostrzeżeń o odczycie rejestrów po pierwszym wystąpieniu dla plant/inverter/acCharger/dcCharger/pss/pid; kolejne błędy rejestrowane tylko na poziomie debug",
16
+ "uk": "(ssbingo) fix: придушення повторюваних попереджень про зчитування регістрів після першого виникнення для plant/inverter/acCharger/dcCharger/pss/pid; наступні помилки журналюються лише на рівні debug",
17
+ "zh-cn": "(ssbingo) fix: plant/inverter/acCharger/dcCharger/pss/pid 寄存器读取警告在首次出现后不再重复;后续失败仅在 debug 级别记录"
18
18
  }
19
19
  },
20
20
  "titleLang": {
package/main.js CHANGED
@@ -62,6 +62,12 @@ class Sigenergy extends utils.Adapter {
62
62
  this._controlRegistersRead = false;
63
63
  this._protocolDetected = false;
64
64
  this._essPreheatingUnsupported = false;
65
+ this._plantUnsupportedGroups = new Set();
66
+ this._inverterUnsupportedGroups = new Set();
67
+ this._acChargerUnsupportedGroups = new Set();
68
+ this._dcChargerUnsupportedGroups = new Set();
69
+ this._pssUnsupportedGroups = new Set();
70
+ this._pidUnsupportedGroups = new Set();
65
71
 
66
72
  this.on('ready', this.onReady.bind(this));
67
73
  this.on('stateChange', this.onStateChange.bind(this));
@@ -353,7 +359,12 @@ class Sigenergy extends utils.Adapter {
353
359
  await this._processReadGroup(group, raw, 'plant');
354
360
  await this._sleep(100);
355
361
  } catch (err) {
356
- this.log.warn(`Plant register read error at ${group.startAddr}: ${err.message}`);
362
+ if (!this._plantUnsupportedGroups.has(group.startAddr)) {
363
+ this._plantUnsupportedGroups.add(group.startAddr);
364
+ this.log.warn(`Plant register read error at ${group.startAddr}: ${err.message}`);
365
+ } else {
366
+ this.log.debug(`[plant] read error at ${group.startAddr}: ${err.message}`);
367
+ }
357
368
  }
358
369
  }
359
370
  }
@@ -379,7 +390,12 @@ class Sigenergy extends utils.Adapter {
379
390
  await this._processReadGroup(group, raw, 'inverter');
380
391
  await this._sleep(100);
381
392
  } catch (err) {
382
- this.log.warn(`Inverter register read error at ${group.startAddr}: ${err.message}`);
393
+ if (!this._inverterUnsupportedGroups.has(group.startAddr)) {
394
+ this._inverterUnsupportedGroups.add(group.startAddr);
395
+ this.log.warn(`Inverter register read error at ${group.startAddr}: ${err.message}`);
396
+ } else {
397
+ this.log.debug(`[inverter] read error at ${group.startAddr}: ${err.message}`);
398
+ }
383
399
  }
384
400
  }
385
401
  }
@@ -402,7 +418,12 @@ class Sigenergy extends utils.Adapter {
402
418
  await this._processReadGroup(group, raw, 'acCharger');
403
419
  await this._sleep(100);
404
420
  } catch (err) {
405
- this.log.warn(`AC Charger register read error: ${err.message}`);
421
+ if (!this._acChargerUnsupportedGroups.has(group.startAddr)) {
422
+ this._acChargerUnsupportedGroups.add(group.startAddr);
423
+ this.log.warn(`AC Charger register read error at ${group.startAddr}: ${err.message}`);
424
+ } else {
425
+ this.log.debug(`[acCharger] read error at ${group.startAddr}: ${err.message}`);
426
+ }
406
427
  }
407
428
  }
408
429
  }
@@ -425,7 +446,12 @@ class Sigenergy extends utils.Adapter {
425
446
  await this._processReadGroup(group, raw, 'dcCharger');
426
447
  await this._sleep(100);
427
448
  } catch (err) {
428
- this.log.warn(`DC Charger register read error: ${err.message}`);
449
+ if (!this._dcChargerUnsupportedGroups.has(group.startAddr)) {
450
+ this._dcChargerUnsupportedGroups.add(group.startAddr);
451
+ this.log.warn(`DC Charger register read error at ${group.startAddr}: ${err.message}`);
452
+ } else {
453
+ this.log.debug(`[dcCharger] read error at ${group.startAddr}: ${err.message}`);
454
+ }
429
455
  }
430
456
  }
431
457
  }
@@ -445,7 +471,12 @@ class Sigenergy extends utils.Adapter {
445
471
  await this._processReadGroup(group, raw, 'pss');
446
472
  await this._sleep(100);
447
473
  } catch (err) {
448
- this.log.warn(`PSS register read error: ${err.message}`);
474
+ if (!this._pssUnsupportedGroups.has(group.startAddr)) {
475
+ this._pssUnsupportedGroups.add(group.startAddr);
476
+ this.log.warn(`PSS register read error at ${group.startAddr}: ${err.message}`);
477
+ } else {
478
+ this.log.debug(`[pss] read error at ${group.startAddr}: ${err.message}`);
479
+ }
449
480
  }
450
481
  }
451
482
  }
@@ -465,7 +496,12 @@ class Sigenergy extends utils.Adapter {
465
496
  await this._processReadGroup(group, raw, 'pid');
466
497
  await this._sleep(100);
467
498
  } catch (err) {
468
- this.log.warn(`PID register read error: ${err.message}`);
499
+ if (!this._pidUnsupportedGroups.has(group.startAddr)) {
500
+ this._pidUnsupportedGroups.add(group.startAddr);
501
+ this.log.warn(`PID register read error at ${group.startAddr}: ${err.message}`);
502
+ } else {
503
+ this.log.debug(`[pid] read error at ${group.startAddr}: ${err.message}`);
504
+ }
469
505
  }
470
506
  }
471
507
  }
@@ -522,7 +558,8 @@ class Sigenergy extends utils.Adapter {
522
558
  try {
523
559
  await this.modbus.readInputRegisters(plantId, probe.addr, 1);
524
560
  detectedLevel = probe.level;
525
- } catch {
561
+ } catch (err) {
562
+ this.log.debug(`[protocolProbe] addr=${probe.addr} (${probe.level}): ${err.message}`);
526
563
  break;
527
564
  }
528
565
  }
@@ -535,7 +572,7 @@ class Sigenergy extends utils.Adapter {
535
572
  // not critical
536
573
  }
537
574
 
538
- const levelStr = detectedLevel ? `>=${detectedLevel}` : 'unknown';
575
+ const levelStr = detectedLevel ? `>=${detectedLevel}` : 'pre-V2.6';
539
576
  this.log.info(`Detected protocol level: ${levelStr} (firmware: ${firmwareVersion})`);
540
577
  await this.setStateAsync('info.protocolLevel', { val: levelStr, ack: true });
541
578
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.sigenergy",
3
- "version": "2.3.1",
3
+ "version": "2.3.3",
4
4
  "description": "ioBroker adapter for Sigenergy solar energy systems via Modbus TCP/RTU",
5
5
  "author": {
6
6
  "name": "ssbingo",