iobroker-ucl 1.0.84 → 1.0.86

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.
@@ -28,239 +28,450 @@ function createDatenpunktSingle(adapter: any, deviceRawId, attributeType, attrib
28
28
  read: true,
29
29
  write: true
30
30
  });
31
- /*if (adapter.getState(stateDatenpunkt).val != attributeValue) {
32
- adapter.setState(stateDatenpunkt, attributeValue);
33
- }*/
34
31
  }
35
32
 
36
- export function getHomematicDevices(adapter: any, filterCategory: string) {
37
- var homematicArray = [];
38
- //var homematicArray : Array<InstanceType<typeof AbstractHomematic>> = [];
33
+ var cacheWandthermostateArray = null;
34
+ export function loadHomematicWandthermostate(adapter: any) {
35
+ if (cacheWandthermostateArray != null) {
36
+ return cacheWandthermostateArray;
37
+ }
38
+ // @ts-ignore
39
+ cacheWandthermostateArray = [];
40
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
41
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
42
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWandthermostat) {
43
+ // @ts-ignore
44
+ homematicArray.push(new HomematicWandthermostat(adapter,
45
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
46
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
47
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
48
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
49
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
50
+ ));
51
+ }
52
+ });
53
+ return cacheWandthermostateArray;
54
+ }
55
+
56
+ var cachePraesenzmelderArray = null;
57
+ export function loadHomematicPraesenzmelder(adapter: any) {
58
+ if (cachePraesenzmelderArray != null) {
59
+ return cachePraesenzmelderArray;
60
+ }
61
+ // @ts-ignore
62
+ cachePraesenzmelderArray = [];
63
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
64
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
65
+ if (adapter.getState(datenpunktKey).val == deviceHomematicPraesenzmelder) {
66
+ // @ts-ignore
67
+ cachePraesenzmelderArray.push(new HomematicPraesenzmelder(adapter,
68
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
69
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
70
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
71
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
72
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
73
+ ));
74
+ }
75
+ });
76
+ return cachePraesenzmelderArray;
77
+ }
78
+
79
+ var cacheWetterstationenArray = null;
80
+ export function loadHomematicWetterstationen(adapter: any) {
81
+ if (cacheWetterstationenArray != null) {
82
+ return cacheWetterstationenArray;
83
+ }
84
+ // @ts-ignore
85
+ cacheWetterstationenArray = [];
86
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
87
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
88
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWetterstation) {
89
+ // @ts-ignore
90
+ cacheWetterstationenArray.push(new HomematicWetterstation(adapter,
91
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
92
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
93
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
94
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
95
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
96
+ ));
97
+ }
98
+ });
99
+ return cacheWetterstationenArray;
100
+ }
101
+
102
+ var cacheDoorsArray = null;
103
+ export function loadHomematicDoors(adapter: any) {
104
+ if (cacheDoorsArray != null) {
105
+ return cacheDoorsArray;
106
+ }
107
+ // @ts-ignore
108
+ cacheDoorsArray = [];
109
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
110
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
111
+ if (adapter.getState(datenpunktKey).val == deviceHomematicDoor) {
112
+ // @ts-ignore
113
+ cacheDoorsArray.push(new HomematicDoor(adapter,
114
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
115
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
116
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
117
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
118
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
119
+ ));
120
+ }
121
+ });
122
+ return cacheDoorsArray;
123
+ }
124
+
125
+ var cacheRollladenArray = null;
126
+ export function loadHomematicRollladen(adapter: any) {
127
+ if (cacheRollladenArray != null) {
128
+ return cacheRollladenArray;
129
+ }
130
+ // @ts-ignore
131
+ cacheRollladenArray = [];
132
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
133
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
134
+ if (adapter.getState(datenpunktKey).val == deviceHomematicRollladen) {
135
+ // @ts-ignore
136
+ cacheRollladenArray.push(new HomematicRollladen(adapter,
137
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
138
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
139
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
140
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
141
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
142
+ ));
143
+ }
144
+ });
145
+ return cacheRollladenArray;
146
+ }
147
+
148
+ var cacheWandschalterArray = null;
149
+ export function loadHomematicWandschalter(adapter: any) {
150
+ if (cacheWandschalterArray != null) {
151
+ return cacheWandschalterArray;
152
+ }
153
+ // @ts-ignore
154
+ cacheWandschalterArray = [];
155
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
156
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
157
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWandschalter) {
158
+ // @ts-ignore
159
+ cacheWandschalterArray.push(new HomematicWandschalter(adapter,
160
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
161
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
162
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
163
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
164
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
165
+ ));
166
+ }
167
+ });
168
+ return cacheWandschalterArray;
169
+ }
170
+
171
+ var cacheFussbodenheizungenArray = null;
172
+ export function loadHomematicFussbodenheizungen(adapter: any) {
173
+ if (cacheFussbodenheizungenArray != null) {
174
+ return cacheFussbodenheizungenArray;
175
+ }
176
+ // @ts-ignore
177
+ cacheFussbodenheizungenArray = [];
178
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
179
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
180
+ if (adapter.getState(datenpunktKey).val == deviceHomematicFussbodenheizung) {
181
+ // @ts-ignore
182
+ cacheFussbodenheizungenArray.push(new HomematicFussbodenheizung(adapter,
183
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
184
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
185
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
186
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
187
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
188
+ ));
189
+ }
190
+ });
191
+ return cacheFussbodenheizungenArray;
192
+ }
193
+
194
+ var cacheWandtasterArray = null;
195
+ export function loadHomematicWandtaster(adapter: any) {
196
+ if (cacheWandtasterArray != null) {
197
+ return cacheWandtasterArray;
198
+ }
199
+ // @ts-ignore
200
+ cacheWandtasterArray = [];
201
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
202
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
203
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWandtaster) {
204
+ // @ts-ignore
205
+ cacheWandtasterArray.push(new HomematicWandtaster(adapter,
206
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
207
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
208
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
209
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
210
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
211
+ ));
212
+ }
213
+ });
214
+ return cacheWandtasterArray;
215
+ }
216
+
217
+ var cacheAccessPointsArray = null;
218
+ export function loadHomematicAccessPoints(adapter: any) {
219
+ if (cacheAccessPointsArray != null) {
220
+ return cacheAccessPointsArray;
221
+ }
222
+ // @ts-ignore
223
+ cacheAccessPointsArray = [];
224
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
225
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
226
+ if (adapter.getState(datenpunktKey).val == deviceHomematicAccessPoint) {
227
+ // @ts-ignore
228
+ cacheAccessPointsArray.push(new HomematicAccessPoint(adapter,
229
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
230
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
231
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
232
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
233
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
234
+ ));
235
+ }
236
+ });
237
+ return cacheAccessPointsArray;
238
+ }
239
+
240
+ var cacheTemperatursensorenArray = null;
241
+ export function loadHomematicTemperatursensoren(adapter: any) {
242
+ if (cacheTemperatursensorenArray != null) {
243
+ return cacheTemperatursensorenArray;
244
+ }
245
+ // @ts-ignore
246
+ cacheTemperatursensorenArray = [];
247
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
248
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
249
+ if (adapter.getState(datenpunktKey).val == deviceHomematicTemperatursensor) {
250
+ // @ts-ignore
251
+ cacheTemperatursensorenArray.push(new HomematicTemperatursensor(adapter,
252
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
253
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
254
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
255
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
256
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
257
+ ));
258
+ }
259
+ });
260
+ return cacheTemperatursensorenArray;
261
+ }
262
+
263
+ var cacheRauchmelderArray = null;
264
+ export function loadHomematicRauchmelder(adapter: any) {
265
+ if (cacheRauchmelderArray != null) {
266
+ return cacheRauchmelderArray;
267
+ }
268
+ // @ts-ignore
269
+ cacheRauchmelderArray = [];
270
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
271
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
272
+ if (adapter.getState(datenpunktKey).val == deviceHomematicRauchmelder) {
273
+ // @ts-ignore
274
+ cacheRauchmelderArray.push(new HomematicRauchmelder(adapter,
275
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
276
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
277
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
278
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
279
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
280
+ ));
281
+ }
282
+ });
283
+ return cacheRauchmelderArray;
284
+ }
285
+
286
+ var cacheFunkschaltaktorenArray = null;
287
+ export function loadHomematicFunktschaltaktoren(adapter: any) {
288
+ if (cacheFunkschaltaktorenArray != null) {
289
+ return cacheFunkschaltaktorenArray;
290
+ }
291
+ // @ts-ignore
292
+ cacheFunkschaltaktorenArray = [];
293
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
294
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
295
+ if (adapter.getState(datenpunktKey).val == deviceHomematicFunkSchaltaktor) {
296
+ // @ts-ignore
297
+ cacheFunkschaltaktorenArray.push(new HomematicFunkschaltaktor(adapter,
298
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
299
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
300
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
301
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
302
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
303
+ ));
304
+ }
305
+ });
306
+ return cacheFunkschaltaktorenArray;
307
+ }
308
+
309
+ var cacheWindowsArray = null;
310
+ export function loadHomematicWindows(adapter: any) {
311
+ if (cacheWindowsArray != null) {
312
+ return cacheWindowsArray;
313
+ }
314
+ // @ts-ignore
315
+ cacheWindowsArray = [];
316
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
317
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
318
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWindow) {
319
+ // @ts-ignore
320
+ cacheWindowsArray.push(new HomematicWindow(adapter,
321
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
322
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
323
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
324
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
325
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
326
+ ));
327
+ }
328
+ });
329
+ return cacheWindowsArray;
330
+ }
39
331
 
