iobroker.poolcontrol 1.2.10 → 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.
Files changed (35) hide show
  1. package/README.md +18 -11
  2. package/admin/i18n/de/translations.json +0 -2
  3. package/admin/i18n/es/translations.json +0 -2
  4. package/admin/i18n/fr/translations.json +0 -2
  5. package/admin/i18n/it/translations.json +0 -2
  6. package/admin/i18n/nl/translations.json +0 -2
  7. package/admin/i18n/pl/translations.json +0 -2
  8. package/admin/i18n/pt/translations.json +0 -2
  9. package/admin/i18n/ru/translations.json +0 -2
  10. package/admin/i18n/uk/translations.json +0 -2
  11. package/admin/i18n/zh-cn/translations.json +0 -2
  12. package/io-package.json +38 -32
  13. package/lib/stateDefinitions/actuatorsStates.js +132 -19
  14. package/lib/stateDefinitions/aiChemistryHelpStates.js +28 -11
  15. package/lib/stateDefinitions/aiStates.js +201 -31
  16. package/lib/stateDefinitions/consumptionStates.js +140 -14
  17. package/lib/stateDefinitions/controlStates.js +120 -34
  18. package/lib/stateDefinitions/debugLogStates.js +32 -10
  19. package/lib/stateDefinitions/generalStates.js +28 -4
  20. package/lib/stateDefinitions/heatStates.js +132 -17
  21. package/lib/stateDefinitions/infoStates.js +20 -5
  22. package/lib/stateDefinitions/photovoltaicStates.js +78 -19
  23. package/lib/stateDefinitions/pumpSpeedStates.js +76 -11
  24. package/lib/stateDefinitions/pumpStates.js +100 -15
  25. package/lib/stateDefinitions/pumpStates2.js +36 -9
  26. package/lib/stateDefinitions/pumpStates3.js +92 -23
  27. package/lib/stateDefinitions/pumpStates4.js +120 -30
  28. package/lib/stateDefinitions/runtimeStates.js +74 -10
  29. package/lib/stateDefinitions/solarStates.js +68 -9
  30. package/lib/stateDefinitions/speechStates.js +133 -18
  31. package/lib/stateDefinitions/statisticsStates.js +167 -24
  32. package/lib/stateDefinitions/statusStates.js +92 -12
  33. package/lib/stateDefinitions/temperatureStates.js +117 -18
  34. package/lib/stateDefinitions/timeStates.js +43 -12
  35. package/package.json +2 -1
