iobroker-ucl 1.3.3 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -67,9 +67,7 @@ const attributeDimmer_tasterScheme4_aktiv = "tasterScheme4_aktiv";
67
67
  const attributeDimmer_tasterScheme4_name = "tasterScheme4_name";
68
68
  const attributeDimmer_tasterScheme4_level = "tasterScheme4_level";
69
69
 
70
-
71
-
72
- export function createHomematicDevice(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string, category: string) {
70
+ function createHomematicDevice(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string, category: string) {
73
71
  createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeRawID, rawId, category);
74
72
  createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeCategory, category, category);
75
73
  createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeBaseState, baseState, category);
@@ -78,6 +76,230 @@ export function createHomematicDevice(adapter: any, rawId: number, baseState: st
78
76
  createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDevice, device, category);
79
77
  }
80
78
 
79
+ // Praesenzmelder
80
+ export function createHomematicPraesenzmelder(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
81
+
82
+ // Bei Update alte States löschen:
83
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicPraesenzmelder + "." + rawId;
84
+ if (adapter.existsState(stateFolderDatenpunkt)) {
85
+ adapter.deleteState(stateFolderDatenpunkt);
86
+ }
87
+
88
+ // Neue States anlegen:
89
+ setTimeout(function() {
90
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicPraesenzmelder);
91
+ cachePraesenzmelderArray = null;
92
+ }, 200);
93
+ }
94
+
95
+ // Wetterstation
96
+ export function createHomematicWetterstation(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
97
+
98
+ // Bei Update alte States löschen:
99
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicWetterstation + "." + rawId;
100
+ if (adapter.existsState(stateFolderDatenpunkt)) {
101
+ adapter.deleteState(stateFolderDatenpunkt);
102
+ }
103
+
104
+ // Neue States anlegen:
105
+ setTimeout(function() {
106
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWetterstation);
107
+ cacheWetterstationenArray = null;
108
+ }, 200);
109
+ }
110
+
111
+ // Door
112
+ export function createHomematicDoor(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
113
+
114
+ // Bei Update alte States löschen:
115
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicDoor + "." + rawId;
116
+ if (adapter.existsState(stateFolderDatenpunkt)) {
117
+ adapter.deleteState(stateFolderDatenpunkt);
118
+ }
119
+
120
+ // Neue States anlegen:
121
+ setTimeout(function() {
122
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicDoor);
123
+ cacheDoorsArray = null;
124
+ }, 200);
125
+ }
126
+
127
+ // Rollladen
128
+ export function createHomematicRollladen(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
129
+
130
+ // Bei Update alte States löschen:
131
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicRollladen + "." + rawId;
132
+ if (adapter.existsState(stateFolderDatenpunkt)) {
133
+ adapter.deleteState(stateFolderDatenpunkt);
134
+ }
135
+
136
+ // Neue States anlegen:
137
+ setTimeout(function() {
138
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicRollladen);
139
+ cacheRollladenArray = null;
140
+ }, 200);
141
+ }
142
+
143
+ // Fussbodenheizung
144
+ export function createHomematicFussbodenheizung(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
145
+
146
+ // Bei Update alte States löschen:
147
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicFussbodenheizung + "." + rawId;
148
+ if (adapter.existsState(stateFolderDatenpunkt)) {
149
+ adapter.deleteState(stateFolderDatenpunkt);
150
+ }
151
+
152
+ // Neue States anlegen:
153
+ setTimeout(function() {
154
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicFussbodenheizung);
155
+ cacheFussbodenheizungenArray = null;
156
+ }, 200);
157
+ }
158
+
159
+ // Wandtaster
160
+ export function createHomematicWandtaster(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
161
+
162
+ // Bei Update alte States löschen:
163
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicWandtaster + "." + rawId;
164
+ if (adapter.existsState(stateFolderDatenpunkt)) {
165
+ adapter.deleteState(stateFolderDatenpunkt);
166
+ }
167
+
168
+ // Neue States anlegen:
169
+ setTimeout(function() {
170
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandtaster);
171
+ cacheWandtasterArray = null;
172
+ }, 200);
173
+ }
174
+
175
+ // AccessPoint
176
+ export function createHomematicAccessPoint(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
177
+
178
+ // Bei Update alte States löschen:
179
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicAccessPoint + "." + rawId;
180
+ if (adapter.existsState(stateFolderDatenpunkt)) {
181
+ adapter.deleteState(stateFolderDatenpunkt);
182
+ }
183
+
184
+ // Neue States anlegen:
185
+ setTimeout(function() {
186
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicAccessPoint);
187
+ cacheAccessPointsArray = null;
188
+ }, 200);
189
+ }
190
+
191
+ // Temperatursensor
192
+ export function createHomematicTemperatursensor(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
193
+
194
+ // Bei Update alte States löschen:
195
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicTemperatursensor + "." + rawId;
196
+ if (adapter.existsState(stateFolderDatenpunkt)) {
197
+ adapter.deleteState(stateFolderDatenpunkt);
198
+ }
199
+
200
+ // Neue States anlegen:
201
+ setTimeout(function() {
202
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicTemperatursensor);
203
+ cacheTemperatursensorenArray = null;
204
+ }, 200);
205
+ }
206
+
207
+ // Rauchmelder
208
+ export function createHomematicRauchmelder(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
209
+
210
+ // Bei Update alte States löschen:
211
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicRauchmelder + "." + rawId;
212
+ if (adapter.existsState(stateFolderDatenpunkt)) {
213
+ adapter.deleteState(stateFolderDatenpunkt);
214
+ }
215
+
216
+ // Neue States anlegen:
217
+ setTimeout(function() {
218
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicRauchmelder);
219
+ cacheRauchmelderArray = null;
220
+ }, 200);
221
+ }
222
+
223
+ // FunkSchaltaktor
224
+ export function createHomematicFunkSchaltaktor(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
225
+
226
+ // Bei Update alte States löschen:
227
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicFunkSchaltaktor + "." + rawId;
228
+ if (adapter.existsState(stateFolderDatenpunkt)) {
229
+ adapter.deleteState(stateFolderDatenpunkt);
230
+ }
231
+
232
+ // Neue States anlegen:
233
+ setTimeout(function() {
234
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicFunkSchaltaktor);
235
+ cacheFunkschaltaktorenArray = null;
236
+ }, 200);
237
+ }
238
+
239
+ // Window
240
+ export function createHomematicWindow(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
241
+
242
+ // Bei Update alte States löschen:
243
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicWindow + "." + rawId;
244
+ if (adapter.existsState(stateFolderDatenpunkt)) {
245
+ adapter.deleteState(stateFolderDatenpunkt);
246
+ }
247
+
248
+ // Neue States anlegen:
249
+ setTimeout(function() {
250
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWindow);
251
+ cacheWindowsArray = null;
252
+ }, 200);
253
+ }
254
+
255
+ // Steckdose
256
+ export function createHomematicSteckdose(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
257
+
258
+ // Bei Update alte States löschen:
259
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicSteckdose + "." + rawId;
260
+ if (adapter.existsState(stateFolderDatenpunkt)) {
261
+ adapter.deleteState(stateFolderDatenpunkt);
262
+ }
263
+
264
+ // Neue States anlegen:
265
+ setTimeout(function() {
266
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicSteckdose);
267
+ cacheSteckdosenArray = null;
268
+ }, 200);
269
+ }
270
+
271
+ // Heizkoerper
272
+ export function createHomematicHeizkoerper(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
273
+
274
+ // Bei Update alte States löschen:
275
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicHeizkoerper + "." + rawId;
276
+ if (adapter.existsState(stateFolderDatenpunkt)) {
277
+ adapter.deleteState(stateFolderDatenpunkt);
278
+ }
279
+
280
+ // Neue States anlegen:
281
+ setTimeout(function() {
282
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicHeizkoerper);
283
+ cacheHeizkoerperArray = null;
284
+ }, 200);
285
+ }
286
+
287
+ // Wandthermostat
288
+ export function createHomematicWandthermostat(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string) {
289
+
290
+ // Bei Update alte States löschen:
291
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicWandthermostat + "." + rawId;
292
+ if (adapter.existsState(stateFolderDatenpunkt)) {
293
+ adapter.deleteState(stateFolderDatenpunkt);
294
+ }
295
+
296
+ // Neue States anlegen:
297
+ setTimeout(function() {
298
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandthermostat);
299
+ cacheWandthermostateArray = null;
300
+ }, 200);
301
+ }
302
+
81
303
  // Dimmer:
82
304
  export function createHomeaticDimmer(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string,
83
305
  alexaSmartNamesForOn:string[], alexaActionNamesForOn:string[], alexaLevelSchemeForOn: InstanceType<typeof DimmerAlexaScheme>, alexaSmartNamesForOff: string[],alexaActionNamesForOff: string[],
@@ -85,158 +307,168 @@ export function createHomeaticDimmer(adapter: any, rawId: number, baseState: str
85
307
  tasterBooleanOnScheme1: InstanceType<typeof DimmerTasterScheme>, tasterBooleanOnScheme2: InstanceType<typeof DimmerTasterScheme>, tasterBooleanOnScheme3: InstanceType<typeof DimmerTasterScheme>, tasterBooleanOnScheme4: InstanceType<typeof DimmerTasterScheme>,
86
308
  tasterBooleanOff: string[], nachtbeleuchtung:boolean, turnOffExitHouseSummer:boolean, turnOffExitHouseWinter:boolean, turnOnEnterHouseSummer:boolean, turnOnEnterHouseWinter:boolean) {
87
309
 
88
- // Allgemein:
89
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicDimmer);
90
-
91
- // alexaScheme1: InstanceType<typeof DimmerAlexaScheme>
92
- if (alexaScheme1 != null) {
93
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, true, deviceHomematicDimmer);
94
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme1_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
95
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme1_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
96
- } else {
97
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, false, deviceHomematicDimmer);
98
- }
99
-
100
- // alexaScheme2: InstanceType<typeof DimmerAlexaScheme>
101
- if (alexaScheme2 != null) {
102
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, true, deviceHomematicDimmer);
103
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme2_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
104
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme2_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
105
- } else {
106
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, false, deviceHomematicDimmer);
107
- }
108
-
109
- // alexaScheme3: InstanceType<typeof DimmerAlexaScheme>
110
- if (alexaScheme3 != null) {
111
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, true, deviceHomematicDimmer);
112
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme3_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
113
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme3_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
114
- } else {
115
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, false, deviceHomematicDimmer);
116
- }
117
-
118
- // alexaScheme4: InstanceType<typeof DimmerAlexaScheme>
119
- if (alexaScheme4 != null) {
120
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, true, deviceHomematicDimmer);
121
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme4_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
122
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme4_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
123
- } else {
124
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, false, deviceHomematicDimmer);
125
- }
126
-
127
- if (tasterBooleanOnScheme1 != null) {
128
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, true, deviceHomematicDimmer);
129
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme1_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
130
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme1_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
131
- } else {
132
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, false, deviceHomematicDimmer);
133
- }
134
-
135
- if (tasterBooleanOnScheme2 != null) {
136
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, true, deviceHomematicDimmer);
137
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme2_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
138
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme2_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
139
- } else {
140
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, false, deviceHomematicDimmer);
141
- }
142
-
143
- if (tasterBooleanOnScheme3 != null) {
144
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, true, deviceHomematicDimmer);
145
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme3_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
146
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme3_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
147
- } else {
148
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, false, deviceHomematicDimmer);
149
- }
150
-
151
- if (tasterBooleanOnScheme4 != null) {
152
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, true, deviceHomematicDimmer);
153
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme4_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
154
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme4_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
155
- } else {
156
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, false, deviceHomematicDimmer);
157
- }
158
-
159
- // alexaLevelSchemeForOn: InstanceType<typeof DimmerAlexaScheme>
160
- if (alexaLevelSchemeForOn != null) {
161
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, true, deviceHomematicDimmer);
162
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name, alexaLevelSchemeForOn.getAlexaName(), deviceHomematicDimmer);
163
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level, alexaLevelSchemeForOn.getLevel(), deviceHomematicDimmer);
164
- } else {
165
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, false, deviceHomematicDimmer);
310
+ // Bei Update alte States löschen:
311
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicDimmer + "." + rawId;
312
+ if (adapter.existsState(stateFolderDatenpunkt)) {
313
+ adapter.deleteState(stateFolderDatenpunkt);
166
314
  }