332
+ var cacheSteckdosenArray = null;
333
+ export function loadHomematicSteckdosen(adapter: any) {
334
+ if (cacheSteckdosenArray != null) {
335
+ return cacheSteckdosenArray;
336
+ }
337
+ // @ts-ignore
338
+ cacheSteckdosenArray = [];
40
339
  adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
41
340
  var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
42
- if (adapter.getState(datenpunktKey).val == filterCategory) {
43
- if (filterCategory == deviceHomematicWandthermostat) {
44
- // @ts-ignore
45
- homematicArray.push(new HomematicWandthermostat(adapter,
46
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
47
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
48
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
49
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
50
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
51
- ));
52
- } else if (filterCategory == deviceHomematicPraesenzmelder) {
53
- // @ts-ignore
54
- homematicArray.push(new HomematicPraesenzmelder(adapter,
55
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
56
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
57
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
58
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
59
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
60
- ));
61
- } else if (filterCategory == deviceHomematicWetterstation) {
62
- // @ts-ignore
63
- homematicArray.push(new HomematicWetterstation(adapter,
64
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
65
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
66
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
67
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
68
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
69
- ));
70
- } else if (filterCategory == deviceHomematicDoor) {
71
- // @ts-ignore
72
- homematicArray.push(new HomematicDoor(adapter,
73
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
74
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
75
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
76
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
77
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
78
- ));
79
- } else if (filterCategory == deviceHomematicRollladen) {
80
- // @ts-ignore
81
- homematicArray.push(new HomematicRollladen(adapter,
82
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
83
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
84
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
85
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
86
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
87
- ));
88
- } else if (filterCategory == deviceHomematicWandschalter) {
89
- // @ts-ignore
90
- homematicArray.push(new HomematicWandschalter(adapter,
91
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
92
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
93
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
94
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
95
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
96
- ));
97
- } else if (filterCategory == deviceHomematicFussbodenheizung) {
98
- // @ts-ignore
99
- homematicArray.push(new HomematicFussbodenheizung(adapter,
100
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
101
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
102
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
103
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
104
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
105
- ));
106
- } else if (filterCategory == deviceHomematicWandtaster) {
107
- // @ts-ignore
108
- homematicArray.push(new HomematicWandtaster(adapter,
109
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
110
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
111
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
112
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
113
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
114
- ));
115
- } else if (filterCategory == deviceHomematicAccessPoint) {
116
- // @ts-ignore
117
- homematicArray.push(new HomematicAccessPoint(adapter,
118
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
119
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
120
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
121
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
122
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
123
- ));
124
- } else if (filterCategory == deviceHomematicTemperatursensor) {
125
- // @ts-ignore
126
- homematicArray.push(new HomematicTemperatursensor(adapter,
127
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
128
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
129
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
130
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
131
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
132
- ));
133
- } else if (filterCategory == deviceHomematicRauchmelder) {
134
- // @ts-ignore
135
- homematicArray.push(new HomematicRauchmelder(adapter,
136
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
137
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
138
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
139
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
140
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
141
- ));
142
- } else if (filterCategory == deviceHomematicFunkSchaltaktor) {
143
- // @ts-ignore
144
- homematicArray.push(new HomematicFunkschaltaktor(adapter,
145
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
146
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
147
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
148
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
149
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
150
- ));
151
- } else if (filterCategory == deviceHomematicWindow) {
152
- // @ts-ignore
153
- homematicArray.push(new HomematicWindow(adapter,
154
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
155
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
156
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
157
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
158
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
159
- ));
160
- } else if (filterCategory == deviceHomematicSteckdose) {
161
- // @ts-ignore
162
- homematicArray.push(new HomematicSteckdose(adapter,
163
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
164
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
165
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
166
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
167
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
168
- ));
169
- } else if (filterCategory == deviceHomematicHeizkoerper) {
170
- // @ts-ignore
171
- homematicArray.push(new HomematicHeizkoerper(adapter,
172
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
173
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
174
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
175
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
176
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
177
- ));
178
- } else if (filterCategory == deviceHomematicDimmer) {
179
- // @ts-ignore
180
- homematicArray.push(new HomematicDimmer(adapter,
181
- adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
182
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
183
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
184
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
185
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
186
- ));
187
- }
341
+ if (adapter.getState(datenpunktKey).val == deviceHomematicSteckdose) {
342
+ // @ts-ignore
343
+ cacheSteckdosenArray.push(new HomematicSteckdose(adapter,
344
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
345
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
346
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
347
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
348
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
349
+ ));
188
350
  }
351
+ });
352
+ return cacheSteckdosenArray;
353
+ }
189
354
 