package/README.md CHANGED
@@ -149,13 +149,6 @@ Details about the behavior of consumption and cost values (e.g., after restarts
149
149
 
150
150
  ---
151
151
 
152
- ## Installation
153
-
154
- 1. Install adapter via ioBroker Admin.
155
- 2. Create instance.
156
- 3. Configure in the Admin tab: pump power, sensors, solar, speech outputs, etc.
157
-
158
- ---
159
152
 
160
153
  ## Configuration
161
154
 
@@ -196,6 +189,24 @@ New features are added regularly – please refer to the changelog.
196
189
 
197
190
  ## Changelog
198
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
+
198
+ ### 1.2.12
199
+ Release: 21.03.2026
200
+ - Repository cleanup and fixes for ioBroker repository checker
201
+ - Restored required native object in io-package.json
202
+ - Removed invalid properties and outdated entries
203
+ - Updated README
204
+
205
+ ### 1.2.11
206
+ - Repository cleanup (ioBroker checker issues resolved)
207
+ - Removed invalid properties from io-package.json
208
+ - README updated
209
+
199
210
  ### 1.2.10 (2026-03-20)
200
211
  - Improved German translations in the admin UI (jsonConfig)
201
212
  - Fixed incorrect and misleading terminology (e.g. flow vs. temperature sensors)
@@ -205,10 +216,6 @@ New features are added regularly – please refer to the changelog.
205
216
  Release: 19.03.2026
206
217
  - fix: correct invalid common object in runtime channel.
207
218
 
208
- ### 1.2.8
209
- Release: 19.03.2026
210
- - Fixed invalid common object in runtime channel causing admin UI crash.
211
-
212
219
  ### 1.2.7
213
220
  Released: 16.03.2026
214
221
  - Corrected role definitions for writable states according to ioBroker guidelines
@@ -153,7 +153,5 @@
153
153
  "Voice": "Stimme",
154
154
  "Volume (0–100)": "Lautstärke (0–100)",
155
155
  "Wednesday": "Mittwoch",
156
- "option1": "Option1",
157
- "option2": "Option2",
158
156
  "poolcontrol adapter settings": "Adaptereinstellungen für Poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voz",
154
154
  "Volume (0–100)": "Volumen (0–100)",
155
155
  "Wednesday": "Miércoles",
156
- "option1": "Opción1",
157
- "option2": "opción 2",
158
156
  "poolcontrol adapter settings": "Ajustes del adaptador para poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voix",
154
154
  "Volume (0–100)": "Volume (0 à 100)",
155
155
  "Wednesday": "Mercredi",
156
- "option1": "option1",
157
- "option2": "Option2",
158
156
  "poolcontrol adapter settings": "Paramètres d'adaptateur pour poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voce",
154
154
  "Volume (0–100)": "Volume (0–100)",
155
155
  "Wednesday": "Mercoledì",
156
- "option1": "opzione1",
157
- "option2": "opzione2",
158
156
  "poolcontrol adapter settings": "Impostazioni dell'adattatore per poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Stem",
154
154
  "Volume (0–100)": "Volume (0–100)",
155
155
  "Wednesday": "Woensdag",
156
- "option1": "Option1",
157
- "option2": "Optie2",
158
156
  "poolcontrol adapter settings": "Adapterinstellingen voor poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Głos",
154
154
  "Volume (0–100)": "Głośność (0–100)",
155
155
  "Wednesday": "Środa",
156
- "option1": "opcja 1",
157
- "option2": "opcja2",
158
156
  "poolcontrol adapter settings": "Ustawienia adaptera dla poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voz",
154
154
  "Volume (0–100)": "Volume (0–100)",
155
155
  "Wednesday": "Quarta-feira",
156
- "option1": "opção1",
157
- "option2": "opção2",
158
156
  "poolcontrol adapter settings": "Configurações do adaptador para poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Голос",
154
154
  "Volume (0–100)": "Громкость (0–100)",
155
155
  "Wednesday": "Среда",
156
- "option1": "вариант1",
157
- "option2": "вариант2",
158
156
  "poolcontrol adapter settings": "Настройки адаптера для poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Голос",
154
154
  "Volume (0–100)": "Обсяг (0–100)",
155
155
  "Wednesday": "Середа",
156
- "option1": "Варіант1",
157
- "option2": "Варіант2",
158
156
  "poolcontrol adapter settings": "Налаштування адаптера для poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "嗓音",
154
154
  "Volume (0–100)": "音量 (0–100)",
155
155
  "Wednesday": "周三",
156
- "option1": "选项1",
157
- "option2": "选项2",
158
156
  "poolcontrol adapter settings": "poolcontrol的适配器设置"
159
157
  }
