iobroker.goodwe-sems 0.1.6 → 0.1.7
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 +6 -0
- package/admin/goodwe-sems.png +0 -0
- package/io-package.json +14 -1
- package/lib/mapping.js +2 -2
- package/lib/semsApi.js +1 -1
- package/package.json +13 -7
package/README.md
CHANGED
|
@@ -144,8 +144,14 @@ Pull Requests willkommen, insbesondere um zusätzliche, vom Portal gelieferte Fe
|
|
|
144
144
|
|
|
145
145
|
### **WORK IN PROGRESS**
|
|
146
146
|
|
|
147
|
+
### 0.1.7 (2026-07-19)
|
|
148
|
+
|
|
149
|
+
- (Stefan Bühler) Branding: Platzhalter-Icon durch das offizielle GoodWe-Logo ersetzt (mit Genehmigung von GoodWe verwendet)
|
|
150
|
+
|
|
147
151
|
### 0.1.6 (2026-07-18)
|
|
148
152
|
|
|
153
|
+
- (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)
|
|
154
|
+
|
|
149
155
|
Sicherheits-/Qualitätsaudit (Security-Tester, Maintainer-Review, Fuzzing der Mapping-Schicht):
|
|
150
156
|
|
|
151
157
|
- (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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "goodwe-sems",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.7",
|
|
5
5
|
"news": {
|
|
6
6
|
"0.1.2": {
|
|
7
7
|
"en": "switch npm publishing from a long-lived token to OIDC trusted publishing (no stored secret)",
|
|
@@ -93,6 +93,19 @@
|
|
|
93
93
|
"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
94
|
"uk": "аудит безпеки/якості: очищення серійних номерів, стійкість до пошкоджених записів, перевірка базової URL API, виправлення розбору чисел, відхилення недійсних міток часу",
|
|
95
95
|
"zh-cn": "安全/质量审计:清理用于状态ID的逆变器序列号、容忍损坏的数组条目、验证服务器提供的API基础URL、修复科学计数法解析、拒绝无效时间戳、过滤无ID电站"
|
|
96
|
+
},
|
|
97
|
+
"0.1.7": {
|
|
98
|
+
"en": "branding: replace placeholder icon with the official GoodWe logo (used with permission from GoodWe)",
|
|
99
|
+
"de": "Branding: Platzhalter-Icon durch das offizielle GoodWe-Logo ersetzt (mit Genehmigung von GoodWe verwendet)",
|
|
100
|
+
"ru": "брендинг: заменена иконка-заполнитель на официальный логотип GoodWe (используется с разрешения GoodWe)",
|
|
101
|
+
"pt": "marca: ícone substituído pelo logótipo oficial da GoodWe (usado com autorização da GoodWe)",
|
|
102
|
+
"nl": "branding: placeholder-icoon vervangen door het officiële GoodWe-logo (gebruikt met toestemming van GoodWe)",
|
|
103
|
+
"fr": "image de marque : icône remplacée par le logo officiel GoodWe (utilisé avec l autorisation de GoodWe)",
|
|
104
|
+
"it": "branding: icona sostituita con il logo ufficiale GoodWe (utilizzato con l autorizzazione di GoodWe)",
|
|
105
|
+
"es": "marca: icono sustituido por el logotipo oficial de GoodWe (utilizado con permiso de GoodWe)",
|
|
106
|
+
"pl": "branding: zastąpiono ikonę zastępczą oficjalnym logo GoodWe (używane za zgodą GoodWe)",
|
|
107
|
+
"uk": "брендинг: замінено іконку-заповнювач на офіційний логотип GoodWe (використовується з дозволу GoodWe)",
|
|
108
|
+
"zh-cn": "品牌:将占位图标替换为 GoodWe 官方标志(经 GoodWe 许可使用)"
|
|
96
109
|
}
|
|
97
110
|
},
|
|
98
111
|
"title": "GoodWe SEMS Portal",
|
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.7",
|
|
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",
|
|
@@ -54,16 +54,22 @@
|
|
|
54
54
|
"@iobroker/adapter-core": "^3.1.6"
|
|
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
|
}
|