iobroker.goodwe-sems 0.1.9 → 0.1.12
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.de.md +65 -32
- package/README.md +31 -1
- package/admin/i18n/{de/translations.json → de.json} +1 -1
- package/admin/i18n/{en/translations.json → en.json} +1 -1
- package/admin/i18n/{es/translations.json → es.json} +1 -1
- package/admin/i18n/{fr/translations.json → fr.json} +1 -1
- package/admin/i18n/{it/translations.json → it.json} +1 -1
- package/admin/i18n/{nl/translations.json → nl.json} +1 -1
- package/admin/i18n/{pl/translations.json → pl.json} +1 -1
- package/admin/i18n/{pt/translations.json → pt.json} +1 -1
- package/admin/i18n/{ru/translations.json → ru.json} +1 -1
- package/admin/i18n/{uk/translations.json → uk.json} +1 -1
- package/admin/i18n/{zh-cn/translations.json → zh-cn.json} +1 -1
- package/admin/jsonConfig.json +1 -0
- package/io-package.json +27 -40
- package/package.json +9 -7
package/README.de.md
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|

|
|
10
10
|
[](https://www.paypal.com/ncp/payment/TT6MTBLXX9L9U)
|
|
11
11
|
|
|
12
|
-
Liest Wechselrichter-, Batterie- und Energiefluss-Daten aus dem **GoodWe SEMS Portal (Cloud)** – für Anlagen, die (z. B. weil kein LAN-Zugriff auf den Wechselrichter besteht) **nicht** mit dem lokalen [ioBroker.goodwe](https://github.com/FossyTom/ioBroker.goodwe)-Adapter (Modbus/UDP, Port 8899) abgefragt werden können.
|
|
12
|
+
Liest Wechselrichter-, Batterie- und Energiefluss-Daten aus dem **[GoodWe](https://www.goodwe.com) [SEMS Portal](https://www.semsportal.com) (Cloud)** – für Anlagen, die (z. B. weil kein LAN-Zugriff auf den Wechselrichter besteht) **nicht** mit dem lokalen [ioBroker.goodwe](https://github.com/FossyTom/ioBroker.goodwe)-Adapter (Modbus/UDP, Port 8899) abgefragt werden können.
|
|
13
13
|
|
|
14
|
-
Login erfolgt mit dem **ganz normalen SEMS-Portal-Konto** (dasselbe wie unter semsportal.com / in der SEMS-App). Ein GoodWe
|
|
14
|
+
Login erfolgt mit dem **ganz normalen SEMS-Portal-Konto** (dasselbe wie unter semsportal.com / in der SEMS-App). Ein GoodWe-„Organization“/OpenAPI-Konto wird **nicht** benötigt.
|
|
15
15
|
|
|
16
16
|
## Inhaltsverzeichnis
|
|
17
17
|
|
|
@@ -29,7 +29,7 @@ Login erfolgt mit dem **ganz normalen SEMS-Portal-Konto** (dasselbe wie unter se
|
|
|
29
29
|
|
|
30
30
|
## Warum dieser Adapter?
|
|
31
31
|
|
|
32
|
-
GoodWe ET/EH/BH/BT-Wechselrichter lassen sich normalerweise lokal per Modbus/UDP auslesen (siehe [ioBroker.goodwe](https://github.com/FossyTom/ioBroker.goodwe)). Steht kein LAN-Zugriff auf den Wechselrichter zur Verfügung (z. B. weil nur ein WLAN/LTE-Stick mit dem SEMS-Portal verbunden ist und das Zielnetz nicht erreichbar ist), bleibt nur der Umweg über die Cloud: das **SEMS Portal** (
|
|
32
|
+
GoodWe ET/EH/BH/BT-Wechselrichter lassen sich normalerweise lokal per Modbus/UDP auslesen (siehe [ioBroker.goodwe](https://github.com/FossyTom/ioBroker.goodwe)). Steht kein LAN-Zugriff auf den Wechselrichter zur Verfügung (z. B. weil nur ein WLAN/LTE-Stick mit dem SEMS-Portal verbunden ist und das Zielnetz nicht erreichbar ist), bleibt nur der Umweg über die Cloud: das **[SEMS Portal](https://www.semsportal.com)** ([GoodWe](https://www.goodwe.com)), über das die Anlage ohnehin schon überwacht wird.
|
|
33
33
|
|
|
34
34
|
## API-Herkunft und Grenzen (bitte lesen)
|
|
35
35
|
|
|
@@ -54,12 +54,12 @@ Für ein **normales** SEMS-Portal-Konto (wie es die meisten Privatanwender haben
|
|
|
54
54
|
|
|
55
55
|
## Installation
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
Sobald dieser Adapter im offiziellen ioBroker-Adapter-Repository gelistet ist, wird er ganz normal installiert: **Admin -> Adapter -> nach „goodwe-sems“ suchen -> installieren**.
|
|
58
|
+
|
|
59
|
+
Bis dahin kann ein ioBroker-Administrator ihn manuell auf dem ioBroker-Host hinzufügen:
|
|
58
60
|
|
|
59
61
|
```
|
|
60
|
-
|
|
61
|
-
npm install https://github.com/bueste/ioBroker.goodwe-sems/tarball/main
|
|
62
|
-
iobroker add goodwe-sems
|
|
62
|
+
iobroker url iobroker.goodwe-sems
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
## Konfiguration
|
|
@@ -106,7 +106,7 @@ Felder, die das Portal liefert, aber dieser Adapter (noch) nicht kennt, gehen ni
|
|
|
106
106
|
- **Rate-Limit (`GY0429`)** → sofortige Pause (Default 300 s), `info.rateLimited = true`.
|
|
107
107
|
- **Login-Fehler** → exponentielles Backoff (bis 1 h Deckel), damit falsche Zugangsdaten das Konto nicht zusätzlich belasten.
|
|
108
108
|
- **Netzwerk-/Protokollfehler** → moderates Backoff.
|
|
109
|
-
- Nach konfigurierbar vielen aufeinanderfolgenden Fehlversuchen (Default 3) gilt die Anlage als
|
|
109
|
+
- Nach konfigurierbar vielen aufeinanderfolgenden Fehlversuchen (Default 3) gilt die Anlage als „offline“ und es wird - falls aktiviert - eine Pushover-Meldung ausgelöst.
|
|
110
110
|
- Alles wird zusätzlich strukturiert ins ioBroker-Log geschrieben (`error`/`warn`/`debug` je nach Schweregrad).
|
|
111
111
|
|
|
112
112
|
## Pushover-Benachrichtigungen
|
|
@@ -121,9 +121,10 @@ Ausgelöst wird bei: SEMS-Login-Fehler, SEMS-Rate-Limit, länger andauerndem Aus
|
|
|
121
121
|
|
|
122
122
|
## Sicherheit & Datenschutz
|
|
123
123
|
|
|
124
|
-
- SEMS-Passwort und Pushover-API-Token sind
|
|
124
|
+
- SEMS-Passwort und Pushover-API-Token sind an der Wurzel von `io-package.json` als `encryptedNative`/`protectedNative` markiert und werden von ioBroker verschlüsselt abgelegt, nicht im Klartext geloggt (Kontoname wird in Log-Meldungen maskiert, z. B. `st***@gmail.com`).
|
|
125
125
|
- Der Adapter führt **ausschließlich lesende** Zugriffe aus (`GetMonitorDetailByPowerstationId`, `GetPowerStationIdByOwner`). Es gibt bewusst **keine** Fernsteuerungs-/Schreibfunktion (`SaveRemoteControlInverter`) - das wäre ein deutlich größeres Sicherheits- und Haftungsrisiko und war nicht Teil der Anforderung.
|
|
126
|
-
- Keine Drittanbieter-Abhängigkeiten für den HTTP-Zugriff: Es wird das in Node.js ≥
|
|
126
|
+
- Keine Drittanbieter-Abhängigkeiten für den HTTP-Zugriff: Es wird das in Node.js ≥22 eingebaute `fetch` verwendet statt einer zusätzlichen HTTP-Bibliothek - kleinere Angriffsfläche, weniger Supply-Chain-Risiko.
|
|
127
|
+
- Die vom Login-Server gelieferte API-Basis-URL wird validiert (nur HTTPS auf GoodWe-eigenen Domains), bevor sie für weitere Anfragen genutzt wird - eine manipulierte Login-Antwort kann das Session-Token dadurch nicht an einen fremden Host umleiten.
|
|
127
128
|
- Alle Netzwerkfehler werden typisiert abgefangen; es werden keine ungeprüften Daten aus der API-Antwort ausgeführt (`eval`, `Function`, o. ä. werden nirgends verwendet).
|
|
128
129
|
|
|
129
130
|
## Entwicklung
|
|
@@ -137,15 +138,65 @@ npm test # Unit-Tests (lib/mapping.js, lib/semsApi.js, lib/notify.js) +
|
|
|
137
138
|
Empfehlung vor jedem Release zusätzlich lokal:
|
|
138
139
|
|
|
139
140
|
```
|
|
140
|
-
npx @iobroker/
|
|
141
|
+
npx @iobroker/repochecker@latest .
|
|
141
142
|
```
|
|
142
143
|
|
|
143
144
|
Pull Requests willkommen, insbesondere um zusätzliche, vom Portal gelieferte Felder zu ergänzen (siehe `info.rawResponse` mit aktivierter Debug-Option) oder Übersetzungen zu verbessern.
|
|
144
145
|
|
|
145
146
|
## Changelog
|
|
146
147
|
|
|
148
|
+
<!--
|
|
149
|
+
Platzhalter für die nächste Version (am Zeilenanfang):
|
|
150
|
+
### **WORK IN PROGRESS**
|
|
151
|
+
-->
|
|
147
152
|
### **WORK IN PROGRESS**
|
|
148
153
|
|
|
154
|
+
### 0.1.12 (2026-07-19)
|
|
155
|
+
|
|
156
|
+
Weitere Fixes aus einem Repochecker-Recheck der `ioBroker.repositories`-Listing-PR:
|
|
157
|
+
|
|
158
|
+
- (Stefan Bühler) **[E2004]** Eintrag `0.1.10` aus `common.news` in `io-package.json` entfernt - die CI dieser Version schlug vor dem Deploy-Schritt fehl, sie wurde also nie tatsächlich auf npm veröffentlicht
|
|
159
|
+
- (Stefan Bühler) **[S3014]** `needs: check-and-lint` beim `adapter-tests`-Job ergänzt, damit dieser erst nach erfolgreichem Linting läuft
|
|
160
|
+
- (Stefan Bühler) **[W0066]** `@types/node` auf `^22` fixiert (war das offene `>=22`, das auf eine neuere Major-Version mit unpassenden Typdefinitionen auflösen könnte)
|
|
161
|
+
- (Stefan Bühler) **[W4040]/[W4042]** JSON-Schema-Zuordnungen in `.vscode/settings.json` korrigiert: `fileMatch`-Einträge dürfen keinen führenden Slash haben, und das jsonConfig-Schema muss zusätzlich auf `admin/jsonCustom.json` und `admin/jsonTab.json` passen
|
|
162
|
+
- (Stefan Bühler) **[S8913]** `.github/workflows/automerge-dependabot.yml` (mit `iobroker-bot-orga/action-automerge-dependabot@v1`) und `.github/auto-merge.yml` ergänzt, damit Patch-Updates (und Minor-Updates bei Dev-Dependencies) von Dependabot automatisch gemerged werden
|
|
163
|
+
|
|
164
|
+
### 0.1.11 (2026-07-19)
|
|
165
|
+
|
|
166
|
+
- (Stefan Bühler) einen echten CI-Fehler aus 0.1.10 behoben: Node.js 20.x aus der `adapter-tests`-Matrix in `.github/workflows/test-and-release.yml` entfernt. Diese Version ist inkompatibel mit `engines.node >=22` (ebenfalls seit 0.1.10), sobald die offizielle `ioBroker/testing-action-adapter@v1`-Action `npm ci` mit aktiviertem `engine-strict` ausführt - das ließ diesen Matrix-Job abstürzen und brach per Fail-Fast alle anderen Jobs ab
|
|
167
|
+
|
|
168
|
+
### 0.1.10 (2026-07-19)
|
|
169
|
+
|
|
170
|
+
Zweite Runde von Fixes für weitere Befunde eines strengeren automatisierten `@iobroker/repochecker`-Rechecks der `ioBroker.repositories`-Listing-PR:
|
|
171
|
+
|
|
172
|
+
- (Stefan Bühler) **[W0028]** `engines.node` auf `>=22` angehoben
|
|
173
|
+
- (Stefan Bühler) **[W0063]** `chai`, `chai-as-promised`, `mocha`, `sinon` aus devDependencies entfernt (bereits in `@iobroker/testing` enthalten)
|
|
174
|
+
- (Stefan Bühler) **[S0065]/[S0085]/[S0087]** `@types/node`, `@tsconfig/node22` und `/tsconfig.json` für Editor-Typprüfung ergänzt
|
|
175
|
+
- (Stefan Bühler) **[S5026]** Release-Plugin `@alcalzone/release-script-plugin-manual-review` ergänzt
|
|
176
|
+
- (Stefan Bühler) **[W3013]/[W3015]/[W3017]** `.github/workflows/test-and-release.yml` neu geschrieben: nutzt jetzt die offiziellen geteilten Actions `ioBroker/testing-action-check@v1`, `ioBroker/testing-action-adapter@v1` und `ioBroker/testing-action-deploy@v1` statt handgeschriebener Steps
|
|
177
|
+
- (Stefan Bühler) `test/integration.js` ergänzt (Adapter-Start-Smoke-Test über den Integrations-Harness von `@iobroker/testing`), damit `npm run test:integration` erfolgreich läuft
|
|
178
|
+
- (Stefan Bühler) **[E1032]** `common.news` in `io-package.json` auf die vom Repository-Builder verwendeten 7 Einträge gekürzt
|
|
179
|
+
- (Stefan Bühler) **[E5512]** fehlende Pflicht-Eigenschaft `size` beim Pushover-Abschnitts-Header in `admin/jsonConfig.json` ergänzt
|
|
180
|
+
- (Stefan Bühler) **[S5601]** `admin/i18n` vom langen `{lang}/translations.json`-Format auf das kurze `{lang}.json`-Format migriert
|
|
181
|
+
- (Stefan Bühler) **[S4036]** `.vscode/settings.json` mit JSON-Schema-Zuordnungen für `io-package.json` und `admin/jsonConfig.json` ergänzt
|
|
182
|
+
- (Stefan Bühler) **[S8901]** `.github/dependabot.yml` ergänzt (npm + github-actions, wöchentlich, mit Cooldown und einer Ignore-Regel für Major-/Minor-Updates von `@types/node`)
|
|
183
|
+
|
|
184
|
+
### 0.1.9 (2026-07-19)
|
|
185
|
+
|
|
186
|
+
Behebt die strengeren Befunde des automatisierten `@iobroker/repochecker`, die bei der `ioBroker.repositories`-Listing-PR aufgetreten sind:
|
|
187
|
+
|
|
188
|
+
- (Stefan Bühler) **[E1057]** `encryptedNative`/`protectedNative` von `common` an die Wurzel von `io-package.json` verschoben, entsprechend dem aktuellen Schema
|
|
189
|
+
- (Stefan Bühler) **[E3009]/[E3010]/[E3011]/[E3012]** `engines.node` auf `>=20`, `@iobroker/adapter-core` auf `^3.4.1`, die `js-controller`-Abhängigkeit auf `>=6.0.11`, die `admin`-GlobalDependency auf `>=7.6.20` angehoben
|
|
190
|
+
- (Stefan Bühler) **[E3040]** devDependencies aktualisiert (`@iobroker/adapter-dev`, `@iobroker/testing`, mocha, esbuild u. a.) auf aktuelle Major-Versionen
|
|
191
|
+
- (Stefan Bühler) **[E3000er-Serie]** `.github/workflows/test-and-release.yml` auf das aktuelle offizielle Template umgestellt: Jobs umbenannt (`check-and-lint`, `adapter-tests`, `adapter-check`, `deploy`), volle OS/Node-Testmatrix (ubuntu/windows/macos x 20/22/24), `concurrency`-Gruppe, Deploy-Job auf Node 24 fixiert
|
|
192
|
+
- (Stefan Bühler) **[E5005]** globale `setTimeout`/`clearTimeout` durch adapter-verwaltete Timer (`adapter.setTimeout`/`adapter.clearTimeout`) in `lib/notify.js` und `lib/semsApi.js` ersetzt
|
|
193
|
+
- (Stefan Bühler) **[E5043]** auf `require("node:crypto")` umgestellt
|
|
194
|
+
- (Stefan Bühler) **[E5507]/[E5510]/[E5512]/[E5612]** `admin/jsonConfig.json` korrigiert: fehlende `lg`/`xl`-Responsive-Größen bei allen Items ergänzt, einen literalen Label-String durch einen echten i18n-Key ersetzt (`loginTab`, in allen 11 Übersetzungsdateien ergänzt)
|
|
195
|
+
- (Stefan Bühler) **[E6004]/[E6015]/[W0037]/[W0076]** `README.md` ins Englische übersetzt (Pflichtsprache), bisherigen deutschen Inhalt nach `README.de.md` verschoben, `CHANGELOG_OLD.md` für ältere Einträge ergänzt
|
|
196
|
+
- (Stefan Bühler) **[W9501]** überflüssige `.npmignore` entfernt (durch `files` in package.json ersetzt)
|
|
197
|
+
- (Stefan Bühler) **[E9006]** `.commitinfo` zur `.gitignore` ergänzt
|
|
198
|
+
- (Stefan Bühler) **[S4036]/[S5026]** `prettier.config.mjs` ergänzt, Codebasis neu formatiert, `jsdoc/reject-any-type` für den opaken Node-Timer-Handle-Typ mit begründendem Kommentar deaktiviert
|
|
199
|
+
|
|
149
200
|
### 0.1.8 (2026-07-19)
|
|
150
201
|
|
|
151
202
|
ioBroker-Adapter-Check-Befunde behoben:
|
|
@@ -153,8 +204,8 @@ ioBroker-Adapter-Check-Befunde behoben:
|
|
|
153
204
|
- (Stefan Bühler) **[E254]** News-Einträge für 0.1.1/0.1.2 entfernt - diese Tags wurden zwar gepusht, aber der zugehörige npm-Publish-Job schlug damals fehl (fehlendes NPM_TOKEN bzw. zu alte npm-CLI für OIDC), die Versionen existieren nie auf npm
|
|
154
205
|
- (Stefan Bühler) **[W132]** dadurch automatisch unter dem 7-Einträge-Limit des Repository-Builders für `common.news`
|
|
155
206
|
- (Stefan Bühler) **[W184]** veraltetes `common.title` entfernt (durch `common.titleLang` ersetzt) und veraltetes/ignoriertes `common.main` entfernt (Entry-Point kommt aus `package.json`)
|
|
156
|
-
- (Stefan Bühler) **[W034]** `@iobroker/adapter-core` von ^3.1.6 auf ^3.2.2 angehoben
|
|
157
|
-
- (Stefan Bühler) **[W173]/[W174]/[E999]/[W401]**: `password` ist bereits korrekt in `encryptedNative`/`protectedNative` gelistet (per Tarball-Inspektion verifiziert) - diese Meldungen sowie der globale Axios-404-Fehler beim Abruf von `sources-dist-latest.json` sind Nebenwirkungen davon, dass der Adapter noch nicht im offiziellen ioBroker-Repository gelistet
|
|
207
|
+
- (Stefan Bühler) **[W034]** `@iobroker/adapter-core` von ^3.1.6 auf ^3.2.2 angehoben
|
|
208
|
+
- (Stefan Bühler) **[W173]/[W174]/[E999]/[W401]**: `password` ist bereits korrekt in `encryptedNative`/`protectedNative` gelistet (per Tarball-Inspektion verifiziert) - diese Meldungen sowie der globale Axios-404-Fehler beim Abruf von `sources-dist-latest.json` sind Nebenwirkungen davon, dass der Adapter noch nicht im offiziellen ioBroker-Repository gelistet war
|
|
158
209
|
|
|
159
210
|
### 0.1.7 (2026-07-19)
|
|
160
211
|
|
|
@@ -179,25 +230,7 @@ Sicherheits-/Qualitätsaudit (Security-Tester, Maintainer-Review, Fuzzing der Ma
|
|
|
179
230
|
|
|
180
231
|
- (Stefan Bühler) fix: PayPal-Spendenlink im README korrigiert (Button-Link statt Donate-Link)
|
|
181
232
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
- (Stefan Bühler) docs: PayPal-Spendenlink im README ergänzt
|
|
185
|
-
|
|
186
|
-
### 0.1.3 (2026-07-18)
|
|
187
|
-
|
|
188
|
-
- (Stefan Bühler) CI: OIDC Trusted Publishing repariert - Node 22 Runner bringt npm 10.9.x mit, was unter der für Trusted Publishing benötigten Version (>=11.5.1) liegt. Release-Job aktualisiert npm jetzt explizit vor `npm publish`.
|
|
189
|
-
|
|
190
|
-
### 0.1.2 (2026-07-18)
|
|
191
|
-
|
|
192
|
-
- (Stefan Bühler) CI: npm-Publish von langlebigem `NPM_TOKEN` auf OIDC Trusted Publishing umgestellt (kein Secret mehr im Repo nötig)
|
|
193
|
-
|
|
194
|
-
### 0.1.1 (2026-07-18)
|
|
195
|
-
|
|
196
|
-
- (Stefan Bühler) fix `repository.url` field format in package.json (removed npm-publish normalization warning)
|
|
197
|
-
|
|
198
|
-
### 0.1.0 (2026-07-18)
|
|
199
|
-
|
|
200
|
-
- (Stefan Bühler) initial release: SEMS-Portal-Login (SEMS+ mit Legacy-Fallback), automatische Anlagen-Erkennung, vollständiges Monitoring (Station/KPI/PowerFlow/Battery/EV-Charger/pro Wechselrichter), Rate-Limit-Handling, Backoff, Pushover-Alarmierung, Admin6-JSON-Config, i18n (11 Sprachen), Unit-Tests.
|
|
233
|
+
Ältere Changelog-Einträge stehen in [CHANGELOG_OLD.md](CHANGELOG_OLD.md) (Englisch).
|
|
201
234
|
|
|
202
235
|
## Lizenz
|
|
203
236
|
|
package/README.md
CHANGED
|
@@ -123,7 +123,7 @@ Triggered on: SEMS login failure, SEMS rate limit, a prolonged outage, unexpecte
|
|
|
123
123
|
|
|
124
124
|
- The SEMS password and the Pushover API token are marked as `encryptedNative`/`protectedNative` at the root of `io-package.json` and are stored encrypted by ioBroker, never logged in plain text (the account name is masked in log messages, e.g. `st***@gmail.com`).
|
|
125
125
|
- The adapter performs **read-only** access only (`GetMonitorDetailByPowerstationId`, `GetPowerStationIdByOwner`). There is deliberately **no** remote-control/write function (`SaveRemoteControlInverter`) - that would be a considerably larger security and liability risk and was not part of the requirement.
|
|
126
|
-
- No third-party dependency for HTTP access: the built-in `fetch` of Node.js >=
|
|
126
|
+
- No third-party dependency for HTTP access: the built-in `fetch` of Node.js >=22 is used instead of an additional HTTP library - a smaller attack surface, less supply-chain risk.
|
|
127
127
|
- The API base URL returned by the login response is validated (HTTPS on GoodWe-owned domains only) before any further request uses it, so a manipulated login response cannot redirect the session token to a foreign host.
|
|
128
128
|
- All network errors are caught in a typed way; no unchecked data from the API response is ever executed (`eval`, `Function`, and similar are not used anywhere).
|
|
129
129
|
|
|
@@ -151,6 +151,36 @@ 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.12 (2026-07-19)
|
|
155
|
+
|
|
156
|
+
Further fixes from a repochecker recheck on the `ioBroker.repositories` listing PR:
|
|
157
|
+
|
|
158
|
+
- (Stefan Bühler) **[E2004]** removed the `0.1.10` entry from `common.news` in `io-package.json` - that version's CI failed before the deploy step, so it was never actually published to npm
|
|
159
|
+
- (Stefan Bühler) **[S3014]** declared `needs: check-and-lint` on the `adapter-tests` job so it only runs after linting succeeds
|
|
160
|
+
- (Stefan Bühler) **[W0066]** pinned `@types/node` to `^22` (was the open-ended `>=22`, which could resolve to a newer major with mismatched typings)
|
|
161
|
+
- (Stefan Bühler) **[W4040]/[W4042]** fixed the JSON schema associations in `.vscode/settings.json`: `fileMatch` entries must not have a leading slash, and the jsonConfig schema must also match `admin/jsonCustom.json` and `admin/jsonTab.json`
|
|
162
|
+
- (Stefan Bühler) **[S8913]** added `.github/workflows/automerge-dependabot.yml` (using `iobroker-bot-orga/action-automerge-dependabot@v1`) and `.github/auto-merge.yml` so patch updates (and minor updates for dev dependencies) from Dependabot are merged automatically
|
|
163
|
+
|
|
164
|
+
### 0.1.11 (2026-07-19)
|
|
165
|
+
|
|
166
|
+
- (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
|
|
167
|
+
|
|
168
|
+
### 0.1.10 (2026-07-19)
|
|
169
|
+
|
|
170
|
+
Second round of fixes, addressing further findings from a stricter automated `@iobroker/repochecker` recheck on the `ioBroker.repositories` listing PR:
|
|
171
|
+
|
|
172
|
+
- (Stefan Bühler) **[W0028]** raised `engines.node` to `>=22`
|
|
173
|
+
- (Stefan Bühler) **[W0063]** removed `chai`, `chai-as-promised`, `mocha`, `sinon` from devDependencies (already provided by `@iobroker/testing`)
|
|
174
|
+
- (Stefan Bühler) **[S0065]/[S0085]/[S0087]** added `@types/node`, `@tsconfig/node22` and `/tsconfig.json` for editor type-checking support
|
|
175
|
+
- (Stefan Bühler) **[S5026]** added the `@alcalzone/release-script-plugin-manual-review` release plugin
|
|
176
|
+
- (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
|
|
177
|
+
- (Stefan Bühler) added `test/integration.js` (adapter startup smoke test via `@iobroker/testing`'s integration harness) so `npm run test:integration` succeeds
|
|
178
|
+
- (Stefan Bühler) **[E1032]** trimmed `common.news` in `io-package.json` to the 7 entries kept by the repository builder
|
|
179
|
+
- (Stefan Bühler) **[E5512]** added the required `size` property to the Pushover section header in `admin/jsonConfig.json`
|
|
180
|
+
- (Stefan Bühler) **[S5601]** migrated `admin/i18n` from the long `{lang}/translations.json` format to the short `{lang}.json` format
|
|
181
|
+
- (Stefan Bühler) **[S4036]** added `.vscode/settings.json` with JSON schema associations for `io-package.json` and `admin/jsonConfig.json`
|
|
182
|
+
- (Stefan Bühler) **[S8901]** added `.github/dependabot.yml` (npm + github-actions, weekly, with a cooldown and an `@types/node` major/minor ignore rule)
|
|
183
|
+
|
|
154
184
|
### 0.1.9 (2026-07-19)
|
|
155
185
|
|
|
156
186
|
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": "紧急",
|
package/admin/jsonConfig.json
CHANGED
package/io-package.json
CHANGED
|
@@ -1,47 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "goodwe-sems",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.12",
|
|
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.11": {
|
|
72
|
+
"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",
|
|
73
|
+
"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",
|
|
74
|
+
"ru": "исправлен неработающий CI: Node.js 20.x удалён из матрицы adapter-tests - несовместим с engines.node >=22 (введено в 0.1.10)",
|
|
75
|
+
"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)",
|
|
76
|
+
"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)",
|
|
77
|
+
"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)",
|
|
78
|
+
"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)",
|
|
79
|
+
"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)",
|
|
80
|
+
"pl": "naprawiono uszkodzone CI: usunięto Node.js 20.x z macierzy adapter-tests - niekompatybilne z engines.node >=22 (wprowadzone w 0.1.10)",
|
|
81
|
+
"uk": "виправлено зламаний CI: видалено Node.js 20.x з матриці adapter-tests - несумісний з engines.node >=22 (введено в 0.1.10)",
|
|
82
|
+
"zh-cn": "修复损坏的 CI:从 adapter-tests 矩阵中移除 Node.js 20.x - 与 engines.node >=22(0.1.10 中引入)不兼容"
|
|
83
|
+
},
|
|
84
|
+
"0.1.12": {
|
|
85
|
+
"en": "further recheck fixes: remove news entry for 0.1.10 (never published to npm - its CI failed before the deploy step), declare \"needs: check-and-lint\" on the adapter-tests job, pin @types/node to \"^22\" (was open-ended \">=22\"), fix .vscode/settings.json schema fileMatch patterns (drop leading slash, add jsonCustom.json/jsonTab.json), add dependabot auto-merge workflow + config",
|
|
86
|
+
"de": "weitere Recheck-Fixes: News-Eintrag fuer 0.1.10 entfernt (nie auf npm veroeffentlicht - CI schlug vor dem Deploy-Schritt fehl), \"needs: check-and-lint\" beim adapter-tests-Job ergaenzt, @types/node auf \"^22\" fixiert (war offenes \">=22\"), Schema-fileMatch in .vscode/settings.json korrigiert (kein fuehrender Slash, jsonCustom.json/jsonTab.json ergaenzt), Dependabot-Automerge-Workflow + Konfiguration ergaenzt",
|
|
87
|
+
"ru": "дальнейшие исправления: удалена запись news для 0.1.10 (никогда не публиковалась в npm), needs: check-and-lint для adapter-tests, @types/node зафиксирован на ^22, исправлены схемы в .vscode/settings.json, добавлен automerge для dependabot",
|
|
88
|
+
"pt": "mais correcoes: removida a entrada de news para 0.1.10 (nunca publicada no npm), needs: check-and-lint no job adapter-tests, @types/node fixado em ^22, esquemas corrigidos em .vscode/settings.json, automerge do dependabot adicionado",
|
|
89
|
+
"nl": "verdere fixes: news-item voor 0.1.10 verwijderd (nooit op npm gepubliceerd), needs: check-and-lint toegevoegd aan adapter-tests, @types/node vastgezet op ^22, schema's in .vscode/settings.json gecorrigeerd, dependabot automerge toegevoegd",
|
|
90
|
+
"fr": "autres corrections : entree news pour 0.1.10 supprimee (jamais publiee sur npm), needs: check-and-lint ajoute au job adapter-tests, @types/node fixe a ^22, schemas corriges dans .vscode/settings.json, automerge dependabot ajoute",
|
|
91
|
+
"it": "ulteriori correzioni: rimossa la voce news per 0.1.10 (mai pubblicata su npm), aggiunto needs: check-and-lint al job adapter-tests, @types/node fissato a ^22, schemi corretti in .vscode/settings.json, aggiunto automerge per dependabot",
|
|
92
|
+
"es": "mas correcciones: se elimino la entrada de news para 0.1.10 (nunca publicada en npm), se agrego needs: check-and-lint al job adapter-tests, @types/node fijado en ^22, esquemas corregidos en .vscode/settings.json, se agrego automerge de dependabot",
|
|
93
|
+
"pl": "kolejne poprawki: usunieto wpis news dla 0.1.10 (nigdy nie opublikowano na npm), dodano needs: check-and-lint do zadania adapter-tests, @types/node ustalono na ^22, poprawiono schematy w .vscode/settings.json, dodano automerge dependabot",
|
|
94
|
+
"uk": "подальші виправлення: видалено запис news для 0.1.10 (ніколи не публікувався на npm), додано needs: check-and-lint для adapter-tests, @types/node зафіксовано на ^22, виправлено схеми в .vscode/settings.json, додано automerge для dependabot",
|
|
95
|
+
"zh-cn": "进一步修复:移除 0.1.10 的 news 条目(从未发布到 npm),为 adapter-tests 任务添加 needs: check-and-lint,将 @types/node 固定为 ^22,修复 .vscode/settings.json 中的 schema 匹配,添加 dependabot 自动合并"
|
|
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.
|
|
3
|
+
"version": "0.1.12",
|
|
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": ">=
|
|
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
|
-
"
|
|
64
|
-
"
|
|
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",
|