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
|
@@ -18,7 +18,10 @@ async function createSolarStates(adapter) {
|
|
|
18
18
|
await adapter.setObjectNotExistsAsync('solar', {
|
|
19
19
|
type: 'channel',
|
|
20
20
|
common: {
|
|
21
|
-
name:
|
|
21
|
+
name: {
|
|
22
|
+
en: 'Solar',
|
|
23
|
+
de: 'Solar',
|
|
24
|
+
},
|
|
22
25
|
},
|
|
23
26
|
native: {},
|
|
24
27
|
});
|
|
@@ -27,7 +30,14 @@ async function createSolarStates(adapter) {
|
|
|
27
30
|
await adapter.setObjectNotExistsAsync('solar.solar_control_active', {
|
|
28
31
|
type: 'state',
|
|
29
32
|
common: {
|
|
30
|
-
name:
|
|
33
|
+
name: {
|
|
34
|
+
en: 'Enable solar control',
|
|
35
|
+
de: 'Solarsteuerung aktivieren',
|
|
36
|
+
},
|
|
37
|
+
desc: {
|
|
38
|
+
en: 'Enables or disables the solar control',
|
|
39
|
+
de: 'Aktiviert oder deaktiviert die Solarsteuerung',
|
|
40
|
+
},
|
|
31
41
|
type: 'boolean',
|
|
32
42
|
role: 'switch',
|
|
33
43
|
read: true,
|
|
@@ -48,7 +58,14 @@ async function createSolarStates(adapter) {
|
|
|
48
58
|
await adapter.setObjectNotExistsAsync('solar.hysteresis_active', {
|
|
49
59
|
type: 'state',
|
|
50
60
|
common: {
|
|
51
|
-
name:
|
|
61
|
+
name: {
|
|
62
|
+
en: 'Use hysteresis control',
|
|
63
|
+
de: 'Hysteresesteuerung verwenden',
|
|
64
|
+
},
|
|
65
|
+
desc: {
|
|
66
|
+
en: 'Enables or disables hysteresis control for solar operation',
|
|
67
|
+
de: 'Aktiviert oder deaktiviert die Hysteresesteuerung fuer den Solarbetrieb',
|
|
68
|
+
},
|
|
52
69
|
type: 'boolean',
|
|
53
70
|
role: 'switch',
|
|
54
71
|
read: true,
|
|
@@ -69,7 +86,14 @@ async function createSolarStates(adapter) {
|
|
|
69
86
|
await adapter.setObjectNotExistsAsync('solar.temp_on', {
|
|
70
87
|
type: 'state',
|
|
71
88
|
common: {
|
|
72
|
-
name:
|
|
89
|
+
name: {
|
|
90
|
+
en: 'Collector temperature ON threshold (°C)',
|
|
91
|
+
de: 'Kollektortemperatur EIN-Schwelle (°C)',
|
|
92
|
+
},
|
|
93
|
+
desc: {
|
|
94
|
+
en: 'Temperature threshold at which solar operation is switched on',
|
|
95
|
+
de: 'Temperaturschwelle, bei der der Solarbetrieb eingeschaltet wird',
|
|
96
|
+
},
|
|
73
97
|
type: 'number',
|
|
74
98
|
role: 'level',
|
|
75
99
|
unit: '°C',
|
|
@@ -91,7 +115,14 @@ async function createSolarStates(adapter) {
|
|
|
91
115
|
await adapter.setObjectNotExistsAsync('solar.temp_off', {
|
|
92
116
|
type: 'state',
|
|
93
117
|
common: {
|
|
94
|
-
name:
|
|
118
|
+
name: {
|
|
119
|
+
en: 'Collector temperature OFF threshold (°C)',
|
|
120
|
+
de: 'Kollektortemperatur AUS-Schwelle (°C)',
|
|
121
|
+
},
|
|
122
|
+
desc: {
|
|
123
|
+
en: 'Temperature threshold at which solar operation is switched off',
|
|
124
|
+
de: 'Temperaturschwelle, bei der der Solarbetrieb ausgeschaltet wird',
|
|
125
|
+
},
|
|
95
126
|
type: 'number',
|
|
96
127
|
role: 'level',
|
|
97
128
|
unit: '°C',
|
|
@@ -113,7 +144,14 @@ async function createSolarStates(adapter) {
|
|
|
113
144
|
await adapter.setObjectNotExistsAsync('solar.collector_warning', {
|
|
114
145
|
type: 'state',
|
|
115
146
|
common: {
|
|
116
|
-
name:
|
|
147
|
+
name: {
|
|
148
|
+
en: 'Collector temperature warning active',
|
|
149
|
+
de: 'Kollektortemperatur-Warnung aktiv',
|
|
150
|
+
},
|
|
151
|
+
desc: {
|
|
152
|
+
en: 'Shows whether a collector temperature warning is currently active',
|
|
153
|
+
de: 'Zeigt an, ob aktuell eine Kollektortemperatur-Warnung aktiv ist',
|
|
154
|
+
},
|
|
117
155
|
type: 'boolean',
|
|
118
156
|
role: 'indicator.error',
|
|
119
157
|
read: true,
|
|
@@ -130,7 +168,14 @@ async function createSolarStates(adapter) {
|
|
|
130
168
|
await adapter.setObjectNotExistsAsync('solar.warn_active', {
|
|
131
169
|
type: 'state',
|
|
132
170
|
common: {
|
|
133
|
-
name:
|
|
171
|
+
name: {
|
|
172
|
+
en: 'Enable collector temperature warning',
|
|
173
|
+
de: 'Kollektortemperatur-Warnung aktivieren',
|
|
174
|
+
},
|
|
175
|
+
desc: {
|
|
176
|
+
en: 'Enables or disables the collector temperature warning logic',
|
|
177
|
+
de: 'Aktiviert oder deaktiviert die Warnlogik fuer die Kollektortemperatur',
|
|
178
|
+
},
|
|
134
179
|
type: 'boolean',
|
|
135
180
|
role: 'switch',
|
|
136
181
|
read: true,
|
|
@@ -151,7 +196,14 @@ async function createSolarStates(adapter) {
|
|
|
151
196
|
await adapter.setObjectNotExistsAsync('solar.warn_temp', {
|
|
152
197
|
type: 'state',
|
|
153
198
|
common: {
|
|
154
|
-
name:
|
|
199
|
+
name: {
|
|
200
|
+
en: 'Collector temperature warning threshold (°C)',
|
|
201
|
+
de: 'Kollektortemperatur-Warnschwelle (°C)',
|
|
202
|
+
},
|
|
203
|
+
desc: {
|
|
204
|
+
en: 'Temperature threshold at which a collector warning is triggered',
|
|
205
|
+
de: 'Temperaturschwelle, bei der eine Kollektorwarnung ausgeloest wird',
|
|
206
|
+
},
|
|
155
207
|
type: 'number',
|
|
156
208
|
role: 'level',
|
|
157
209
|
unit: '°C',
|
|
@@ -170,7 +222,14 @@ async function createSolarStates(adapter) {
|
|
|
170
222
|
await adapter.setObjectNotExistsAsync('solar.warn_speech', {
|
|
171
223
|
type: 'state',
|
|
172
224
|
common: {
|
|
173
|
-
name:
|
|
225
|
+
name: {
|
|
226
|
+
en: 'Enable speech output for warnings',
|
|
227
|
+
de: 'Sprachausgabe fuer Warnungen aktivieren',
|
|
228
|
+
},
|
|
229
|
+
desc: {
|
|
230
|
+
en: 'Enables or disables speech output for solar warnings',
|
|
231
|
+
de: 'Aktiviert oder deaktiviert die Sprachausgabe fuer Solarwarnungen',
|
|
232
|
+
},
|
|
174
233
|
type: 'boolean',
|
|
175
234
|
role: 'switch',
|
|
176
235
|
read: true,
|
|
@@ -14,7 +14,12 @@ async function createSpeechStates(adapter) {
|
|
|
14
14
|
// Root-Kanal
|
|
15
15
|
await adapter.setObjectNotExistsAsync('speech', {
|
|
16
16
|
type: 'channel',
|
|
17
|
-
common: {
|
|
17
|
+
common: {
|
|
18
|
+
name: {
|
|
19
|
+
en: 'Speech outputs',
|
|
20
|
+
de: 'Sprachausgaben',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
18
23
|
native: {},
|
|
19
24
|
});
|
|
20
25
|
|
|
@@ -22,7 +27,14 @@ async function createSpeechStates(adapter) {
|
|
|
22
27
|
await adapter.setObjectNotExistsAsync('speech.active', {
|
|
23
28
|
type: 'state',
|
|
24
29
|
common: {
|
|
25
|
-
name:
|
|
30
|
+
name: {
|
|
31
|
+
en: 'Enable speech outputs',
|
|
32
|
+
de: 'Sprachausgaben aktivieren',
|
|
33
|
+
},
|
|
34
|
+
desc: {
|
|
35
|
+
en: 'Enables or disables all speech outputs globally',
|
|
36
|
+
de: 'Aktiviert oder deaktiviert alle Sprachausgaben global',
|
|
37
|
+
},
|
|
26
38
|
type: 'boolean',
|
|
27
39
|
role: 'switch',
|
|
28
40
|
read: true,
|
|
@@ -45,7 +57,14 @@ async function createSpeechStates(adapter) {
|
|
|
45
57
|
await adapter.setObjectNotExistsAsync('speech.last_text', {
|
|
46
58
|
type: 'state',
|
|
47
59
|
common: {
|
|
48
|
-
name:
|
|
60
|
+
name: {
|
|
61
|
+
en: 'Last spoken text',
|
|
62
|
+
de: 'Zuletzt gesprochener Text',
|
|
63
|
+
},
|
|
64
|
+
desc: {
|
|
65
|
+
en: 'Stores the last spoken output text',
|
|
66
|
+
de: 'Speichert den zuletzt gesprochenen Ausgabetext',
|
|
67
|
+
},
|
|
49
68
|
type: 'string',
|
|
50
69
|
role: 'text',
|
|
51
70
|
read: true,
|
|
@@ -60,8 +79,14 @@ async function createSpeechStates(adapter) {
|
|
|
60
79
|
await adapter.setObjectNotExistsAsync('speech.queue', {
|
|
61
80
|
type: 'state',
|
|
62
81
|
common: {
|
|
63
|
-
name:
|
|
64
|
-
|
|
82
|
+
name: {
|
|
83
|
+
en: 'Internal speech message queue',
|
|
84
|
+
de: 'Interne Sprachnachrichten-Warteschlange',
|
|
85
|
+
},
|
|
86
|
+
desc: {
|
|
87
|
+
en: 'Used as a handoff point for text messages from other modules (not writable by the user).',
|
|
88
|
+
de: 'Wird als Uebergabepunkt fuer Textnachrichten aus anderen Modulen verwendet (nicht durch den Benutzer beschreibbar).',
|
|
89
|
+
},
|
|
65
90
|
type: 'string',
|
|
66
91
|
role: 'text',
|
|
67
92
|
read: true,
|
|
@@ -75,7 +100,14 @@ async function createSpeechStates(adapter) {
|
|
|
75
100
|
await adapter.setObjectNotExistsAsync('speech.start_text', {
|
|
76
101
|
type: 'state',
|
|
77
102
|
common: {
|
|
78
|
-
name:
|
|
103
|
+
name: {
|
|
104
|
+
en: 'Start text',
|
|
105
|
+
de: 'Starttext',
|
|
106
|
+
},
|
|
107
|
+
desc: {
|
|
108
|
+
en: 'Speech text used when the pool pump starts',
|
|
109
|
+
de: 'Sprachausgabetext, der beim Start der Poolpumpe verwendet wird',
|
|
110
|
+
},
|
|
79
111
|
type: 'string',
|
|
80
112
|
role: 'text',
|
|
81
113
|
read: true,
|
|
@@ -91,7 +123,14 @@ async function createSpeechStates(adapter) {
|
|
|
91
123
|
await adapter.setObjectNotExistsAsync('speech.end_text', {
|
|
92
124
|
type: 'state',
|
|
93
125
|
common: {
|
|
94
|
-
name:
|
|
126
|
+
name: {
|
|
127
|
+
en: 'End text',
|
|
128
|
+
de: 'Endtext',
|
|
129
|
+
},
|
|
130
|
+
desc: {
|
|
131
|
+
en: 'Speech text used when the pool pump stops',
|
|
132
|
+
de: 'Sprachausgabetext, der beim Stoppen der Poolpumpe verwendet wird',
|
|
133
|
+
},
|
|
95
134
|
type: 'string',
|
|
96
135
|
role: 'text',
|
|
97
136
|
read: true,
|
|
@@ -110,56 +149,110 @@ async function createSpeechStates(adapter) {
|
|
|
110
149
|
|
|
111
150
|
await adapter.setObjectNotExistsAsync('speech.amazon_alexa', {
|
|
112
151
|
type: 'channel',
|
|
113
|
-
common: {
|
|
152
|
+
common: {
|
|
153
|
+
name: {
|
|
154
|
+
en: 'Amazon Alexa (speech output)',
|
|
155
|
+
de: 'Amazon Alexa (Sprachausgabe)',
|
|
156
|
+
},
|
|
157
|
+
},
|
|
114
158
|
native: {},
|
|
115
159
|
});
|
|
116
160
|
|
|
117
161
|
const alexaStates = [
|
|
118
162
|
{
|
|
119
163
|
id: 'quiet_time_week_enabled',
|
|
120
|
-
name:
|
|
164
|
+
name: {
|
|
165
|
+
en: 'Quiet time (Mon-Fri) enabled',
|
|
166
|
+
de: 'Ruhezeit (Mo-Fr) aktiviert',
|
|
167
|
+
},
|
|
168
|
+
desc: {
|
|
169
|
+
en: 'Enables quiet time for weekdays from Monday to Friday',
|
|
170
|
+
de: 'Aktiviert die Ruhezeit fuer Werktage von Montag bis Freitag',
|
|
171
|
+
},
|
|
121
172
|
type: 'boolean',
|
|
122
173
|
role: 'switch',
|
|
123
174
|
def: false,
|
|
124
175
|
},
|
|
125
176
|
{
|
|
126
177
|
id: 'quiet_time_week_start',
|
|
127
|
-
name:
|
|
178
|
+
name: {
|
|
179
|
+
en: 'Quiet time (Mon-Fri) start time (HH:MM)',
|
|
180
|
+
de: 'Ruhezeit (Mo-Fr) Startzeit (HH:MM)',
|
|
181
|
+
},
|
|
182
|
+
desc: {
|
|
183
|
+
en: 'Start time of the weekday quiet time in HH:MM format',
|
|
184
|
+
de: 'Startzeit der Werktag-Ruhezeit im Format HH:MM',
|
|
185
|
+
},
|
|
128
186
|
type: 'string',
|
|
129
187
|
role: 'level',
|
|
130
188
|
def: '22:00',
|
|
131
189
|
},
|
|
132
190
|
{
|
|
133
191
|
id: 'quiet_time_week_end',
|
|
134
|
-
name:
|
|
192
|
+
name: {
|
|
193
|
+
en: 'Quiet time (Mon-Fri) end time (HH:MM)',
|
|
194
|
+
de: 'Ruhezeit (Mo-Fr) Endzeit (HH:MM)',
|
|
195
|
+
},
|
|
196
|
+
desc: {
|
|
197
|
+
en: 'End time of the weekday quiet time in HH:MM format',
|
|
198
|
+
de: 'Endzeit der Werktag-Ruhezeit im Format HH:MM',
|
|
199
|
+
},
|
|
135
200
|
type: 'string',
|
|
136
201
|
role: 'level',
|
|
137
202
|
def: '07:00',
|
|
138
203
|
},
|
|
139
204
|
{
|
|
140
205
|
id: 'quiet_time_weekend_enabled',
|
|
141
|
-
name:
|
|
206
|
+
name: {
|
|
207
|
+
en: 'Quiet time (Sat-Sun) enabled',
|
|
208
|
+
de: 'Ruhezeit (Sa-So) aktiviert',
|
|
209
|
+
},
|
|
210
|
+
desc: {
|
|
211
|
+
en: 'Enables quiet time for weekends from Saturday to Sunday',
|
|
212
|
+
de: 'Aktiviert die Ruhezeit fuer Wochenenden von Samstag bis Sonntag',
|
|
213
|
+
},
|
|
142
214
|
type: 'boolean',
|
|
143
215
|
role: 'switch',
|
|
144
216
|
def: false,
|
|
145
217
|
},
|
|
146
218
|
{
|
|
147
219
|
id: 'quiet_time_weekend_start',
|
|
148
|
-
name:
|
|
220
|
+
name: {
|
|
221
|
+
en: 'Quiet time (Sat-Sun) start time (HH:MM)',
|
|
222
|
+
de: 'Ruhezeit (Sa-So) Startzeit (HH:MM)',
|
|
223
|
+
},
|
|
224
|
+
desc: {
|
|
225
|
+
en: 'Start time of the weekend quiet time in HH:MM format',
|
|
226
|
+
de: 'Startzeit der Wochenend-Ruhezeit im Format HH:MM',
|
|
227
|
+
},
|
|
149
228
|
type: 'string',
|
|
150
229
|
role: 'level',
|
|
151
230
|
def: '22:00',
|
|
152
231
|
},
|
|
153
232
|
{
|
|
154
233
|
id: 'quiet_time_weekend_end',
|
|
155
|
-
name:
|
|
234
|
+
name: {
|
|
235
|
+
en: 'Quiet time (Sat-Sun) end time (HH:MM)',
|
|
236
|
+
de: 'Ruhezeit (Sa-So) Endzeit (HH:MM)',
|
|
237
|
+
},
|
|
238
|
+
desc: {
|
|
239
|
+
en: 'End time of the weekend quiet time in HH:MM format',
|
|
240
|
+
de: 'Endzeit der Wochenend-Ruhezeit im Format HH:MM',
|
|
241
|
+
},
|
|
156
242
|
type: 'string',
|
|
157
243
|
role: 'level',
|
|
158
244
|
def: '08:00',
|
|
159
245
|
},
|
|
160
246
|
{
|
|
161
247
|
id: 'quiet_time_active_now',
|
|
162
|
-
name:
|
|
248
|
+
name: {
|
|
249
|
+
en: 'Alexa muted now (quiet time active)',
|
|
250
|
+
de: 'Alexa aktuell stumm (Ruhezeit aktiv)',
|
|
251
|
+
},
|
|
252
|
+
desc: {
|
|
253
|
+
en: 'Shows whether Alexa output is currently muted because quiet time is active',
|
|
254
|
+
de: 'Zeigt an, ob die Alexa-Ausgabe aktuell stumm ist, weil die Ruhezeit aktiv ist',
|
|
255
|
+
},
|
|
163
256
|
type: 'boolean',
|
|
164
257
|
role: 'indicator',
|
|
165
258
|
def: false,
|
|
@@ -173,6 +266,7 @@ async function createSpeechStates(adapter) {
|
|
|
173
266
|
type: 'state',
|
|
174
267
|
common: {
|
|
175
268
|
name: s.name,
|
|
269
|
+
desc: s.desc,
|
|
176
270
|
type: s.type,
|
|
177
271
|
role: s.role,
|
|
178
272
|
read: true,
|
|
@@ -196,7 +290,14 @@ async function createSpeechStates(adapter) {
|
|
|
196
290
|
await adapter.setObjectNotExistsAsync('speech.solar_active', {
|
|
197
291
|
type: 'state',
|
|
198
292
|
common: {
|
|
199
|
-
name:
|
|
293
|
+
name: {
|
|
294
|
+
en: 'Solar control active',
|
|
295
|
+
de: 'Solarsteuerung aktiv',
|
|
296
|
+
},
|
|
297
|
+
desc: {
|
|
298
|
+
en: 'Indicator for active solar control speech context',
|
|
299
|
+
de: 'Indikator fuer aktiven Solarsteuerungs-Sprachkontext',
|
|
300
|
+
},
|
|
200
301
|
type: 'boolean',
|
|
201
302
|
role: 'indicator',
|
|
202
303
|
read: true,
|
|
@@ -210,7 +311,14 @@ async function createSpeechStates(adapter) {
|
|
|
210
311
|
await adapter.setObjectNotExistsAsync('speech.time_active', {
|
|
211
312
|
type: 'state',
|
|
212
313
|
common: {
|
|
213
|
-
name:
|
|
314
|
+
name: {
|
|
315
|
+
en: 'Time control active',
|
|
316
|
+
de: 'Zeitsteuerung aktiv',
|
|
317
|
+
},
|
|
318
|
+
desc: {
|
|
319
|
+
en: 'Indicator for active time control speech context',
|
|
320
|
+
de: 'Indikator fuer aktiven Zeitsteuerungs-Sprachkontext',
|
|
321
|
+
},
|
|
214
322
|
type: 'boolean',
|
|
215
323
|
role: 'indicator',
|
|
216
324
|
read: true,
|
|
@@ -224,7 +332,14 @@ async function createSpeechStates(adapter) {
|
|
|
224
332
|
await adapter.setObjectNotExistsAsync('speech.frost_active', {
|
|
225
333
|
type: 'state',
|
|
226
334
|
common: {
|
|
227
|
-
name:
|
|
335
|
+
name: {
|
|
336
|
+
en: 'Frost protection active',
|
|
337
|
+
de: 'Frostschutz aktiv',
|
|
338
|
+
},
|
|
339
|
+
desc: {
|
|
340
|
+
en: 'Indicator for active frost protection speech context',
|
|
341
|
+
de: 'Indikator fuer aktiven Frostschutz-Sprachkontext',
|
|
342
|
+
},
|
|
228
343
|
type: 'boolean',
|
|
229
344
|
role: 'indicator',
|
|
230
345
|
read: true,
|