iobroker.poolcontrol 0.2.2 → 0.3.1
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 +26 -0
- package/admin/jsonConfig.json +4 -0
- package/io-package.json +27 -28
- package/lib/helpers/frostHelper.js +8 -3
- package/lib/helpers/migrationHelper.js +117 -0
- package/lib/helpers/pumpHelper2.js +162 -0
- package/lib/helpers/pumpHelper3.js +259 -0
- package/lib/helpers/runtimeHelper.js +75 -8
- package/lib/helpers/statusHelper.js +35 -10
- package/lib/stateDefinitions/controlStates.js +82 -18
- package/lib/stateDefinitions/hardwareStates.js +184 -0
- package/lib/stateDefinitions/pumpStates.js +33 -7
- package/lib/stateDefinitions/pumpStates2.js +125 -0
- package/lib/stateDefinitions/pumpStates3.js +252 -0
- package/lib/stateDefinitions/solarStates.js +57 -26
- package/lib/stateDefinitions/speechStates.js +34 -8
- package/lib/stateDefinitions/statusStates.js +8 -2
- package/main.js +34 -1
- package/package.json +1 -1
|
@@ -18,7 +18,7 @@ async function createSpeechStates(adapter) {
|
|
|
18
18
|
native: {},
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
-
// Sprachausgaben global aktiv
|
|
21
|
+
// Sprachausgaben global aktiv (mit Persist-Schutz)
|
|
22
22
|
await adapter.setObjectNotExistsAsync('speech.active', {
|
|
23
23
|
type: 'state',
|
|
24
24
|
common: {
|
|
@@ -27,13 +27,19 @@ async function createSpeechStates(adapter) {
|
|
|
27
27
|
role: 'switch',
|
|
28
28
|
read: true,
|
|
29
29
|
write: true,
|
|
30
|
+
persist: true, // dauerhaft speichern
|
|
30
31
|
},
|
|
31
32
|
native: {},
|
|
32
33
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
|
|
35
|
+
// Prüfen, ob bereits ein persistierter Wert existiert
|
|
36
|
+
const existingSpeechActive = await adapter.getStateAsync('speech.active');
|
|
37
|
+
if (existingSpeechActive === null || existingSpeechActive.val === null || existingSpeechActive.val === undefined) {
|
|
38
|
+
await adapter.setStateAsync('speech.active', {
|
|
39
|
+
val: adapter.config.speech_active ?? false,
|
|
40
|
+
ack: true,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
37
43
|
|
|
38
44
|
// Letzter gesprochener Text
|
|
39
45
|
await adapter.setObjectNotExistsAsync('speech.last_text', {
|
|
@@ -107,8 +113,9 @@ async function createSpeechStates(adapter) {
|
|
|
107
113
|
type: 'boolean',
|
|
108
114
|
role: 'indicator',
|
|
109
115
|
read: true,
|
|
110
|
-
write:
|
|
116
|
+
write: false,
|
|
111
117
|
hidden: true, // unsichtbar im Admin
|
|
118
|
+
dontShow: true,
|
|
112
119
|
},
|
|
113
120
|
native: {},
|
|
114
121
|
});
|
|
@@ -120,8 +127,9 @@ async function createSpeechStates(adapter) {
|
|
|
120
127
|
type: 'boolean',
|
|
121
128
|
role: 'indicator',
|
|
122
129
|
read: true,
|
|
123
|
-
write:
|
|
130
|
+
write: false,
|
|
124
131
|
hidden: true, // unsichtbar im Admin
|
|
132
|
+
dontShow: true,
|
|
125
133
|
},
|
|
126
134
|
native: {},
|
|
127
135
|
});
|
|
@@ -133,11 +141,29 @@ async function createSpeechStates(adapter) {
|
|
|
133
141
|
type: 'boolean',
|
|
134
142
|
role: 'indicator',
|
|
135
143
|
read: true,
|
|
136
|
-
write:
|
|
144
|
+
write: false,
|
|
137
145
|
hidden: true, // unsichtbar im Admin
|
|
146
|
+
dontShow: true,
|
|
138
147
|
},
|
|
139
148
|
native: {},
|
|
140
149
|
});
|
|
150
|
+
|
|
151
|
+
// --- Sicherstellen, dass bestehende Installationen nachträglich korrigiert werden ---
|
|
152
|
+
const hiddenStates = ['speech.solar_active', 'speech.time_active', 'speech.frost_active'];
|
|
153
|
+
for (const id of hiddenStates) {
|
|
154
|
+
try {
|
|
155
|
+
await adapter.extendObjectAsync(id, {
|
|
156
|
+
common: {
|
|
157
|
+
hidden: true,
|
|
158
|
+
dontShow: true,
|
|
159
|
+
write: false,
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
} catch (err) {
|
|
163
|
+
adapter.log.warn(`[speechStates] Konnte hidden-Flag für ${id} nicht setzen: ${err.message}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
adapter.log.debug('[speechStates] Hidden-Flags für Solar/Time/Frost geprüft und aktualisiert');
|
|
141
167
|
}
|
|
142
168
|
|
|
143
169
|
module.exports = {
|
|
@@ -169,7 +169,7 @@ async function createStatusStates(adapter) {
|
|
|
169
169
|
});
|
|
170
170
|
await adapter.setStateAsync('status.system_warning_text', { val: '', ack: true });
|
|
171
171
|
|
|
172
|
-
// Saisonstatus
|
|
172
|
+
// Saisonstatus (mit Persist-Schutz)
|
|
173
173
|
await adapter.setObjectNotExistsAsync('status.season_active', {
|
|
174
174
|
type: 'state',
|
|
175
175
|
common: {
|
|
@@ -178,10 +178,16 @@ async function createStatusStates(adapter) {
|
|
|
178
178
|
role: 'switch',
|
|
179
179
|
read: true,
|
|
180
180
|
write: true,
|
|
181
|
+
persist: true, // dauerhaft speichern
|
|
181
182
|
},
|
|
182
183
|
native: {},
|
|
183
184
|
});
|
|
184
|
-
|
|
185
|
+
|
|
186
|
+
// Prüfen, ob bereits ein persistierter Wert existiert
|
|
187
|
+
const existingSeasonActive = await adapter.getStateAsync('status.season_active');
|
|
188
|
+
if (existingSeasonActive === null || existingSeasonActive.val === null || existingSeasonActive.val === undefined) {
|
|
189
|
+
await adapter.setStateAsync('status.season_active', { val: false, ack: true });
|
|
190
|
+
}
|
|
185
191
|
}
|
|
186
192
|
|
|
187
193
|
module.exports = {
|
package/main.js
CHANGED
|
@@ -9,6 +9,8 @@ const temperatureHelper = require('./lib/helpers/temperatureHelper');
|
|
|
9
9
|
const timeHelper = require('./lib/helpers/timeHelper');
|
|
10
10
|
const runtimeHelper = require('./lib/helpers/runtimeHelper');
|
|
11
11
|
const pumpHelper = require('./lib/helpers/pumpHelper');
|
|
12
|
+
const pumpHelper2 = require('./lib/helpers/pumpHelper2');
|
|
13
|
+
const pumpHelper3 = require('./lib/helpers/pumpHelper3');
|
|
12
14
|
const speechHelper = require('./lib/helpers/speechHelper');
|
|
13
15
|
const consumptionHelper = require('./lib/helpers/consumptionHelper');
|
|
14
16
|
const solarHelper = require('./lib/helpers/solarHelper');
|
|
@@ -18,8 +20,11 @@ const controlHelper = require('./lib/helpers/controlHelper');
|
|
|
18
20
|
const controlHelper2 = require('./lib/helpers/controlHelper2');
|
|
19
21
|
const debugLogHelper = require('./lib/helpers/debugLogHelper');
|
|
20
22
|
const speechTextHelper = require('./lib/helpers/speechTextHelper');
|
|
23
|
+
const migrationHelper = require('./lib/helpers/migrationHelper');
|
|
21
24
|
const { createTemperatureStates } = require('./lib/stateDefinitions/temperatureStates');
|
|
22
25
|
const { createPumpStates } = require('./lib/stateDefinitions/pumpStates');
|
|
26
|
+
const { createPumpStates2 } = require('./lib/stateDefinitions/pumpStates2');
|
|
27
|
+
const { createPumpStates3 } = require('./lib/stateDefinitions/pumpStates3');
|
|
23
28
|
const { createSolarStates } = require('./lib/stateDefinitions/solarStates');
|
|
24
29
|
const { createGeneralStates } = require('./lib/stateDefinitions/generalStates');
|
|
25
30
|
const { createTimeStates } = require('./lib/stateDefinitions/timeStates');
|
|
@@ -29,6 +34,7 @@ const { createConsumptionStates } = require('./lib/stateDefinitions/consumptionS
|
|
|
29
34
|
const { createStatusStates } = require('./lib/stateDefinitions/statusStates');
|
|
30
35
|
const { createControlStates } = require('./lib/stateDefinitions/controlStates');
|
|
31
36
|
const { createDebugLogStates } = require('./lib/stateDefinitions/debugLogStates');
|
|
37
|
+
const { createHardwareStates } = require('./lib/stateDefinitions/hardwareStates');
|
|
32
38
|
|
|
33
39
|
class Poolcontrol extends utils.Adapter {
|
|
34
40
|
constructor(options) {
|
|
@@ -49,6 +55,8 @@ class Poolcontrol extends utils.Adapter {
|
|
|
49
55
|
|
|
50
56
|
// --- Pumpe ---
|
|
51
57
|
await createPumpStates(this);
|
|
58
|
+
await createPumpStates2(this);
|
|
59
|
+
await createPumpStates3(this);
|
|
52
60
|
|
|
53
61
|
// --- Temperaturverwaltung ---
|
|
54
62
|
await createTemperatureStates(this);
|
|
@@ -80,14 +88,22 @@ class Poolcontrol extends utils.Adapter {
|
|
|
80
88
|
// --- Control States ---
|
|
81
89
|
await createControlStates(this);
|
|
82
90
|
|
|
83
|
-
// --- DebugLog
|
|
91
|
+
// --- DebugLog States ---
|
|
84
92
|
await createDebugLogStates(this);
|
|
85
93
|
|
|
94
|
+
// --- Hardware States ---
|
|
95
|
+
await createHardwareStates(this);
|
|
96
|
+
|
|
97
|
+
// --- Migration Helper zuletzt starten ---
|
|
98
|
+
await migrationHelper.init(this);
|
|
99
|
+
|
|
86
100
|
// --- Helper starten ---
|
|
87
101
|
temperatureHelper.init(this);
|
|
88
102
|
timeHelper.init(this);
|
|
89
103
|
runtimeHelper.init(this);
|
|
90
104
|
pumpHelper.init(this);
|
|
105
|
+
pumpHelper2.init(this);
|
|
106
|
+
pumpHelper3.init(this);
|
|
91
107
|
speechHelper.init(this);
|
|
92
108
|
consumptionHelper.init(this);
|
|
93
109
|
solarHelper.init(this);
|
|
@@ -113,6 +129,12 @@ class Poolcontrol extends utils.Adapter {
|
|
|
113
129
|
if (pumpHelper.cleanup) {
|
|
114
130
|
pumpHelper.cleanup();
|
|
115
131
|
}
|
|
132
|
+
if (pumpHelper2.cleanup) {
|
|
133
|
+
pumpHelper2.cleanup();
|
|
134
|
+
}
|
|
135
|
+
if (pumpHelper3.cleanup) {
|
|
136
|
+
pumpHelper3.cleanup();
|
|
137
|
+
}
|
|
116
138
|
if (speechHelper.cleanup) {
|
|
117
139
|
speechHelper.cleanup();
|
|
118
140
|
}
|
|
@@ -173,6 +195,17 @@ class Poolcontrol extends utils.Adapter {
|
|
|
173
195
|
} catch (e) {
|
|
174
196
|
this.log.warn(`[pumpHelper] Fehler in handleStateChange: ${e.message}`);
|
|
175
197
|
}
|
|
198
|
+
try {
|
|
199
|
+
pumpHelper2.handleStateChange(id, state);
|
|
200
|
+
} catch (e) {
|
|
201
|
+
this.log.warn(`[pumpHelper2] Fehler in handleStateChange: ${e.message}`);
|
|
202
|
+
}
|
|
203
|
+
try {
|
|
204
|
+
pumpHelper3.handleStateChange(id, state);
|
|
205
|
+
} catch (e) {
|
|
206
|
+
this.log.warn(`[pumpHelper3] Fehler in handleStateChange: ${e.message}`);
|
|
207
|
+
}
|
|
208
|
+
|
|
176
209
|
try {
|
|
177
210
|
speechHelper.handleStateChange(id, state);
|
|
178
211
|
} catch (e) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.poolcontrol",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Steuerung & Automatisierung für den Pool (Pumpe, Heizung, Ventile, Sensoren).",
|
|
5
5
|
"author": "DasBo1975 <dasbo1975@outlook.de>",
|
|
6
6
|
"homepage": "https://github.com/DasBo1975/ioBroker.poolcontrol",
|