package/io-package.json CHANGED
@@ -1,11 +1,46 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "poolcontrol",
4
- "version": "1.2.10",
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
+ },
19
+ "1.2.12": {
20
+ "en": "Repository cleanup and fixes for ioBroker repository checker. Restored required native object in io-package.json, removed invalid properties and updated README.",
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.",
22
+ "ru": "Очистка репозитория и исправления для средства проверки репозитория ioBroker. Восстановлен необходимый собственный объект в io-package.json, удалены недопустимые свойства и обновлен README.",
23
+ "pt": "Limpeza de repositório e correções para verificador de repositório ioBroker. Objeto nativo necessário restaurado em io-package.json, propriedades inválidas removidas e README atualizado.",
24
+ "nl": "Opschonen van opslagplaatsen en oplossingen voor ioBroker-repositorycontrole. Vereist native object in io-package.json hersteld, ongeldige eigenschappen verwijderd en README bijgewerkt.",
25
+ "fr": "Nettoyage du référentiel et correctifs pour le vérificateur de référentiel ioBroker. Objet natif requis restauré dans io-package.json, suppression des propriétés non valides et mise à jour du README.",
26
+ "it": "Pulizia del repository e correzioni per il controllo del repository ioBroker. Oggetto nativo richiesto ripristinato in io-package.json, proprietà non valide rimosse e README aggiornato.",
27
+ "es": "Limpieza del repositorio y correcciones para el verificador del repositorio de ioBroker. Se restauró el objeto nativo requerido en io-package.json, se eliminaron propiedades no válidas y se actualizó README.",
28
+ "pl": "Oczyszczenie repozytorium i poprawki dla modułu sprawdzania repozytorium ioBroker. Przywrócono wymagany obiekt natywny w io-package.json, usunięto nieprawidłowe właściwości i zaktualizowano plik README.",
29
+ "uk": "Очищення сховища та виправлення для засобу перевірки сховища ioBroker. Відновлено необхідний рідний об’єкт у io-package.json, видалено недійсні властивості та оновлено README.",
30
+ "zh-cn": "ioBroker 存储库检查器的存储库清理和修复。恢复了 io-package.json 中所需的本机对象,删除了无效属性并更新了 README。"
31
+ },
6
32
  "1.2.10": {
7
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.",
8
- "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."
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.",
35
+ "ru": "Улучшены немецкие переводы и терминология в пользовательском интерфейсе администратора (jsonConfig). Исправлены неправильные или вводящие в заблуждение названия датчиков (например, датчики расхода и температуры), а также улучшены общие формулировки и согласованность.",
36
+ "pt": "Traduções e terminologia em alemão aprimoradas na interface de administração (jsonConfig). Corrigimos nomes de sensores incorretos ou enganosos (por exemplo, sensores de fluxo versus temperatura) e melhoramos o texto e a consistência geral.",
37
+ "nl": "Verbeterde Duitse vertalingen en terminologie in de beheerdersinterface (jsonConfig). Foutieve of misleidende sensornamen opgelost (bijv. flow- versus temperatuursensoren) en verbeterde algemene bewoording en consistentie.",
38
+ "fr": "Traductions et terminologie allemandes améliorées dans l'interface utilisateur d'administration (jsonConfig). Correction des noms de capteurs incorrects ou trompeurs (par exemple, capteurs de débit ou de température) et amélioration de la formulation et de la cohérence globales.",
39
+ "it": "Traduzioni e terminologia tedesca migliorate nell'interfaccia utente di amministrazione (jsonConfig). Risolti i nomi dei sensori errati o fuorvianti (ad esempio sensori di flusso o di temperatura) e migliorata la formulazione e la coerenza generale.",
40
+ "es": "Traducciones y terminología alemanas mejoradas en la interfaz de usuario de administración (jsonConfig). Se corrigieron nombres de sensores incorrectos o engañosos (por ejemplo, sensores de flujo versus temperatura) y se mejoraron la redacción y coherencia generales.",
41
+ "pl": "Ulepszone niemieckie tłumaczenia i terminologia w interfejsie administratora (jsonConfig). Poprawiono nieprawidłowe lub wprowadzające w błąd nazwy czujników (np. czujniki przepływu i temperatury) oraz poprawiono ogólne sformułowanie i spójność.",
42
+ "uk": "Покращено німецький переклад і термінологію в інтерфейсі адміністратора (jsonConfig). Виправлено неправильні або оманливі назви датчиків (наприклад, датчики потоку чи температури) і покращено загальне формулювання та послідовність.",
43
+ "zh-cn": "改进了管理 UI (jsonConfig) 中的德语翻译和术语。修复了不正确或误导性的传感器名称(例如流量与温度传感器)并改进了整体措辞和一致性。"
9
44
  },
10
45
  "1.2.9": {
11
46
  "en": "Fixed invalid common definition in runtime states that could crash the admin objects view.",
@@ -20,19 +55,6 @@
20
55
  "uk": "Виправлено недійсне загальне визначення в станах виконання, яке могло привести до збою перегляду об’єктів адміністратора.",
21
56
  "zh-cn": "修复了运行时状态中无效的通用定义,该定义可能会导致管理对象视图崩溃。"
22
57
  },
