iobroker.goodwe-sems 0.1.6 → 0.1.8
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 +16 -0
- package/admin/goodwe-sems.png +0 -0
- package/io-package.json +27 -29
- package/lib/mapping.js +2 -2
- package/lib/semsApi.js +1 -1
- package/package.json +14 -8
package/README.md
CHANGED
|
@@ -144,8 +144,24 @@ Pull Requests willkommen, insbesondere um zusätzliche, vom Portal gelieferte Fe
|
|
|
144
144
|
|
|
145
145
|
### **WORK IN PROGRESS**
|
|
146
146
|
|
|
147
|
+
### 0.1.8 (2026-07-19)
|
|
148
|
+
|
|
149
|
+
ioBroker-Adapter-Check-Befunde behoben:
|
|
150
|
+
|
|
151
|
+
- (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
|
|
152
|
+
- (Stefan Bühler) **[W132]** dadurch automatisch unter dem 7-Einträge-Limit des Repository-Builders für `common.news`
|
|
153
|
+
- (Stefan Bühler) **[W184]** veraltetes `common.title` entfernt (durch `common.titleLang` ersetzt) und veraltetes/ignoriertes `common.main` entfernt (Entry-Point kommt aus `package.json`)
|
|
154
|
+
- (Stefan Bühler) **[W034]** `@iobroker/adapter-core` von ^3.1.6 auf ^3.2.2 angehoben (installiert 3.4.3)
|
|
155
|
+
- (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 ist; sollten nach der Aufnahme verschwinden
|
|
156
|
+
|
|
157
|
+
### 0.1.7 (2026-07-19)
|
|
158
|
+
|
|
159
|
+
- (Stefan Bühler) Branding: Platzhalter-Icon durch das offizielle GoodWe-Logo ersetzt (mit Genehmigung von GoodWe verwendet)
|
|
160
|
+
|
|
147
161
|
### 0.1.6 (2026-07-18)
|
|
148
162
|
|
|
163
|
+
- (Stefan Bühler) Dev-Toolchain aktualisiert: mocha 11, sinon 22, @alcalzone/release-script 5, @iobroker/eslint-config 2; verbleibende transitive CVEs (adm-zip, diff, esbuild, serialize-javascript) per npm-`overrides` erzwungen behoben - `npm audit`: 0 Schwachstellen (auch inkl. Dev-Dependencies)
|
|
164
|
+
|
|
149
165
|
Sicherheits-/Qualitätsaudit (Security-Tester, Maintainer-Review, Fuzzing der Mapping-Schicht):
|
|
150
166
|
|
|
151
167
|
- (Stefan Bühler) **Security:** Wechselrichter-Seriennummern aus der (nicht vertrauenswürdigen) Portal-Antwort werden bereinigt, bevor sie Teil von ioBroker-Objekt-IDs werden (verhindert kaputte/unerwartet verschachtelte Objektbäume durch Sonderzeichen wie `.` `*` `]`)
|
package/admin/goodwe-sems.png
CHANGED
|
Binary file
|
package/io-package.json
CHANGED
|
@@ -1,34 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "goodwe-sems",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.8",
|
|
5
5
|
"news": {
|
|
6
|
-
"0.1.2": {
|
|
7
|
-
"en": "switch npm publishing from a long-lived token to OIDC trusted publishing (no stored secret)",
|
|
8
|
-
"de": "npm-Veröffentlichung von langlebigem Token auf OIDC Trusted Publishing umgestellt (kein gespeichertes Secret mehr)",
|
|
9
|
-
"ru": "публикация в npm переведена с долгоживущего токена на доверенную публикацию OIDC (без хранимого секрета)",
|
|
10
|
-
"pt": "publicação no npm migrada de token de longa duração para publicação confiável OIDC (sem segredo armazenado)",
|
|
11
|
-
"nl": "npm-publicatie omgezet van een langlevend token naar OIDC trusted publishing (geen opgeslagen secret meer)",
|
|
12
|
-
"fr": "publication npm passée d'un jeton longue durée à la publication de confiance OIDC (plus de secret stocké)",
|
|
13
|
-
"it": "pubblicazione npm passata da token a lunga durata a trusted publishing OIDC (nessun segreto memorizzato)",
|
|
14
|
-
"es": "publicación en npm migrada de un token de larga duración a la publicación de confianza OIDC (sin secreto almacenado)",
|
|
15
|
-
"pl": "publikację npm zmieniono z długotrwałego tokenu na zaufaną publikację OIDC (bez przechowywanego sekretu)",
|
|
16
|
-
"uk": "публікацію в npm переведено з довготривалого токена на довірену публікацію OIDC (без збереженого секрету)",
|
|
17
|
-
"zh-cn": "将 npm 发布从长期令牌改为 OIDC 可信发布方式(不再存储密钥)"
|
|
18
|
-
},
|
|
19
|
-
"0.1.1": {
|
|
20
|
-
"en": "fix package.json repository URL normalization warning on npm publish",
|
|
21
|
-
"de": "Warnung bei npm publish wegen repository-URL-Format behoben",
|
|
22
|
-
"ru": "исправлено предупреждение о формате URL репозитория при npm publish",
|
|
23
|
-
"pt": "corrigido aviso de formato de URL do repositório no npm publish",
|
|
24
|
-
"nl": "waarschuwing over repository-URL-formaat bij npm publish opgelost",
|
|
25
|
-
"fr": "correction de l'avertissement de format d'URL du dépôt lors de npm publish",
|
|
26
|
-
"it": "corretto avviso sul formato URL del repository durante npm publish",
|
|
27
|
-
"es": "corregida advertencia de formato de URL del repositorio en npm publish",
|
|
28
|
-
"pl": "poprawiono ostrzeżenie o formacie URL repozytorium przy npm publish",
|
|
29
|
-
"uk": "виправлено попередження про формат URL репозиторію під час npm publish",
|
|
30
|
-
"zh-cn": "修复 npm publish 时仓库 URL 格式警告"
|
|
31
|
-
},
|
|
32
6
|
"0.1.0": {
|
|
33
7
|
"en": "initial release",
|
|
34
8
|
"de": "Erstveröffentlichung",
|
|
@@ -93,9 +67,34 @@
|
|
|
93
67
|
"pl": "audyt bezpieczeństwa/jakości: sanityzacja numerów seryjnych, odporność na uszkodzone wpisy, walidacja bazowego URL API, poprawka parsowania liczb, odrzucanie nieprawidłowych znaczników czasu",
|
|
94
68
|
"uk": "аудит безпеки/якості: очищення серійних номерів, стійкість до пошкоджених записів, перевірка базової URL API, виправлення розбору чисел, відхилення недійсних міток часу",
|
|
95
69
|
"zh-cn": "安全/质量审计:清理用于状态ID的逆变器序列号、容忍损坏的数组条目、验证服务器提供的API基础URL、修复科学计数法解析、拒绝无效时间戳、过滤无ID电站"
|
|
70
|
+
},
|
|
71
|
+
"0.1.7": {
|
|
72
|
+
"en": "branding: replace placeholder icon with the official GoodWe logo (used with permission from GoodWe)",
|
|
73
|
+
"de": "Branding: Platzhalter-Icon durch das offizielle GoodWe-Logo ersetzt (mit Genehmigung von GoodWe verwendet)",
|
|
74
|
+
"ru": "брендинг: заменена иконка-заполнитель на официальный логотип GoodWe (используется с разрешения GoodWe)",
|
|
75
|
+
"pt": "marca: ícone substituído pelo logótipo oficial da GoodWe (usado com autorização da GoodWe)",
|
|
76
|
+
"nl": "branding: placeholder-icoon vervangen door het officiële GoodWe-logo (gebruikt met toestemming van GoodWe)",
|
|
77
|
+
"fr": "image de marque : icône remplacée par le logo officiel GoodWe (utilisé avec l autorisation de GoodWe)",
|
|
78
|
+
"it": "branding: icona sostituita con il logo ufficiale GoodWe (utilizzato con l autorizzazione di GoodWe)",
|
|
79
|
+
"es": "marca: icono sustituido por el logotipo oficial de GoodWe (utilizado con permiso de GoodWe)",
|
|
80
|
+
"pl": "branding: zastąpiono ikonę zastępczą oficjalnym logo GoodWe (używane za zgodą GoodWe)",
|
|
81
|
+
"uk": "брендинг: замінено іконку-заповнювач на офіційний логотип GoodWe (використовується з дозволу GoodWe)",
|
|
82
|
+
"zh-cn": "品牌:将占位图标替换为 GoodWe 官方标志(经 GoodWe 许可使用)"
|
|
83
|
+
},
|
|
84
|
+
"0.1.8": {
|
|
85
|
+
"en": "address ioBroker adapter-check findings: remove news entries for versions that were never actually published to npm (0.1.1, 0.1.2), remove deprecated common.title/common.main fields, update @iobroker/adapter-core to ^3.2.2",
|
|
86
|
+
"de": "ioBroker-Adapter-Check-Befunde behoben: News-Einträge für nie tatsächlich auf npm veröffentlichte Versionen entfernt (0.1.1, 0.1.2), veraltete Felder common.title/common.main entfernt, @iobroker/adapter-core auf ^3.2.2 aktualisiert",
|
|
87
|
+
"ru": "устранены замечания adapter-check: удалены записи news для версий, никогда не публиковавшихся в npm (0.1.1, 0.1.2), удалены устаревшие поля common.title/common.main, обновлён @iobroker/adapter-core до ^3.2.2",
|
|
88
|
+
"pt": "resolvidas as constatações do adapter-check: removidas entradas de news de versões nunca publicadas no npm (0.1.1, 0.1.2), removidos campos obsoletos common.title/common.main, @iobroker/adapter-core atualizado para ^3.2.2",
|
|
89
|
+
"nl": "adapter-check bevindingen opgelost: news-items voor nooit op npm gepubliceerde versies verwijderd (0.1.1, 0.1.2), verouderde velden common.title/common.main verwijderd, @iobroker/adapter-core bijgewerkt naar ^3.2.2",
|
|
90
|
+
"fr": "corrections des remarques adapter-check : suppression des entrées news pour des versions jamais publiées sur npm (0.1.1, 0.1.2), suppression des champs obsolètes common.title/common.main, mise à jour de @iobroker/adapter-core vers ^3.2.2",
|
|
91
|
+
"it": "risolti i rilievi di adapter-check: rimosse le voci news per versioni mai pubblicate su npm (0.1.1, 0.1.2), rimossi i campi deprecati common.title/common.main, aggiornato @iobroker/adapter-core a ^3.2.2",
|
|
92
|
+
"es": "se resolvieron los hallazgos de adapter-check: se eliminaron entradas de news de versiones nunca publicadas en npm (0.1.1, 0.1.2), se eliminaron los campos obsoletos common.title/common.main, se actualizó @iobroker/adapter-core a ^3.2.2",
|
|
93
|
+
"pl": "rozwiązano uwagi adapter-check: usunięto wpisy news dla wersji nigdy niepublikowanych na npm (0.1.1, 0.1.2), usunięto przestarzałe pola common.title/common.main, zaktualizowano @iobroker/adapter-core do ^3.2.2",
|
|
94
|
+
"uk": "усунено зауваження adapter-check: видалено записи news для версій, які ніколи не публікувалися в npm (0.1.1, 0.1.2), видалено застарілі поля common.title/common.main, оновлено @iobroker/adapter-core до ^3.2.2",
|
|
95
|
+
"zh-cn": "解决 adapter-check 发现的问题:移除从未真正发布到 npm 的版本的 news 条目(0.1.1、0.1.2),移除已弃用的 common.title/common.main 字段,将 @iobroker/adapter-core 更新至 ^3.2.2"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
|
-
"title": "GoodWe SEMS Portal",
|
|
99
98
|
"titleLang": {
|
|
100
99
|
"en": "GoodWe SEMS Portal",
|
|
101
100
|
"de": "GoodWe SEMS Portal",
|
|
@@ -140,7 +139,6 @@
|
|
|
140
139
|
"license": "MIT"
|
|
141
140
|
},
|
|
142
141
|
"platform": "Javascript/Node.js",
|
|
143
|
-
"main": "main.js",
|
|
144
142
|
"icon": "goodwe-sems.png",
|
|
145
143
|
"enabled": true,
|
|
146
144
|
"extIcon": "https://raw.githubusercontent.com/bueste/ioBroker.goodwe-sems/main/admin/goodwe-sems.png",
|
package/lib/mapping.js
CHANGED
|
@@ -123,8 +123,8 @@ const BOOL = (role = "indicator") => ({
|
|
|
123
123
|
});
|
|
124
124
|
|
|
125
125
|
/**
|
|
126
|
-
* @param {
|
|
127
|
-
* @returns {{points: Array<{id:string, name:string, common:object, value:
|
|
126
|
+
* @param {object} detail raw "data" object from GetMonitorDetailByPowerstationId
|
|
127
|
+
* @returns {{points: Array<{id:string, name:string, common:object, value:unknown}>, inverterSerials: string[]}}
|
|
128
128
|
*/
|
|
129
129
|
function mapMonitorDetail(detail) {
|
|
130
130
|
const points = [];
|
package/lib/semsApi.js
CHANGED
|
@@ -72,7 +72,7 @@ const DEFAULT_CLIENT_TOKEN = JSON.stringify({
|
|
|
72
72
|
*
|
|
73
73
|
* @param {string} url
|
|
74
74
|
* @param {object} init fetch init, `timeoutMs` is consumed here and not passed on
|
|
75
|
-
* @returns {Promise<{status:number, json:
|
|
75
|
+
* @returns {Promise<{status:number, json: object, text: string}>}
|
|
76
76
|
*/
|
|
77
77
|
async function httpPostJson(url, init) {
|
|
78
78
|
const { timeoutMs, ...fetchInit } = init;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.goodwe-sems",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
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",
|
|
@@ -51,19 +51,25 @@
|
|
|
51
51
|
"release": "release-script"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@iobroker/adapter-core": "^3.
|
|
54
|
+
"@iobroker/adapter-core": "^3.2.2"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@alcalzone/release-script": "^
|
|
58
|
-
"@alcalzone/release-script-plugin-iobroker": "^
|
|
59
|
-
"@alcalzone/release-script-plugin-license": "^
|
|
57
|
+
"@alcalzone/release-script": "^5.2.1",
|
|
58
|
+
"@alcalzone/release-script-plugin-iobroker": "^5.2.0",
|
|
59
|
+
"@alcalzone/release-script-plugin-license": "^5.2.0",
|
|
60
60
|
"@iobroker/adapter-dev": "^1.3.0",
|
|
61
|
-
"@iobroker/eslint-config": "^
|
|
61
|
+
"@iobroker/eslint-config": "^2.3.4",
|
|
62
62
|
"@iobroker/testing": "^5.0.0",
|
|
63
63
|
"chai": "^4.4.1",
|
|
64
64
|
"chai-as-promised": "^7.1.2",
|
|
65
65
|
"eslint": "^9.9.0",
|
|
66
|
-
"mocha": "^
|
|
67
|
-
"sinon": "^
|
|
66
|
+
"mocha": "^11.7.6",
|
|
67
|
+
"sinon": "^22.0.0"
|
|
68
|
+
},
|
|
69
|
+
"overrides": {
|
|
70
|
+
"adm-zip": "^0.6.0",
|
|
71
|
+
"diff": "^8.0.3",
|
|
72
|
+
"esbuild": "^0.25.0",
|
|
73
|
+
"serialize-javascript": "^7.0.5"
|
|
68
74
|
}
|
|
69
75
|
}
|