iobroker.homewizard 0.8.1 → 0.8.2

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
@@ -37,12 +37,12 @@ Real-time energy monitoring for [HomeWizard](https://www.homewizard.com) Energy
37
37
 
38
38
  ## Supported Devices
39
39
 
40
- | Device | Product Type |
41
- |--------|--------------|
42
- | P1 Meter | HWE-P1 |
40
+ | Device | Product Type |
41
+ | ----------------- | ------------------------------ |
42
+ | P1 Meter | HWE-P1 |
43
43
  | kWh Meter 1-Phase | HWE-KWH1 (also sold as SDM230) |
44
44
  | kWh Meter 3-Phase | HWE-KWH3 (also sold as SDM630) |
45
- | Plug-In Battery | HWE-BAT |
45
+ | Plug-In Battery | HWE-BAT |
46
46
 
47
47
  The Plug-In Battery is paired separately and shows up as its own device. To control charge/discharge mode and grid-feed permissions, you write to the `battery.*` data points of the P1 or kWh meter — that's where HomeWizard exposes the battery commands.
48
48
 
@@ -150,28 +150,37 @@ homewizard.0.
150
150
  ## Troubleshooting
151
151
 
152
152
  ### Device not found during pairing
153
+
153
154
  - Make sure the device is on the same network/VLAN as the ioBroker server
154
155
  - Verify that **local API** is enabled in the HomeWizard app (Settings > Meters > your device > Local API)
155
156
  - Check that multicast/mDNS traffic is not blocked by your router/firewall
156
157
 
157
158
  ### WebSocket keeps disconnecting
159
+
158
160
  - Check `info.wifi_rssi_db` — above -75 dBm is comfortable, weaker than -85 dBm explains frequent drops
159
161
  - For devices with weak WiFi the adapter switches to a faster reconnect interval (60 s instead of 5 min) and keeps REST polling in the background so you don't lose data
160
162
  - A WebSocket-layer ping/pong heartbeat (~30 s ping, 10 s pong window) catches half-dead links where the TCP stream is buffered but the device has stopped responding. Such links are torn down and reconnected automatically — you no longer end up with a stale "connected" status while measurement values stop updating.
161
163
  - IP changes are picked up via mDNS — no manual reconfiguration needed
162
164
 
163
165
  ### Token invalid after factory reset
166
+
164
167
  - Set the device's `remove` data point to `true`, then pair again
165
168
 
166
169
  ---
167
170
 
168
171
  ## Changelog
172
+
169
173
  <!--
170
174
  Placeholder for the next version (at the beginning of the line):
171
175
  ### **WORK IN PROGRESS**
172
176
  -->
177
+ ### 0.8.2 (2026-05-19)
178
+
179
+ - Code quality enforced with standard formatting.
180
+
173
181
  ### 0.8.1 (2026-05-17)
174
- * Internal cleanup. No user-facing changes.
182
+
183
+ - Internal cleanup. No user-facing changes.
175
184
 
176
185
  ### 0.8.0 (2026-05-17)
177
186
 
@@ -186,10 +195,6 @@ homewizard.0.
186
195
  - Devices with chronically bad WiFi no longer flood the log: max one warn per hour when the device drops out, one info when it comes back. Full timeline stays at debug level.
187
196
  - Internal reconnect-strategy adjustments (unstable / normal mode switches) moved from info to debug — not user-actionable.
188
197
 
189
- ### 0.7.6 (2026-05-12)
190
-
191
- - The battery mode dropdown and the tariff state no longer crash the admin with "Error in GUI" when opened.
192
-
193
198
  ### Support Development
194
199
 
195
200
  This adapter is free and open source. If you find it useful, consider buying me a coffee:
@@ -10,7 +10,11 @@
10
10
  "_prerequisitesInfo": {
11
11
  "type": "staticText",
12
12
  "text": "prerequisitesInfo",
13
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
13
+ "xs": 12,
14
+ "sm": 12,
15
+ "md": 12,
16
+ "lg": 12,
17
+ "xl": 12,
14
18
  "style": { "fontSize": 14, "marginBottom": 16 }
15
19
  },
16
20
  "_headerPairing": {
@@ -26,7 +30,11 @@
26
30
  "_pairingAutoInfo": {
27
31
  "type": "staticText",
28
32
  "text": "pairingAutoInfo",
29
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
33
+ "xs": 12,
34
+ "sm": 12,
35
+ "md": 12,
36
+ "lg": 12,
37
+ "xl": 12,
30
38
  "style": { "fontSize": 14, "marginBottom": 16, "whiteSpace": "pre-line" }
31
39
  },
32
40
  "_pairingManualHeader": {
@@ -37,7 +45,11 @@
37
45
  "_pairingManualInfo": {
38
46
  "type": "staticText",
39
47
  "text": "pairingManualInfo",
40
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
48
+ "xs": 12,
49
+ "sm": 12,
50
+ "md": 12,
51
+ "lg": 12,
52
+ "xl": 12,
41
53
  "style": { "fontSize": 14, "marginBottom": 16, "whiteSpace": "pre-line" }
42
54
  },
43
55
  "_headerDevices": {
@@ -48,7 +60,11 @@
48
60
  "_devicesInfo": {
49
61
  "type": "staticText",
50
62
  "text": "devicesInfo",
51
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
63
+ "xs": 12,
64
+ "sm": 12,
65
+ "md": 12,
66
+ "lg": 12,
67
+ "xl": 12,
52
68
  "style": { "fontSize": 14, "marginBottom": 16, "whiteSpace": "pre-line" }
53
69
  },
54
70
  "_supportHeader": {
@@ -60,7 +76,11 @@
60
76
  "_aboutInfo": {
61
77
  "type": "staticText",
62
78
  "text": "aboutInfo",
63
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
79
+ "xs": 12,
80
+ "sm": 12,
81
+ "md": 12,
82
+ "lg": 12,
83
+ "xl": 12,
64
84
  "style": { "fontSize": 14, "marginBottom": 16 }
65
85
  },
66
86
  "_kofiLink": {
@@ -70,7 +90,11 @@
70
90
  "button": true,
71
91
  "variant": "outlined",
72
92
  "color": "primary",
73
- "xs": 12, "sm": 6, "md": 4, "lg": 4, "xl": 4
93
+ "xs": 12,
94
+ "sm": 6,
95
+ "md": 4,
96
+ "lg": 4,
97
+ "xl": 4
74
98
  },
75
99
  "_paypalLink": {
76
100
  "type": "staticLink",
@@ -79,7 +103,11 @@
79
103
  "button": true,
80
104
  "variant": "outlined",
81
105
  "color": "primary",
82
- "xs": 12, "sm": 6, "md": 4, "lg": 4, "xl": 4
106
+ "xs": 12,
107
+ "sm": 6,
108
+ "md": 4,
109
+ "lg": 4,
110
+ "xl": 4
83
111
  }
84
112
  }
85
113
  }
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "homewizard",
4
- "version": "0.8.1",
4
+ "version": "0.8.2",
5
5
  "news": {
6
+ "0.8.2": {
7
+ "en": "Code quality enforced with standard formatting.",
8
+ "de": "Codequalität durch einheitliche Formatierung sichergestellt.",
9
+ "ru": "Качество кода обеспечено стандартным форматированием.",
10
+ "pt": "Qualidade do código garantida com formatação padrão.",
11
+ "nl": "Codekwaliteit afgedwongen met standaardopmaak.",
12
+ "fr": "Qualité du code assurée avec un formatage standard.",
13
+ "it": "Qualità del codice garantita con formattazione standard.",
14
+ "es": "Calidad del código garantizada con formato estándar.",
15
+ "pl": "Jakość kodu zapewniona przez standardowe formatowanie.",
16
+ "uk": "Якість коду забезпечена стандартним форматуванням.",
17
+ "zh-cn": "通过标准格式化确保代码质量。"
18
+ },
6
19
  "0.8.1": {
7
20
  "en": "Internal cleanup. No user-facing changes.",
8
21
  "de": "Interne Bereinigung. Keine sichtbaren Änderungen.",
@@ -80,19 +93,6 @@
80
93
  "pl": "Stabilność: heartbeat WebSocket wykrywa półmartwe połączenia, limit auth 45 s, odzyskiwanie IP i ponowne parowanie bez wycieków, uszkodzony token nie blokuje już adaptera.",
81
94
  "uk": "Надійність: heartbeat WebSocket бачить напівмертві з'єднання, тайм-аут авторизації 45 с, відновлення IP та повторне сполучення без витоків, поганий токен не блокує адаптер.",
82
95
  "zh-cn": "稳健性:WebSocket 心跳识别半死链接,认证握手 45 秒超时,IP 恢复与重新配对不再泄漏 socket,单个损坏令牌不再阻塞整个适配器。"
83
- },
84
- "0.7.4": {
85
- "en": "Adapter log messages are now English only, in line with the ioBroker community standard. Localized state names, descriptions and dropdown labels (11 languages) remain unchanged.",
86
- "de": "Adapter-Logs sind jetzt nur noch auf Englisch, gemäß ioBroker-Community-Standard. Lokalisierte Datenpunkt-Namen, Beschreibungen und Dropdown-Labels (11 Sprachen) bleiben erhalten.",
87
- "ru": "Сообщения журнала теперь только на английском, согласно стандарту сообщества ioBroker. Локализованные имена состояний, описания и подписи (11 языков) сохраняются.",
88
- "pt": "As mensagens de log do adaptador agora são apenas em inglês, conforme o padrão da comunidade ioBroker. Nomes de estados, descrições e rótulos localizados (11 idiomas) permanecem inalterados.",
89
- "nl": "Adapter-logberichten zijn nu alleen Engels, conform de ioBroker-communitystandaard. Gelokaliseerde statusnamen, beschrijvingen en dropdown-labels (11 talen) blijven ongewijzigd.",
90
- "fr": "Les messages de log de l'adaptateur sont désormais uniquement en anglais, conformément au standard de la communauté ioBroker. Les noms d'états, descriptions et libellés localisés (11 langues) restent inchangés.",
91
- "it": "I messaggi di log dell'adattatore sono ora solo in inglese, secondo lo standard della community ioBroker. I nomi degli stati, descrizioni ed etichette localizzati (11 lingue) rimangono invariati.",
92
- "es": "Los mensajes de registro del adaptador ahora son solo en inglés, conforme al estándar de la comunidad ioBroker. Los nombres de estados, descripciones y etiquetas localizados (11 idiomas) permanecen sin cambios.",
93
- "pl": "Komunikaty dziennika adaptera są teraz wyłącznie po angielsku, zgodnie ze standardem społeczności ioBroker. Zlokalizowane nazwy stanów, opisy i etykiety (11 języków) pozostają bez zmian.",
94
- "uk": "Повідомлення журналу адаптера тепер лише англійською, відповідно до стандарту спільноти ioBroker. Локалізовані назви станів, описи та мітки (11 мов) залишаються без змін.",
95
- "zh-cn": "适配器日志消息现在仅为英文,符合 ioBroker 社区标准。本地化的数据点名称、描述和下拉标签(11 种语言)保持不变。"
96
96
  }
97
97
  },
98
98
  "titleLang": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.homewizard",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "ioBroker adapter for HomeWizard Energy devices with API v2",
5
5
  "author": {
6
6
  "name": "krobi",