iobroker.poolcontrol 1.2.12 → 1.2.13
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/i18n/de/translations.json +0 -2
- package/admin/i18n/es/translations.json +0 -2
- package/admin/i18n/fr/translations.json +0 -2
- package/admin/i18n/it/translations.json +0 -2
- package/admin/i18n/nl/translations.json +0 -2
- package/admin/i18n/pl/translations.json +0 -2
- package/admin/i18n/pt/translations.json +0 -2
- package/admin/i18n/ru/translations.json +0 -2
- package/admin/i18n/uk/translations.json +0 -2
- package/admin/i18n/zh-cn/translations.json +0 -2
- package/io-package.json +16 -15
- package/lib/stateDefinitions/actuatorsStates.js +132 -19
- package/lib/stateDefinitions/aiChemistryHelpStates.js +28 -11
- package/lib/stateDefinitions/aiStates.js +201 -31
- package/lib/stateDefinitions/consumptionStates.js +140 -14
- package/lib/stateDefinitions/controlStates.js +120 -34
- package/lib/stateDefinitions/debugLogStates.js +32 -10
- package/lib/stateDefinitions/generalStates.js +28 -4
- package/lib/stateDefinitions/heatStates.js +132 -17
- package/lib/stateDefinitions/infoStates.js +20 -5
- package/lib/stateDefinitions/photovoltaicStates.js +78 -19
- package/lib/stateDefinitions/pumpSpeedStates.js +76 -11
- package/lib/stateDefinitions/pumpStates.js +100 -15
- package/lib/stateDefinitions/pumpStates2.js +36 -9
- package/lib/stateDefinitions/pumpStates3.js +92 -23
- package/lib/stateDefinitions/pumpStates4.js +120 -30
- package/lib/stateDefinitions/runtimeStates.js +74 -10
- package/lib/stateDefinitions/solarStates.js +68 -9
- package/lib/stateDefinitions/speechStates.js +133 -18
- package/lib/stateDefinitions/statisticsStates.js +167 -24
- package/lib/stateDefinitions/statusStates.js +92 -12
- package/lib/stateDefinitions/temperatureStates.js +117 -18
- package/lib/stateDefinitions/timeStates.js +43 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -189,6 +189,12 @@ New features are added regularly – please refer to the changelog.
|
|
|
189
189
|
|
|
190
190
|
## Changelog
|
|
191
191
|
|
|
192
|
+
### 1.2.13
|
|
193
|
+
Release: 22.03.2026
|
|
194
|
+
- Added multilingual state names and descriptions (DE/EN)
|
|
195
|
+
- Improved consistency of all state texts
|
|
196
|
+
- Minor text and structure refinements
|
|
197
|
+
|
|
192
198
|
### 1.2.12
|
|
193
199
|
Release: 21.03.2026
|
|
194
200
|
- Repository cleanup and fixes for ioBroker repository checker
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "poolcontrol",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.13",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.2.13": {
|
|
7
|
+
"en": "Added multilingual state names and descriptions (DE/EN). Improved consistency of all state texts. Internal cleanup and stability improvements.",
|
|
8
|
+
"de": "Mehrsprachige State-Namen und Beschreibungen (DE/EN) ergänzt. Einheitliche Benennung aller Datenpunkte. Interne Verbesserungen und Stabilität optimiert.",
|
|
9
|
+
"ru": "Добавлены многоязычные названия и описания штатов (DE/EN). Улучшена согласованность всех текстов состояний. Внутренняя очистка и улучшения стабильности.",
|
|
10
|
+
"pt": "Adicionados nomes e descrições de estados multilíngues (DE/EN). Melhor consistência de todos os textos estaduais. Limpeza interna e melhorias de estabilidade.",
|
|
11
|
+
"nl": "Meertalige namen en beschrijvingen van staten toegevoegd (DE/EN). Verbeterde consistentie van alle staatsteksten. Interne opschoning en stabiliteitsverbeteringen.",
|
|
12
|
+
"fr": "Ajout de noms et de descriptions d'état multilingues (DE/EN). Amélioration de la cohérence de tous les textes étatiques. Améliorations du nettoyage interne et de la stabilité.",
|
|
13
|
+
"it": "Aggiunti nomi e descrizioni degli stati multilingue (DE/EN). Maggiore coerenza di tutti i testi statali. Miglioramenti della pulizia interna e della stabilità.",
|
|
14
|
+
"es": "Se agregaron nombres y descripciones de estados multilingües (DE/EN). Coherencia mejorada de todos los textos estatales. Mejoras en la limpieza interna y la estabilidad.",
|
|
15
|
+
"pl": "Dodano wielojęzyczne nazwy i opisy stanów (DE/EN). Poprawiona spójność wszystkich tekstów stanowych. Wewnętrzne porządki i ulepszenia stabilności.",
|
|
16
|
+
"uk": "Додано багатомовні назви та описи штатів (DE/EN). Покращена узгодженість усіх державних текстів. Внутрішнє очищення та покращення стабільності.",
|
|
17
|
+
"zh-cn": "添加了多语言状态名称和描述(德语/英语)。提高了所有国家文本的一致性。内部清理和稳定性改进。"
|
|
18
|
+
},
|
|
6
19
|
"1.2.12": {
|
|
7
20
|
"en": "Repository cleanup and fixes for ioBroker repository checker. Restored required native object in io-package.json, removed invalid properties and updated README.",
|
|
8
21
|
"de": "Repository-Bereinigung und Fehlerbehebungen für den ioBroker Repository-Checker. Erforderliches native-Objekt in der io-package.json wiederhergestellt, ungültige Eigenschaften entfernt und README aktualisiert.",
|
|
@@ -16,19 +29,6 @@
|
|
|
16
29
|
"uk": "Очищення сховища та виправлення для засобу перевірки сховища ioBroker. Відновлено необхідний рідний об’єкт у io-package.json, видалено недійсні властивості та оновлено README.",
|
|
17
30
|
"zh-cn": "ioBroker 存储库检查器的存储库清理和修复。恢复了 io-package.json 中所需的本机对象,删除了无效属性并更新了 README。"
|
|
18
31
|
},
|
|
19
|
-
"1.2.11": {
|
|
20
|
-
"en": "Repository cleanup and fixes for ioBroker repository checker. Removed invalid properties from io-package.json and updated README.",
|
|
21
|
-
"de": "Repository-Bereinigung und Fehlerbehebungen für den ioBroker Repository-Checker. Ungültige Eigenschaften aus der io-package.json entfernt und README aktualisiert.",
|
|
22
|
-
"ru": "Очистка репозитория и исправления для средства проверки репозитория ioBroker. Удалены недопустимые свойства из io-package.json и обновлен README.",
|
|
23
|
-
"pt": "Limpeza de repositório e correções para verificador de repositório ioBroker. Propriedades inválidas removidas de io-package.json e README atualizado.",
|
|
24
|
-
"nl": "Opschonen van opslagplaatsen en oplossingen voor ioBroker-repositorycontrole. Ongeldige eigenschappen uit io-package.json verwijderd en README bijgewerkt.",
|
|
25
|
-
"fr": "Nettoyage du référentiel et correctifs pour le vérificateur de référentiel ioBroker. Suppression des propriétés invalides de io-package.json et mise à jour du README.",
|
|
26
|
-
"it": "Pulizia del repository e correzioni per il controllo del repository ioBroker. Rimosse proprietà non valide da io-package.json e README aggiornato.",
|
|
27
|
-
"es": "Limpieza del repositorio y correcciones para el verificador del repositorio de ioBroker. Se eliminaron propiedades no válidas de io-package.json y se actualizó README.",
|
|
28
|
-
"pl": "Oczyszczenie repozytorium i poprawki dla modułu sprawdzania repozytorium ioBroker. Usunięto nieprawidłowe właściwości z io-package.json i zaktualizowano plik README.",
|
|
29
|
-
"uk": "Очищення сховища та виправлення для засобу перевірки сховища ioBroker. Видалено недійсні властивості з io-package.json і оновлено README.",
|
|
30
|
-
"zh-cn": "ioBroker 存储库检查器的存储库清理和修复。从 io-package.json 中删除了无效属性并更新了 README。"
|
|
31
|
-
},
|
|
32
32
|
"1.2.10": {
|
|
33
33
|
"en": "Improved German translations and terminology in admin UI (jsonConfig). Fixed incorrect or misleading sensor names (e.g. flow vs temperature sensors) and improved overall wording and consistency.",
|
|
34
34
|
"de": "Verbesserte deutsche Übersetzungen und Begrifflichkeiten in der Admin-Oberfläche (jsonConfig). Falsche bzw. missverständliche Sensorbezeichnungen (z. B. Flow vs. Temperatursensoren) korrigiert und allgemeine Formulierungen sowie Konsistenz verbessert.",
|
|
@@ -146,7 +146,8 @@
|
|
|
146
146
|
{
|
|
147
147
|
"admin": ">=7.6.20"
|
|
148
148
|
}
|
|
149
|
-
]
|
|
149
|
+
],
|
|
150
|
+
"installedFrom": "file:///opt/iobroker/ioBroker.poolcontrol"
|
|
150
151
|
},
|
|
151
152
|
"native": {},
|
|
152
153
|
"objects": [],
|
|
@@ -28,7 +28,10 @@ async function createActuatorsStates(adapter) {
|
|
|
28
28
|
await adapter.setObjectNotExistsAsync('actuators', {
|
|
29
29
|
type: 'channel',
|
|
30
30
|
common: {
|
|
31
|
-
name:
|
|
31
|
+
name: {
|
|
32
|
+
en: 'Additional actuators',
|
|
33
|
+
de: 'Zusatz-Aktoren',
|
|
34
|
+
},
|
|
32
35
|
},
|
|
33
36
|
native: {},
|
|
34
37
|
});
|
|
@@ -39,7 +42,10 @@ async function createActuatorsStates(adapter) {
|
|
|
39
42
|
await adapter.setObjectNotExistsAsync('actuators.lighting', {
|
|
40
43
|
type: 'channel',
|
|
41
44
|
common: {
|
|
42
|
-
name:
|
|
45
|
+
name: {
|
|
46
|
+
en: 'Lighting',
|
|
47
|
+
de: 'Beleuchtung',
|
|
48
|
+
},
|
|
43
49
|
},
|
|
44
50
|
native: {},
|
|
45
51
|
});
|
|
@@ -50,7 +56,10 @@ async function createActuatorsStates(adapter) {
|
|
|
50
56
|
await adapter.setObjectNotExistsAsync(base, {
|
|
51
57
|
type: 'channel',
|
|
52
58
|
common: {
|
|
53
|
-
name:
|
|
59
|
+
name: {
|
|
60
|
+
en: `Lighting ${i}`,
|
|
61
|
+
de: `Beleuchtung ${i}`,
|
|
62
|
+
},
|
|
54
63
|
},
|
|
55
64
|
native: {},
|
|
56
65
|
});
|
|
@@ -58,7 +67,14 @@ async function createActuatorsStates(adapter) {
|
|
|
58
67
|
await adapter.setObjectNotExistsAsync(`${base}.switch`, {
|
|
59
68
|
type: 'state',
|
|
60
69
|
common: {
|
|
61
|
-
name:
|
|
70
|
+
name: {
|
|
71
|
+
en: 'Switch (On/Off)',
|
|
72
|
+
de: 'Schalter (Ein/Aus)',
|
|
73
|
+
},
|
|
74
|
+
desc: {
|
|
75
|
+
en: 'Switch state for actuator on/off control',
|
|
76
|
+
de: 'Schaltzustand für die Ein-/Aus-Steuerung des Aktors',
|
|
77
|
+
},
|
|
62
78
|
type: 'boolean',
|
|
63
79
|
role: 'switch',
|
|
64
80
|
read: true,
|
|
@@ -72,7 +88,14 @@ async function createActuatorsStates(adapter) {
|
|
|
72
88
|
await adapter.setObjectNotExistsAsync(`${base}.active`, {
|
|
73
89
|
type: 'state',
|
|
74
90
|
common: {
|
|
75
|
-
name:
|
|
91
|
+
name: {
|
|
92
|
+
en: 'Active',
|
|
93
|
+
de: 'Aktiv',
|
|
94
|
+
},
|
|
95
|
+
desc: {
|
|
96
|
+
en: 'Shows whether this actuator is enabled in the instance configuration',
|
|
97
|
+
de: 'Zeigt an, ob dieser Aktor in der Instanzkonfiguration aktiviert ist',
|
|
98
|
+
},
|
|
76
99
|
type: 'boolean',
|
|
77
100
|
role: 'indicator',
|
|
78
101
|
read: true,
|
|
@@ -87,7 +110,14 @@ async function createActuatorsStates(adapter) {
|
|
|
87
110
|
await adapter.setObjectNotExistsAsync(`${base}.name`, {
|
|
88
111
|
type: 'state',
|
|
89
112
|
common: {
|
|
90
|
-
name:
|
|
113
|
+
name: {
|
|
114
|
+
en: 'Name',
|
|
115
|
+
de: 'Name',
|
|
116
|
+
},
|
|
117
|
+
desc: {
|
|
118
|
+
en: 'Custom name from the instance configuration for this actuator',
|
|
119
|
+
de: 'Frei vergebener Name aus der Instanzkonfiguration für diesen Aktor',
|
|
120
|
+
},
|
|
91
121
|
type: 'string',
|
|
92
122
|
role: 'text',
|
|
93
123
|
read: true,
|
|
@@ -102,7 +132,14 @@ async function createActuatorsStates(adapter) {
|
|
|
102
132
|
await adapter.setObjectNotExistsAsync(`${base}.permanent`, {
|
|
103
133
|
type: 'state',
|
|
104
134
|
common: {
|
|
105
|
-
name:
|
|
135
|
+
name: {
|
|
136
|
+
en: 'Continuous operation',
|
|
137
|
+
de: 'Dauerbetrieb',
|
|
138
|
+
},
|
|
139
|
+
desc: {
|
|
140
|
+
en: 'Enables continuous operation for this actuator',
|
|
141
|
+
de: 'Aktiviert den Dauerbetrieb für diesen Aktor',
|
|
142
|
+
},
|
|
106
143
|
type: 'boolean',
|
|
107
144
|
role: 'switch',
|
|
108
145
|
read: true,
|
|
@@ -117,7 +154,14 @@ async function createActuatorsStates(adapter) {
|
|
|
117
154
|
await adapter.setObjectNotExistsAsync(`${base}.runtime_minutes`, {
|
|
118
155
|
type: 'state',
|
|
119
156
|
common: {
|
|
120
|
-
name:
|
|
157
|
+
name: {
|
|
158
|
+
en: 'Runtime (minutes)',
|
|
159
|
+
de: 'Laufzeit (Minuten)',
|
|
160
|
+
},
|
|
161
|
+
desc: {
|
|
162
|
+
en: 'Configured runtime in minutes for this actuator',
|
|
163
|
+
de: 'Eingestellte Laufzeit in Minuten für diesen Aktor',
|
|
164
|
+
},
|
|
121
165
|
type: 'number',
|
|
122
166
|
role: 'level',
|
|
123
167
|
read: true,
|
|
@@ -133,7 +177,14 @@ async function createActuatorsStates(adapter) {
|
|
|
133
177
|
await adapter.setObjectNotExistsAsync(`${base}.remaining_minutes`, {
|
|
134
178
|
type: 'state',
|
|
135
179
|
common: {
|
|
136
|
-
name:
|
|
180
|
+
name: {
|
|
181
|
+
en: 'Remaining runtime',
|
|
182
|
+
de: 'Verbleibende Laufzeit',
|
|
183
|
+
},
|
|
184
|
+
desc: {
|
|
185
|
+
en: 'Remaining runtime in minutes for this actuator',
|
|
186
|
+
de: 'Verbleibende Laufzeit dieses Aktors in Minuten',
|
|
187
|
+
},
|
|
137
188
|
type: 'number',
|
|
138
189
|
role: 'value',
|
|
139
190
|
read: true,
|
|
@@ -147,7 +198,14 @@ async function createActuatorsStates(adapter) {
|
|
|
147
198
|
await adapter.setObjectNotExistsAsync(`${base}.status`, {
|
|
148
199
|
type: 'state',
|
|
149
200
|
common: {
|
|
150
|
-
name:
|
|
201
|
+
name: {
|
|
202
|
+
en: 'Status',
|
|
203
|
+
de: 'Status',
|
|
204
|
+
},
|
|
205
|
+
desc: {
|
|
206
|
+
en: 'Current status text of this actuator',
|
|
207
|
+
de: 'Aktueller Statustext dieses Aktors',
|
|
208
|
+
},
|
|
151
209
|
type: 'string',
|
|
152
210
|
role: 'text',
|
|
153
211
|
read: true,
|
|
@@ -164,7 +222,10 @@ async function createActuatorsStates(adapter) {
|
|
|
164
222
|
await adapter.setObjectNotExistsAsync('actuators.extrapumps', {
|
|
165
223
|
type: 'channel',
|
|
166
224
|
common: {
|
|
167
|
-
name:
|
|
225
|
+
name: {
|
|
226
|
+
en: 'Auxiliary pumps & attractions',
|
|
227
|
+
de: 'Zusatzpumpen & Attraktionen',
|
|
228
|
+
},
|
|
168
229
|
},
|
|
169
230
|
native: {},
|
|
170
231
|
});
|
|
@@ -175,7 +236,10 @@ async function createActuatorsStates(adapter) {
|
|
|
175
236
|
await adapter.setObjectNotExistsAsync(base, {
|
|
176
237
|
type: 'channel',
|
|
177
238
|
common: {
|
|
178
|
-
name:
|
|
239
|
+
name: {
|
|
240
|
+
en: `Auxiliary pump / attraction ${i}`,
|
|
241
|
+
de: `Zusatzpumpe / Attraktion ${i}`,
|
|
242
|
+
},
|
|
179
243
|
},
|
|
180
244
|
native: {},
|
|
181
245
|
});
|
|
@@ -183,7 +247,14 @@ async function createActuatorsStates(adapter) {
|
|
|
183
247
|
await adapter.setObjectNotExistsAsync(`${base}.switch`, {
|
|
184
248
|
type: 'state',
|
|
185
249
|
common: {
|
|
186
|
-
name:
|
|
250
|
+
name: {
|
|
251
|
+
en: 'Switch (On/Off)',
|
|
252
|
+
de: 'Schalter (Ein/Aus)',
|
|
253
|
+
},
|
|
254
|
+
desc: {
|
|
255
|
+
en: 'Switch state for actuator on/off control',
|
|
256
|
+
de: 'Schaltzustand für die Ein-/Aus-Steuerung des Aktors',
|
|
257
|
+
},
|
|
187
258
|
type: 'boolean',
|
|
188
259
|
role: 'switch',
|
|
189
260
|
read: true,
|
|
@@ -197,7 +268,14 @@ async function createActuatorsStates(adapter) {
|
|
|
197
268
|
await adapter.setObjectNotExistsAsync(`${base}.active`, {
|
|
198
269
|
type: 'state',
|
|
199
270
|
common: {
|
|
200
|
-
name:
|
|
271
|
+
name: {
|
|
272
|
+
en: 'Active',
|
|
273
|
+
de: 'Aktiv',
|
|
274
|
+
},
|
|
275
|
+
desc: {
|
|
276
|
+
en: 'Shows whether this actuator is enabled in the instance configuration',
|
|
277
|
+
de: 'Zeigt an, ob dieser Aktor in der Instanzkonfiguration aktiviert ist',
|
|
278
|
+
},
|
|
201
279
|
type: 'boolean',
|
|
202
280
|
role: 'indicator',
|
|
203
281
|
read: true,
|
|
@@ -212,7 +290,14 @@ async function createActuatorsStates(adapter) {
|
|
|
212
290
|
await adapter.setObjectNotExistsAsync(`${base}.name`, {
|
|
213
291
|
type: 'state',
|
|
214
292
|
common: {
|
|
215
|
-
name:
|
|
293
|
+
name: {
|
|
294
|
+
en: 'Name',
|
|
295
|
+
de: 'Name',
|
|
296
|
+
},
|
|
297
|
+
desc: {
|
|
298
|
+
en: 'Custom name from the instance configuration for this actuator',
|
|
299
|
+
de: 'Frei vergebener Name aus der Instanzkonfiguration für diesen Aktor',
|
|
300
|
+
},
|
|
216
301
|
type: 'string',
|
|
217
302
|
role: 'text',
|
|
218
303
|
read: true,
|
|
@@ -227,7 +312,14 @@ async function createActuatorsStates(adapter) {
|
|
|
227
312
|
await adapter.setObjectNotExistsAsync(`${base}.permanent`, {
|
|
228
313
|
type: 'state',
|
|
229
314
|
common: {
|
|
230
|
-
name:
|
|
315
|
+
name: {
|
|
316
|
+
en: 'Continuous operation',
|
|
317
|
+
de: 'Dauerbetrieb',
|
|
318
|
+
},
|
|
319
|
+
desc: {
|
|
320
|
+
en: 'Enables continuous operation for this actuator',
|
|
321
|
+
de: 'Aktiviert den Dauerbetrieb für diesen Aktor',
|
|
322
|
+
},
|
|
231
323
|
type: 'boolean',
|
|
232
324
|
role: 'switch',
|
|
233
325
|
read: true,
|
|
@@ -242,7 +334,14 @@ async function createActuatorsStates(adapter) {
|
|
|
242
334
|
await adapter.setObjectNotExistsAsync(`${base}.runtime_minutes`, {
|
|
243
335
|
type: 'state',
|
|
244
336
|
common: {
|
|
245
|
-
name:
|
|
337
|
+
name: {
|
|
338
|
+
en: 'Runtime (minutes)',
|
|
339
|
+
de: 'Laufzeit (Minuten)',
|
|
340
|
+
},
|
|
341
|
+
desc: {
|
|
342
|
+
en: 'Configured runtime in minutes for this actuator',
|
|
343
|
+
de: 'Eingestellte Laufzeit in Minuten für diesen Aktor',
|
|
344
|
+
},
|
|
246
345
|
type: 'number',
|
|
247
346
|
role: 'level',
|
|
248
347
|
read: true,
|
|
@@ -258,7 +357,14 @@ async function createActuatorsStates(adapter) {
|
|
|
258
357
|
await adapter.setObjectNotExistsAsync(`${base}.remaining_minutes`, {
|
|
259
358
|
type: 'state',
|
|
260
359
|
common: {
|
|
261
|
-
name:
|
|
360
|
+
name: {
|
|
361
|
+
en: 'Remaining runtime',
|
|
362
|
+
de: 'Verbleibende Laufzeit',
|
|
363
|
+
},
|
|
364
|
+
desc: {
|
|
365
|
+
en: 'Remaining runtime in minutes for this actuator',
|
|
366
|
+
de: 'Verbleibende Laufzeit dieses Aktors in Minuten',
|
|
367
|
+
},
|
|
262
368
|
type: 'number',
|
|
263
369
|
role: 'value',
|
|
264
370
|
read: true,
|
|
@@ -272,7 +378,14 @@ async function createActuatorsStates(adapter) {
|
|
|
272
378
|
await adapter.setObjectNotExistsAsync(`${base}.status`, {
|
|
273
379
|
type: 'state',
|
|
274
380
|
common: {
|
|
275
|
-
name:
|
|
381
|
+
name: {
|
|
382
|
+
en: 'Status',
|
|
383
|
+
de: 'Status',
|
|
384
|
+
},
|
|
385
|
+
desc: {
|
|
386
|
+
en: 'Current status text of this actuator',
|
|
387
|
+
de: 'Aktueller Statustext dieses Aktors',
|
|
388
|
+
},
|
|
276
389
|
type: 'string',
|
|
277
390
|
role: 'text',
|
|
278
391
|
read: true,
|
|
@@ -33,7 +33,10 @@ async function createAiChemistryHelpStates(adapter) {
|
|
|
33
33
|
await adapter.setObjectNotExistsAsync('ai.chemistry_help', {
|
|
34
34
|
type: 'channel',
|
|
35
35
|
common: {
|
|
36
|
-
name:
|
|
36
|
+
name: {
|
|
37
|
+
en: 'Chemistry help (explanations & causes)',
|
|
38
|
+
de: 'Chemie-Hilfe (Erklärungen & Ursachen)',
|
|
39
|
+
},
|
|
37
40
|
},
|
|
38
41
|
native: {},
|
|
39
42
|
});
|
|
@@ -44,8 +47,14 @@ async function createAiChemistryHelpStates(adapter) {
|
|
|
44
47
|
await adapter.setObjectNotExistsAsync('ai.chemistry_help.issue', {
|
|
45
48
|
type: 'state',
|
|
46
49
|
common: {
|
|
47
|
-
name:
|
|
48
|
-
|
|
50
|
+
name: {
|
|
51
|
+
en: 'Chemistry help: select issue',
|
|
52
|
+
de: 'Chemie-Hilfe: Problem auswählen',
|
|
53
|
+
},
|
|
54
|
+
desc: {
|
|
55
|
+
en: 'Manual selection of an observed pool issue to display general explanations.',
|
|
56
|
+
de: 'Manuelle Auswahl eines beobachteten Poolproblems zur Anzeige allgemeiner Erklärungen.',
|
|
57
|
+
},
|
|
49
58
|
type: 'string',
|
|
50
59
|
role: 'level',
|
|
51
60
|
read: true,
|
|
@@ -87,10 +96,14 @@ async function createAiChemistryHelpStates(adapter) {
|
|
|
87
96
|
await adapter.setObjectNotExistsAsync('ai.chemistry_help.help_text', {
|
|
88
97
|
type: 'state',
|
|
89
98
|
common: {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
99
|
+
name: {
|
|
100
|
+
en: 'Chemistry help: explanation',
|
|
101
|
+
de: 'Chemie-Hilfe: Erklärung',
|
|
102
|
+
},
|
|
103
|
+
desc: {
|
|
104
|
+
en: 'Explanatory text about causes and general approaches (no dosing, no control).',
|
|
105
|
+
de: 'Erklärender Text zu Ursachen und allgemeinen Ansätzen (keine Dosierung, keine Steuerung).',
|
|
106
|
+
},
|
|
94
107
|
type: 'string',
|
|
95
108
|
role: 'text',
|
|
96
109
|
read: true,
|
|
@@ -106,10 +119,14 @@ async function createAiChemistryHelpStates(adapter) {
|
|
|
106
119
|
await adapter.setObjectNotExistsAsync('ai.chemistry_help.last_issue_time', {
|
|
107
120
|
type: 'state',
|
|
108
121
|
common: {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
name: {
|
|
123
|
+
en: 'Chemistry help: last selection',
|
|
124
|
+
de: 'Chemie-Hilfe: letzte Auswahl',
|
|
125
|
+
},
|
|
126
|
+
desc: {
|
|
127
|
+
en: 'Timestamp of the last selected chemistry help issue.',
|
|
128
|
+
de: 'Zeitstempel des zuletzt ausgewählten Chemie-Hilfe-Problems.',
|
|
129
|
+
},
|
|
113
130
|
type: 'number',
|
|
114
131
|
role: 'value.time',
|
|
115
132
|
read: true,
|