167
315
 
168
- // additionalStates4TurnOff: string[]
169
- let db_additionalStates4TurnOff = null;
170
- tasterBooleanOff.forEach(value => {
171
- if (db_additionalStates4TurnOff == null) {
172
- // @ts-ignore
173
- db_additionalStates4TurnOff = value;
316
+ // Neue States anlegen:
317
+ setTimeout(function() {
318
+ // Allgemein:
319
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicDimmer);
320
+
321
+ // alexaScheme1: InstanceType<typeof DimmerAlexaScheme>
322
+ if (alexaScheme1 != null) {
323
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, true, deviceHomematicDimmer);
324
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme1_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
325
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme1_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
174
326
  } else {
175
- // @ts-ignore
176
- db_additionalStates4TurnOff += "|" + value;
177
- }
178
- });
179
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceHomematicDimmer);
327
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, false, deviceHomematicDimmer);
328
+ }
329
+
330
+ // alexaScheme2: InstanceType<typeof DimmerAlexaScheme>
331
+ if (alexaScheme2 != null) {
332
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, true, deviceHomematicDimmer);
333
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme2_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
334
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme2_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
335
+ } else {
336
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, false, deviceHomematicDimmer);
337
+ }
338
+
339
+ // alexaScheme3: InstanceType<typeof DimmerAlexaScheme>
340
+ if (alexaScheme3 != null) {
341
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, true, deviceHomematicDimmer);
342
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme3_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
343
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme3_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
344
+ } else {
345
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, false, deviceHomematicDimmer);
346
+ }
347
+
348
+ // alexaScheme4: InstanceType<typeof DimmerAlexaScheme>
349
+ if (alexaScheme4 != null) {
350
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, true, deviceHomematicDimmer);
351
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme4_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
352
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme4_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
353
+ } else {
354
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, false, deviceHomematicDimmer);
355
+ }
180
356
 
