iobroker.goodwe-sems 0.1.9 → 0.1.11

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
@@ -151,6 +151,26 @@ Pull requests are welcome, especially to add further fields delivered by the por
151
151
  -->
152
152
  ### **WORK IN PROGRESS**
153
153
 
154
+ ### 0.1.11 (2026-07-19)
155
+
156
+ - (Stefan Bühler) fixed a real CI break introduced in 0.1.10: removed Node.js 20.x from the `adapter-tests` matrix in `.github/workflows/test-and-release.yml`. It is incompatible with `engines.node >=22` (also introduced in 0.1.10) once the official `ioBroker/testing-action-adapter@v1` action runs `npm ci` with `engine-strict` enabled, which crashed that matrix job and cancelled every other job via fail-fast
157
+
158
+ ### 0.1.10 (2026-07-19)
159
+
160
+ Second round of fixes, addressing further findings from a stricter automated `@iobroker/repochecker` recheck on the `ioBroker.repositories` listing PR:
161
+
162
+ - (Stefan Bühler) **[W0028]** raised `engines.node` to `>=22`
163
+ - (Stefan Bühler) **[W0063]** removed `chai`, `chai-as-promised`, `mocha`, `sinon` from devDependencies (already provided by `@iobroker/testing`)
164
+ - (Stefan Bühler) **[S0065]/[S0085]/[S0087]** added `@types/node`, `@tsconfig/node22` and `/tsconfig.json` for editor type-checking support
165
+ - (Stefan Bühler) **[S5026]** added the `@alcalzone/release-script-plugin-manual-review` release plugin
166
+ - (Stefan Bühler) **[W3013]/[W3015]/[W3017]** rewrote `.github/workflows/test-and-release.yml` to use the official shared `ioBroker/testing-action-check@v1`, `ioBroker/testing-action-adapter@v1` and `ioBroker/testing-action-deploy@v1` GitHub Actions instead of hand-written steps
167
+ - (Stefan Bühler) added `test/integration.js` (adapter startup smoke test via `@iobroker/testing`'s integration harness) so `npm run test:integration` succeeds
168
+ - (Stefan Bühler) **[E1032]** trimmed `common.news` in `io-package.json` to the 7 entries kept by the repository builder
169
+ - (Stefan Bühler) **[E5512]** added the required `size` property to the Pushover section header in `admin/jsonConfig.json`
170
+ - (Stefan Bühler) **[S5601]** migrated `admin/i18n` from the long `{lang}/translations.json` format to the short `{lang}.json` format
171
+ - (Stefan Bühler) **[S4036]** added `.vscode/settings.json` with JSON schema associations for `io-package.json` and `admin/jsonConfig.json`
172
+ - (Stefan Bühler) **[S8901]** added `.github/dependabot.yml` (npm + github-actions, weekly, with a cooldown and an `@types/node` major/minor ignore rule)
173
+
154
174
  ### 0.1.9 (2026-07-19)
155
175
 
156
176
  Addressed the stricter automated `@iobroker/repochecker` findings surfaced on the `ioBroker.repositories` listing PR:
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "SEMS-Login-Fehler",
13
13
  "notifyOnRateLimit": "SEMS-Rate-Limit erreicht",
14
14
  "notifyOnStationOffline": "Länger andauerndem Ausfall",
15
- "pollingTab": "Abfrage-Intervall",
16
15
  "pollInterval": "Abfrage-Intervall (Sekunden)",
17
16
  "pollIntervalHelp": "Minimum 60s, empfohlen 300s (5 Min).",
17
+ "pollingTab": "Abfrage-Intervall",
18
18
  "powerStationId": "Anlagen-ID (optional)",
19
19
  "powerStationIdHelp": "Leer lassen für automatische Erkennung der Anlage dieses Kontos. Bei mehreren Anlagen pro Konto: ID explizit setzen (zu finden in der SEMS-Portal-URL nach dem Login, z. B. semsportal.com/powerstation/powerstatussnmin/<ID>).",
20
20
  "priorityEmergency": "Notfall (wiederholt bis Bestätigung)",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "SEMS login failure",
13
13
  "notifyOnRateLimit": "SEMS rate-limit hit",
14
14
  "notifyOnStationOffline": "Prolonged outage",
15
- "pollingTab": "Polling",
16
15
  "pollInterval": "Poll interval (seconds)",
17
16
  "pollIntervalHelp": "Minimum 60s, recommended 300s (5 min).",
17
+ "pollingTab": "Polling",
18
18
  "powerStationId": "Power station ID (optional)",
19
19
  "powerStationIdHelp": "Leave empty to auto-detect the plant owned by this account. Multiple plants on one account: set the ID explicitly (found in the SEMS portal URL after login, e.g. semsportal.com/powerstation/powerstatussnmin/<ID>).",
20
20
  "priorityEmergency": "Emergency (repeated until confirmed)",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "Fallo de inicio de sesión SEMS",
13
13
  "notifyOnRateLimit": "Límite de solicitudes SEMS alcanzado",
14
14
  "notifyOnStationOffline": "Interrupción prolongada",
15
- "pollingTab": "Intervalo de consulta",
16
15
  "pollInterval": "Intervalo de consulta (segundos)",
17
16
  "pollIntervalHelp": "Mínimo 60s, recomendado 300s (5 min).",
17
+ "pollingTab": "Intervalo de consulta",
18
18
  "powerStationId": "ID de la planta (opcional)",
19
19
  "powerStationIdHelp": "Déjalo vacío para la detección automática. Con varias plantas, indica el ID manualmente (visible en la URL del portal SEMS tras iniciar sesión).",
20
20
  "priorityEmergency": "Emergencia",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "Échec de connexion SEMS",
13
13
  "notifyOnRateLimit": "Limite de requêtes SEMS atteinte",
14
14
  "notifyOnStationOffline": "Panne prolongée",
15
- "pollingTab": "Intervalle d'interrogation",
16
15
  "pollInterval": "Intervalle d'interrogation (secondes)",
17
16
  "pollIntervalHelp": "Minimum 60s, recommandé 300s (5 min).",
17
+ "pollingTab": "Intervalle d'interrogation",
18
18
  "powerStationId": "ID de la centrale (optionnel)",
19
19
  "powerStationIdHelp": "Laisser vide pour la détection automatique. Plusieurs centrales : indiquer l'ID manuellement (visible dans l'URL du portail SEMS après connexion).",
20
20
  "priorityEmergency": "Urgence",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "Errore di login SEMS",
13
13
  "notifyOnRateLimit": "Limite richieste SEMS raggiunto",
14
14
  "notifyOnStationOffline": "Guasto prolungato",
15
- "pollingTab": "Intervallo di polling",
16
15
  "pollInterval": "Intervallo di polling (secondi)",
17
16
  "pollIntervalHelp": "Minimo 60s, consigliato 300s (5 min).",
17
+ "pollingTab": "Intervallo di polling",
18
18
  "powerStationId": "ID impianto (opzionale)",
19
19
  "powerStationIdHelp": "Lascia vuoto per il rilevamento automatico. Con più impianti, imposta l'ID manualmente (visibile nell'URL del portale SEMS dopo il login).",
20
20
  "priorityEmergency": "Emergenza",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "SEMS-inlogfout",
13
13
  "notifyOnRateLimit": "SEMS-ratelimit bereikt",
14
14
  "notifyOnStationOffline": "Langdurige storing",
15
- "pollingTab": "Polling-interval",
16
15
  "pollInterval": "Poll-interval (seconden)",
17
16
  "pollIntervalHelp": "Minimaal 60s, aanbevolen 300s (5 min).",
17
+ "pollingTab": "Polling-interval",
18
18
  "powerStationId": "Installatie-ID (optioneel)",
19
19
  "powerStationIdHelp": "Leeg laten voor automatische detectie. Bij meerdere installaties: ID handmatig instellen (te vinden in de SEMS-portal-URL na het inloggen).",
20
20
  "priorityEmergency": "Noodgeval",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "Błędzie logowania SEMS",
13
13
  "notifyOnRateLimit": "Osiągnięciu limitu żądań SEMS",
14
14
  "notifyOnStationOffline": "Długotrwałej awarii",
15
- "pollingTab": "Interwał odpytywania",
16
15
  "pollInterval": "Interwał odpytywania (sekundy)",
17
16
  "pollIntervalHelp": "Minimum 60s, zalecane 300s (5 min).",
17
+ "pollingTab": "Interwał odpytywania",
18
18
  "powerStationId": "ID instalacji (opcjonalnie)",
19
19
  "powerStationIdHelp": "Pozostaw puste dla automatycznego wykrywania. Przy kilku instalacjach ustaw ID ręcznie (widoczne w adresie URL portalu SEMS po zalogowaniu).",
20
20
  "priorityEmergency": "Alarmowy",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "Falha de login SEMS",
13
13
  "notifyOnRateLimit": "Limite de pedidos SEMS atingido",
14
14
  "notifyOnStationOffline": "Falha prolongada",
15
- "pollingTab": "Intervalo de consulta",
16
15
  "pollInterval": "Intervalo de consulta (segundos)",
17
16
  "pollIntervalHelp": "Mínimo 60s, recomendado 300s (5 min).",
17
+ "pollingTab": "Intervalo de consulta",
18
18
  "powerStationId": "ID da central (opcional)",
19
19
  "powerStationIdHelp": "Deixe em branco para deteção automática. Com várias centrais, defina o ID manualmente (visível na URL do portal SEMS após o login).",
20
20
  "priorityEmergency": "Emergência",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "Ошибка входа SEMS",
13
13
  "notifyOnRateLimit": "Достигнут лимит запросов SEMS",
14
14
  "notifyOnStationOffline": "Длительном отключении",
15
- "pollingTab": "Опрос",
16
15
  "pollInterval": "Интервал опроса (секунды)",
17
16
  "pollIntervalHelp": "Минимум 60с, рекомендуется 300с (5 мин).",
17
+ "pollingTab": "Опрос",
18
18
  "powerStationId": "ID электростанции (опционально)",
19
19
  "powerStationIdHelp": "Оставьте пустым для автоматического определения. При нескольких станциях укажите ID вручную (из URL портала SEMS после входа).",
20
20
  "priorityEmergency": "Экстренный",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "Помилка входу SEMS",
13
13
  "notifyOnRateLimit": "Досягнуто ліміту запитів SEMS",
14
14
  "notifyOnStationOffline": "Тривалій відмові",
15
- "pollingTab": "Опитування",
16
15
  "pollInterval": "Інтервал опитування (секунди)",
17
16
  "pollIntervalHelp": "Минимум 60с, рекомендуется 300с (5 мин).",
17
+ "pollingTab": "Опитування",
18
18
  "powerStationId": "ID электростанции (опционально)",
19
19
  "powerStationIdHelp": "Оставьте пустым для автоматического определения. При нескольких станциях укажите ID вручную (из URL портала SEMS после входа).",
20
20
  "priorityEmergency": "Экстренный",
@@ -12,9 +12,9 @@
12
12
  "notifyOnLoginFailure": "SEMS 登录失败",
13
13
  "notifyOnRateLimit": "达到 SEMS 请求限制",
14
14
  "notifyOnStationOffline": "长时间故障",
15
- "pollingTab": "轮询间隔",
16
15
  "pollInterval": "轮询间隔(秒)",
17
16
  "pollIntervalHelp": "最小 60 秒,建议 300 秒(5 分钟)。",
17
+ "pollingTab": "轮询间隔",
18
18
  "powerStationId": "电站 ID(可选)",
19
19
  "powerStationIdHelp": "留空以自动检测。若账户下有多个电站,请手动填写 ID(登录后可在 SEMS 门户网址中找到)。",
20
20
  "priorityEmergency": "紧急",
@@ -213,6 +213,7 @@
213
213
  },