23
- "1.2.8": {
24
- "en": "Fixed invalid common object in runtime channel causing admin UI crash.",
25
- "de": "Fehler behoben: Ungültiges common-Objekt im runtime-Kanal führte zum Absturz der Admin-Oberfläche.",
26
- "ru": "Исправлен недопустимый общий объект в канале среды выполнения, приводивший к сбою пользовательского интерфейса администратора.",
27
- "pt": "Corrigido objeto comum inválido no canal de tempo de execução, causando falha na interface do administrador.",
28
- "nl": "Een probleem opgelost waarbij een ongeldig gemeenschappelijk object in het runtime-kanaal een crash van de beheerdersinterface veroorzaakte.",
29
- "fr": "Correction d'un objet commun non valide dans le canal d'exécution provoquant un crash de l'interface utilisateur de l'administrateur.",
30
- "it": "Risolto il problema con l'oggetto comune non valido nel canale di runtime che causava l'arresto anomalo dell'interfaccia utente di amministrazione.",
31
- "es": "Se corrigió un objeto común no válido en el canal de tiempo de ejecución que causaba un bloqueo de la interfaz de usuario del administrador.",
32
- "pl": "Naprawiono nieprawidłowy wspólny obiekt w kanale wykonawczym powodujący awarię interfejsu administratora.",
33
- "uk": "Виправлено недійсний загальний об’єкт у каналі виконання, що спричиняв збій інтерфейсу адміністратора.",
34
- "zh-cn": "修复了运行时通道中无效的公共对象导致管理 UI 崩溃的问题。"
35
- },
36
58
  "1.2.7": {
37
59
  "en": "Corrected role definitions for writable states according to ioBroker guidelines.",
38
60
  "de": "Rollen-Definitionen für beschreibbare States gemäß ioBroker-Richtlinien korrigiert.",
@@ -58,19 +80,6 @@
58
80
  "pl": "Naprawiono problemy z modułem sprawdzania adaptera, przekonwertowano pozostałe komunikaty dziennika na język angielski, zaktualizowano wtyczki skryptu wydania i konfigurację zależnego bota.",
59
81
  "uk": "Виправлено проблеми перевірки адаптера, перетворено решту повідомлень журналу на англійську мову, оновлено плагіни сценарію випуску та конфігурацію dependabot.",
60
82
  "zh-cn": "修复了适配器检查器问题,将剩余日志消息转换为英语,更新了发布脚本插件和 dependentabot 配置。"
61
- },
62
- "1.2.5": {
63
- "en": "Fix: corrected synchronization of actuator configuration with internal states (active/name). Additional actuators could not be activated in some cases. Updated translations.",
64
- "de": "Fix: Synchronisierung der Aktor-Konfiguration mit den internen States (active/name) korrigiert. Zusatzaktoren konnten in einigen Fällen nicht aktiviert werden. Übersetzungen aktualisiert.",
65
- "ru": "Исправлено: исправлена ​​синхронизация конфигурации привода с внутренними состояниями (активный/имя). В некоторых случаях дополнительные исполнительные механизмы не могли быть активированы. Обновлены переводы.",
66
- "pt": "Correção: corrigida sincronização da configuração do atuador com estados internos (ativo/nome). Atuadores adicionais não puderam ser ativados em alguns casos. Traduções atualizadas.",
67
- "nl": "Fix: gecorrigeerde synchronisatie van actuatorconfiguratie met interne statussen (actief/naam). In sommige gevallen konden extra actuatoren niet worden geactiveerd. Bijgewerkte vertalingen.",
68
- "fr": "Correctif : correction de la synchronisation de la configuration de l'actionneur avec les états internes (actif/nom). Des actionneurs supplémentaires n'ont pas pu être activés dans certains cas. Traductions mises à jour.",
69
- "it": "Fix: corretta sincronizzazione della configurazione dell'attuatore con gli stati interni (attivo/nome). In alcuni casi non è stato possibile attivare attuatori aggiuntivi. Traduzioni aggiornate.",
70
- "es": "Solución: sincronización corregida de la configuración del actuador con los estados internos (activo/nombre). En algunos casos no se pudieron activar actuadores adicionales. Traducciones actualizadas.",
71
- "pl": "Poprawka: poprawiona synchronizacja konfiguracji siłownika ze stanami wewnętrznymi (aktywny/nazwa). W niektórych przypadkach nie można było aktywować dodatkowych siłowników. Zaktualizowane tłumaczenia.",
72
- "uk": "Виправлення: виправлена ​​синхронізація конфігурації приводу з внутрішніми станами (активний/назва). У деяких випадках не вдається активувати додаткові приводи. Оновлені переклади.",
73
- "zh-cn": "修复:更正了执行器配置与内部状态(活动/名称)的同步。在某些情况下无法激活附加执行器。更新了翻译。"
74
83
  }
75
84
  },
76
85
  "titleLang": {
@@ -140,10 +149,7 @@
140
149
  ],
141
150
  "installedFrom": "file:///opt/iobroker/ioBroker.poolcontrol"
142
151
  },
143
- "native": {
144
- "option1": true,
145
- "option2": "42"
146
- },
152
+ "native": {},
147
153
  "objects": [],
148
154
  "instanceObjects": []
149
155
  }
@@ -28,7 +28,10 @@ async function createActuatorsStates(adapter) {
28
28
  await adapter.setObjectNotExistsAsync('actuators', {
29
29
  type: 'channel',
30
30
  common: {
31
- name: 'Additional actuators',
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: 'Lighting',
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: `Lighting ${i}`,
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: 'Switch (On/Off)',
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: 'Active',
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: '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: 'Continuous operation',
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: 'Runtime (minutes)',
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: 'Remaining runtime',
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: 'Status',
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: 'Auxiliary pumps & attractions',
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: `Auxiliary pump / attraction ${i}`,
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: 'Switch (On/Off)',
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: 'Active',
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: '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: 'Continuous operation',
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: 'Runtime (minutes)',
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: 'Remaining runtime',
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: 'Status',
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: 'Chemistry help (explanations & causes)',
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: 'Chemistry help: select issue',
48
- desc: 'Manual selection of an observed pool issue to display general explanations.',
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
- // FIX: i18n for name
91
- name: 'Chemistry help: explanation',
92
- // FIX: i18n for desc
93
- desc: 'Explanatory text about causes and general approaches (no dosing, no control).',
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
- // FIX: i18n for name
110
- name: 'Chemistry help: last selection',
111
- // FIX: i18n for desc
112
- desc: 'Timestamp of the last selected chemistry help issue.',
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,