181
- // alexaSmartNamesForOn:string[]
182
- let db_alexaSmartNamesForOn = null;
183
- alexaSmartNamesForOn.forEach(value => {
184
- if (db_alexaSmartNamesForOn == null) {
185
- // @ts-ignore
186
- db_alexaSmartNamesForOn = value;
357
+ if (tasterBooleanOnScheme1 != null) {
358
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, true, deviceHomematicDimmer);
359
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme1_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
360
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme1_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
187
361
  } else {
188
- // @ts-ignore
189
- db_alexaSmartNamesForOn += "|" + value;
190
- }
191
- });
192
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicDimmer);
362
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, false, deviceHomematicDimmer);
363
+ }
193
364
 
194
- // alexaActionNamesForOn:string[]
195
- let db_alexaActionNamesForOn = null;
196
- alexaActionNamesForOn.forEach(value => {
197
- if (db_alexaActionNamesForOn == null) {
198
- // @ts-ignore
199
- db_alexaActionNamesForOn = value;
365
+ if (tasterBooleanOnScheme2 != null) {
366
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, true, deviceHomematicDimmer);
367
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme2_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
368
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme2_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
200
369
  } else {
201
- // @ts-ignore
202
- db_alexaActionNamesForOn += "|" + value;
203
- }
204
- });
205
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicDimmer);
370
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, false, deviceHomematicDimmer);
371
+ }
206
372
 
207
- // alexaSmartNamesForOff:string[]
208
- let db_alexaSmartNamesForOff = null;
209
- alexaSmartNamesForOff.forEach(value => {
210
- if (db_alexaSmartNamesForOff == null) {
211
- // @ts-ignore
212
- db_alexaSmartNamesForOff = value;
373
+ if (tasterBooleanOnScheme3 != null) {
374
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, true, deviceHomematicDimmer);
375
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme3_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
376
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme3_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
213
377
  } else {
214
- // @ts-ignore
215
- db_alexaSmartNamesForOff += "|" + value;
216
- }
217
- });
218
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicDimmer);
378
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, false, deviceHomematicDimmer);
379
+ }
219
380
 