214
214
  "_notifyHeader": {
215
215
  "type": "header",
216
+ "size": 4,
216
217
  "text": "notifyHeader",
217
218
  "newLine": true,
218
219
  "xs": 12,
package/io-package.json CHANGED
@@ -1,47 +1,8 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "goodwe-sems",
4
- "version": "0.1.9",
4
+ "version": "0.1.11",
5
5
  "news": {
6
- "0.1.0": {
7
- "en": "initial release",
8
- "de": "Erstveröffentlichung",
9
- "ru": "первый выпуск",
10
- "pt": "lançamento inicial",
11
- "nl": "eerste release",
12
- "fr": "version initiale",
13
- "it": "versione iniziale",
14
- "es": "versión inicial",
15
- "pl": "pierwsze wydanie",
16
- "uk": "перший випуск",
17
- "zh-cn": "首次发布"
18
- },
19
- "0.1.3": {
20
- "en": "CI: fix OIDC trusted publishing (upgrade bundled npm CLI to >=11.5.1 before publish)",
21
- "de": "CI: OIDC Trusted Publishing behoben (npm-CLI vor dem Publish auf >=11.5.1 aktualisiert)",
22
- "ru": "CI: исправлена доверенная публикация OIDC (обновление npm CLI до >=11.5.1 перед публикацией)",
23
- "pt": "CI: correção da publicação confiável OIDC (atualiza a CLI do npm para >=11.5.1 antes de publicar)",
24
- "nl": "CI: OIDC trusted publishing gerepareerd (npm-CLI bijgewerkt naar >=11.5.1 vóór publiceren)",
25
- "fr": "CI : correction de la publication de confiance OIDC (mise à jour du CLI npm vers >=11.5.1 avant publication)",
26
- "it": "CI: risolta la pubblicazione affidabile OIDC (aggiornamento della CLI npm a >=11.5.1 prima della pubblicazione)",
27
- "es": "CI: se corrige la publicación de confianza OIDC (se actualiza la CLI de npm a >=11.5.1 antes de publicar)",
28
- "pl": "CI: naprawiono zaufaną publikację OIDC (aktualizacja CLI npm do >=11.5.1 przed publikacją)",
29
- "uk": "CI: виправлено довірену публікацію OIDC (оновлення npm CLI до >=11.5.1 перед публікацією)",
30
- "zh-cn": "CI:修复 OIDC 可信发布(发布前将 npm CLI 升级到 >=11.5.1)"
31
- },
32
- "0.1.4": {
33
- "en": "docs: add PayPal donation link to README",
34
- "de": "Doku: PayPal-Spendenlink im README ergänzt",
35
- "ru": "документация: добавлена ссылка для пожертвований PayPal в README",
36
- "pt": "docs: link de doação PayPal adicionado ao README",
37
- "nl": "docs: PayPal-donatielink toegevoegd aan README",
38
- "fr": "docs : ajout du lien de don PayPal dans le README",
39
- "it": "docs: aggiunto link di donazione PayPal al README",
40
- "es": "docs: se agregó el enlace de donación de PayPal al README",
41
- "pl": "docs: dodano link do darowizny PayPal w README",
42
- "uk": "документація: додано посилання для пожертв PayPal у README",
43
- "zh-cn": "文档:在 README 中添加 PayPal 捐赠链接"
44
- },
45
6
  "0.1.5": {
46
7
  "en": "fix: correct PayPal donation link in README",
47
8
  "de": "Fix: PayPal-Spendenlink im README korrigiert",
@@ -106,6 +67,32 @@
106
67
  "pl": "rozwiązano bardziej rygorystyczne kontrole PR ioBroker.repositories: encryptedNative/protectedNative przeniesiono do katalogu głównego io-package.json, zaktualizowano zależności, przepisano CI, README przetłumaczono na angielski (wymagane)",
107
68
  "uk": "усунено суворіші перевірки PR ioBroker.repositories: encryptedNative/protectedNative перенесено в корінь io-package.json, оновлено залежності, переписано CI, README перекладено англійською (обов'язково)",
108
69
  "zh-cn": "解决更严格的 ioBroker.repositories PR 检查:将 encryptedNative/protectedNative 移至 io-package.json 根目录,更新依赖项,重写 CI,将 README 翻译为英文(必需)"
70
+ },
71
+ "0.1.10": {
72
+ "en": "address second round of stricter repochecker findings: engines.node >=22, remove devDependencies already provided by @iobroker/testing, add @types/node/@tsconfig/node22/tsconfig.json, use official ioBroker/testing-action-check|adapter|deploy@v1 reusable GitHub Actions, add integration tests, trim common.news to 7 entries, add required \"size\" to admin header, migrate i18n to short {lang}.json format, add .vscode/settings.json and .github/dependabot.yml",
73
+ "de": "zweite Runde strengerer repochecker-Befunde behoben: engines.node >=22, von @iobroker/testing bereitgestellte devDependencies entfernt, @types/node/@tsconfig/node22/tsconfig.json ergänzt, offizielle ioBroker/testing-action-check|adapter|deploy@v1 Actions verwendet, Integrationstests ergänzt, common.news auf 7 Einträge gekürzt, fehlendes \"size\" bei Admin-Header ergänzt, i18n auf Kurzformat {lang}.json migriert, .vscode/settings.json und .github/dependabot.yml ergänzt",
74
+ "ru": "устранена вторая волна более строгих замечаний repochecker: engines.node >=22, использованы официальные GitHub Actions ioBroker/testing-action-*, добавлены интеграционные тесты, common.news сокращён до 7 записей, i18n переведён в короткий формат",
75
+ "pt": "resolvida segunda ronda de constatações mais rigorosas do repochecker: engines.node >=22, usadas as GitHub Actions oficiais ioBroker/testing-action-*, testes de integração adicionados, common.news reduzido para 7 entradas, i18n migrado para formato curto",
76
+ "nl": "tweede ronde strengere repochecker-bevindingen opgelost: engines.node >=22, officiële ioBroker/testing-action-* GitHub Actions gebruikt, integratietests toegevoegd, common.news teruggebracht tot 7 items, i18n gemigreerd naar kort formaat",
77
+ "fr": "deuxième série de constats repochecker plus stricts corrigée : engines.node >=22, utilisation des GitHub Actions officielles ioBroker/testing-action-*, ajout de tests d'intégration, common.news réduit à 7 entrées, i18n migré vers le format court",
78
+ "it": "risolto il secondo giro di rilievi più severi di repochecker: engines.node >=22, utilizzate le GitHub Actions ufficiali ioBroker/testing-action-*, aggiunti test di integrazione, common.news ridotto a 7 voci, i18n migrato al formato breve",
79
+ "es": "se resolvió la segunda ronda de hallazgos más estrictos de repochecker: engines.node >=22, se usaron las GitHub Actions oficiales ioBroker/testing-action-*, se agregaron pruebas de integración, common.news reducido a 7 entradas, i18n migrado al formato corto",
80
+ "pl": "rozwiązano drugą rundę bardziej rygorystycznych ustaleń repochecker: engines.node >=22, użyto oficjalnych GitHub Actions ioBroker/testing-action-*, dodano testy integracyjne, common.news skrócono do 7 wpisów, i18n zmigrowano do krótkiego formatu",
81
+ "uk": "усунено другу хвилю суворіших зауважень repochecker: engines.node >=22, використано офіційні GitHub Actions ioBroker/testing-action-*, додано інтеграційні тести, common.news скорочено до 7 записів, i18n перенесено у короткий формат",
82
+ "zh-cn": "解决第二轮更严格的 repochecker 问题:engines.node >=22,使用官方 ioBroker/testing-action-* GitHub Actions,添加集成测试,common.news 精简至 7 条,i18n 迁移为短格式"
83
+ },
84
+ "0.1.11": {
85
+ "en": "fix broken CI: remove Node.js 20.x from the adapter-tests matrix - it is incompatible with engines.node >=22 (introduced in 0.1.10) under the official action's engine-strict npm ci, which crashed that matrix job and cancelled all others",
86
+ "de": "defekte CI behoben: Node.js 20.x aus der adapter-tests-Matrix entfernt - inkompatibel mit engines.node >=22 (seit 0.1.10) unter dem engine-strict npm ci der offiziellen Action, wodurch dieser Matrix-Job abstürzte und alle anderen abgebrochen wurden",
87
+ "ru": "исправлен неработающий CI: Node.js 20.x удалён из матрицы adapter-tests - несовместим с engines.node >=22 (введено в 0.1.10)",
88
+ "pt": "corrigido o CI quebrado: Node.js 20.x removido da matriz adapter-tests - incompatível com engines.node >=22 (introduzido em 0.1.10)",
89
+ "nl": "defecte CI opgelost: Node.js 20.x verwijderd uit de adapter-tests-matrix - incompatibel met engines.node >=22 (geïntroduceerd in 0.1.10)",
90
+ "fr": "correction du CI cassé : Node.js 20.x retiré de la matrice adapter-tests - incompatible avec engines.node >=22 (introduit en 0.1.10)",
91
+ "it": "risolto il CI non funzionante: rimosso Node.js 20.x dalla matrice adapter-tests - incompatibile con engines.node >=22 (introdotto in 0.1.10)",
92
+ "es": "se corrigió el CI roto: se eliminó Node.js 20.x de la matriz adapter-tests - incompatible con engines.node >=22 (introducido en 0.1.10)",
93
+ "pl": "naprawiono uszkodzone CI: usunięto Node.js 20.x z macierzy adapter-tests - niekompatybilne z engines.node >=22 (wprowadzone w 0.1.10)",
94
+ "uk": "виправлено зламаний CI: видалено Node.js 20.x з матриці adapter-tests - несумісний з engines.node >=22 (введено в 0.1.10)",
95
+ "zh-cn": "修复损坏的 CI:从 adapter-tests 矩阵中移除 Node.js 20.x - 与 engines.node >=22(0.1.10 中引入)不兼容"
109
96
  }
110
97
  },
111
98
  "titleLang": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.goodwe-sems",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "ioBroker adapter to read GoodWe inverter data from the SEMS Portal cloud API (for installations without local/LAN access to the inverter).",
5
5
  "author": {
6
6
  "name": "bueste",
@@ -26,7 +26,7 @@
26
26
  "url": "https://github.com/bueste/ioBroker.goodwe-sems/issues"
27
27
  },
28
28
  "engines": {
29
- "node": ">=20"
29
+ "node": ">=22"
30
30
  },
31
31
  "os": [
32
32
  "linux",
@@ -48,7 +48,8 @@
48
48
  "test": "npm run test:unit && npm run test:package",
49
49
  "lint": "eslint .",
50
50
  "translate": "translate-adapter",
51
- "release": "release-script"
51
+ "release": "release-script",
52
+ "test:integration": "mocha test/integration --exit"
52
53
  },
53
54
  "dependencies": {
54
55
  "@iobroker/adapter-core": "^3.4.1"
@@ -57,13 +58,14 @@
57
58
  "@alcalzone/release-script": "^5.2.1",
58
59
  "@alcalzone/release-script-plugin-iobroker": "^5.2.0",
59
60
  "@alcalzone/release-script-plugin-license": "^5.2.0",
61
+ "@alcalzone/release-script-plugin-manual-review": "^5.2.0",
60
62
  "@iobroker/adapter-dev": "^1.5.0",
63
+ "@iobroker/db-objects-jsonl": "^7.2.2",
64
+ "@iobroker/db-states-jsonl": "^7.2.2",
61
65
  "@iobroker/eslint-config": "^2.3.4",
62
66
  "@iobroker/testing": "^5.3.0",
63
- "chai": "^4.4.1",
64
- "chai-as-promised": "^7.1.2",
65
- "mocha": "^11.7.6",
66
- "sinon": "^22.0.0"
67
+ "@tsconfig/node22": "^22.0.5",
68
+ "@types/node": ">=22"
67
69
  },
68
70
  "overrides": {
69
71
  "adm-zip": "^0.6.0",