355
+ var cacheHeizkoerperArray = null;
356
+ export function loadHomematicHeizkoerper(adapter: any) {
357
+ if (cacheHeizkoerperArray != null) {
358
+ return cacheHeizkoerperArray;
359
+ }
360
+ // @ts-ignore
361
+ cacheHeizkoerperArray = [];
362
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
363
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
364
+ if (adapter.getState(datenpunktKey).val == deviceHomematicHeizkoerper) {
365
+ // @ts-ignore
366
+ cacheHeizkoerperArray.push(new HomematicHeizkoerper(adapter,
367
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
368
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
369
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
370
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
371
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
372
+ ));
373
+ }
374
+ });
375
+ return cacheHeizkoerperArray;
376
+ }
377
+
378
+ var cacheDimmerArray = null;
379
+ export function loadHomematicDimmer(adapter: any) {
380
+ if (cacheDimmerArray != null) {
381
+ return cacheDimmerArray;
382
+ }
383
+ // @ts-ignore
384
+ cacheDimmerArray = [];
385
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
386
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
387
+ if (adapter.getState(datenpunktKey).val == deviceHomematicDimmer) {
388
+ // @ts-ignore
389
+ cacheDimmerArray.push(new HomematicDimmer(adapter,
390
+ adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
391
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
392
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
393
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
394
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
395
+ ));
396
+ }
190
397
  });