220
- // alexaActionNamesForOff:string[]
221
- let db_alexaActionNamesForOff = null;
222
- alexaActionNamesForOff.forEach(value => {
223
- if (db_alexaActionNamesForOff == null) {
224
- // @ts-ignore
225
- db_alexaActionNamesForOff = value;
381
+ if (tasterBooleanOnScheme4 != null) {
382
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, true, deviceHomematicDimmer);
383
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme4_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
384
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme4_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
385
+ } else {
386
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, false, deviceHomematicDimmer);
387
+ }
388
+
389
+ // alexaLevelSchemeForOn: InstanceType<typeof DimmerAlexaScheme>
390
+ if (alexaLevelSchemeForOn != null) {
391
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, true, deviceHomematicDimmer);
392
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name, alexaLevelSchemeForOn.getAlexaName(), deviceHomematicDimmer);
393
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level, alexaLevelSchemeForOn.getLevel(), deviceHomematicDimmer);
226
394
  } else {
227
- // @ts-ignore
228
- db_alexaActionNamesForOff += "|" + value;
395
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, false, deviceHomematicDimmer);
229
396
  }
230
- });
231
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicDimmer);
232
397
 
233
- // Weitere:
234
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicDimmer);
235
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicDimmer);
236
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicDimmer);
237
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicDimmer);
238
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicDimmer);
239
- this.clearHomematicCaches(adapter);
398
+ // additionalStates4TurnOff: string[]
399
+ let db_additionalStates4TurnOff = null;
400
+ tasterBooleanOff.forEach(value => {
401
+ if (db_additionalStates4TurnOff == null) {
402
+ // @ts-ignore
403
+ db_additionalStates4TurnOff = value;
404
+ } else {
405
+ // @ts-ignore
406
+ db_additionalStates4TurnOff += "|" + value;
407
+ }
408
+ });
409
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceHomematicDimmer);
410
+
411
+ // alexaSmartNamesForOn:string[]
412
+ let db_alexaSmartNamesForOn = null;
413
+ alexaSmartNamesForOn.forEach(value => {
414
+ if (db_alexaSmartNamesForOn == null) {
415
+ // @ts-ignore
416
+ db_alexaSmartNamesForOn = value;
417
+ } else {
418
+ // @ts-ignore
419
+ db_alexaSmartNamesForOn += "|" + value;
420
+ }
421
+ });
422
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicDimmer);
423
+
424
+ // alexaActionNamesForOn:string[]
425
+ let db_alexaActionNamesForOn = null;
426
+ alexaActionNamesForOn.forEach(value => {
427
+ if (db_alexaActionNamesForOn == null) {
428
+ // @ts-ignore
429
+ db_alexaActionNamesForOn = value;
430
+ } else {
431
+ // @ts-ignore
432
+ db_alexaActionNamesForOn += "|" + value;
433
+ }
434
+ });
435
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicDimmer);
436
+
437
+ // alexaSmartNamesForOff:string[]
438
+ let db_alexaSmartNamesForOff = null;
439
+ alexaSmartNamesForOff.forEach(value => {
440
+ if (db_alexaSmartNamesForOff == null) {
441
+ // @ts-ignore
442
+ db_alexaSmartNamesForOff = value;
443
+ } else {
444
+ // @ts-ignore
445
+ db_alexaSmartNamesForOff += "|" + value;
446
+ }
447
+ });
448
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicDimmer);
449
+
450
+ // alexaActionNamesForOff:string[]
451
+ let db_alexaActionNamesForOff = null;
452
+ alexaActionNamesForOff.forEach(value => {
453
+ if (db_alexaActionNamesForOff == null) {
454
+ // @ts-ignore
455
+ db_alexaActionNamesForOff = value;
456
+ } else {
457
+ // @ts-ignore
458
+ db_alexaActionNamesForOff += "|" + value;
459
+ }
460
+ });
461
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicDimmer);
462
+
463
+ // Weitere:
464
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicDimmer);
465
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicDimmer);
466
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicDimmer);
467
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicDimmer);
468
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicDimmer);
469
+ cacheDimmerArray = null;
470
+ }, 200);
471
+
240
472
  }
