iobroker.acinfinity 0.9.5 → 0.9.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 +174 -162
- package/io-package.json +27 -27
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,271 +5,283 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/iobroker.acinfinity)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
|
|
8
|
-
ioBroker
|
|
8
|
+
ioBroker adapter for monitoring and controlling **AC Infinity UIS WiFi controllers**.
|
|
9
|
+
|
|
10
|
+
AC Infinity manufactures smart climate control devices for grow tents and greenhouses — fans, temperature/humidity sensors, smart outlets and more.
|
|
11
|
+
For device information see the [AC Infinity website](https://acinfinity.com) and the [Controller 69 Pro product page](https://acinfinity.com/climate-controllers/).
|
|
12
|
+
|
|
13
|
+
> Deutsche Dokumentation: [docs/de/README.md](docs/de/README.md)
|
|
9
14
|
|
|
10
15
|
---
|
|
11
16
|
|
|
12
|
-
## ⚠️
|
|
17
|
+
## ⚠️ Important Notices
|
|
13
18
|
|
|
14
|
-
> **
|
|
19
|
+
> **Only tested with: Controller 69 Pro (CTR69P)**
|
|
15
20
|
>
|
|
16
|
-
>
|
|
21
|
+
> All other models (69 WiFi, 69 Pro+, AI+, Outlet AI, Outlet AI+) are implemented in the code but could **not be tested** due to lack of hardware. Correct operation of these devices is not guaranteed.
|
|
17
22
|
>
|
|
18
|
-
> **
|
|
23
|
+
> **Use at your own risk.** No warranty is provided for functionality, accuracy, or fitness for any particular purpose. Any liability for direct or indirect damages is expressly disclaimed — including device failures, data loss, or system malfunctions.
|
|
19
24
|
|
|
20
25
|
---
|
|
21
26
|
|
|
22
|
-
##
|
|
27
|
+
## Origin & Credits
|
|
23
28
|
|
|
24
|
-
|
|
29
|
+
The **API reverse engineering** and full understanding of the AC Infinity cloud protocol structure originate from the Home Assistant integration:
|
|
25
30
|
|
|
26
31
|
> **[dalinicus/homeassistant-acinfinity](https://github.com/dalinicus/homeassistant-acinfinity)**
|
|
27
32
|
>
|
|
28
|
-
>
|
|
33
|
+
> All credits for the API analysis and protocol understanding go to this project.
|
|
29
34
|
|
|
30
|
-
|
|
35
|
+
The **entire ioBroker adapter code** was implemented using **[Claude Code](https://claude.ai/code)** (Anthropic AI) and rewritten for the ioBroker platform based on the Home Assistant integration above.
|
|
31
36
|
|
|
32
37
|
---
|
|
33
38
|
|
|
34
|
-
##
|
|
39
|
+
## Supported Devices
|
|
35
40
|
|
|
36
|
-
|
|
|
41
|
+
| Model | Type ID | Test Status |
|
|
37
42
|
|---|---|---|
|
|
38
|
-
| Controller 69 WiFi (CTR69W) | 1 | ⚠️
|
|
39
|
-
| Controller 69 Pro (CTR69P) | 11 | ✅
|
|
40
|
-
| Controller 69 Pro+ (CTR69Q) | 18 | ⚠️
|
|
41
|
-
| Controller AI+ (CTR89Q) | 20 | ⚠️
|
|
42
|
-
| Controller Outlet AI (AC-ADA4) | 22 | ⚠️
|
|
43
|
-
| Controller Outlet AI+ (AC-ADA8) | 24 | ⚠️
|
|
43
|
+
| Controller 69 WiFi (CTR69W) | 1 | ⚠️ Not tested |
|
|
44
|
+
| Controller 69 Pro (CTR69P) | 11 | ✅ Tested |
|
|
45
|
+
| Controller 69 Pro+ (CTR69Q) | 18 | ⚠️ Not tested |
|
|
46
|
+
| Controller AI+ (CTR89Q) | 20 | ⚠️ Not tested |
|
|
47
|
+
| Controller Outlet AI (AC-ADA4) | 22 | ⚠️ Not tested |
|
|
48
|
+
| Controller Outlet AI+ (AC-ADA8) | 24 | ⚠️ Not tested |
|
|
44
49
|
|
|
45
|
-
> **
|
|
50
|
+
> **Not supported:** Bluetooth-only controllers (e.g. Controller 67) — WiFi and cloud sync are required.
|
|
46
51
|
|
|
47
52
|
---
|
|
48
53
|
|
|
49
|
-
##
|
|
54
|
+
## Features
|
|
50
55
|
|
|
51
|
-
###
|
|
56
|
+
### Sensors (read-only)
|
|
52
57
|
|
|
53
|
-
| State |
|
|
58
|
+
| State | Description | Unit |
|
|
54
59
|
|---|---|---|
|
|
55
|
-
| `sensors.temperature` |
|
|
56
|
-
| `sensors.humidity` | Relative
|
|
57
|
-
| `sensors.vpd` |
|
|
58
|
-
| `sensors.co2` | CO
|
|
59
|
-
| `sensors.soilMoisture` |
|
|
60
|
-
| `sensors.waterLevel` |
|
|
61
|
-
| `sensors.pluggedIn` | Controller
|
|
60
|
+
| `sensors.temperature` | Air temperature | °C |
|
|
61
|
+
| `sensors.humidity` | Relative humidity | % |
|
|
62
|
+
| `sensors.vpd` | Vapour pressure deficit (VPD) | kPa |
|
|
63
|
+
| `sensors.co2` | CO₂ concentration (if sensor connected) | ppm |
|
|
64
|
+
| `sensors.soilMoisture` | Soil moisture (if sensor connected) | % |
|
|
65
|
+
| `sensors.waterLevel` | Water level (if sensor connected) | % |
|
|
66
|
+
| `sensors.pluggedIn` | Controller online/connection status | boolean |
|
|
62
67
|
|
|
63
|
-
### Port
|
|
68
|
+
### Port Control (read/write per port)
|
|
64
69
|
|
|
65
|
-
**
|
|
70
|
+
**Basic**
|
|
66
71
|
|
|
67
|
-
| State |
|
|
72
|
+
| State | Description | Values |
|
|
68
73
|
|---|---|---|
|
|
69
|
-
| `ports.X.mode.active` |
|
|
70
|
-
| `ports.X.mode.onSpeed` |
|
|
71
|
-
| `ports.X.mode.offSpeed` |
|
|
72
|
-
| `ports.X.info.power` |
|
|
73
|
-
| `ports.X.info.state` |
|
|
74
|
-
| `ports.X.info.remainingTime` |
|
|
75
|
-
| `ports.X.info.nextStateChange` |
|
|
74
|
+
| `ports.X.mode.active` | Active operating mode | Off / On / Auto / Timer to On / Timer to Off / Cycle / Schedule / VPD |
|
|
75
|
+
| `ports.X.mode.onSpeed` | Speed during active operation | 0–10 |
|
|
76
|
+
| `ports.X.mode.offSpeed` | Minimum speed during inactive operation | 0–10 |
|
|
77
|
+
| `ports.X.info.power` | Current running speed | 0–10 |
|
|
78
|
+
| `ports.X.info.state` | Load status (device running) | boolean |
|
|
79
|
+
| `ports.X.info.remainingTime` | Seconds until next state change | s |
|
|
80
|
+
| `ports.X.info.nextStateChange` | Timestamp of next state change | ISO string |
|
|
76
81
|
|
|
77
|
-
**Timer
|
|
82
|
+
**Timer Mode** (`ports.X.mode.timer.*`)
|
|
78
83
|
|
|
79
|
-
| State |
|
|
84
|
+
| State | Description |
|
|
80
85
|
|---|---|
|
|
81
|
-
| `toOnMinutes` |
|
|
82
|
-
| `toOffMinutes` |
|
|
86
|
+
| `toOnMinutes` | Minutes until device turns on |
|
|
87
|
+
| `toOffMinutes` | Minutes until device turns off |
|
|
83
88
|
|
|
84
|
-
**
|
|
89
|
+
**Cycle Mode** (`ports.X.mode.cycle.*`)
|
|
85
90
|
|
|
86
|
-
| State |
|
|
91
|
+
| State | Description |
|
|
87
92
|
|---|---|
|
|
88
|
-
| `onMinutes` |
|
|
89
|
-
| `offMinutes` |
|
|
93
|
+
| `onMinutes` | Duration of ON phase (minutes) |
|
|
94
|
+
| `offMinutes` | Duration of OFF phase (minutes) |
|
|
90
95
|
|
|
91
|
-
**
|
|
96
|
+
**Schedule Mode** (`ports.X.mode.schedule.*`)
|
|
92
97
|
|
|
93
|
-
| State |
|
|
98
|
+
| State | Description |
|
|
94
99
|
|---|---|
|
|
95
|
-
| `startEnabled` |
|
|
96
|
-
| `startTime` |
|
|
97
|
-
| `endEnabled` |
|
|
98
|
-
| `endTime` |
|
|
100
|
+
| `startEnabled` | Enable daily start time |
|
|
101
|
+
| `startTime` | Start time (HH:MM) |
|
|
102
|
+
| `endEnabled` | Enable daily end time |
|
|
103
|
+
| `endTime` | End time (HH:MM) |
|
|
99
104
|
|
|
100
|
-
**Auto
|
|
105
|
+
**Auto Mode** (`ports.X.mode.auto.*`)
|
|
101
106
|
|
|
102
|
-
| State |
|
|
107
|
+
| State | Description |
|
|
103
108
|
|---|---|
|
|
104
|
-
| `settingsMode` | Auto / Target
|
|
105
|
-
| `tempHighEnabled` |
|
|
106
|
-
| `tempHighTrigger` |
|
|
107
|
-
| `tempLowEnabled` |
|
|
108
|
-
| `tempLowTrigger` |
|
|
109
|
-
| `humidityHighEnabled` |
|
|
110
|
-
| `humidityHighTrigger` |
|
|
111
|
-
| `humidityLowEnabled` |
|
|
112
|
-
| `humidityLowTrigger` |
|
|
113
|
-
| `targetTempEnabled` |
|
|
114
|
-
| `targetTemp` |
|
|
115
|
-
| `targetHumidityEnabled` |
|
|
116
|
-
| `targetHumidity` |
|
|
117
|
-
|
|
118
|
-
**VPD
|
|
119
|
-
|
|
120
|
-
| State |
|
|
109
|
+
| `settingsMode` | Auto / Target |
|
|
110
|
+
| `tempHighEnabled` | Enable temperature upper limit |
|
|
111
|
+
| `tempHighTrigger` | Temperature upper limit (°C) |
|
|
112
|
+
| `tempLowEnabled` | Enable temperature lower limit |
|
|
113
|
+
| `tempLowTrigger` | Temperature lower limit (°C) |
|
|
114
|
+
| `humidityHighEnabled` | Enable humidity upper limit |
|
|
115
|
+
| `humidityHighTrigger` | Humidity upper limit (%) |
|
|
116
|
+
| `humidityLowEnabled` | Enable humidity lower limit |
|
|
117
|
+
| `humidityLowTrigger` | Humidity lower limit (%) |
|
|
118
|
+
| `targetTempEnabled` | Enable target temperature mode |
|
|
119
|
+
| `targetTemp` | Target temperature (°C) |
|
|
120
|
+
| `targetHumidityEnabled` | Enable target humidity mode |
|
|
121
|
+
| `targetHumidity` | Target humidity (%) |
|
|
122
|
+
|
|
123
|
+
**VPD Mode** (`ports.X.mode.vpd.*`)
|
|
124
|
+
|
|
125
|
+
| State | Description |
|
|
121
126
|
|---|---|
|
|
122
|
-
| `settingsMode` | Auto / Target
|
|
123
|
-
| `highEnabled` | VPD
|
|
124
|
-
| `highTrigger` | VPD
|
|
125
|
-
| `lowEnabled` | VPD
|
|
126
|
-
| `lowTrigger` | VPD
|
|
127
|
-
| `targetEnabled` |
|
|
128
|
-
| `target` |
|
|
127
|
+
| `settingsMode` | Auto / Target |
|
|
128
|
+
| `highEnabled` | Enable VPD upper limit |
|
|
129
|
+
| `highTrigger` | VPD upper limit (kPa) |
|
|
130
|
+
| `lowEnabled` | Enable VPD lower limit |
|
|
131
|
+
| `lowTrigger` | VPD lower limit (kPa) |
|
|
132
|
+
| `targetEnabled` | Enable target VPD mode |
|
|
133
|
+
| `target` | Target VPD (kPa) |
|
|
129
134
|
|
|
130
|
-
**
|
|
135
|
+
**Advanced Port Settings** (`ports.X.settings.*`)
|
|
131
136
|
|
|
132
|
-
| State |
|
|
137
|
+
| State | Description |
|
|
133
138
|
|---|---|
|
|
134
|
-
| `deviceType` |
|
|
135
|
-
| `dynamicResponse` | Transition
|
|
136
|
-
| `dynamicTransitionTemp` |
|
|
137
|
-
| `dynamicTransitionHumidity` |
|
|
138
|
-
| `dynamicTransitionVPD` |
|
|
139
|
-
| `dynamicBufferTemp` |
|
|
140
|
-
| `dynamicBufferHumidity` |
|
|
141
|
-
| `dynamicBufferVPD` |
|
|
142
|
-
| `sunriseTimerEnabled` |
|
|
143
|
-
| `sunriseTimerMinutes` |
|
|
144
|
-
|
|
145
|
-
### Controller
|
|
146
|
-
|
|
147
|
-
| State |
|
|
139
|
+
| `deviceType` | Connected device type (Grow Light / Humidifier / Heater / AC / Fan) |
|
|
140
|
+
| `dynamicResponse` | Transition / Buffer |
|
|
141
|
+
| `dynamicTransitionTemp` | Transition temperature step size (°) |
|
|
142
|
+
| `dynamicTransitionHumidity` | Transition humidity step size (%) |
|
|
143
|
+
| `dynamicTransitionVPD` | Transition VPD step size (kPa) |
|
|
144
|
+
| `dynamicBufferTemp` | Buffer temperature (°) |
|
|
145
|
+
| `dynamicBufferHumidity` | Buffer humidity (%) |
|
|
146
|
+
| `dynamicBufferVPD` | Buffer VPD (kPa) |
|
|
147
|
+
| `sunriseTimerEnabled` | Sunrise/sunset ramp enabled |
|
|
148
|
+
| `sunriseTimerMinutes` | Ramp duration (minutes) |
|
|
149
|
+
|
|
150
|
+
### Controller Settings (read/write per controller)
|
|
151
|
+
|
|
152
|
+
| State | Description |
|
|
148
153
|
|---|---|
|
|
149
|
-
| `settings.temperatureUnit` | C / F (
|
|
150
|
-
| `settings.temperatureCalibration` |
|
|
151
|
-
| `settings.humidityCalibration` |
|
|
152
|
-
| `settings.vpdLeafTemperatureOffset` |
|
|
153
|
-
| `settings.outsideTemperature` |
|
|
154
|
-
| `settings.outsideHumidity` |
|
|
154
|
+
| `settings.temperatureUnit` | C / F (read-only; change in AC Infinity app) |
|
|
155
|
+
| `settings.temperatureCalibration` | Temperature calibration offset (°) |
|
|
156
|
+
| `settings.humidityCalibration` | Humidity calibration offset (%) |
|
|
157
|
+
| `settings.vpdLeafTemperatureOffset` | Leaf temperature offset for VPD calculation (°) |
|
|
158
|
+
| `settings.outsideTemperature` | Outside temperature reference: Neutral / Lower / Higher |
|
|
159
|
+
| `settings.outsideHumidity` | Outside humidity reference: Neutral / Lower / Higher |
|
|
155
160
|
|
|
156
161
|
---
|
|
157
162
|
|
|
158
|
-
##
|
|
163
|
+
## Setup
|
|
159
164
|
|
|
160
|
-
1.
|
|
161
|
-
2. **
|
|
162
|
-
3. **
|
|
163
|
-
4. **
|
|
165
|
+
1. Install the adapter in ioBroker
|
|
166
|
+
2. Enter the **email address and password** of your AC Infinity account
|
|
167
|
+
3. Set the **polling interval** (minimum 10 seconds, default 30 seconds)
|
|
168
|
+
4. Click **Save & Close**
|
|
164
169
|
|
|
165
|
-
|
|
170
|
+
The adapter automatically detects all connected controllers and creates the state tree under `acinfinity.0.devices.<deviceId>`.
|
|
166
171
|
|
|
167
172
|
---
|
|
168
173
|
|
|
169
|
-
##
|
|
174
|
+
## How Port Modes Work
|
|
170
175
|
|
|
171
|
-
|
|
|
176
|
+
| Mode | Behaviour |
|
|
172
177
|
|---|---|
|
|
173
|
-
| **Off** |
|
|
174
|
-
| **On** |
|
|
175
|
-
| **Auto** |
|
|
176
|
-
| **Timer to On** |
|
|
177
|
-
| **Timer to Off** |
|
|
178
|
-
| **Cycle** |
|
|
179
|
-
| **Schedule** |
|
|
180
|
-
| **VPD** |
|
|
178
|
+
| **Off** | Device runs continuously at `offSpeed` |
|
|
179
|
+
| **On** | Device runs continuously at `onSpeed` |
|
|
180
|
+
| **Auto** | Device switches based on temperature and/or humidity thresholds |
|
|
181
|
+
| **Timer to On** | Device turns on after `toOnMinutes` minutes |
|
|
182
|
+
| **Timer to Off** | Device turns off after `toOffMinutes` minutes |
|
|
183
|
+
| **Cycle** | Device alternates between ON (`onMinutes`) and OFF (`offMinutes`) |
|
|
184
|
+
| **Schedule** | Device runs daily between `startTime` and `endTime` |
|
|
185
|
+
| **VPD** | Device switches based on VPD thresholds (vapour pressure deficit) |
|
|
181
186
|
|
|
182
|
-
###
|
|
187
|
+
### Dynamic Response: Transition vs. Buffer
|
|
183
188
|
|
|
184
|
-
- **Transition
|
|
185
|
-
- **Buffer
|
|
189
|
+
- **Transition:** The device gradually increases speed the further measurements deviate from the target. Each step changes fan speed by one level.
|
|
190
|
+
- **Buffer:** Creates a hysteresis zone around the trigger point to avoid rapid switching.
|
|
186
191
|
|
|
187
192
|
---
|
|
188
193
|
|
|
189
|
-
##
|
|
194
|
+
## Troubleshooting
|
|
190
195
|
|
|
191
|
-
**Adapter
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
- ioBroker
|
|
196
|
+
**Adapter does not connect**
|
|
197
|
+
- Check email and password in adapter settings
|
|
198
|
+
- Make sure the controller is online in the AC Infinity app
|
|
199
|
+
- Check the ioBroker log for specific error messages
|
|
195
200
|
|
|
196
|
-
**
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
-
|
|
201
|
+
**State changes have no effect**
|
|
202
|
+
- Check the log for API error responses
|
|
203
|
+
- Re-save the adapter instance to force a new login
|
|
204
|
+
- Check controller reachability (`info.connection` state)
|
|
200
205
|
|
|
201
|
-
**
|
|
202
|
-
- CO
|
|
206
|
+
**Sensor values missing**
|
|
207
|
+
- CO₂, soil moisture and water level states only receive data when the corresponding UIS sensors are physically connected and synced with the cloud
|
|
203
208
|
|
|
204
209
|
---
|
|
205
210
|
|
|
206
211
|
## Changelog
|
|
207
212
|
|
|
213
|
+
### 0.9.7 (2026-03-02)
|
|
214
|
+
- Fix: remove deprecated `common.title` field from io-package.json (W184)
|
|
215
|
+
- Docs: add manufacturer link to README (required for repository submission)
|
|
216
|
+
|
|
217
|
+
### 0.9.6 (2026-03-02)
|
|
218
|
+
- Docs: README.md translated to English (required for ioBroker community)
|
|
219
|
+
- Docs: German README moved to docs/de/README.md
|
|
220
|
+
- CI: Node.js 24.x added to test matrix
|
|
221
|
+
|
|
208
222
|
### 0.9.5 (2026-03-02)
|
|
209
|
-
- Fix: LICENSE
|
|
210
|
-
- CI: Node.js 18.x
|
|
223
|
+
- Fix: LICENSE copyright format corrected (ioBroker checker E7001)
|
|
224
|
+
- CI: Node.js 18.x removed from test matrix (adapter requires Node ≥ 20)
|
|
211
225
|
|
|
212
226
|
### 0.9.0 (2026-03-02)
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
227
|
+
- Security: auth token no longer written to logs
|
|
228
|
+
- Stability: race condition in parallel re-login attempts fixed
|
|
229
|
+
- Robustness: null checks for sensor values (prevents NaN for unconnected sensors)
|
|
230
|
+
- Docs: HTTP usage of AC Infinity API documented in code
|
|
231
|
+
- Note: AC Infinity API does not support HTTPS (server-side limitation)
|
|
218
232
|
|
|
219
233
|
### 0.8.5 (2026-03-01)
|
|
220
|
-
- Admin
|
|
221
|
-
- Admin
|
|
234
|
+
- Admin UI: disclaimer text now displayed in red and bold
|
|
235
|
+
- Admin UI: minimum polling interval increased from 5 to 10 seconds
|
|
222
236
|
|
|
223
237
|
### 0.8.1 (2026-03-01)
|
|
224
|
-
- Fix: JSON
|
|
238
|
+
- Fix: JSON syntax error (trailing comma) in io-package.json
|
|
225
239
|
|
|
226
240
|
### 0.8.0 (2026-03-01)
|
|
227
|
-
-
|
|
241
|
+
- Security: updated axios and form-data to fix critical vulnerabilities (GHSA-4hjh-wcwx-xvwj, GHSA-43fc-jf86-j433, GHSA-fjxv-7rqg-78g4)
|
|
228
242
|
|
|
229
243
|
### 0.7.4 (2026-03-01)
|
|
230
|
-
- Admin
|
|
244
|
+
- Admin UI: added disclaimer note about limited device compatibility
|
|
231
245
|
|
|
232
246
|
### 0.7.3 (2026-03-01)
|
|
233
|
-
- Admin
|
|
247
|
+
- Admin UI: removed warning box, improved settings layout, fixed help link
|
|
234
248
|
|
|
235
249
|
### 0.7.2 (2026-03-01)
|
|
236
|
-
- Code:
|
|
250
|
+
- Code: migrated to ESLint 9 with @iobroker/eslint-config
|
|
237
251
|
|
|
238
252
|
### 0.7.1 (2026-03-01)
|
|
239
|
-
-
|
|
253
|
+
- Added value ranges to state names for better readability
|
|
240
254
|
|
|
241
255
|
### 0.7.0 (2026-03-01)
|
|
242
|
-
- Adapter
|
|
243
|
-
-
|
|
244
|
-
- curl
|
|
245
|
-
-
|
|
246
|
-
-
|
|
247
|
-
- deviceType
|
|
248
|
-
-
|
|
249
|
-
-
|
|
256
|
+
- Adapter code fully reimplemented with Claude Code (Anthropic AI) based on homeassistant-acinfinity
|
|
257
|
+
- All 8 port modes fully writable from ioBroker (Off / On / Auto / Timer to On / Timer to Off / Cycle / Schedule / VPD)
|
|
258
|
+
- Replaced curl with axios — no more shell calls
|
|
259
|
+
- New sensors: CO₂, soil moisture, water level, pluggedIn
|
|
260
|
+
- Extended controller types: CTR69W, CTR69P, CTR69Q, CTR89Q, AC-ADA4, AC-ADA8
|
|
261
|
+
- Fixed deviceType bug in port settings handler
|
|
262
|
+
- Removed hardcoded reference payload
|
|
263
|
+
- Updated dependencies: js-controller ≥6.0.11, admin ≥7.6.20, Node.js ≥20
|
|
250
264
|
|
|
251
265
|
### 0.5.6 (2025-04-27)
|
|
252
|
-
-
|
|
266
|
+
- Bug fixes and improvements
|
|
253
267
|
|
|
254
268
|
### 0.5.5 (2025-04-12)
|
|
255
|
-
-
|
|
269
|
+
- Further bug fixes and warnings resolved
|
|
256
270
|
|
|
257
271
|
### 0.5.2 (2025-04-08)
|
|
258
|
-
-
|
|
272
|
+
- Further bug fixes and improvements
|
|
259
273
|
|
|
260
274
|
### 0.4.3 (2025-03-28)
|
|
261
|
-
-
|
|
275
|
+
- Bug fixes and improvements
|
|
262
276
|
|
|
263
277
|
### 0.3.1 (2025-03-27)
|
|
264
|
-
-
|
|
278
|
+
- Initial release
|
|
265
279
|
|
|
266
280
|
---
|
|
267
281
|
|
|
268
|
-
##
|
|
269
|
-
|
|
270
|
-
Die Nutzung dieser Software erfolgt ausdrücklich auf eigene Gefahr. Es wird keinerlei Garantie für die Funktionsfähigkeit, Fehlerfreiheit oder Eignung für einen bestimmten Zweck übernommen. Jegliche Haftung für direkte oder indirekte Schäden — einschließlich, aber nicht beschränkt auf Geräteausfälle, Datenverluste oder Fehlverhalten des Systems — wird ausdrücklich ausgeschlossen.
|
|
282
|
+
## Disclaimer
|
|
271
283
|
|
|
272
|
-
The use of this software is entirely at your own risk. No guarantees are made regarding functionality, reliability, or suitability for any particular purpose. Any liability for direct or indirect damages is expressly disclaimed.
|
|
284
|
+
The use of this software is entirely at your own risk. No guarantees are made regarding functionality, reliability, or suitability for any particular purpose. Any liability for direct or indirect damages is expressly disclaimed — including, but not limited to, device failures, data loss, or system malfunctions.
|
|
273
285
|
|
|
274
286
|
---
|
|
275
287
|
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "acinfinity",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.7",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.9.7": {
|
|
7
|
+
"en": "Fix: remove deprecated common.title field (W184); add manufacturer link to README",
|
|
8
|
+
"de": "Fix: veraltetes Feld common.title entfernt (W184); Hersteller-Link in README hinzugefügt",
|
|
9
|
+
"ru": "Исправление: удалено устаревшее поле common.title (W184); добавлена ссылка на производителя в README",
|
|
10
|
+
"pt": "Fix: campo common.title obsoleto removido (W184); link do fabricante adicionado ao README",
|
|
11
|
+
"nl": "Fix: verouderd veld common.title verwijderd (W184); fabrikantlink toegevoegd aan README",
|
|
12
|
+
"fr": "Fix: champ common.title obsolète supprimé (W184); lien fabricant ajouté au README",
|
|
13
|
+
"it": "Fix: campo common.title obsoleto rimosso (W184); link produttore aggiunto al README",
|
|
14
|
+
"es": "Fix: campo common.title obsoleto eliminado (W184); enlace fabricante añadido al README",
|
|
15
|
+
"pl": "Poprawka: usunięto przestarzałe pole common.title (W184); dodano link producenta do README",
|
|
16
|
+
"uk": "Виправлення: видалено застаріле поле common.title (W184); додано посилання на виробника в README",
|
|
17
|
+
"zh-cn": "修复:移除已弃用的common.title字段(W184);README中添加制造商链接"
|
|
18
|
+
},
|
|
19
|
+
"0.9.6": {
|
|
20
|
+
"en": "Docs: README translated to English; German README moved to docs/de/; CI: Node.js 24.x added to test matrix",
|
|
21
|
+
"de": "Doku: README auf Englisch übersetzt; Deutsche README nach docs/de/ verschoben; CI: Node.js 24.x zur Test-Matrix hinzugefügt",
|
|
22
|
+
"ru": "Документация: README переведён на английский; немецкий README перемещён в docs/de/; CI: добавлен Node.js 24.x",
|
|
23
|
+
"pt": "Docs: README traduzido para inglês; README alemão movido para docs/de/; CI: Node.js 24.x adicionado à matriz de testes",
|
|
24
|
+
"nl": "Docs: README vertaald naar Engels; Duitse README verplaatst naar docs/de/; CI: Node.js 24.x toegevoegd aan testmatrix",
|
|
25
|
+
"fr": "Docs: README traduit en anglais; README allemand déplacé vers docs/de/; CI: Node.js 24.x ajouté à la matrice de tests",
|
|
26
|
+
"it": "Docs: README tradotto in inglese; README tedesco spostato in docs/de/; CI: Node.js 24.x aggiunto alla matrice di test",
|
|
27
|
+
"es": "Docs: README traducido al inglés; README alemán movido a docs/de/; CI: Node.js 24.x añadido a la matriz de pruebas",
|
|
28
|
+
"pl": "Dokumentacja: README przetłumaczony na angielski; niemiecki README przeniesiony do docs/de/; CI: dodano Node.js 24.x",
|
|
29
|
+
"uk": "Документація: README перекладено англійською; німецький README переміщено до docs/de/; CI: додано Node.js 24.x",
|
|
30
|
+
"zh-cn": "文档:README翻译为英文;德文README移至docs/de/;CI:测试矩阵新增Node.js 24.x"
|
|
31
|
+
},
|
|
6
32
|
"0.9.5": {
|
|
7
33
|
"en": "Fix: LICENSE copyright format (ioBroker checker E7001); CI: drop Node.js 18.x (requires Node >=20)",
|
|
8
34
|
"de": "Fix: LICENSE Copyright-Format korrigiert (E7001); CI: Node.js 18.x entfernt (erfordert Node ≥20)",
|
|
@@ -55,19 +81,6 @@
|
|
|
55
81
|
"uk": "Виправлення: зайва кома в io-package.json видалена",
|
|
56
82
|
"zh-cn": "修复:删除 io-package.json 中多余的逗号"
|
|
57
83
|
},
|
|
58
|
-
"0.8.0": {
|
|
59
|
-
"en": "Security: update axios and form-data to fix high and critical vulnerabilities",
|
|
60
|
-
"de": "Sicherheit: axios und form-data aktualisiert zur Behebung kritischer Sicherheitslücken",
|
|
61
|
-
"ru": "Безопасность: обновлены axios и form-data для устранения критических уязвимостей",
|
|
62
|
-
"pt": "Segurança: atualização do axios e form-data para corrigir vulnerabilidades críticas",
|
|
63
|
-
"nl": "Beveiliging: axios en form-data bijgewerkt om kritieke kwetsbaarheden te verhelpen",
|
|
64
|
-
"fr": "Sécurité: mise à jour d'axios et form-data pour corriger des vulnérabilités critiques",
|
|
65
|
-
"it": "Sicurezza: aggiornamento di axios e form-data per correggere vulnerabilità critiche",
|
|
66
|
-
"es": "Seguridad: actualización de axios y form-data para corregir vulnerabilidades críticas",
|
|
67
|
-
"pl": "Bezpieczeństwo: aktualizacja axios i form-data w celu usunięcia krytycznych luk bezpieczeństwa",
|
|
68
|
-
"uk": "Безпека: оновлено axios та form-data для усунення критичних вразливостей",
|
|
69
|
-
"zh-cn": "安全:更新 axios 和 form-data 以修复严重安全漏洞"
|
|
70
|
-
},
|
|
71
84
|
"0.7.4": {
|
|
72
85
|
"en": "Admin UI: add disclaimer note about limited device compatibility",
|
|
73
86
|
"de": "Admin-UI: Hinweis zur eingeschränkten Gerätekompatibilität hinzugefügt",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Admin UI: dodano informację o ograniczonej kompatybilności urządzeń",
|
|
81
94
|
"uk": "Admin UI: додано застереження про обмежену сумісність пристроїв",
|
|
82
95
|
"zh-cn": "管理界面:添加关于设备兼容性有限的免责声明"
|
|
83
|
-
},
|
|
84
|
-
"0.7.3": {
|
|
85
|
-
"en": "Admin UI: remove warning box, clean up settings layout, fix help link",
|
|
86
|
-
"de": "Admin-UI: Warnhinweis entfernt, Einstellungslayout bereinigt, Hilfe-Link korrigiert",
|
|
87
|
-
"ru": "Admin UI: убран блок предупреждения, улучшен макет настроек, исправлена ссылка на справку",
|
|
88
|
-
"pt": "Admin UI: caixa de aviso removida, layout de configurações limpo, link de ajuda corrigido",
|
|
89
|
-
"nl": "Admin UI: waarschuwingsvak verwijderd, instellingen layout verbeterd, helplink gecorrigeerd",
|
|
90
|
-
"fr": "Admin UI: bloc d'avertissement supprimé, mise en page des paramètres améliorée, lien d'aide corrigé",
|
|
91
|
-
"it": "Admin UI: riquadro di avviso rimosso, layout impostazioni migliorato, link guida corretto",
|
|
92
|
-
"es": "Admin UI: cuadro de advertencia eliminado, diseño de configuración mejorado, enlace de ayuda corregido",
|
|
93
|
-
"pl": "Admin UI: usunięto pole ostrzeżenia, poprawiono układ ustawień, naprawiono link pomocy",
|
|
94
|
-
"uk": "Admin UI: видалено блок попередження, покращено макет налаштувань, виправлено посилання на довідку",
|
|
95
|
-
"zh-cn": "管理界面:移除警告框,优化设置布局,修复帮助链接"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|