iobroker.anker-solix 0.9.7 → 0.9.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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 MatthiasUlrich1 <info@my-smart-home-support.de>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MatthiasUlrich1 <info@my-smart-home-support.de>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,357 +1,361 @@
1
- # ioBroker.anker-solix
2
-
3
- [![NPM version](https://img.shields.io/npm/v/iobroker.anker-solix.svg)](https://www.npmjs.com/package/iobroker.anker-solix)
4
-
5
- ioBroker adapter for **Anker Solix** power systems (Solarbank, Smart Meter, PPS, EV charger, and more). It is based on the Home Assistant integration [thomluther/ha-anker-solix](https://github.com/thomluther/ha-anker-solix) and uses the same unofficial **solixapi** Python library.
6
-
7
- A small **Python bridge** (persistent daemon, like HA) polls the Anker cloud and optional MQTT, then exposes values as ioBroker states. Optional entity groups (since v0.9.0) mirror HA’s scope: only **Core** is on by default to limit API load.
8
-
9
- ## Table of contents
10
-
11
- 1. [Disclaimer & usage terms](#disclaimer--usage-terms)
12
- 2. [How this adapter works in ioBroker](#how-this-adapter-works-in-iobroker)
13
- 3. [Requirements & installation](#requirements--installation)
14
- 4. [Configuration](#configuration)
15
- 5. [Anker account & login cache](#anker-account--login-cache)
16
- 6. [Limitations](#limitations)
17
- 7. [Supported devices](#supported-devices)
18
- 8. [State structure & entity groups](#state-structure--entity-groups)
19
- 9. [MQTT](#mqtt-managed-devices)
20
- 10. [Special device notes](#special-device-notes)
21
- 11. [Troubleshooting login / poll](#troubleshooting-login--poll)
22
- 12. [Services](#services)
23
- 13. [Credits & further reading](#credits--further-reading)
24
- 14. [Changelog](#changelog)
25
- 15. [Publishing](#publishing-npm--iobroker-catalog)
26
-
27
- ---
28
-
29
- ## Disclaimer & usage terms
30
-
31
- This adapter is **not** affiliated with Anker. Trademarks and product names belong to their respective owners.
32
-
33
- The adapter uses an **unofficial** Python library to talk to the Anker Power **cloud API** (same as the mobile app). That API can change or break at any time. Improper settings may affect devices; the user accepts these risks when enabling the instance (**Terms** tab). Future adapter updates may extend monitoring or controls.
34
-
35
- ---
36
-
37
- ## How this adapter works in ioBroker
38
-
39
- | Layer | Role |
40
- |-------|------|
41
- | **Node.js adapter** | Instance config, scheduling, ioBroker states, control queue |
42
- | **Python bridge** (`python/bridge.py`) | Long-lived session: API + optional MQTT (HA-style) |
43
- | **solixapi** | Cloud login, sites/devices, energy stats, MQTT map |
44
- | **authcache** | `iobroker-data/<instance>/authcache/<email>.json` — reused after successful API login |
45
-
46
- Poll interval should be **60–180 s** (same recommendation as HA). Site list is updated every cycle; device/site details and energy data run on a slower interval (`deviceDetailMultiplier`, default every 10th poll).
47
-
48
- > **Important:** The cloud API is **mandatory**. MQTT alone is not enough for full system data. This adapter does **not** replace local BLE or Modbus integrations — see [Additional resources](#credits--further-reading).
49
-
50
- ---
51
-
52
- ## Requirements & installation
53
-
54
- - ioBroker **js-controller >= 6**, **admin >= 7.6**
55
- - **Node.js >= 22**
56
- - **Python 3.12+** on the ioBroker host (`python3-venv` + `python3-pip` recommended on Debian/Ubuntu)
57
-
58
- Python dependencies install into the adapter folder (`python/.venv` or `python/site-packages`). Since v0.2.0: automatic on start (**Options** → `autoInstallPython`) or button **Install Python dependencies**.
59
-
60
- Install via ioBroker (recommended):
61
-
62
- ```bash
63
- iobroker install anker-solix
64
- ```
65
-
66
- After changing the adapter files locally, upload the instance:
67
-
68
- ```bash
69
- iobroker upload anker-solix
70
- ```
71
-
72
- **Multihost:** use `--host "PC(SmartHome)"` with quotes if the name contains special characters.
73
-
74
- Remove legacy symlink if present: `rm -f /opt/iobroker/node_modules/iobroker.AnkerSolix`
75
-
76
- Manual Python setup (if needed):
77
-
78
- ```bash
79
- cd node_modules/iobroker.anker-solix
80
- python3 -m venv python/.venv && python/.venv/bin/pip install -r python/requirements.txt
81
- ```
82
-
83
- ---
84
-
85
- ## Configuration
86
-
87
- 1. Create instance: `iobroker add anker-solix`
88
- 2. **Account:** Anker e-mail, password, country code (e.g. `DE`) — **save after entering password**
89
- 3. **Terms:** accept unofficial API usage
90
- 4. **Options:** poll interval 60–180 s, **MQTT** if needed, `deviceDetailMultiplier` (HA default: 10)
91
- 5. **Devices:** **Load devices**, optional site ID / device SN filter
92
- 6. **Entities** (v0.9.0+): enable optional groups; only **Core** on by default → **restart adapter** after changes
93
-
94
- Do **not** use **Clear Anker login cache** unless you need a deliberate re-login (wrong account, corrupted file). Clearing forces a new cloud login and often triggers captcha on server hosts — see [Troubleshooting](#troubleshooting-login--poll).
95
-
96
- ---
97
-
98
- ## Anker account & login cache
99
-
100
- After the **first successful API login**, the adapter stores tokens in:
101
-
102
- `iobroker-data/anker-solix.0/authcache/<your-email>.json`
103
-
104
- (Filename must match the e-mail in **Account** exactly.)
105
-
106
- Since Anker app **3.10** (mid-2025), one account can often be used on **multiple clients in parallel** (app + ioBroker + HA). Older docs about “only one token” are less critical today, but a **failed re-login** from ioBroker still cannot refresh the file if Anker returns captcha.
107
-
108
- **Shared / member accounts:** A family-shared account may see fewer API details than the owner account (same as HA).
109
-
110
- More account notes: [HA INFO.md – accounts](https://github.com/thomluther/ha-anker-solix/blob/main/INFO.md).
111
-
112
- ---
113
-
114
- ## Limitations
115
-
116
- - **Unofficial API** — no documentation; endpoints can change anytime.
117
- - **EU vs COM cloud** — wrong **country** in config → login works but **no systems/devices**. Do not switch countries after pairing devices.
118
- - **Stale cloud data** if device Wi‑Fi is offline; use cloud/MQTT connection indicators when enabled.
119
- - **MQTT** updates depend on device publish cycle; some values only with **real-time trigger** (high traffic if 24/7).
120
- - **Standalone devices** (PPS, charger, cooler not in a power system) have **little or no API energy data** — MQTT may be required ([HA limitations](https://github.com/thomluther/ha-anker-solix#limitations)).
121
- - **Dynamic tariff** beyond Nordpool: forecast/price entities may be wrong or read-only.
122
- - **Captcha (100032)** on direct API login from VPS/VPN/datacenter — see [Troubleshooting](#troubleshooting-login--poll). Copy `authcache` from HA or another working setup if ioBroker cannot log in once.
123
-
124
- To help add devices: export anonymized data via HA [export systems](https://github.com/thomluther/ha-anker-solix/blob/main/INFO.md#export-systems-action) or [anker-solix-api export_system.py](https://github.com/thomluther/anker-solix-api#export_systempy).
125
-
126
- ---
127
-
128
- ## Supported devices
129
-
130
- Same device coverage as [ha-anker-solix](https://github.com/thomluther/ha-anker-solix#supported-sensors-and-devices) (via solixapi). In ioBroker, data appears under state IDs by device type (`solarbank`, `smartmeter`, `combiner_box`, `system`, …).
131
-
132
- | Device type | Examples / notes |
133
- |-------------|------------------|
134
- | **system / site** | Power system from the Anker app (= API “site”) |
135
- | **solarbank** | E1600 (Gen1), SB2 Pro/Plus/AC, SB3 E2700 — API + MQTT |
136
- | **combiner_box** | Power Dock (multisystem) — merged controls in ioBroker when applicable |
137
- | **smartmeter** | Anker 3-phase, US meter, Shelly 3EM / 3EM Pro |
138
- | **inverter** | MI80 standalone (virtual site in API) |
139
- | **smartplug** | Smart Plug 2500 W |
140
- | **pps** / **solarbank_pps** | Portable power stations — mostly MQTT |
141
- | **ev_charger** | V1 Smart EV Charger — mostly MQTT |
142
- | **vehicle** | Virtual EVs for charger accounts — read-oriented in ioBroker |
143
- | **powerpanel** / **hes** | US Power Panel, X1 HES — limited API, heavy stats polling |
144
- | **charger** | Prime / charging stations — MQTT |
145
- | **home_backup** | E10, AX170 — very limited API |
146
-
147
- Device hierarchy (how HA structures entities): [discussion #239](https://github.com/thomluther/ha-anker-solix/discussions/239).
148
-
149
- ---
150
-
151
- ## State structure & entity groups
152
-
153
- Typical paths (instance `anker-solix.0`):
154
-
155
- - `anker-solix.0.solarbank.<deviceId>.sensors.*` — power, SOC, etc.
156
- - `anker-solix.0.solarbank.<deviceId>.control.*` — writable controls where supported
157
- - `anker-solix.0.<device>.<id>.statistics.*` — daily kWh (enable **Entities** → energy statistics)
158
- - `anker-solix.0.smartmeter.<deviceId>.sensors.*`
159
- - `anker-solix.0.services.*` — export, schedule, refresh (button states)
160
- - `anker-solix.0.info.connection`, `anker-solix.0.info.pythonReady`
161
-
162
- **Entity groups** (Admin → **Entities**): map to HA feature sets — power flows, diagnostics, PPS, EV charger, HES, site price, account info, etc. Disabled groups are excluded from API polls to reduce load.
163
-
164
- ---
165
-
166
- ## MQTT managed devices
167
-
168
- Enable **MQTT** in **Options** when you need live data or controls that the cloud API does not provide (many PPS/EV/charger functions).
169
-
170
- - Extra sensors/controls come from MQTT maps in solixapi (community-decoded per model).
171
- - **Real-time trigger** and **status request** behave like HA buttons — automating them 24/7 increases traffic and keeps devices awake ([HA MQTT section](https://github.com/thomluther/ha-anker-solix#mqtt-managed-devices)).
172
- - **Hybrid controls** (station SOC reserve, AC limits, grid export on multisystem) need MQTT + API like HA.
173
- - Devices in **MQTT local mode** (e.g. E10 behind Power Dock) are proxied via the hub device — see [HA INFO – MQTT local mode](https://github.com/thomluther/ha-anker-solix/blob/main/INFO.md#devices-in-mqtt-local-mode).
174
-
175
- Decoding new models: [MQTT guidelines](https://github.com/thomluther/anker-solix-api/discussions/222), tool `mqtt_monitor.py` in [anker-solix-api](https://github.com/thomluther/anker-solix-api).
176
-
177
- ---
178
-
179
- ## Special device notes
180
-
181
- Condensed from the [HA integration README](https://github.com/thomluther/ha-anker-solix); behavior is the same via solixapi.
182
-
183
- ### Standalone inverters (MI80)
184
-
185
- Not a full app “power system”, but cloud tracks yields. API creates a **virtual site**. Inverter Wi‑Fi state in API is often wrong; cloud connection state is more reliable. **Do not** change inverter limits permanently (hardware write cycles).
186
-
187
- ### Solarbank 1 (E1600)
188
-
189
- Cloud updates ~every **60 s** while producing/discharging; ~hourly in standby. **Schedule bug:** a single all-day API slot can set export to **0 W** — use ≥2 slots in the app if using output preset. Daily discharge statistic since mid-2024 includes bypassed PV (also wrong in app). MQTT monitoring/control from HA v3.4+/3.5+.
190
-
191
- ### Solarbank 2 + smart meters
192
-
193
- Cloud interval often **~5 minutes**; control changes may take up to **~6 minutes** to appear in sensors. Shared accounts historically had unavailable entities (Anker-side fix). Some **output limit** API paths still unknown.
194
-
195
- ### Solarbank 2 AC
196
-
197
- Time-of-use plans via controls where supported; cloud updates can stall after heavy app use ([HA #211](https://github.com/thomluther/ha-anker-solix/issues/211)).
198
-
199
- ### Combined SB2 + cascaded SB1
200
-
201
- Totals/statistics in Anker cloud reflect **SB2 only**; SB1 is partly a “black box”. Enforced minimal schedule on SB1 when SB2 is manual — some ioBroker/HA controls show **unavailable** intentionally. For correct charge/discharge energy, sum **per-device** battery power, not only system NET power ([HA details](https://github.com/thomluther/ha-anker-solix#combined-solarbank-2-systems-containing-cascaded-solarbank-1-devices)).
202
-
203
- ### Solarbank 3
204
-
205
- Smart mode, dynamic price, time-slot modes — often **toggle only** via API (configure in app first). Dynamic price VAT/fees may be **cache-only** customizations. Nordpool forecast most reliable.
206
-
207
- ### Multisystem with Power Dock
208
-
209
- Up to 4 SB3 units; shared station settings (usage mode, SOC reserve, grid export). Controls consolidated on **combiner / Power Dock** in integration logic. Cloud data can lag in early deployments. Multisystem **AC output limit** may not be changeable via API.
210
-
211
- ### Station controls
212
-
213
- SOC reserve, PV/AC limits, grid export often need **API + MQTT** (hybrid). Third-party PV / EV-enable switches are usually one-time app setup — not exposed for automation.
214
-
215
- ### PPS / Solarbank PPS (F3000 + US meter)
216
-
217
- Automation-style home backup in US; control mainly via MQTT.
218
-
219
- ### EV charger (V1)
220
-
221
- Most metrics/controls via MQTT; member accounts supported. Operational modes map to HA-style state machine — in ioBroker, check available control options before scripts. Session history statistics not implemented (use state history).
222
-
223
- ### Vehicles
224
-
225
- Virtual devices per account EV; no creation via adapter — discovered on refresh.
226
-
227
- ### Power Panel & HES (X1)
228
-
229
- Limited API power; workaround uses **~5 min averages** from energy stats (**~80 MB/day** extra traffic per system if enabled). Disable heavy categories in **Entities** if needed. X1: consider local **Modbus** ([Anker spec](https://support.ankersolix.com/de/s/download-preview?urlname=Anker-SOLIX-X1-Series-Modbus-Protocol)) — not part of this adapter.
230
-
231
- ### Home Backup (E10, AX170)
232
-
233
- Almost **no** cloud API for system energy; E10 often **MQTT local mode** via dock.
234
-
235
- ### Other / standalone devices
236
-
237
- Only in a **power system** for full API; otherwise MQTT + community decoding required.
238
-
239
- ---
240
-
241
- ## Troubleshooting login / poll
242
-
243
- ### No `authcache/<email>.json`
244
-
245
- The file is created only after a **successful** API login. If every login returns captcha, copy a working file from [ha-anker-solix](https://github.com/thomluther/ha-anker-solix) (`custom_components/anker_solix/solixapi/authcache/`) into `iobroker-data/anker-solix.0/authcache/`, same filename as in **Account**.
246
-
247
- ### `(100032) Captcha id empty`
248
-
249
- Anker blocks some **server/VPN** API logins. The library cannot solve captcha.
250
-
251
- 1. Confirm app login on same LAN; correct **country**; no VPN on ioBroker host.
252
- 2. **Do not** clear login cache to “fix” captcha.
253
- 3. Copy `authcache` from HA or re-login when cloud allows.
254
- 4. Wait 15–30 min after many failed attempts.
255
- 5. Use adapter **≥ 0.9.3** so a valid cache is not discarded on restart.
256
-
257
- Log shows exact cache path from **0.9.4+**.
258
-
259
- ### Rate limits (26161 / 429)
260
-
261
- Increase poll interval; reduce enabled **Entities** groups; adapter retries and may fall back to one-shot bridge briefly.
262
-
263
- ---
264
-
265
- ## Services
266
-
267
- States under `anker-solix.0.services.*` (set to `true` to trigger):
268
-
269
- - `get_schedule`, `clear_schedule`, `export_systems`, `get_system_info`, `refresh_devices`
270
-
271
- Uses `selectedDeviceId` / `selectedSiteId` from config. See Admin **Services** tab.
272
-
273
- ---
274
-
275
- ## Credits & further reading
276
-
277
- | Resource | Content |
278
- |----------|---------|
279
- | [thomluther/ha-anker-solix](https://github.com/thomluther/ha-anker-solix) | Full README, **INFO.md** (config, MQTT, export, tariffs) |
280
- | [thomluther/anker-solix-api](https://github.com/thomluther/anker-solix-api) | Python API, export, mqtt_monitor |
281
- | [HA discussions](https://github.com/thomluther/ha-anker-solix/discussions) | Energy dashboard, zero export, efficiency |
282
- | [SolixBLE](https://github.com/flip-dots/SolixBLE) | Local BLE (not cloud) |
283
- | [ha-anker-solix-official](https://github.com/anker-charging/ha-anker-solix-official) | Official Modbus (local devices) |
284
-
285
- German guides/videos linked from the [HA README](https://github.com/thomluther/ha-anker-solix#additional-resources) apply conceptually to data and limits; wiring is via ioBroker states instead of HA entities.
286
-
287
- ---
288
-
289
- ## Changelog
290
-
291
- ### 0.9.7
292
-
293
- - Adapter-check: npm news sync, admin responsive layout, README copyright, npm package excludes Python cache
294
-
295
- ### 0.9.6
296
-
297
- - Adapter-check compliance: Node 22+, admin UI sizes, compact-mode Python install, dependabot
298
-
299
- ### 0.9.5
300
-
301
- - Admin warning before **Clear Anker login cache**; log after clear
302
-
303
- ### 0.9.4
304
-
305
- - Log exact `authcache` path when login cache file is missing
306
-
307
- ### 0.9.3
308
-
309
- - **Fix:** Valid `authcache` no longer treated as failed login after restart (captcha 100032)
310
-
311
- ### 0.9.2
312
-
313
- - Keep `authcache` on re-auth; reload token on 401 before forced login
314
-
315
- ### 0.9.1
316
-
317
- - Captcha error 100032 mapping and README troubleshooting
318
-
319
- ### 0.9.0
320
-
321
- - Configurable **entity groups** (HA-style); API scope follows enabled groups
322
-
323
- ### 0.8.1
324
-
325
- - Fix Python bridge `ApiCategories.device_parm` crash
326
-
327
- ### 0.8.0
328
-
329
- - Daily energy statistics under `statistics.*`
330
-
331
- ### 0.7.0
332
-
333
- - Usage mode `preset_usage_mode`, AC fast charge switch
334
-
335
- ### 0.6.x
336
-
337
- - Persistent bridge daemon, HA-aligned poll, multisystem controls, rate-limit fixes
338
-
339
- ### 0.2.x – 0.5.x
340
-
341
- - Python auto-install, device selection, staggered polling, repository rename
342
-
343
- Older release notes: [CHANGELOG_OLD.md](CHANGELOG_OLD.md) and git history.
344
-
345
- ---
346
-
347
- ## Publishing (npm & ioBroker catalog)
348
-
349
- **npm:** Release via git tag (`v*`) and CI deploy after [adapter check](https://adaptercheck.iobroker.in/) is green. Register in [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories) once the package is on npm.
350
-
351
- ---
352
-
353
- ## License
354
-
355
- Copyright (c) 2026 MatthiasUlrich1 info@my-smart-home-support.de
356
-
357
- MIT — see [LICENSE](LICENSE)
1
+ # ioBroker.anker-solix
2
+
3
+ [![NPM version](https://img.shields.io/npm/v/iobroker.anker-solix.svg)](https://www.npmjs.com/package/iobroker.anker-solix)
4
+
5
+ ioBroker adapter for **Anker Solix** power systems (Solarbank, Smart Meter, PPS, EV charger, and more). It is based on the Home Assistant integration [thomluther/ha-anker-solix](https://github.com/thomluther/ha-anker-solix) and uses the same unofficial **solixapi** Python library.
6
+
7
+ A small **Python bridge** (persistent daemon, like HA) polls the Anker cloud and optional MQTT, then exposes values as ioBroker states. Optional entity groups (since v0.9.0) mirror HA’s scope: only **Core** is on by default to limit API load.
8
+
9
+ ## Table of contents
10
+
11
+ 1. [Disclaimer & usage terms](#disclaimer--usage-terms)
12
+ 2. [How this adapter works in ioBroker](#how-this-adapter-works-in-iobroker)
13
+ 3. [Requirements & installation](#requirements--installation)
14
+ 4. [Configuration](#configuration)
15
+ 5. [Anker account & login cache](#anker-account--login-cache)
16
+ 6. [Limitations](#limitations)
17
+ 7. [Supported devices](#supported-devices)
18
+ 8. [State structure & entity groups](#state-structure--entity-groups)
19
+ 9. [MQTT](#mqtt-managed-devices)
20
+ 10. [Special device notes](#special-device-notes)
21
+ 11. [Troubleshooting login / poll](#troubleshooting-login--poll)
22
+ 12. [Services](#services)
23
+ 13. [Credits & further reading](#credits--further-reading)
24
+ 14. [Changelog](#changelog)
25
+ 15. [Publishing](#publishing-npm--iobroker-catalog)
26
+
27
+ ---
28
+
29
+ ## Disclaimer & usage terms
30
+
31
+ This adapter is **not** affiliated with Anker. Trademarks and product names belong to their respective owners.
32
+
33
+ The adapter uses an **unofficial** Python library to talk to the Anker Power **cloud API** (same as the mobile app). That API can change or break at any time. Improper settings may affect devices; the user accepts these risks when enabling the instance (**Terms** tab). Future adapter updates may extend monitoring or controls.
34
+
35
+ ---
36
+
37
+ ## How this adapter works in ioBroker
38
+
39
+ | Layer | Role |
40
+ |-------|------|
41
+ | **Node.js adapter** | Instance config, scheduling, ioBroker states, control queue |
42
+ | **Python bridge** (`python/bridge.py`) | Long-lived session: API + optional MQTT (HA-style) |
43
+ | **solixapi** | Cloud login, sites/devices, energy stats, MQTT map |
44
+ | **authcache** | `iobroker-data/<instance>/authcache/<email>.json` — reused after successful API login |
45
+
46
+ Poll interval should be **60–180 s** (same recommendation as HA). Site list is updated every cycle; device/site details and energy data run on a slower interval (`deviceDetailMultiplier`, default every 10th poll).
47
+
48
+ > **Important:** The cloud API is **mandatory**. MQTT alone is not enough for full system data. This adapter does **not** replace local BLE or Modbus integrations — see [Additional resources](#credits--further-reading).
49
+
50
+ ---
51
+
52
+ ## Requirements & installation
53
+
54
+ - ioBroker **js-controller >= 6**, **admin >= 7.6**
55
+ - **Node.js >= 22**
56
+ - **Python 3.12+** on the ioBroker host (`python3-venv` + `python3-pip` recommended on Debian/Ubuntu)
57
+
58
+ Python dependencies install into the adapter folder (`python/.venv` or `python/site-packages`). Since v0.2.0: automatic on start (**Options** → `autoInstallPython`) or button **Install Python dependencies**.
59
+
60
+ Install via ioBroker (recommended):
61
+
62
+ ```bash
63
+ iobroker install anker-solix
64
+ ```
65
+
66
+ After changing the adapter files locally, upload the instance:
67
+
68
+ ```bash
69
+ iobroker upload anker-solix
70
+ ```
71
+
72
+ **Multihost:** use `--host "PC(SmartHome)"` with quotes if the name contains special characters.
73
+
74
+ Remove legacy symlink if present: `rm -f /opt/iobroker/node_modules/iobroker.AnkerSolix`
75
+
76
+ Manual Python setup (if needed):
77
+
78
+ ```bash
79
+ cd node_modules/iobroker.anker-solix
80
+ python3 -m venv python/.venv && python/.venv/bin/pip install -r python/requirements.txt
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Configuration
86
+
87
+ 1. Create instance: `iobroker add anker-solix`
88
+ 2. **Account:** Anker e-mail, password, country code (e.g. `DE`) — **save after entering password**
89
+ 3. **Terms:** accept unofficial API usage
90
+ 4. **Options:** poll interval 60–180 s, **MQTT** if needed, `deviceDetailMultiplier` (HA default: 10)
91
+ 5. **Devices:** **Load devices**, optional site ID / device SN filter
92
+ 6. **Entities** (v0.9.0+): enable optional groups; only **Core** on by default → **restart adapter** after changes
93
+
94
+ Do **not** use **Clear Anker login cache** unless you need a deliberate re-login (wrong account, corrupted file). Clearing forces a new cloud login and often triggers captcha on server hosts — see [Troubleshooting](#troubleshooting-login--poll).
95
+
96
+ ---
97
+
98
+ ## Anker account & login cache
99
+
100
+ After the **first successful API login**, the adapter stores tokens in:
101
+
102
+ `iobroker-data/anker-solix.0/authcache/<your-email>.json`
103
+
104
+ (Filename must match the e-mail in **Account** exactly.)
105
+
106
+ Since Anker app **3.10** (mid-2025), one account can often be used on **multiple clients in parallel** (app + ioBroker + HA). Older docs about “only one token” are less critical today, but a **failed re-login** from ioBroker still cannot refresh the file if Anker returns captcha.
107
+
108
+ **Shared / member accounts:** A family-shared account may see fewer API details than the owner account (same as HA).
109
+
110
+ More account notes: [HA INFO.md – accounts](https://github.com/thomluther/ha-anker-solix/blob/main/INFO.md).
111
+
112
+ ---
113
+
114
+ ## Limitations
115
+
116
+ - **Unofficial API** — no documentation; endpoints can change anytime.
117
+ - **EU vs COM cloud** — wrong **country** in config → login works but **no systems/devices**. Do not switch countries after pairing devices.
118
+ - **Stale cloud data** if device Wi‑Fi is offline; use cloud/MQTT connection indicators when enabled.
119
+ - **MQTT** updates depend on device publish cycle; some values only with **real-time trigger** (high traffic if 24/7).
120
+ - **Standalone devices** (PPS, charger, cooler not in a power system) have **little or no API energy data** — MQTT may be required ([HA limitations](https://github.com/thomluther/ha-anker-solix#limitations)).
121
+ - **Dynamic tariff** beyond Nordpool: forecast/price entities may be wrong or read-only.
122
+ - **Captcha (100032)** on direct API login from VPS/VPN/datacenter — see [Troubleshooting](#troubleshooting-login--poll). Copy `authcache` from HA or another working setup if ioBroker cannot log in once.
123
+
124
+ To help add devices: export anonymized data via HA [export systems](https://github.com/thomluther/ha-anker-solix/blob/main/INFO.md#export-systems-action) or [anker-solix-api export_system.py](https://github.com/thomluther/anker-solix-api#export_systempy).
125
+
126
+ ---
127
+
128
+ ## Supported devices
129
+
130
+ Same device coverage as [ha-anker-solix](https://github.com/thomluther/ha-anker-solix#supported-sensors-and-devices) (via solixapi). In ioBroker, data appears under state IDs by device type (`solarbank`, `smartmeter`, `combiner_box`, `system`, …).
131
+
132
+ | Device type | Examples / notes |
133
+ |-------------|------------------|
134
+ | **system / site** | Power system from the Anker app (= API “site”) |
135
+ | **solarbank** | E1600 (Gen1), SB2 Pro/Plus/AC, SB3 E2700 — API + MQTT |
136
+ | **combiner_box** | Power Dock (multisystem) — merged controls in ioBroker when applicable |
137
+ | **smartmeter** | Anker 3-phase, US meter, Shelly 3EM / 3EM Pro |
138
+ | **inverter** | MI80 standalone (virtual site in API) |
139
+ | **smartplug** | Smart Plug 2500 W |
140
+ | **pps** / **solarbank_pps** | Portable power stations — mostly MQTT |
141
+ | **ev_charger** | V1 Smart EV Charger — mostly MQTT |
142
+ | **vehicle** | Virtual EVs for charger accounts — read-oriented in ioBroker |
143
+ | **powerpanel** / **hes** | US Power Panel, X1 HES — limited API, heavy stats polling |
144
+ | **charger** | Prime / charging stations — MQTT |
145
+ | **home_backup** | E10, AX170 — very limited API |
146
+
147
+ Device hierarchy (how HA structures entities): [discussion #239](https://github.com/thomluther/ha-anker-solix/discussions/239).
148
+
149
+ ---
150
+
151
+ ## State structure & entity groups
152
+
153
+ Typical paths (instance `anker-solix.0`):
154
+
155
+ - `anker-solix.0.solarbank.<deviceId>.sensors.*` — power, SOC, etc.
156
+ - `anker-solix.0.solarbank.<deviceId>.control.*` — writable controls where supported
157
+ - `anker-solix.0.<device>.<id>.statistics.*` — daily kWh (enable **Entities** → energy statistics)
158
+ - `anker-solix.0.smartmeter.<deviceId>.sensors.*`
159
+ - `anker-solix.0.services.*` — export, schedule, refresh (button states)
160
+ - `anker-solix.0.info.connection`, `anker-solix.0.info.pythonReady`
161
+
162
+ **Entity groups** (Admin → **Entities**): map to HA feature sets — power flows, diagnostics, PPS, EV charger, HES, site price, account info, etc. Disabled groups are excluded from API polls to reduce load.
163
+
164
+ ---
165
+
166
+ ## MQTT managed devices
167
+
168
+ Enable **MQTT** in **Options** when you need live data or controls that the cloud API does not provide (many PPS/EV/charger functions).
169
+
170
+ - Extra sensors/controls come from MQTT maps in solixapi (community-decoded per model).
171
+ - **Real-time trigger** and **status request** behave like HA buttons — automating them 24/7 increases traffic and keeps devices awake ([HA MQTT section](https://github.com/thomluther/ha-anker-solix#mqtt-managed-devices)).
172
+ - **Hybrid controls** (station SOC reserve, AC limits, grid export on multisystem) need MQTT + API like HA.
173
+ - Devices in **MQTT local mode** (e.g. E10 behind Power Dock) are proxied via the hub device — see [HA INFO – MQTT local mode](https://github.com/thomluther/ha-anker-solix/blob/main/INFO.md#devices-in-mqtt-local-mode).
174
+
175
+ Decoding new models: [MQTT guidelines](https://github.com/thomluther/anker-solix-api/discussions/222), tool `mqtt_monitor.py` in [anker-solix-api](https://github.com/thomluther/anker-solix-api).
176
+
177
+ ---
178
+
179
+ ## Special device notes
180
+
181
+ Condensed from the [HA integration README](https://github.com/thomluther/ha-anker-solix); behavior is the same via solixapi.
182
+
183
+ ### Standalone inverters (MI80)
184
+
185
+ Not a full app “power system”, but cloud tracks yields. API creates a **virtual site**. Inverter Wi‑Fi state in API is often wrong; cloud connection state is more reliable. **Do not** change inverter limits permanently (hardware write cycles).
186
+
187
+ ### Solarbank 1 (E1600)
188
+
189
+ Cloud updates ~every **60 s** while producing/discharging; ~hourly in standby. **Schedule bug:** a single all-day API slot can set export to **0 W** — use ≥2 slots in the app if using output preset. Daily discharge statistic since mid-2024 includes bypassed PV (also wrong in app). MQTT monitoring/control from HA v3.4+/3.5+.
190
+
191
+ ### Solarbank 2 + smart meters
192
+
193
+ Cloud interval often **~5 minutes**; control changes may take up to **~6 minutes** to appear in sensors. Shared accounts historically had unavailable entities (Anker-side fix). Some **output limit** API paths still unknown.
194
+
195
+ ### Solarbank 2 AC
196
+
197
+ Time-of-use plans via controls where supported; cloud updates can stall after heavy app use ([HA #211](https://github.com/thomluther/ha-anker-solix/issues/211)).
198
+
199
+ ### Combined SB2 + cascaded SB1
200
+
201
+ Totals/statistics in Anker cloud reflect **SB2 only**; SB1 is partly a “black box”. Enforced minimal schedule on SB1 when SB2 is manual — some ioBroker/HA controls show **unavailable** intentionally. For correct charge/discharge energy, sum **per-device** battery power, not only system NET power ([HA details](https://github.com/thomluther/ha-anker-solix#combined-solarbank-2-systems-containing-cascaded-solarbank-1-devices)).
202
+
203
+ ### Solarbank 3
204
+
205
+ Smart mode, dynamic price, time-slot modes — often **toggle only** via API (configure in app first). Dynamic price VAT/fees may be **cache-only** customizations. Nordpool forecast most reliable.
206
+
207
+ ### Multisystem with Power Dock
208
+
209
+ Up to 4 SB3 units; shared station settings (usage mode, SOC reserve, grid export). Controls consolidated on **combiner / Power Dock** in integration logic. Cloud data can lag in early deployments. Multisystem **AC output limit** may not be changeable via API.
210
+
211
+ ### Station controls
212
+
213
+ SOC reserve, PV/AC limits, grid export often need **API + MQTT** (hybrid). Third-party PV / EV-enable switches are usually one-time app setup — not exposed for automation.
214
+
215
+ ### PPS / Solarbank PPS (F3000 + US meter)
216
+
217
+ Automation-style home backup in US; control mainly via MQTT.
218
+
219
+ ### EV charger (V1)
220
+
221
+ Most metrics/controls via MQTT; member accounts supported. Operational modes map to HA-style state machine — in ioBroker, check available control options before scripts. Session history statistics not implemented (use state history).
222
+
223
+ ### Vehicles
224
+
225
+ Virtual devices per account EV; no creation via adapter — discovered on refresh.
226
+
227
+ ### Power Panel & HES (X1)
228
+
229
+ Limited API power; workaround uses **~5 min averages** from energy stats (**~80 MB/day** extra traffic per system if enabled). Disable heavy categories in **Entities** if needed. X1: consider local **Modbus** ([Anker spec](https://support.ankersolix.com/de/s/download-preview?urlname=Anker-SOLIX-X1-Series-Modbus-Protocol)) — not part of this adapter.
230
+
231
+ ### Home Backup (E10, AX170)
232
+
233
+ Almost **no** cloud API for system energy; E10 often **MQTT local mode** via dock.
234
+
235
+ ### Other / standalone devices
236
+
237
+ Only in a **power system** for full API; otherwise MQTT + community decoding required.
238
+
239
+ ---
240
+
241
+ ## Troubleshooting login / poll
242
+
243
+ ### No `authcache/<email>.json`
244
+
245
+ The file is created only after a **successful** API login. If every login returns captcha, copy a working file from [ha-anker-solix](https://github.com/thomluther/ha-anker-solix) (`custom_components/anker_solix/solixapi/authcache/`) into `iobroker-data/anker-solix.0/authcache/`, same filename as in **Account**.
246
+
247
+ ### `(100032) Captcha id empty`
248
+
249
+ Anker blocks some **server/VPN** API logins. The library cannot solve captcha.
250
+
251
+ 1. Confirm app login on same LAN; correct **country**; no VPN on ioBroker host.
252
+ 2. **Do not** clear login cache to “fix” captcha.
253
+ 3. Copy `authcache` from HA or re-login when cloud allows.
254
+ 4. Wait 15–30 min after many failed attempts.
255
+ 5. Use adapter **≥ 0.9.3** so a valid cache is not discarded on restart.
256
+
257
+ Log shows exact cache path from **0.9.4+**.
258
+
259
+ ### Rate limits (26161 / 429)
260
+
261
+ Increase poll interval; reduce enabled **Entities** groups; adapter retries and may fall back to one-shot bridge briefly.
262
+
263
+ ---
264
+
265
+ ## Services
266
+
267
+ States under `anker-solix.0.services.*` (set to `true` to trigger):
268
+
269
+ - `get_schedule`, `clear_schedule`, `export_systems`, `get_system_info`, `refresh_devices`
270
+
271
+ Uses `selectedDeviceId` / `selectedSiteId` from config. See Admin **Services** tab.
272
+
273
+ ---
274
+
275
+ ## Credits & further reading
276
+
277
+ | Resource | Content |
278
+ |----------|---------|
279
+ | [thomluther/ha-anker-solix](https://github.com/thomluther/ha-anker-solix) | Full README, **INFO.md** (config, MQTT, export, tariffs) |
280
+ | [thomluther/anker-solix-api](https://github.com/thomluther/anker-solix-api) | Python API, export, mqtt_monitor |
281
+ | [HA discussions](https://github.com/thomluther/ha-anker-solix/discussions) | Energy dashboard, zero export, efficiency |
282
+ | [SolixBLE](https://github.com/flip-dots/SolixBLE) | Local BLE (not cloud) |
283
+ | [ha-anker-solix-official](https://github.com/anker-charging/ha-anker-solix-official) | Official Modbus (local devices) |
284
+
285
+ German guides/videos linked from the [HA README](https://github.com/thomluther/ha-anker-solix#additional-resources) apply conceptually to data and limits; wiring is via ioBroker states instead of HA entities.
286
+
287
+ ---
288
+
289
+ ## Changelog
290
+
291
+ ### 0.9.8
292
+
293
+ - Admin UI: all option/entity fields with lg/xl breakpoints; CI release fix
294
+
295
+ ### 0.9.7
296
+
297
+ - Adapter-check: npm news sync, admin responsive layout, README copyright, npm package excludes Python cache
298
+
299
+ ### 0.9.6
300
+
301
+ - Adapter-check compliance: Node 22+, admin UI sizes, compact-mode Python install, dependabot
302
+
303
+ ### 0.9.5
304
+
305
+ - Admin warning before **Clear Anker login cache**; log after clear
306
+
307
+ ### 0.9.4
308
+
309
+ - Log exact `authcache` path when login cache file is missing
310
+
311
+ ### 0.9.3
312
+
313
+ - **Fix:** Valid `authcache` no longer treated as failed login after restart (captcha 100032)
314
+
315
+ ### 0.9.2
316
+
317
+ - Keep `authcache` on re-auth; reload token on 401 before forced login
318
+
319
+ ### 0.9.1
320
+
321
+ - Captcha error 100032 mapping and README troubleshooting
322
+
323
+ ### 0.9.0
324
+
325
+ - Configurable **entity groups** (HA-style); API scope follows enabled groups
326
+
327
+ ### 0.8.1
328
+
329
+ - Fix Python bridge `ApiCategories.device_parm` crash
330
+
331
+ ### 0.8.0
332
+
333
+ - Daily energy statistics under `statistics.*`
334
+
335
+ ### 0.7.0
336
+
337
+ - Usage mode `preset_usage_mode`, AC fast charge switch
338
+
339
+ ### 0.6.x
340
+
341
+ - Persistent bridge daemon, HA-aligned poll, multisystem controls, rate-limit fixes
342
+
343
+ ### 0.2.x 0.5.x
344
+
345
+ - Python auto-install, device selection, staggered polling, repository rename
346
+
347
+ Older release notes: [CHANGELOG_OLD.md](CHANGELOG_OLD.md) and git history.
348
+
349
+ ---
350
+
351
+ ## Publishing (npm & ioBroker catalog)
352
+
353
+ **npm:** Release via git tag (`v*`) and CI deploy after [adapter check](https://adaptercheck.iobroker.in/) is green. Register in [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories) once the package is on npm.
354
+
355
+ ---
356
+
357
+ ## License
358
+
359
+ Copyright (c) 2026 MatthiasUlrich1 info@my-smart-home-support.de
360
+
361
+ MIT — see [LICENSE](LICENSE)
@@ -176,7 +176,9 @@
176
176
  "default": 0.3,
177
177
  "xs": 12,
178
178
  "sm": 6,
179
- "md": 4
179
+ "md": 4,
180
+ "lg": 4,
181
+ "xl": 4
180
182
  },
181
183
  "endpointLimit": {
182
184
  "type": "number",
@@ -186,7 +188,9 @@
186
188
  "default": 10,
187
189
  "xs": 12,
188
190
  "sm": 6,
189
- "md": 4
191
+ "md": 4,
192
+ "lg": 4,
193
+ "xl": 4
190
194
  },
191
195
  "mqttUsage": {
192
196
  "type": "checkbox",
@@ -194,7 +198,9 @@
194
198
  "default": true,
195
199
  "xs": 12,
196
200
  "sm": 6,
197
- "md": 4
201
+ "md": 4,
202
+ "lg": 4,
203
+ "xl": 4
198
204
  },
199
205
  "autoInstallPython": {
200
206
  "type": "checkbox",
@@ -202,14 +208,18 @@
202
208
  "default": true,
203
209
  "xs": 12,
204
210
  "sm": 6,
205
- "md": 4
211
+ "md": 4,
212
+ "lg": 4,
213
+ "xl": 4
206
214
  },
207
215
  "pythonPath": {
208
216
  "type": "text",
209
217
  "label": "pythonPath",
210
218
  "xs": 12,
211
219
  "sm": 6,
212
- "md": 4
220
+ "md": 4,
221
+ "lg": 4,
222
+ "xl": 4
213
223
  }
214
224
  }
215
225
  },
@@ -220,7 +230,11 @@
220
230
  "_entities_hint": {
221
231
  "type": "staticText",
222
232
  "text": "entities_hint",
223
- "xs": 12
233
+ "xs": 12,
234
+ "sm": 12,
235
+ "md": 12,
236
+ "lg": 12,
237
+ "xl": 12
224
238
  },
225
239
  "enableCoreEntities": {
226
240
  "type": "checkbox",
@@ -228,7 +242,9 @@
228
242
  "default": true,
229
243
  "xs": 12,
230
244
  "sm": 6,
231
- "md": 4
245
+ "md": 4,
246
+ "lg": 4,
247
+ "xl": 4
232
248
  },
233
249
  "_grp_energy": {
234
250
  "type": "header",
@@ -245,7 +261,9 @@
245
261
  "default": false,
246
262
  "xs": 12,
247
263
  "sm": 6,
248
- "md": 4
264
+ "md": 4,
265
+ "lg": 4,
266
+ "xl": 4
249
267
  },
250
268
  "enableEnergyDetail": {
251
269
  "type": "checkbox",
@@ -253,7 +271,9 @@
253
271
  "default": false,
254
272
  "xs": 12,
255
273
  "sm": 6,
256
- "md": 4
274
+ "md": 4,
275
+ "lg": 4,
276
+ "xl": 4
257
277
  },
258
278
  "_grp_solarbank": {
259
279
  "type": "header",
@@ -270,7 +290,9 @@
270
290
  "default": false,
271
291
  "xs": 12,
272
292
  "sm": 6,
273
- "md": 4
293
+ "md": 4,
294
+ "lg": 4,
295
+ "xl": 4
274
296
  },
275
297
  "enableDiagnostics": {
276
298
  "type": "checkbox",
@@ -278,7 +300,9 @@
278
300
  "default": false,
279
301
  "xs": 12,
280
302
  "sm": 6,
281
- "md": 4
303
+ "md": 4,
304
+ "lg": 4,
305
+ "xl": 4
282
306
  },
283
307
  "enableBinaryIndicators": {
284
308
  "type": "checkbox",
@@ -286,7 +310,9 @@
286
310
  "default": false,
287
311
  "xs": 12,
288
312
  "sm": 6,
289
- "md": 4
313
+ "md": 4,
314
+ "lg": 4,
315
+ "xl": 4
290
316
  },
291
317
  "enableAdvancedControls": {
292
318
  "type": "checkbox",
@@ -294,7 +320,9 @@
294
320
  "default": false,
295
321
  "xs": 12,
296
322
  "sm": 6,
297
- "md": 4
323
+ "md": 4,
324
+ "lg": 4,
325
+ "xl": 4
298
326
  },
299
327
  "enableSolarbankMeta": {
300
328
  "type": "checkbox",
@@ -302,7 +330,9 @@
302
330
  "default": false,
303
331
  "xs": 12,
304
332
  "sm": 6,
305
- "md": 4
333
+ "md": 4,
334
+ "lg": 4,
335
+ "xl": 4
306
336
  },
307
337
  "enableSystemOverview": {
308
338
  "type": "checkbox",
@@ -310,7 +340,9 @@
310
340
  "default": false,
311
341
  "xs": 12,
312
342
  "sm": 6,
313
- "md": 4
343
+ "md": 4,
344
+ "lg": 4,
345
+ "xl": 4
314
346
  },
315
347
  "enableSitePrice": {
316
348
  "type": "checkbox",
@@ -318,7 +350,9 @@
318
350
  "default": false,
319
351
  "xs": 12,
320
352
  "sm": 6,
321
- "md": 4
353
+ "md": 4,
354
+ "lg": 4,
355
+ "xl": 4
322
356
  },
323
357
  "enableAccountInfo": {
324
358
  "type": "checkbox",
@@ -326,7 +360,9 @@
326
360
  "default": false,
327
361
  "xs": 12,
328
362
  "sm": 6,
329
- "md": 4
363
+ "md": 4,
364
+ "lg": 4,
365
+ "xl": 4
330
366
  },
331
367
  "_grp_devices": {
332
368
  "type": "header",
@@ -343,7 +379,9 @@
343
379
  "default": false,
344
380
  "xs": 12,
345
381
  "sm": 6,
346
- "md": 4
382
+ "md": 4,
383
+ "lg": 4,
384
+ "xl": 4
347
385
  },
348
386
  "enablePps": {
349
387
  "type": "checkbox",
@@ -351,7 +389,9 @@
351
389
  "default": false,
352
390
  "xs": 12,
353
391
  "sm": 6,
354
- "md": 4
392
+ "md": 4,
393
+ "lg": 4,
394
+ "xl": 4
355
395
  },
356
396
  "enableEvCharger": {
357
397
  "type": "checkbox",
@@ -359,7 +399,9 @@
359
399
  "default": false,
360
400
  "xs": 12,
361
401
  "sm": 6,
362
- "md": 4
402
+ "md": 4,
403
+ "lg": 4,
404
+ "xl": 4
363
405
  },
364
406
  "enableVehicle": {
365
407
  "type": "checkbox",
@@ -367,7 +409,9 @@
367
409
  "default": false,
368
410
  "xs": 12,
369
411
  "sm": 6,
370
- "md": 4
412
+ "md": 4,
413
+ "lg": 4,
414
+ "xl": 4
371
415
  },
372
416
  "enableHes": {
373
417
  "type": "checkbox",
@@ -375,7 +419,9 @@
375
419
  "default": false,
376
420
  "xs": 12,
377
421
  "sm": 6,
378
- "md": 4
422
+ "md": 4,
423
+ "lg": 4,
424
+ "xl": 4
379
425
  },
380
426
  "enablePowerPanel": {
381
427
  "type": "checkbox",
@@ -383,7 +429,9 @@
383
429
  "default": false,
384
430
  "xs": 12,
385
431
  "sm": 6,
386
- "md": 4
432
+ "md": 4,
433
+ "lg": 4,
434
+ "xl": 4
387
435
  },
388
436
  "enableInverter": {
389
437
  "type": "checkbox",
@@ -391,7 +439,9 @@
391
439
  "default": false,
392
440
  "xs": 12,
393
441
  "sm": 6,
394
- "md": 4
442
+ "md": 4,
443
+ "lg": 4,
444
+ "xl": 4
395
445
  }
396
446
  }
397
447
  },
@@ -402,12 +452,20 @@
402
452
  "_services_hint": {
403
453
  "type": "staticText",
404
454
  "text": "services_hint",
405
- "xs": 12
455
+ "xs": 12,
456
+ "sm": 12,
457
+ "md": 12,
458
+ "lg": 12,
459
+ "xl": 12
406
460
  },
407
461
  "_service_note": {
408
462
  "type": "staticText",
409
463
  "text": "services_note",
410
- "xs": 12
464
+ "xs": 12,
465
+ "sm": 12,
466
+ "md": 12,
467
+ "lg": 12,
468
+ "xl": 12
411
469
  }
412
470
  }
413
471
  },
@@ -418,12 +476,20 @@
418
476
  "acceptTerms": {
419
477
  "type": "checkbox",
420
478
  "label": "acceptTerms",
421
- "xs": 12
479
+ "xs": 12,
480
+ "sm": 12,
481
+ "md": 12,
482
+ "lg": 12,
483
+ "xl": 12
422
484
  },
423
485
  "_terms_hint": {
424
486
  "type": "staticText",
425
487
  "text": "terms_hint",
426
- "xs": 12
488
+ "xs": 12,
489
+ "sm": 12,
490
+ "md": 12,
491
+ "lg": 12,
492
+ "xl": 12
427
493
  }
428
494
  }
429
495
  }
package/io-package.json CHANGED
@@ -1,9 +1,22 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "anker-solix",
4
- "version": "0.9.7",
4
+ "version": "0.9.8",
5
5
  "messagebox": true,
6
6
  "news": {
7
+ "0.9.8": {
8
+ "en": "Complete admin responsive layout (lg/xl); green CI release",
9
+ "de": "Admin-Layout lg/xl vervollständigt; grüner CI-Release",
10
+ "ru": "Полная адаптивная вёрстка Admin",
11
+ "pt": "Layout responsivo Admin completo",
12
+ "nl": "Volledig responsief Admin-layout",
13
+ "fr": "Mise en page Admin responsive complète",
14
+ "it": "Layout Admin responsive completo",
15
+ "es": "Diseño Admin responsive completo",
16
+ "pl": "Pełny responsywny layout Admin",
17
+ "uk": "Повна адаптивна вёрстка Admin",
18
+ "zh-cn": "完善 Admin 响应式布局"
19
+ },
7
20
  "0.9.7": {
8
21
  "en": "Adapter-check: news/npm sync, admin layout, README copyright, exclude Python cache from npm package",
9
22
  "de": "Adapter-Check: News/npm abgeglichen, Admin-Layout, README Copyright, Python-Cache nicht im npm-Paket",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.anker-solix",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "description": "ioBroker adapter for Anker Solix (based on ha-anker-solix)",
5
5
  "author": {
6
6
  "name": "MatthiasUlrich1",