241
473
 
242
474
  // Wandschalter:
@@ -244,69 +476,77 @@ export function createHomeaticWandschalter(adapter:any, rawId: number, baseState
244
476
  alexaSmartNamesForOn:string[], alexaActionNamesForOn:string[], alexaSmartNamesForOff: string[],alexaActionNamesForOff: string[],
245
477
  nachtbeleuchtung:boolean, turnOffExitHouseSummer:boolean, turnOffExitHouseWinter:boolean, turnOnEnterHouseSummer:boolean, turnOnEnterHouseWinter:boolean) {
246
478
 
247
- // Allgemein:
248
- //export function createHomematicDevice(adapter: any, rawId: number, baseState: string, etage: string, raum: string, device: string, category: string) {
249
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandschalter);
250
-
251
- // alexaSmartNamesForOn:string[]
252
- let db_alexaSmartNamesForOn = null;
253
- alexaSmartNamesForOn.forEach(value => {
254
- if (db_alexaSmartNamesForOn == null) {
255
- // @ts-ignore
256
- db_alexaSmartNamesForOn = value;
257
- } else {
258
- // @ts-ignore
259
- db_alexaSmartNamesForOn += "|" + value;
260
- }
261
- });
262
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicWandschalter);
263
-
264
- // alexaActionNamesForOn:string[]
265
- let db_alexaActionNamesForOn = null;
266
- alexaActionNamesForOn.forEach(value => {
267
- if (db_alexaActionNamesForOn == null) {
268
- // @ts-ignore
269
- db_alexaActionNamesForOn = value;
270
- } else {
271
- // @ts-ignore
272
- db_alexaActionNamesForOn += "|" + value;
273
- }
274
- });
275
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicWandschalter);
276
-
277
- // alexaSmartNamesForOff:string[]
278
- let db_alexaSmartNamesForOff = null;
279
- alexaSmartNamesForOff.forEach(value => {
280
- if (db_alexaSmartNamesForOff == null) {
281
- // @ts-ignore
282
- db_alexaSmartNamesForOff = value;
283
- } else {
284
- // @ts-ignore
285
- db_alexaSmartNamesForOff += "|" + value;
286
- }
287
- });
288
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicWandschalter);
289
-
290
- // alexaActionNamesForOff:string[]
291
- let db_alexaActionNamesForOff = null;
292
- alexaActionNamesForOff.forEach(value => {
293
- if (db_alexaActionNamesForOff == null) {
294
- // @ts-ignore
295
- db_alexaActionNamesForOff = value;
296
- } else {
297
- // @ts-ignore
298
- db_alexaActionNamesForOff += "|" + value;
299
- }
300
- });
301
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicWandschalter);
479
+ // Bei Update alte States löschen:
480
+ let stateFolderDatenpunkt = "0_userdata.0.devices.homematic." + deviceHomematicWandschalter + "." + rawId;
481
+ if (adapter.existsState(stateFolderDatenpunkt)) {
482
+ adapter.deleteState(stateFolderDatenpunkt);
483
+ }
302
484
 