191
- return homematicArray;
398
+ return cacheDimmerArray;
192
399
  }
193
400
 
401
+ var homematicAllArray = null;
194
402
  export function getHomematicDevicesAll(adapter: any) {
195
- //var homematicArray : Array<InstanceType<typeof AbstractHomematic>> = [];
196
- var homematicArray = [];
403
+ if (homematicAllArray != null) {
404
+ return homematicAllArray;
405
+ }
197
406
 
407
+ // @ts-ignore
408
+ homematicAllArray = [];
198
409
 
199
- adapter.getHomematicDevices(adapter, deviceHomematicWandthermostat).forEach(homematic => {
410
+ adapter.loadHomematicWandthermostate(adapter).forEach(homematic => {
200
411
  // @ts-ignore
201
412
  homematicArray.push(homematic);
202
413
  });
203
- adapter.getHomematicDevices(adapter, deviceHomematicPraesenzmelder).forEach(homematic => {
414
+ adapter.loadHomematicPraesenzmelder(adapter).forEach(homematic => {
204
415
  // @ts-ignore
205
416
  homematicArray.push(homematic);
206
417
  });
207
- adapter.getHomematicDevices(adapter, deviceHomematicWetterstation).forEach(homematic => {
418
+ adapter.loadHomematicWetterstationen(adapter).forEach(homematic => {
208
419
  // @ts-ignore
209
420
  homematicArray.push(homematic);
210
421
  });
211
- adapter.getHomematicDevices(adapter, deviceHomematicDoor).forEach(homematic => {
422
+ adapter.loadHomematicDoors(adapter).forEach(homematic => {
212
423
  // @ts-ignore
213
424
  homematicArray.push(homematic);
214
425
  });
215
- adapter.getHomematicDevices(adapter, deviceHomematicRollladen).forEach(homematic => {
426
+ adapter.loadHomematicRollladen(adapter).forEach(homematic => {
216
427
  // @ts-ignore
217
428
  homematicArray.push(homematic);
218
429
  });
219
- adapter.getHomematicDevices(adapter, deviceHomematicWandschalter).forEach(homematic => {
430
+ adapter.loadHomematicWandschalter(adapter).forEach(homematic => {
220
431
  // @ts-ignore
221
432
  homematicArray.push(homematic);
222
433
  });
223
- adapter.getHomematicDevices(adapter, deviceHomematicFussbodenheizung).forEach(homematic => {
434
+ adapter.loadHomematicFussbodenheizungen(adapter).forEach(homematic => {
224
435
  // @ts-ignore
225
436
  homematicArray.push(homematic);
226
437
  });
227
- adapter.getHomematicDevices(adapter, deviceHomematicWandtaster).forEach(homematic => {
438
+ adapter.loadHomematicWandtaster(adapter).forEach(homematic => {
228
439
  // @ts-ignore
229
440
  homematicArray.push(homematic);
230
441
  });
231
- adapter.getHomematicDevices(adapter, deviceHomematicAccessPoint).forEach(homematic => {
442
+ adapter.loadHomematicAccessPoints(adapter).forEach(homematic => {
232
443
  // @ts-ignore
233
444
  homematicArray.push(homematic);
234
445
  });
235
- adapter.getHomematicDevices(adapter, deviceHomematicTemperatursensor).forEach(homematic => {
446
+ adapter.loadHomematicTemperatursensoren(adapter).forEach(homematic => {
236
447
  // @ts-ignore
237
448
  homematicArray.push(homematic);
238
449
  });
239
- adapter.getHomematicDevices(adapter, deviceHomematicRauchmelder).forEach(homematic => {
450
+ adapter.loadHomematicRauchmelder(adapter).forEach(homematic => {
240
451
  // @ts-ignore
241
452
  homematicArray.push(homematic);
242
453
  });
243
- adapter.getHomematicDevices(adapter, deviceHomematicFunkSchaltaktor).forEach(homematic => {
454
+ adapter.loadHomematicFunktschaltaktoren(adapter).forEach(homematic => {
244
455
  // @ts-ignore
245
456
  homematicArray.push(homematic);
246
457
  });
247
- adapter.getHomematicDevices(adapter, deviceHomematicWindow).forEach(homematic => {
458
+ adapter.loadHomematicWindows(adapter).forEach(homematic => {
248
459
  // @ts-ignore
249
460
  homematicArray.push(homematic);
250
461
  });
251
- adapter.getHomematicDevices(adapter, deviceHomematicSteckdose).forEach(homematic => {
462
+ adapter.loadHomematicSteckdosen(adapter).forEach(homematic => {
252
463
  // @ts-ignore
253
464
  homematicArray.push(homematic);
254
465
  });
255
- adapter.getHomematicDevices(adapter, deviceHomematicHeizkoerper).forEach(homematic => {
466
+ adapter.loadHomematicHeizkoerper(adapter).forEach(homematic => {
256
467
  // @ts-ignore
257
468
  homematicArray.push(homematic);
258
469
  });
259
- adapter.getHomematicDevices(adapter, deviceHomematicDimmer).forEach(homematic => {
470
+ adapter.loadHomematicDimmer(adapter).forEach(homematic => {
260
471
  // @ts-ignore
261
472
  homematicArray.push(homematic);
262
473
  });
263
- return homematicArray;
474
+ return homematicAllArray;
264
475
  }
265
476
 
266
- module.exports = { createHomematicDevice, getHomematicDevices, getHomematicDevicesAll };
477
+ module.exports = { createHomematicDevice, loadHomematicWandthermostate, loadHomematicPraesenzmelder, loadHomematicWetterstationen, loadHomematicDoors, loadHomematicRollladen, loadHomematicWandschalter, loadHomematicFussbodenheizungen, loadHomematicWandtaster, loadHomematicAccessPoints, loadHomematicTemperatursensoren, loadHomematicRauchmelder, loadHomematicFunktschaltaktoren, loadHomematicWindows, loadHomematicSteckdosen, loadHomematicHeizkoerper, loadHomematicDimmer, getHomematicDevicesAll };