303
- // Weitere:
304
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicWandschalter);
305
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicWandschalter);
306
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicWandschalter);
307
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicWandschalter);
308
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicWandschalter);
309
- this.clearHomematicCaches(adapter);
485
+ // Neue States anlegen:
486
+ setTimeout(function() {
487
+ // Allgemein:
488
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandschalter);
489
+
490
+ // alexaSmartNamesForOn:string[]
491
+ let db_alexaSmartNamesForOn = null;
492
+ alexaSmartNamesForOn.forEach(value => {
493
+ if (db_alexaSmartNamesForOn == null) {
494
+ // @ts-ignore
495
+ db_alexaSmartNamesForOn = value;
496
+ } else {
497
+ // @ts-ignore
498
+ db_alexaSmartNamesForOn += "|" + value;
499
+ }
500
+ });
501
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicWandschalter);
502
+
503
+ // alexaActionNamesForOn:string[]
504
+ let db_alexaActionNamesForOn = null;
505
+ alexaActionNamesForOn.forEach(value => {
506
+ if (db_alexaActionNamesForOn == null) {
507
+ // @ts-ignore
508
+ db_alexaActionNamesForOn = value;
509
+ } else {
510
+ // @ts-ignore
511
+ db_alexaActionNamesForOn += "|" + value;
512
+ }
513
+ });
514
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicWandschalter);
515
+
516
+ // alexaSmartNamesForOff:string[]
517
+ let db_alexaSmartNamesForOff = null;
518
+ alexaSmartNamesForOff.forEach(value => {
519
+ if (db_alexaSmartNamesForOff == null) {
520
+ // @ts-ignore
521
+ db_alexaSmartNamesForOff = value;
522
+ } else {
523
+ // @ts-ignore
524
+ db_alexaSmartNamesForOff += "|" + value;
525
+ }
526
+ });
527
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicWandschalter);
528
+
529
+ // alexaActionNamesForOff:string[]
530
+ let db_alexaActionNamesForOff = null;
531
+ alexaActionNamesForOff.forEach(value => {
532
+ if (db_alexaActionNamesForOff == null) {
533
+ // @ts-ignore
534
+ db_alexaActionNamesForOff = value;
535
+ } else {
536
+ // @ts-ignore
537
+ db_alexaActionNamesForOff += "|" + value;
538
+ }
539
+ });
540
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicWandschalter);
541
+
542
+ // Weitere:
543
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicWandschalter);
544
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicWandschalter);
545
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicWandschalter);
546
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicWandschalter);
547
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicWandschalter);
548
+ cacheWandschalterArray = null;
549
+ }, 200);
310
550
  }
311
551
 
312
552
  function createDatenpunktSingle(adapter: any, deviceRawId, attributeType, attributeName, attributeValue, category) {
@@ -969,5 +1209,4 @@ function getEtageSortIndex(etage: string) {
969
1209
 
970
1210
 
971
1211
 
972
-
973
- module.exports = { createHomematicDevice, createHomeaticDimmer, createHomeaticWandschalter, loadHomematicWandthermostate, loadHomematicPraesenzmelder, loadHomematicWetterstationen, loadHomematicDoors, loadHomematicRollladen, loadHomematicWandschalter, loadHomematicFussbodenheizungen, loadHomematicWandtaster, loadHomematicAccessPoints, loadHomematicTemperatursensoren, loadHomematicRauchmelder, loadHomematicFunktschaltaktoren, loadHomematicWindows, loadHomematicSteckdosen, loadHomematicHeizkoerper, loadHomematicDimmer, loadHomematicDevicesAll, clearHomematicCaches };
1212
+ module.exports = { createHomematicHeizkoerper, createHomematicWindow, createHomematicFunkSchaltaktor, createHomematicRauchmelder, createHomematicTemperatursensor, createHomematicAccessPoint, createHomematicWandtaster, createHomematicPraesenzmelder, createHomematicWandthermostat, createHomematicWetterstation, createHomematicDoor, createHomematicRollladen, createHomematicFussbodenheizung, createHomeaticDimmer, createHomeaticWandschalter, loadHomematicWandthermostate, loadHomematicPraesenzmelder, loadHomematicWetterstationen, loadHomematicDoors, loadHomematicRollladen, loadHomematicWandschalter, loadHomematicFussbodenheizungen, loadHomematicWandtaster, loadHomematicAccessPoints, loadHomematicTemperatursensoren, loadHomematicRauchmelder, loadHomematicFunktschaltaktoren, loadHomematicWindows, loadHomematicSteckdosen, loadHomematicHeizkoerper, loadHomematicDimmer, loadHomematicDevicesAll, clearHomematicCaches };