iobroker-ucl 1.4.9 → 1.4.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,954 +1,953 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadHomematicDevicesAll = exports.loadHomematicDimmer = exports.loadHomematicHeizkoerper = exports.loadHomematicSteckdosen = exports.loadHomematicWindows = exports.loadHomematicFunktschaltaktoren = exports.loadHomematicRauchmelder = exports.loadHomematicTemperatursensoren = exports.loadHomematicAccessPoints = exports.loadHomematicWandtaster = exports.loadHomematicFussbodenheizungen = exports.loadHomematicWandschalter = exports.loadHomematicDoors = exports.loadHomematicWetterstationen = exports.loadHomematicPraesenzmelder = exports.loadHomematicWandthermostate = exports.loadHomematicRollladen = exports.createHomematicWandschalter = exports.createHomematicDimmer = exports.createHomematicWandthermostat = exports.createHomematicHeizkoerper = exports.createHomematicSteckdose = exports.createHomematicWindow = exports.createHomematicFunkSchaltaktor = exports.createHomematicRauchmelder = exports.createHomematicTemperatursensor = exports.createHomematicAccessPoint = exports.createHomematicWandtaster = exports.createHomematicFussbodenheizung = exports.createHomematicRollladen = exports.createHomematicDoor = exports.createHomematicWetterstation = exports.createHomematicPraesenzmelder = void 0;
4
- var _a = require('./homematicClasses.js'), HomematicWindow = _a.HomematicWindow, HomematicSteckdose = _a.HomematicSteckdose, HomematicHeizkoerper = _a.HomematicHeizkoerper, HomematicDimmer = _a.HomematicDimmer, HomematicWandthermostat = _a.HomematicWandthermostat, HomematicFussbodenheizung = _a.HomematicFussbodenheizung, HomematicWandschalter = _a.HomematicWandschalter, HomematicDoor = _a.HomematicDoor, HomematicWetterstation = _a.HomematicWetterstation, HomematicAccessPoint = _a.HomematicAccessPoint, HomematicRollladen = _a.HomematicRollladen, HomematicWandtaster = _a.HomematicWandtaster, HomematicTemperatursensor = _a.HomematicTemperatursensor, HomematicRauchmelder = _a.HomematicRauchmelder, HomematicPraesenzmelder = _a.HomematicPraesenzmelder, AbstractHomematic = _a.AbstractHomematic, HomematicFunkschaltaktor = _a.HomematicFunkschaltaktor, DimmerAlexaScheme = _a.DimmerAlexaScheme, DimmerTasterScheme = _a.DimmerTasterScheme, deviceHomematicWandthermostat = _a.deviceHomematicWandthermostat, deviceHomematicPraesenzmelder = _a.deviceHomematicPraesenzmelder, deviceHomematicWetterstation = _a.deviceHomematicWetterstation, deviceHomematicDoor = _a.deviceHomematicDoor, deviceHomematicRollladen = _a.deviceHomematicRollladen, deviceHomematicWandschalter = _a.deviceHomematicWandschalter, deviceHomematicFussbodenheizung = _a.deviceHomematicFussbodenheizung, deviceHomematicWandtaster = _a.deviceHomematicWandtaster, deviceHomematicAccessPoint = _a.deviceHomematicAccessPoint, deviceHomematicTemperatursensor = _a.deviceHomematicTemperatursensor, deviceHomematicRauchmelder = _a.deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor = _a.deviceHomematicFunkSchaltaktor, deviceHomematicWindow = _a.deviceHomematicWindow, deviceHomematicSteckdose = _a.deviceHomematicSteckdose, deviceHomematicHeizkoerper = _a.deviceHomematicHeizkoerper, deviceHomematicDimmer = _a.deviceHomematicDimmer;
5
- var attributeRawID = "rawId";
6
- var attributeBaseState = "baseState";
7
- var attributeEtage = "etage";
8
- var attributeRaum = "raum";
9
- var attributeDevice = "device";
10
- var attributeCategory = "category";
11
- // Datenpunkttyp:
12
- var attributeTypeNumber = "number";
13
- var attributeTypeString = "string";
14
- var attributeTypeBoolean = "boolean";
15
- // Alexa:
16
- var attribute_AlexaSmartNamesForOn = "alexaSmartNamesForOn";
17
- var attribute_AlexaActionNamesForOn = "alexaActionNamesForOn";
18
- var attribute_AlexaSmartNamesForOff = "alexaSmartNamesForOff";
19
- var attribute_AlexaActionNamesForOff = "alexaActionNamesForOff";
20
- // Lampen/Steckdosen allgemein:
21
- var attribute_TasterBooleanOn = "tasterBooleanOn";
22
- var attribute_TasterBooleanOff = "tasterBooleanOff";
23
- var attribute_Nachtbeleuchtung = "nachtbeleuchtung";
24
- var attribute_TurnOffExitHouseSummer = "turnOffExitHouseSummer";
25
- var attribute_TurnOffExitHouseWinter = "turnOffExitHouseWinter";
26
- var attribute_TurnOnEnterHouseSummer = "turnOnEnterHouseSummer";
27
- var attribute_TurnOnEnterHouseWinter = "turnOnEnterHouseWinter";
28
- // Scheme Dimmer:
29
- var attributeDimmer_alexaScheme_aktiv = "alexaScheme_aktiv";
30
- var attributeDimmer_alexaScheme_name = "alexaScheme_name";
31
- var attributeDimmer_alexaScheme_level = "alexaScheme_level";
32
- // Scheme Dimmer:
33
- var attributeDimmer_alexaScheme1_aktiv = "alexaScheme1_aktiv";
34
- var attributeDimmer_alexaScheme1_name = "alexaScheme1_name";
35
- var attributeDimmer_alexaScheme1_level = "alexaScheme1_level";
36
- var attributeDimmer_alexaScheme2_aktiv = "alexaScheme2_aktiv";
37
- var attributeDimmer_alexaScheme2_name = "alexaScheme2_name";
38
- var attributeDimmer_alexaScheme2_level = "alexaScheme2_level";
39
- var attributeDimmer_alexaScheme3_aktiv = "alexaScheme3_aktiv";
40
- var attributeDimmer_alexaScheme3_name = "alexaScheme3_name";
41
- var attributeDimmer_alexaScheme3_level = "alexaScheme3_level";
42
- var attributeDimmer_alexaScheme4_aktiv = "alexaScheme4_aktiv";
43
- var attributeDimmer_alexaScheme4_name = "alexaScheme4_name";
44
- var attributeDimmer_alexaScheme4_level = "alexaScheme4_level";
45
- // Scheme Dimmer:
46
- var attributeDimmer_tasterScheme1_aktiv = "tasterScheme1_aktiv";
47
- var attributeDimmer_tasterScheme1_name = "tasterScheme1_name";
48
- var attributeDimmer_tasterScheme1_level = "tasterScheme1_level";
49
- var attributeDimmer_tasterScheme2_aktiv = "tasterScheme2_aktiv";
50
- var attributeDimmer_tasterScheme2_name = "tasterScheme2_name";
51
- var attributeDimmer_tasterScheme2_level = "tasterScheme2_level";
52
- var attributeDimmer_tasterScheme3_aktiv = "tasterScheme3_aktiv";
53
- var attributeDimmer_tasterScheme3_name = "tasterScheme3_name";
54
- var attributeDimmer_tasterScheme3_level = "tasterScheme3_level";
55
- var attributeDimmer_tasterScheme4_aktiv = "tasterScheme4_aktiv";
56
- var attributeDimmer_tasterScheme4_name = "tasterScheme4_name";
57
- var attributeDimmer_tasterScheme4_level = "tasterScheme4_level";
58
- function createHomematicDevice(adapter, rawId, baseState, etage, raum, device, category) {
59
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeRawID, rawId, category);
60
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeCategory, category, category);
61
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeBaseState, baseState, category);
62
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeEtage, etage, category);
63
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeRaum, raum, category);
64
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDevice, device, category);
65
- }
66
- // Praesenzmelder
67
- function createHomematicPraesenzmelder(adapter, rawId, baseState, etage, raum, device) {
68
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicPraesenzmelder);
69
- }
70
- exports.createHomematicPraesenzmelder = createHomematicPraesenzmelder;
71
- // Wetterstation
72
- function createHomematicWetterstation(adapter, rawId, baseState, etage, raum, device) {
73
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWetterstation);
74
- }
75
- exports.createHomematicWetterstation = createHomematicWetterstation;
76
- // Door
77
- function createHomematicDoor(adapter, rawId, baseState, etage, raum, device) {
78
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicDoor);
79
- }
80
- exports.createHomematicDoor = createHomematicDoor;
81
- // Rollladen
82
- function createHomematicRollladen(adapter, rawId, baseState, etage, raum, device) {
83
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicRollladen);
84
- }
85
- exports.createHomematicRollladen = createHomematicRollladen;
86
- // Fussbodenheizung
87
- function createHomematicFussbodenheizung(adapter, rawId, baseState, etage, raum, device) {
88
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicFussbodenheizung);
89
- }
90
- exports.createHomematicFussbodenheizung = createHomematicFussbodenheizung;
91
- // Wandtaster
92
- function createHomematicWandtaster(adapter, rawId, baseState, etage, raum, device) {
93
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandtaster);
94
- }
95
- exports.createHomematicWandtaster = createHomematicWandtaster;
96
- // AccessPoint
97
- function createHomematicAccessPoint(adapter, rawId, baseState, etage, raum, device) {
98
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicAccessPoint);
99
- }
100
- exports.createHomematicAccessPoint = createHomematicAccessPoint;
101
- // Temperatursensor
102
- function createHomematicTemperatursensor(adapter, rawId, baseState, etage, raum, device) {
103
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicTemperatursensor);
104
- }
105
- exports.createHomematicTemperatursensor = createHomematicTemperatursensor;
106
- // Rauchmelder
107
- function createHomematicRauchmelder(adapter, rawId, baseState, etage, raum, device) {
108
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicRauchmelder);
109
- }
110
- exports.createHomematicRauchmelder = createHomematicRauchmelder;
111
- // FunkSchaltaktor
112
- function createHomematicFunkSchaltaktor(adapter, rawId, baseState, etage, raum, device) {
113
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicFunkSchaltaktor);
114
- }
115
- exports.createHomematicFunkSchaltaktor = createHomematicFunkSchaltaktor;
116
- // Window
117
- function createHomematicWindow(adapter, rawId, baseState, etage, raum, device) {
118
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWindow);
119
- }
120
- exports.createHomematicWindow = createHomematicWindow;
121
- // Steckdose
122
- function createHomematicSteckdose(adapter, rawId, baseState, etage, raum, device) {
123
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicSteckdose);
124
- }
125
- exports.createHomematicSteckdose = createHomematicSteckdose;
126
- // Heizkoerper
127
- function createHomematicHeizkoerper(adapter, rawId, baseState, etage, raum, device) {
128
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicHeizkoerper);
129
- }
130
- exports.createHomematicHeizkoerper = createHomematicHeizkoerper;
131
- // Wandthermostat
132
- function createHomematicWandthermostat(adapter, rawId, baseState, etage, raum, device) {
133
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandthermostat);
134
- }
135
- exports.createHomematicWandthermostat = createHomematicWandthermostat;
136
- // Dimmer:
137
- function createHomematicDimmer(adapter, rawId, baseState, etage, raum, device, alexaSmartNamesForOn, alexaActionNamesForOn, alexaLevelSchemeForOn, alexaSmartNamesForOff, alexaActionNamesForOff, alexaScheme1, alexaScheme2, alexaScheme3, alexaScheme4, tasterBooleanOnScheme1, tasterBooleanOnScheme2, tasterBooleanOnScheme3, tasterBooleanOnScheme4, tasterBooleanOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
138
- // Allgemein:
139
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicDimmer);
140
- // alexaScheme1: InstanceType<typeof DimmerAlexaScheme>
141
- if (alexaScheme1 != null) {
142
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, true, deviceHomematicDimmer);
143
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme1_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
144
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme1_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
145
- }
146
- else {
147
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, false, deviceHomematicDimmer);
148
- }
149
- // alexaScheme2: InstanceType<typeof DimmerAlexaScheme>
150
- if (alexaScheme2 != null) {
151
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, true, deviceHomematicDimmer);
152
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme2_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
153
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme2_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
154
- }
155
- else {
156
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, false, deviceHomematicDimmer);
157
- }
158
- // alexaScheme3: InstanceType<typeof DimmerAlexaScheme>
159
- if (alexaScheme3 != null) {
160
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, true, deviceHomematicDimmer);
161
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme3_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
162
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme3_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
163
- }
164
- else {
165
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, false, deviceHomematicDimmer);
166
- }
167
- // alexaScheme4: InstanceType<typeof DimmerAlexaScheme>
168
- if (alexaScheme4 != null) {
169
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, true, deviceHomematicDimmer);
170
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme4_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
171
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme4_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
172
- }
173
- else {
174
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, false, deviceHomematicDimmer);
175
- }
176
- if (tasterBooleanOnScheme1 != null) {
177
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, true, deviceHomematicDimmer);
178
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme1_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
179
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme1_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
180
- }
181
- else {
182
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, false, deviceHomematicDimmer);
183
- }
184
- if (tasterBooleanOnScheme2 != null) {
185
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, true, deviceHomematicDimmer);
186
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme2_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
187
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme2_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
188
- }
189
- else {
190
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, false, deviceHomematicDimmer);
191
- }
192
- if (tasterBooleanOnScheme3 != null) {
193
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, true, deviceHomematicDimmer);
194
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme3_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
195
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme3_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
196
- }
197
- else {
198
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, false, deviceHomematicDimmer);
199
- }
200
- if (tasterBooleanOnScheme4 != null) {
201
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, true, deviceHomematicDimmer);
202
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme4_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
203
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme4_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
204
- }
205
- else {
206
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, false, deviceHomematicDimmer);
207
- }
208
- // alexaLevelSchemeForOn: InstanceType<typeof DimmerAlexaScheme>
209
- if (alexaLevelSchemeForOn != null) {
210
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, true, deviceHomematicDimmer);
211
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name, alexaLevelSchemeForOn.getAlexaName(), deviceHomematicDimmer);
212
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level, alexaLevelSchemeForOn.getLevel(), deviceHomematicDimmer);
213
- }
214
- else {
215
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, false, deviceHomematicDimmer);
216
- }
217
- // additionalStates4TurnOff: string[]
218
- var db_additionalStates4TurnOff = null;
219
- tasterBooleanOff.forEach(function (value) {
220
- if (db_additionalStates4TurnOff == null) {
221
- // @ts-ignore
222
- db_additionalStates4TurnOff = value;
223
- }
224
- else {
225
- // @ts-ignore
226
- db_additionalStates4TurnOff += "|" + value;
227
- }
228
- });
229
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceHomematicDimmer);
230
- // alexaSmartNamesForOn:string[]
231
- var db_alexaSmartNamesForOn = null;
232
- alexaSmartNamesForOn.forEach(function (value) {
233
- if (db_alexaSmartNamesForOn == null) {
234
- // @ts-ignore
235
- db_alexaSmartNamesForOn = value;
236
- }
237
- else {
238
- // @ts-ignore
239
- db_alexaSmartNamesForOn += "|" + value;
240
- }
241
- });
242
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicDimmer);
243
- // alexaActionNamesForOn:string[]
244
- var db_alexaActionNamesForOn = null;
245
- alexaActionNamesForOn.forEach(function (value) {
246
- if (db_alexaActionNamesForOn == null) {
247
- // @ts-ignore
248
- db_alexaActionNamesForOn = value;
249
- }
250
- else {
251
- // @ts-ignore
252
- db_alexaActionNamesForOn += "|" + value;
253
- }
254
- });
255
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicDimmer);
256
- // alexaSmartNamesForOff:string[]
257
- var db_alexaSmartNamesForOff = null;
258
- alexaSmartNamesForOff.forEach(function (value) {
259
- if (db_alexaSmartNamesForOff == null) {
260
- // @ts-ignore
261
- db_alexaSmartNamesForOff = value;
262
- }
263
- else {
264
- // @ts-ignore
265
- db_alexaSmartNamesForOff += "|" + value;
266
- }
267
- });
268
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicDimmer);
269
- // alexaActionNamesForOff:string[]
270
- var db_alexaActionNamesForOff = null;
271
- alexaActionNamesForOff.forEach(function (value) {
272
- if (db_alexaActionNamesForOff == null) {
273
- // @ts-ignore
274
- db_alexaActionNamesForOff = value;
275
- }
276
- else {
277
- // @ts-ignore
278
- db_alexaActionNamesForOff += "|" + value;
279
- }
280
- });
281
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicDimmer);
282
- // Weitere:
283
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicDimmer);
284
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicDimmer);
285
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicDimmer);
286
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicDimmer);
287
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicDimmer);
288
- }
289
- exports.createHomematicDimmer = createHomematicDimmer;
290
- // Wandschalter:
291
- function createHomematicWandschalter(adapter, rawId, baseState, etage, raum, device, alexaSmartNamesForOn, alexaActionNamesForOn, alexaSmartNamesForOff, alexaActionNamesForOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
292
- // Allgemein:
293
- createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandschalter);
294
- // alexaSmartNamesForOn:string[]
295
- var db_alexaSmartNamesForOn = null;
296
- alexaSmartNamesForOn.forEach(function (value) {
297
- if (db_alexaSmartNamesForOn == null) {
298
- // @ts-ignore
299
- db_alexaSmartNamesForOn = value;
300
- }
301
- else {
302
- // @ts-ignore
303
- db_alexaSmartNamesForOn += "|" + value;
304
- }
305
- });
306
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicWandschalter);
307
- // alexaActionNamesForOn:string[]
308
- var db_alexaActionNamesForOn = null;
309
- alexaActionNamesForOn.forEach(function (value) {
310
- if (db_alexaActionNamesForOn == null) {
311
- // @ts-ignore
312
- db_alexaActionNamesForOn = value;
313
- }
314
- else {
315
- // @ts-ignore
316
- db_alexaActionNamesForOn += "|" + value;
317
- }
318
- });
319
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicWandschalter);
320
- // alexaSmartNamesForOff:string[]
321
- var db_alexaSmartNamesForOff = null;
322
- alexaSmartNamesForOff.forEach(function (value) {
323
- if (db_alexaSmartNamesForOff == null) {
324
- // @ts-ignore
325
- db_alexaSmartNamesForOff = value;
326
- }
327
- else {
328
- // @ts-ignore
329
- db_alexaSmartNamesForOff += "|" + value;
330
- }
331
- });
332
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicWandschalter);
333
- // alexaActionNamesForOff:string[]
334
- var db_alexaActionNamesForOff = null;
335
- alexaActionNamesForOff.forEach(function (value) {
336
- if (db_alexaActionNamesForOff == null) {
337
- // @ts-ignore
338
- db_alexaActionNamesForOff = value;
339
- }
340
- else {
341
- // @ts-ignore
342
- db_alexaActionNamesForOff += "|" + value;
343
- }
344
- });
345
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicWandschalter);
346
- // Weitere:
347
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicWandschalter);
348
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicWandschalter);
349
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicWandschalter);
350
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicWandschalter);
351
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicWandschalter);
352
- }
353
- exports.createHomematicWandschalter = createHomematicWandschalter;
354
- function createDatenpunktSingle(adapter, deviceRawId, attributeType, attributeName, attributeValue, category) {
355
- var stateDatenpunkt = "0_userdata.0.devices.homematic." + category + "." + deviceRawId + "." + attributeName;
356
- adapter.createState(stateDatenpunkt, attributeValue, {
357
- name: "H" + deviceRawId.toString().padStart(2, '0'),
358
- desc: "",
359
- type: attributeType,
360
- read: true,
361
- write: true
362
- });
363
- }
364
- var cacheRollladenArray = null;
365
- function loadHomematicRollladen(adapter) {
366
- if (cacheRollladenArray != null) {
367
- return cacheRollladenArray;
368
- }
369
- // @ts-ignore
370
- cacheRollladenArray = [];
371
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
372
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
373
- if (adapter.getState(datenpunktKey).val == deviceHomematicRollladen) {
374
- // @ts-ignore
375
- cacheRollladenArray.push(new HomematicRollladen(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
376
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
377
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
378
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
379
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
380
- ));
381
- }
382
- });
383
- cacheRollladenArray = sortArray(cacheRollladenArray);
384
- return cacheRollladenArray;
385
- }
386
- exports.loadHomematicRollladen = loadHomematicRollladen;
387
- var cacheWandthermostateArray = null;
388
- function loadHomematicWandthermostate(adapter) {
389
- if (cacheWandthermostateArray != null) {
390
- return cacheWandthermostateArray;
391
- }
392
- // @ts-ignore
393
- cacheWandthermostateArray = [];
394
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
395
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
396
- if (adapter.getState(datenpunktKey).val == deviceHomematicWandthermostat) {
397
- // @ts-ignore
398
- cacheWandthermostateArray.push(new HomematicWandthermostat(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
399
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
400
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
401
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
402
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
403
- ));
404
- }
405
- });
406
- cacheWandthermostateArray = sortArray(cacheWandthermostateArray);
407
- return cacheWandthermostateArray;
408
- }
409
- exports.loadHomematicWandthermostate = loadHomematicWandthermostate;
410
- var cachePraesenzmelderArray = null;
411
- function loadHomematicPraesenzmelder(adapter) {
412
- if (cachePraesenzmelderArray != null) {
413
- return cachePraesenzmelderArray;
414
- }
415
- // @ts-ignore
416
- cachePraesenzmelderArray = [];
417
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
418
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
419
- if (adapter.getState(datenpunktKey).val == deviceHomematicPraesenzmelder) {
420
- // @ts-ignore
421
- cachePraesenzmelderArray.push(new HomematicPraesenzmelder(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
422
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
423
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
424
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
425
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
426
- ));
427
- }
428
- });
429
- cachePraesenzmelderArray = sortArray(cachePraesenzmelderArray);
430
- return cachePraesenzmelderArray;
431
- }
432
- exports.loadHomematicPraesenzmelder = loadHomematicPraesenzmelder;
433
- var cacheWetterstationenArray = null;
434
- function loadHomematicWetterstationen(adapter) {
435
- if (cacheWetterstationenArray != null) {
436
- return cacheWetterstationenArray;
437
- }
438
- // @ts-ignore
439
- cacheWetterstationenArray = [];
440
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
441
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
442
- if (adapter.getState(datenpunktKey).val == deviceHomematicWetterstation) {
443
- // @ts-ignore
444
- cacheWetterstationenArray.push(new HomematicWetterstation(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
445
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
446
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
447
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
448
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
449
- ));
450
- }
451
- });
452
- cacheWetterstationenArray = sortArray(cacheWetterstationenArray);
453
- return cacheWetterstationenArray;
454
- }
455
- exports.loadHomematicWetterstationen = loadHomematicWetterstationen;
456
- var cacheDoorsArray = null;
457
- function loadHomematicDoors(adapter) {
458
- if (cacheDoorsArray != null) {
459
- return cacheDoorsArray;
460
- }
461
- // @ts-ignore
462
- cacheDoorsArray = [];
463
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
464
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
465
- if (adapter.getState(datenpunktKey).val == deviceHomematicDoor) {
466
- // @ts-ignore
467
- cacheDoorsArray.push(new HomematicDoor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
468
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
469
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
470
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
471
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
472
- ));
473
- }
474
- });
475
- cacheDoorsArray = sortArray(cacheDoorsArray);
476
- return cacheDoorsArray;
477
- }
478
- exports.loadHomematicDoors = loadHomematicDoors;
479
- var cacheWandschalterArray = null;
480
- function loadHomematicWandschalter(adapter) {
481
- if (cacheWandschalterArray != null) {
482
- return cacheWandschalterArray;
483
- }
484
- // @ts-ignore
485
- cacheWandschalterArray = [];
486
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
487
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
488
- if (adapter.getState(datenpunktKey).val == deviceHomematicWandschalter) {
489
- // @ts-ignore
490
- cacheWandschalterArray.push(new HomematicWandschalter(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
491
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
492
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
493
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
494
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [4] Device (z.B. Stehlampe)
495
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
496
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
497
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
498
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOff).val), // [10] Alexa-Action Aus, z.B. "Gute Nacht". Wir müssen hier zu [09] unterscheiden, da wir über "Gute Nacht" und isActionTurnedOn=true informiert werden.
499
- adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
500
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
501
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
502
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
503
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
504
- ));
505
- }
506
- });
507
- cacheWandschalterArray = sortArray(cacheWandschalterArray);
508
- return cacheWandschalterArray;
509
- }
510
- exports.loadHomematicWandschalter = loadHomematicWandschalter;
511
- var cacheFussbodenheizungenArray = null;
512
- function loadHomematicFussbodenheizungen(adapter) {
513
- if (cacheFussbodenheizungenArray != null) {
514
- return cacheFussbodenheizungenArray;
515
- }
516
- // @ts-ignore
517
- cacheFussbodenheizungenArray = [];
518
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
519
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
520
- if (adapter.getState(datenpunktKey).val == deviceHomematicFussbodenheizung) {
521
- // @ts-ignore
522
- cacheFussbodenheizungenArray.push(new HomematicFussbodenheizung(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
523
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
524
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
525
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
526
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
527
- ));
528
- }
529
- });
530
- cacheFussbodenheizungenArray = sortArray(cacheFussbodenheizungenArray);
531
- return cacheFussbodenheizungenArray;
532
- }
533
- exports.loadHomematicFussbodenheizungen = loadHomematicFussbodenheizungen;
534
- var cacheWandtasterArray = null;
535
- function loadHomematicWandtaster(adapter) {
536
- if (cacheWandtasterArray != null) {
537
- return cacheWandtasterArray;
538
- }
539
- // @ts-ignore
540
- cacheWandtasterArray = [];
541
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
542
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
543
- if (adapter.getState(datenpunktKey).val == deviceHomematicWandtaster) {
544
- // @ts-ignore
545
- cacheWandtasterArray.push(new HomematicWandtaster(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
546
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
547
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
548
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
549
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
550
- ));
551
- }
552
- });
553
- cacheWandtasterArray = sortArray(cacheWandtasterArray);
554
- return cacheWandtasterArray;
555
- }
556
- exports.loadHomematicWandtaster = loadHomematicWandtaster;
557
- var cacheAccessPointsArray = null;
558
- function loadHomematicAccessPoints(adapter) {
559
- if (cacheAccessPointsArray != null) {
560
- return cacheAccessPointsArray;
561
- }
562
- // @ts-ignore
563
- cacheAccessPointsArray = [];
564
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
565
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
566
- if (adapter.getState(datenpunktKey).val == deviceHomematicAccessPoint) {
567
- // @ts-ignore
568
- cacheAccessPointsArray.push(new HomematicAccessPoint(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
569
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
570
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
571
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
572
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
573
- ));
574
- }
575
- });
576
- cacheAccessPointsArray = sortArray(cacheAccessPointsArray);
577
- return cacheAccessPointsArray;
578
- }
579
- exports.loadHomematicAccessPoints = loadHomematicAccessPoints;
580
- var cacheTemperatursensorenArray = null;
581
- function loadHomematicTemperatursensoren(adapter) {
582
- if (cacheTemperatursensorenArray != null) {
583
- return cacheTemperatursensorenArray;
584
- }
585
- // @ts-ignore
586
- cacheTemperatursensorenArray = [];
587
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
588
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
589
- if (adapter.getState(datenpunktKey).val == deviceHomematicTemperatursensor) {
590
- // @ts-ignore
591
- cacheTemperatursensorenArray.push(new HomematicTemperatursensor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
592
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
593
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
594
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
595
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
596
- ));
597
- }
598
- });
599
- cacheTemperatursensorenArray = sortArray(cacheTemperatursensorenArray);
600
- return cacheTemperatursensorenArray;
601
- }
602
- exports.loadHomematicTemperatursensoren = loadHomematicTemperatursensoren;
603
- var cacheRauchmelderArray = null;
604
- function loadHomematicRauchmelder(adapter) {
605
- if (cacheRauchmelderArray != null) {
606
- return cacheRauchmelderArray;
607
- }
608
- // @ts-ignore
609
- cacheRauchmelderArray = [];
610
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
611
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
612
- if (adapter.getState(datenpunktKey).val == deviceHomematicRauchmelder) {
613
- // @ts-ignore
614
- cacheRauchmelderArray.push(new HomematicRauchmelder(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
615
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
616
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
617
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
618
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
619
- ));
620
- }
621
- });
622
- cacheRauchmelderArray = sortArray(cacheRauchmelderArray);
623
- return cacheRauchmelderArray;
624
- }
625
- exports.loadHomematicRauchmelder = loadHomematicRauchmelder;
626
- var cacheFunkschaltaktorenArray = null;
627
- function loadHomematicFunktschaltaktoren(adapter) {
628
- if (cacheFunkschaltaktorenArray != null) {
629
- return cacheFunkschaltaktorenArray;
630
- }
631
- // @ts-ignore
632
- cacheFunkschaltaktorenArray = [];
633
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
634
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
635
- if (adapter.getState(datenpunktKey).val == deviceHomematicFunkSchaltaktor) {
636
- // @ts-ignore
637
- cacheFunkschaltaktorenArray.push(new HomematicFunkschaltaktor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
638
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
639
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
640
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
641
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
642
- ));
643
- }
644
- });
645
- cacheFunkschaltaktorenArray = sortArray(cacheFunkschaltaktorenArray);
646
- return cacheFunkschaltaktorenArray;
647
- }
648
- exports.loadHomematicFunktschaltaktoren = loadHomematicFunktschaltaktoren;
649
- var cacheWindowsArray = null;
650
- function loadHomematicWindows(adapter) {
651
- if (cacheWindowsArray != null) {
652
- return cacheWindowsArray;
653
- }
654
- // @ts-ignore
655
- cacheWindowsArray = [];
656
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
657
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
658
- if (adapter.getState(datenpunktKey).val == deviceHomematicWindow) {
659
- // @ts-ignore
660
- cacheWindowsArray.push(new HomematicWindow(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
661
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
662
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
663
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
664
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
665
- ));
666
- }
667
- });
668
- cacheWindowsArray = sortArray(cacheWindowsArray);
669
- return cacheWindowsArray;
670
- }
671
- exports.loadHomematicWindows = loadHomematicWindows;
672
- var cacheSteckdosenArray = null;
673
- function loadHomematicSteckdosen(adapter) {
674
- if (cacheSteckdosenArray != null) {
675
- return cacheSteckdosenArray;
676
- }
677
- // @ts-ignore
678
- cacheSteckdosenArray = [];
679
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
680
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
681
- if (adapter.getState(datenpunktKey).val == deviceHomematicSteckdose) {
682
- // @ts-ignore
683
- cacheSteckdosenArray.push(new HomematicSteckdose(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
684
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
685
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
686
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
687
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
688
- ));
689
- }
690
- });
691
- cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
692
- return cacheSteckdosenArray;
693
- }
694
- exports.loadHomematicSteckdosen = loadHomematicSteckdosen;
695
- var cacheHeizkoerperArray = null;
696
- function loadHomematicHeizkoerper(adapter) {
697
- if (cacheHeizkoerperArray != null) {
698
- return cacheHeizkoerperArray;
699
- }
700
- // @ts-ignore
701
- cacheHeizkoerperArray = [];
702
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
703
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
704
- if (adapter.getState(datenpunktKey).val == deviceHomematicHeizkoerper) {
705
- // @ts-ignore
706
- cacheHeizkoerperArray.push(new HomematicHeizkoerper(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
707
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
708
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
709
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
710
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
711
- ));
712
- }
713
- });
714
- cacheHeizkoerperArray = sortArray(cacheHeizkoerperArray);
715
- return cacheHeizkoerperArray;
716
- }
717
- exports.loadHomematicHeizkoerper = loadHomematicHeizkoerper;
718
- var cacheDimmerArray = null;
719
- function loadHomematicDimmer(adapter) {
720
- if (cacheDimmerArray != null) {
721
- return cacheDimmerArray;
722
- }
723
- // @ts-ignore
724
- cacheDimmerArray = [];
725
- adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
726
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
727
- if (adapter.getState(datenpunktKey).val == deviceHomematicDimmer) {
728
- // Einschalt-Scheme:
729
- var alexaOnScheme = null;
730
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv).val == true) {
731
- // @ts-ignore
732
- alexaOnScheme = new DimmerAlexaScheme(null, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level).val);
733
- }
734
- // Weitere Schemes als Array:
735
- var schemeArray = [];
736
- // alexaScheme1: InstanceType<typeof DimmerAlexaScheme>
737
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme1_aktiv).val == true) {
738
- // @ts-ignore
739
- schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme1_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme1_level).val));
740
- }
741
- // alexaScheme2: InstanceType<typeof DimmerAlexaScheme>
742
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme2_aktiv).val == true) {
743
- // @ts-ignore
744
- schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme2_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme2_level).val));
745
- }
746
- // alexaScheme3: InstanceType<typeof DimmerAlexaScheme>
747
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme3_aktiv).val == true) {
748
- // @ts-ignore
749
- schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme3_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme3_level).val));
750
- }
751
- // alexaScheme4: InstanceType<typeof DimmerAlexaScheme>
752
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme4_aktiv).val == true) {
753
- // @ts-ignore
754
- schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme4_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme4_level).val));
755
- }
756
- // Weitere Schemes als Array:
757
- var tasterSchemeArray = [];
758
- // tasterScheme1: InstanceType<typeof DimmerTasterScheme>
759
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme1_aktiv).val == true) {
760
- // @ts-ignore
761
- tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme1_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme1_level).val));
762
- }
763
- // tasterScheme2: InstanceType<typeof DimmerTasterScheme>
764
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme2_aktiv).val == true) {
765
- // @ts-ignore
766
- tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme2_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme2_level).val));
767
- }
768
- // tasterScheme3: InstanceType<typeof DimmerTasterScheme>
769
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme3_aktiv).val == true) {
770
- // @ts-ignore
771
- tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme3_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme3_level).val));
772
- }
773
- // tasterScheme4: InstanceType<typeof DimmerTasterScheme>
774
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme4_aktiv).val == true) {
775
- // @ts-ignore
776
- tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme4_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme4_level).val));
777
- }
778
- // @ts-ignore
779
- cacheDimmerArray.push(new HomematicDimmer(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
780
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
781
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
782
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
783
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [4] Device (z.B. Stehlampe)
784
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
785
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
786
- alexaOnScheme, // [06 A.-Ein-Scheme]
787
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
788
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOff).val), // [10] Alexa-Action Aus, z.B. "Gute Nacht". Wir müssen hier zu [09] unterscheiden, da wir über "Gute Nacht" und isActionTurnedOn=true informiert werden.
789
- schemeArray, // [08 Alexa-Schemes]
790
- tasterSchemeArray, // /* [09 TasterBoolOn ]
791
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
792
- adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
793
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
794
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
795
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
796
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
797
- ));
798
- }
799
- });
800
- cacheDimmerArray = sortArray(cacheDimmerArray);
801
- return cacheDimmerArray;
802
- }
803
- exports.loadHomematicDimmer = loadHomematicDimmer;
804
- //var homematicAllArray = null;
805
- function loadHomematicDevicesAll(adapter) {
806
- /*if (homematicAllArray != null) {
807
- return homematicAllArray;
808
- }*/
809
- // @ts-ignore
810
- var homematicAllArray = [];
811
- adapter.loadHomematicWandthermostate(adapter).forEach(function (homematic) {
812
- // @ts-ignore
813
- homematicAllArray.push(homematic);
814
- });
815
- adapter.loadHomematicPraesenzmelder(adapter).forEach(function (homematic) {
816
- // @ts-ignore
817
- homematicAllArray.push(homematic);
818
- });
819
- adapter.loadHomematicWetterstationen(adapter).forEach(function (homematic) {
820
- // @ts-ignore
821
- homematicAllArray.push(homematic);
822
- });
823
- adapter.loadHomematicDoors(adapter).forEach(function (homematic) {
824
- // @ts-ignore
825
- homematicAllArray.push(homematic);
826
- });
827
- adapter.loadHomematicRollladen(adapter).forEach(function (homematic) {
828
- // @ts-ignore
829
- homematicAllArray.push(homematic);
830
- });
831
- adapter.loadHomematicWandschalter(adapter).forEach(function (homematic) {
832
- // @ts-ignore
833
- homematicAllArray.push(homematic);
834
- });
835
- adapter.loadHomematicFussbodenheizungen(adapter).forEach(function (homematic) {
836
- // @ts-ignore
837
- homematicAllArray.push(homematic);
838
- });
839
- adapter.loadHomematicWandtaster(adapter).forEach(function (homematic) {
840
- // @ts-ignore
841
- homematicAllArray.push(homematic);
842
- });
843
- adapter.loadHomematicAccessPoints(adapter).forEach(function (homematic) {
844
- // @ts-ignore
845
- homematicAllArray.push(homematic);
846
- });
847
- adapter.loadHomematicTemperatursensoren(adapter).forEach(function (homematic) {
848
- // @ts-ignore
849
- homematicAllArray.push(homematic);
850
- });
851
- adapter.loadHomematicRauchmelder(adapter).forEach(function (homematic) {
852
- // @ts-ignore
853
- homematicAllArray.push(homematic);
854
- });
855
- adapter.loadHomematicFunktschaltaktoren(adapter).forEach(function (homematic) {
856
- // @ts-ignore
857
- homematicAllArray.push(homematic);
858
- });
859
- adapter.loadHomematicWindows(adapter).forEach(function (homematic) {
860
- // @ts-ignore
861
- homematicAllArray.push(homematic);
862
- });
863
- adapter.loadHomematicSteckdosen(adapter).forEach(function (homematic) {
864
- // @ts-ignore
865
- homematicAllArray.push(homematic);
866
- });
867
- adapter.loadHomematicHeizkoerper(adapter).forEach(function (homematic) {
868
- // @ts-ignore
869
- homematicAllArray.push(homematic);
870
- });
871
- adapter.loadHomematicDimmer(adapter).forEach(function (homematic) {
872
- // @ts-ignore
873
- homematicAllArray.push(homematic);
874
- });
875
- homematicAllArray = sortArray(homematicAllArray);
876
- return homematicAllArray;
877
- }
878
- exports.loadHomematicDevicesAll = loadHomematicDevicesAll;
879
- function toStringArray(databaseValue) {
880
- var stringArray = [];
881
- if (databaseValue == null) {
882
- return stringArray;
883
- }
884
- else {
885
- return databaseValue.split('|');
886
- }
887
- }
888
- function clearHomematicCaches(adapter) {
889
- //homematicAllArray = null;
890
- cacheDimmerArray = null;
891
- cacheHeizkoerperArray = null;
892
- cacheSteckdosenArray = null;
893
- cacheWindowsArray = null;
894
- cacheFunkschaltaktorenArray = null;
895
- cacheRauchmelderArray = null;
896
- cacheTemperatursensorenArray = null;
897
- cacheAccessPointsArray = null;
898
- cacheWandtasterArray = null;
899
- cacheFussbodenheizungenArray = null;
900
- cacheWandschalterArray = null;
901
- cacheDoorsArray = null;
902
- cacheWetterstationenArray = null;
903
- cachePraesenzmelderArray = null;
904
- cacheWandthermostateArray = null;
905
- cacheRollladenArray = null;
906
- adapter.log(">>> Homematic cache cleared!! <<<");
907
- }
908
- function sortArray(inputArray) {
909
- inputArray.sort(function (a, b) {
910
- var elementA = a;
911
- var elementB = b;
912
- var etageA = elementA.getEtage();
913
- var etageB = elementB.getEtage();
914
- var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
915
- if (compareEtage != 0) {
916
- return compareEtage;
917
- }
918
- var typA = elementA.getCategory();
919
- var typB = elementB.getCategory();
920
- var compareTyp = typA.localeCompare(typB);
921
- if (compareTyp != 0) {
922
- return compareTyp;
923
- }
924
- var raumA = elementA.getRaum();
925
- var raumB = elementB.getRaum();
926
- var compareRaum = raumA.localeCompare(raumB);
927
- if (compareRaum != 0) {
928
- return compareRaum;
929
- }
930
- var deviceA = elementA.getDevice();
931
- var deviceB = elementB.getDevice();
932
- var compareDevice = deviceA.localeCompare(deviceB);
933
- if (compareDevice != 0) {
934
- return compareDevice;
935
- }
936
- return 0;
937
- });
938
- return inputArray;
939
- }
940
- function getEtageSortIndex(etage) {
941
- if (etage == "OG") {
942
- return "a";
943
- }
944
- else if (etage == "EG") {
945
- return "b";
946
- }
947
- else if (etage == "UG") {
948
- return "c";
949
- }
950
- else {
951
- return "d";
952
- }
953
- }
954
- module.exports = { createHomematicSteckdose: createHomematicSteckdose, createHomematicHeizkoerper: createHomematicHeizkoerper, createHomematicWindow: createHomematicWindow, createHomematicFunkSchaltaktor: createHomematicFunkSchaltaktor, createHomematicRauchmelder: createHomematicRauchmelder, createHomematicTemperatursensor: createHomematicTemperatursensor, createHomematicAccessPoint: createHomematicAccessPoint, createHomematicWandtaster: createHomematicWandtaster, createHomematicPraesenzmelder: createHomematicPraesenzmelder, createHomematicWandthermostat: createHomematicWandthermostat, createHomematicWetterstation: createHomematicWetterstation, createHomematicDoor: createHomematicDoor, createHomematicRollladen: createHomematicRollladen, createHomematicFussbodenheizung: createHomematicFussbodenheizung, createHomematicDimmer: createHomematicDimmer, createHomematicWandschalter: createHomematicWandschalter, loadHomematicWandthermostate: loadHomematicWandthermostate, loadHomematicPraesenzmelder: loadHomematicPraesenzmelder, loadHomematicWetterstationen: loadHomematicWetterstationen, loadHomematicDoors: loadHomematicDoors, loadHomematicRollladen: loadHomematicRollladen, loadHomematicWandschalter: loadHomematicWandschalter, loadHomematicFussbodenheizungen: loadHomematicFussbodenheizungen, loadHomematicWandtaster: loadHomematicWandtaster, loadHomematicAccessPoints: loadHomematicAccessPoints, loadHomematicTemperatursensoren: loadHomematicTemperatursensoren, loadHomematicRauchmelder: loadHomematicRauchmelder, loadHomematicFunktschaltaktoren: loadHomematicFunktschaltaktoren, loadHomematicWindows: loadHomematicWindows, loadHomematicSteckdosen: loadHomematicSteckdosen, loadHomematicHeizkoerper: loadHomematicHeizkoerper, loadHomematicDimmer: loadHomematicDimmer, loadHomematicDevicesAll: loadHomematicDevicesAll, clearHomematicCaches: clearHomematicCaches };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createHomematicPraesenzmelder = createHomematicPraesenzmelder;
4
+ exports.createHomematicWetterstation = createHomematicWetterstation;
5
+ exports.createHomematicDoor = createHomematicDoor;
6
+ exports.createHomematicRollladen = createHomematicRollladen;
7
+ exports.createHomematicFussbodenheizung = createHomematicFussbodenheizung;
8
+ exports.createHomematicWandtaster = createHomematicWandtaster;
9
+ exports.createHomematicAccessPoint = createHomematicAccessPoint;
10
+ exports.createHomematicTemperatursensor = createHomematicTemperatursensor;
11
+ exports.createHomematicRauchmelder = createHomematicRauchmelder;
12
+ exports.createHomematicFunkSchaltaktor = createHomematicFunkSchaltaktor;
13
+ exports.createHomematicWindow = createHomematicWindow;
14
+ exports.createHomematicSteckdose = createHomematicSteckdose;
15
+ exports.createHomematicHeizkoerper = createHomematicHeizkoerper;
16
+ exports.createHomematicWandthermostat = createHomematicWandthermostat;
17
+ exports.createHomematicDimmer = createHomematicDimmer;
18
+ exports.createHomematicWandschalter = createHomematicWandschalter;
19
+ exports.loadHomematicRollladen = loadHomematicRollladen;
20
+ exports.loadHomematicWandthermostate = loadHomematicWandthermostate;
21
+ exports.loadHomematicPraesenzmelder = loadHomematicPraesenzmelder;
22
+ exports.loadHomematicWetterstationen = loadHomematicWetterstationen;
23
+ exports.loadHomematicDoors = loadHomematicDoors;
24
+ exports.loadHomematicWandschalter = loadHomematicWandschalter;
25
+ exports.loadHomematicFussbodenheizungen = loadHomematicFussbodenheizungen;
26
+ exports.loadHomematicWandtaster = loadHomematicWandtaster;
27
+ exports.loadHomematicAccessPoints = loadHomematicAccessPoints;
28
+ exports.loadHomematicTemperatursensoren = loadHomematicTemperatursensoren;
29
+ exports.loadHomematicRauchmelder = loadHomematicRauchmelder;
30
+ exports.loadHomematicFunktschaltaktoren = loadHomematicFunktschaltaktoren;
31
+ exports.loadHomematicWindows = loadHomematicWindows;
32
+ exports.loadHomematicSteckdosen = loadHomematicSteckdosen;
33
+ exports.loadHomematicHeizkoerper = loadHomematicHeizkoerper;
34
+ exports.loadHomematicDimmer = loadHomematicDimmer;
35
+ exports.loadHomematicDevicesAll = loadHomematicDevicesAll;
36
+ var _a = require('./homematicClasses.js'), HomematicWindow = _a.HomematicWindow, HomematicSteckdose = _a.HomematicSteckdose, HomematicHeizkoerper = _a.HomematicHeizkoerper, HomematicDimmer = _a.HomematicDimmer, HomematicWandthermostat = _a.HomematicWandthermostat, HomematicFussbodenheizung = _a.HomematicFussbodenheizung, HomematicWandschalter = _a.HomematicWandschalter, HomematicDoor = _a.HomematicDoor, HomematicWetterstation = _a.HomematicWetterstation, HomematicAccessPoint = _a.HomematicAccessPoint, HomematicRollladen = _a.HomematicRollladen, HomematicWandtaster = _a.HomematicWandtaster, HomematicTemperatursensor = _a.HomematicTemperatursensor, HomematicRauchmelder = _a.HomematicRauchmelder, HomematicPraesenzmelder = _a.HomematicPraesenzmelder, AbstractHomematic = _a.AbstractHomematic, HomematicFunkschaltaktor = _a.HomematicFunkschaltaktor, DimmerAlexaScheme = _a.DimmerAlexaScheme, DimmerTasterScheme = _a.DimmerTasterScheme, deviceHomematicWandthermostat = _a.deviceHomematicWandthermostat, deviceHomematicPraesenzmelder = _a.deviceHomematicPraesenzmelder, deviceHomematicWetterstation = _a.deviceHomematicWetterstation, deviceHomematicDoor = _a.deviceHomematicDoor, deviceHomematicRollladen = _a.deviceHomematicRollladen, deviceHomematicWandschalter = _a.deviceHomematicWandschalter, deviceHomematicFussbodenheizung = _a.deviceHomematicFussbodenheizung, deviceHomematicWandtaster = _a.deviceHomematicWandtaster, deviceHomematicAccessPoint = _a.deviceHomematicAccessPoint, deviceHomematicTemperatursensor = _a.deviceHomematicTemperatursensor, deviceHomematicRauchmelder = _a.deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor = _a.deviceHomematicFunkSchaltaktor, deviceHomematicWindow = _a.deviceHomematicWindow, deviceHomematicSteckdose = _a.deviceHomematicSteckdose, deviceHomematicHeizkoerper = _a.deviceHomematicHeizkoerper, deviceHomematicDimmer = _a.deviceHomematicDimmer;
37
+ var attributeRawID = "rawId";
38
+ var attributeBaseState = "baseState";
39
+ var attributeEtage = "etage";
40
+ var attributeRaum = "raum";
41
+ var attributeDevice = "device";
42
+ var attributeCategory = "category";
43
+ // Datenpunkttyp:
44
+ var attributeTypeNumber = "number";
45
+ var attributeTypeString = "string";
46
+ var attributeTypeBoolean = "boolean";
47
+ // Alexa:
48
+ var attribute_AlexaSmartNamesForOn = "alexaSmartNamesForOn";
49
+ var attribute_AlexaActionNamesForOn = "alexaActionNamesForOn";
50
+ var attribute_AlexaSmartNamesForOff = "alexaSmartNamesForOff";
51
+ var attribute_AlexaActionNamesForOff = "alexaActionNamesForOff";
52
+ // Lampen/Steckdosen allgemein:
53
+ var attribute_TasterBooleanOn = "tasterBooleanOn";
54
+ var attribute_TasterBooleanOff = "tasterBooleanOff";
55
+ var attribute_Nachtbeleuchtung = "nachtbeleuchtung";
56
+ var attribute_TurnOffExitHouseSummer = "turnOffExitHouseSummer";
57
+ var attribute_TurnOffExitHouseWinter = "turnOffExitHouseWinter";
58
+ var attribute_TurnOnEnterHouseSummer = "turnOnEnterHouseSummer";
59
+ var attribute_TurnOnEnterHouseWinter = "turnOnEnterHouseWinter";
60
+ // Scheme Dimmer:
61
+ var attributeDimmer_alexaScheme_aktiv = "alexaScheme_aktiv";
62
+ var attributeDimmer_alexaScheme_name = "alexaScheme_name";
63
+ var attributeDimmer_alexaScheme_level = "alexaScheme_level";
64
+ // Scheme Dimmer:
65
+ var attributeDimmer_alexaScheme1_aktiv = "alexaScheme1_aktiv";
66
+ var attributeDimmer_alexaScheme1_name = "alexaScheme1_name";
67
+ var attributeDimmer_alexaScheme1_level = "alexaScheme1_level";
68
+ var attributeDimmer_alexaScheme2_aktiv = "alexaScheme2_aktiv";
69
+ var attributeDimmer_alexaScheme2_name = "alexaScheme2_name";
70
+ var attributeDimmer_alexaScheme2_level = "alexaScheme2_level";
71
+ var attributeDimmer_alexaScheme3_aktiv = "alexaScheme3_aktiv";
72
+ var attributeDimmer_alexaScheme3_name = "alexaScheme3_name";
73
+ var attributeDimmer_alexaScheme3_level = "alexaScheme3_level";
74
+ var attributeDimmer_alexaScheme4_aktiv = "alexaScheme4_aktiv";
75
+ var attributeDimmer_alexaScheme4_name = "alexaScheme4_name";
76
+ var attributeDimmer_alexaScheme4_level = "alexaScheme4_level";
77
+ // Scheme Dimmer:
78
+ var attributeDimmer_tasterScheme1_aktiv = "tasterScheme1_aktiv";
79
+ var attributeDimmer_tasterScheme1_name = "tasterScheme1_name";
80
+ var attributeDimmer_tasterScheme1_level = "tasterScheme1_level";
81
+ var attributeDimmer_tasterScheme2_aktiv = "tasterScheme2_aktiv";
82
+ var attributeDimmer_tasterScheme2_name = "tasterScheme2_name";
83
+ var attributeDimmer_tasterScheme2_level = "tasterScheme2_level";
84
+ var attributeDimmer_tasterScheme3_aktiv = "tasterScheme3_aktiv";
85
+ var attributeDimmer_tasterScheme3_name = "tasterScheme3_name";
86
+ var attributeDimmer_tasterScheme3_level = "tasterScheme3_level";
87
+ var attributeDimmer_tasterScheme4_aktiv = "tasterScheme4_aktiv";
88
+ var attributeDimmer_tasterScheme4_name = "tasterScheme4_name";
89
+ var attributeDimmer_tasterScheme4_level = "tasterScheme4_level";
90
+ function createHomematicDevice(adapter, rawId, baseState, etage, raum, device, category) {
91
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeRawID, rawId, category);
92
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeCategory, category, category);
93
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeBaseState, baseState, category);
94
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeEtage, etage, category);
95
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeRaum, raum, category);
96
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDevice, device, category);
97
+ }
98
+ // Praesenzmelder
99
+ function createHomematicPraesenzmelder(adapter, rawId, baseState, etage, raum, device) {
100
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicPraesenzmelder);
101
+ }
102
+ // Wetterstation
103
+ function createHomematicWetterstation(adapter, rawId, baseState, etage, raum, device) {
104
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWetterstation);
105
+ }
106
+ // Door
107
+ function createHomematicDoor(adapter, rawId, baseState, etage, raum, device) {
108
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicDoor);
109
+ }
110
+ // Rollladen
111
+ function createHomematicRollladen(adapter, rawId, baseState, etage, raum, device) {
112
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicRollladen);
113
+ }
114
+ // Fussbodenheizung
115
+ function createHomematicFussbodenheizung(adapter, rawId, baseState, etage, raum, device) {
116
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicFussbodenheizung);
117
+ }
118
+ // Wandtaster
119
+ function createHomematicWandtaster(adapter, rawId, baseState, etage, raum, device) {
120
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandtaster);
121
+ }
122
+ // AccessPoint
123
+ function createHomematicAccessPoint(adapter, rawId, baseState, etage, raum, device) {
124
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicAccessPoint);
125
+ }
126
+ // Temperatursensor
127
+ function createHomematicTemperatursensor(adapter, rawId, baseState, etage, raum, device) {
128
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicTemperatursensor);
129
+ }
130
+ // Rauchmelder
131
+ function createHomematicRauchmelder(adapter, rawId, baseState, etage, raum, device) {
132
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicRauchmelder);
133
+ }
134
+ // FunkSchaltaktor
135
+ function createHomematicFunkSchaltaktor(adapter, rawId, baseState, etage, raum, device) {
136
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicFunkSchaltaktor);
137
+ }
138
+ // Window
139
+ function createHomematicWindow(adapter, rawId, baseState, etage, raum, device) {
140
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWindow);
141
+ }
142
+ // Steckdose
143
+ function createHomematicSteckdose(adapter, rawId, baseState, etage, raum, device) {
144
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicSteckdose);
145
+ }
146
+ // Heizkoerper
147
+ function createHomematicHeizkoerper(adapter, rawId, baseState, etage, raum, device) {
148
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicHeizkoerper);
149
+ }
150
+ // Wandthermostat
151
+ function createHomematicWandthermostat(adapter, rawId, baseState, etage, raum, device) {
152
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandthermostat);
153
+ }
154
+ // Dimmer:
155
+ function createHomematicDimmer(adapter, rawId, baseState, etage, raum, device, alexaSmartNamesForOn, alexaActionNamesForOn, alexaLevelSchemeForOn, alexaSmartNamesForOff, alexaActionNamesForOff, alexaScheme1, alexaScheme2, alexaScheme3, alexaScheme4, tasterBooleanOnScheme1, tasterBooleanOnScheme2, tasterBooleanOnScheme3, tasterBooleanOnScheme4, tasterBooleanOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
156
+ // Allgemein:
157
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicDimmer);
158
+ // alexaScheme1: InstanceType<typeof DimmerAlexaScheme>
159
+ if (alexaScheme1 != null) {
160
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, true, deviceHomematicDimmer);
161
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme1_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
162
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme1_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
163
+ }
164
+ else {
165
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme1_aktiv, false, deviceHomematicDimmer);
166
+ }
167
+ // alexaScheme2: InstanceType<typeof DimmerAlexaScheme>
168
+ if (alexaScheme2 != null) {
169
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, true, deviceHomematicDimmer);
170
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme2_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
171
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme2_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
172
+ }
173
+ else {
174
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme2_aktiv, false, deviceHomematicDimmer);
175
+ }
176
+ // alexaScheme3: InstanceType<typeof DimmerAlexaScheme>
177
+ if (alexaScheme3 != null) {
178
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, true, deviceHomematicDimmer);
179
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme3_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
180
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme3_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
181
+ }
182
+ else {
183
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme3_aktiv, false, deviceHomematicDimmer);
184
+ }
185
+ // alexaScheme4: InstanceType<typeof DimmerAlexaScheme>
186
+ if (alexaScheme4 != null) {
187
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, true, deviceHomematicDimmer);
188
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme4_name, alexaScheme1.getAlexaName(), deviceHomematicDimmer);
189
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme4_level, alexaScheme1.getLevel(), deviceHomematicDimmer);
190
+ }
191
+ else {
192
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme4_aktiv, false, deviceHomematicDimmer);
193
+ }
194
+ if (tasterBooleanOnScheme1 != null) {
195
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, true, deviceHomematicDimmer);
196
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme1_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
197
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme1_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
198
+ }
199
+ else {
200
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme1_aktiv, false, deviceHomematicDimmer);
201
+ }
202
+ if (tasterBooleanOnScheme2 != null) {
203
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, true, deviceHomematicDimmer);
204
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme2_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
205
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme2_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
206
+ }
207
+ else {
208
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme2_aktiv, false, deviceHomematicDimmer);
209
+ }
210
+ if (tasterBooleanOnScheme3 != null) {
211
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, true, deviceHomematicDimmer);
212
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme3_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
213
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme3_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
214
+ }
215
+ else {
216
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme3_aktiv, false, deviceHomematicDimmer);
217
+ }
218
+ if (tasterBooleanOnScheme4 != null) {
219
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, true, deviceHomematicDimmer);
220
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme4_name, tasterBooleanOnScheme1.getTasterBooleanOnName(), deviceHomematicDimmer);
221
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme4_level, tasterBooleanOnScheme1.getLevel(), deviceHomematicDimmer);
222
+ }
223
+ else {
224
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme4_aktiv, false, deviceHomematicDimmer);
225
+ }
226
+ // alexaLevelSchemeForOn: InstanceType<typeof DimmerAlexaScheme>
227
+ if (alexaLevelSchemeForOn != null) {
228
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, true, deviceHomematicDimmer);
229
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name, alexaLevelSchemeForOn.getAlexaName(), deviceHomematicDimmer);
230
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level, alexaLevelSchemeForOn.getLevel(), deviceHomematicDimmer);
231
+ }
232
+ else {
233
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, false, deviceHomematicDimmer);
234
+ }
235
+ // additionalStates4TurnOff: string[]
236
+ var db_additionalStates4TurnOff = null;
237
+ tasterBooleanOff.forEach(function (value) {
238
+ if (db_additionalStates4TurnOff == null) {
239
+ // @ts-ignore
240
+ db_additionalStates4TurnOff = value;
241
+ }
242
+ else {
243
+ // @ts-ignore
244
+ db_additionalStates4TurnOff += "|" + value;
245
+ }
246
+ });
247
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceHomematicDimmer);
248
+ // alexaSmartNamesForOn:string[]
249
+ var db_alexaSmartNamesForOn = null;
250
+ alexaSmartNamesForOn.forEach(function (value) {
251
+ if (db_alexaSmartNamesForOn == null) {
252
+ // @ts-ignore
253
+ db_alexaSmartNamesForOn = value;
254
+ }
255
+ else {
256
+ // @ts-ignore
257
+ db_alexaSmartNamesForOn += "|" + value;
258
+ }
259
+ });
260
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicDimmer);
261
+ // alexaActionNamesForOn:string[]
262
+ var db_alexaActionNamesForOn = null;
263
+ alexaActionNamesForOn.forEach(function (value) {
264
+ if (db_alexaActionNamesForOn == null) {
265
+ // @ts-ignore
266
+ db_alexaActionNamesForOn = value;
267
+ }
268
+ else {
269
+ // @ts-ignore
270
+ db_alexaActionNamesForOn += "|" + value;
271
+ }
272
+ });
273
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicDimmer);
274
+ // alexaSmartNamesForOff:string[]
275
+ var db_alexaSmartNamesForOff = null;
276
+ alexaSmartNamesForOff.forEach(function (value) {
277
+ if (db_alexaSmartNamesForOff == null) {
278
+ // @ts-ignore
279
+ db_alexaSmartNamesForOff = value;
280
+ }
281
+ else {
282
+ // @ts-ignore
283
+ db_alexaSmartNamesForOff += "|" + value;
284
+ }
285
+ });
286
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicDimmer);
287
+ // alexaActionNamesForOff:string[]
288
+ var db_alexaActionNamesForOff = null;
289
+ alexaActionNamesForOff.forEach(function (value) {
290
+ if (db_alexaActionNamesForOff == null) {
291
+ // @ts-ignore
292
+ db_alexaActionNamesForOff = value;
293
+ }
294
+ else {
295
+ // @ts-ignore
296
+ db_alexaActionNamesForOff += "|" + value;
297
+ }
298
+ });
299
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicDimmer);
300
+ // Weitere:
301
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicDimmer);
302
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicDimmer);
303
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicDimmer);
304
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicDimmer);
305
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicDimmer);
306
+ }
307
+ // Wandschalter:
308
+ function createHomematicWandschalter(adapter, rawId, baseState, etage, raum, device, alexaSmartNamesForOn, alexaActionNamesForOn, alexaSmartNamesForOff, alexaActionNamesForOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
309
+ // Allgemein:
310
+ createHomematicDevice(adapter, rawId, baseState, etage, raum, device, deviceHomematicWandschalter);
311
+ // alexaSmartNamesForOn:string[]
312
+ var db_alexaSmartNamesForOn = null;
313
+ alexaSmartNamesForOn.forEach(function (value) {
314
+ if (db_alexaSmartNamesForOn == null) {
315
+ // @ts-ignore
316
+ db_alexaSmartNamesForOn = value;
317
+ }
318
+ else {
319
+ // @ts-ignore
320
+ db_alexaSmartNamesForOn += "|" + value;
321
+ }
322
+ });
323
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceHomematicWandschalter);
324
+ // alexaActionNamesForOn:string[]
325
+ var db_alexaActionNamesForOn = null;
326
+ alexaActionNamesForOn.forEach(function (value) {
327
+ if (db_alexaActionNamesForOn == null) {
328
+ // @ts-ignore
329
+ db_alexaActionNamesForOn = value;
330
+ }
331
+ else {
332
+ // @ts-ignore
333
+ db_alexaActionNamesForOn += "|" + value;
334
+ }
335
+ });
336
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceHomematicWandschalter);
337
+ // alexaSmartNamesForOff:string[]
338
+ var db_alexaSmartNamesForOff = null;
339
+ alexaSmartNamesForOff.forEach(function (value) {
340
+ if (db_alexaSmartNamesForOff == null) {
341
+ // @ts-ignore
342
+ db_alexaSmartNamesForOff = value;
343
+ }
344
+ else {
345
+ // @ts-ignore
346
+ db_alexaSmartNamesForOff += "|" + value;
347
+ }
348
+ });
349
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceHomematicWandschalter);
350
+ // alexaActionNamesForOff:string[]
351
+ var db_alexaActionNamesForOff = null;
352
+ alexaActionNamesForOff.forEach(function (value) {
353
+ if (db_alexaActionNamesForOff == null) {
354
+ // @ts-ignore
355
+ db_alexaActionNamesForOff = value;
356
+ }
357
+ else {
358
+ // @ts-ignore
359
+ db_alexaActionNamesForOff += "|" + value;
360
+ }
361
+ });
362
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceHomematicWandschalter);
363
+ // Weitere:
364
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceHomematicWandschalter);
365
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceHomematicWandschalter);
366
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceHomematicWandschalter);
367
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceHomematicWandschalter);
368
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceHomematicWandschalter);
369
+ }
370
+ function createDatenpunktSingle(adapter, deviceRawId, attributeType, attributeName, attributeValue, category) {
371
+ var stateDatenpunkt = "0_userdata.0.devices.homematic." + category + "." + deviceRawId + "." + attributeName;
372
+ adapter.createState(stateDatenpunkt, attributeValue, {
373
+ name: "H" + deviceRawId.toString().padStart(2, '0'),
374
+ desc: "",
375
+ type: attributeType,
376
+ read: true,
377
+ write: true
378
+ });
379
+ }
380
+ var cacheRollladenArray = null;
381
+ function loadHomematicRollladen(adapter) {
382
+ if (cacheRollladenArray != null) {
383
+ return cacheRollladenArray;
384
+ }
385
+ // @ts-ignore
386
+ cacheRollladenArray = [];
387
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
388
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
389
+ if (adapter.getState(datenpunktKey).val == deviceHomematicRollladen) {
390
+ // @ts-ignore
391
+ cacheRollladenArray.push(new HomematicRollladen(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
392
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
393
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
394
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
395
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
396
+ ));
397
+ }
398
+ });
399
+ cacheRollladenArray = sortArray(cacheRollladenArray);
400
+ return cacheRollladenArray;
401
+ }
402
+ var cacheWandthermostateArray = null;
403
+ function loadHomematicWandthermostate(adapter) {
404
+ if (cacheWandthermostateArray != null) {
405
+ return cacheWandthermostateArray;
406
+ }
407
+ // @ts-ignore
408
+ cacheWandthermostateArray = [];
409
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
410
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
411
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWandthermostat) {
412
+ // @ts-ignore
413
+ cacheWandthermostateArray.push(new HomematicWandthermostat(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
414
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
415
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
416
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
417
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
418
+ ));
419
+ }
420
+ });
421
+ cacheWandthermostateArray = sortArray(cacheWandthermostateArray);
422
+ return cacheWandthermostateArray;
423
+ }
424
+ var cachePraesenzmelderArray = null;
425
+ function loadHomematicPraesenzmelder(adapter) {
426
+ if (cachePraesenzmelderArray != null) {
427
+ return cachePraesenzmelderArray;
428
+ }
429
+ // @ts-ignore
430
+ cachePraesenzmelderArray = [];
431
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
432
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
433
+ if (adapter.getState(datenpunktKey).val == deviceHomematicPraesenzmelder) {
434
+ // @ts-ignore
435
+ cachePraesenzmelderArray.push(new HomematicPraesenzmelder(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
436
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
437
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
438
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
439
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
440
+ ));
441
+ }
442
+ });
443
+ cachePraesenzmelderArray = sortArray(cachePraesenzmelderArray);
444
+ return cachePraesenzmelderArray;
445
+ }
446
+ var cacheWetterstationenArray = null;
447
+ function loadHomematicWetterstationen(adapter) {
448
+ if (cacheWetterstationenArray != null) {
449
+ return cacheWetterstationenArray;
450
+ }
451
+ // @ts-ignore
452
+ cacheWetterstationenArray = [];
453
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
454
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
455
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWetterstation) {
456
+ // @ts-ignore
457
+ cacheWetterstationenArray.push(new HomematicWetterstation(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
458
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
459
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
460
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
461
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
462
+ ));
463
+ }
464
+ });
465
+ cacheWetterstationenArray = sortArray(cacheWetterstationenArray);
466
+ return cacheWetterstationenArray;
467
+ }
468
+ var cacheDoorsArray = null;
469
+ function loadHomematicDoors(adapter) {
470
+ if (cacheDoorsArray != null) {
471
+ return cacheDoorsArray;
472
+ }
473
+ // @ts-ignore
474
+ cacheDoorsArray = [];
475
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
476
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
477
+ if (adapter.getState(datenpunktKey).val == deviceHomematicDoor) {
478
+ // @ts-ignore
479
+ cacheDoorsArray.push(new HomematicDoor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
480
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
481
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
482
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
483
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
484
+ ));
485
+ }
486
+ });
487
+ cacheDoorsArray = sortArray(cacheDoorsArray);
488
+ return cacheDoorsArray;
489
+ }
490
+ var cacheWandschalterArray = null;
491
+ function loadHomematicWandschalter(adapter) {
492
+ if (cacheWandschalterArray != null) {
493
+ return cacheWandschalterArray;
494
+ }
495
+ // @ts-ignore
496
+ cacheWandschalterArray = [];
497
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
498
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
499
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWandschalter) {
500
+ // @ts-ignore
501
+ cacheWandschalterArray.push(new HomematicWandschalter(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
502
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
503
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
504
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
505
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [4] Device (z.B. Stehlampe)
506
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
507
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
508
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
509
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOff).val), // [10] Alexa-Action Aus, z.B. "Gute Nacht". Wir müssen hier zu [09] unterscheiden, da wir über "Gute Nacht" und isActionTurnedOn=true informiert werden.
510
+ adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
511
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
512
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
513
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
514
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
515
+ ));
516
+ }
517
+ });
518
+ cacheWandschalterArray = sortArray(cacheWandschalterArray);
519
+ return cacheWandschalterArray;
520
+ }
521
+ var cacheFussbodenheizungenArray = null;
522
+ function loadHomematicFussbodenheizungen(adapter) {
523
+ if (cacheFussbodenheizungenArray != null) {
524
+ return cacheFussbodenheizungenArray;
525
+ }
526
+ // @ts-ignore
527
+ cacheFussbodenheizungenArray = [];
528
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
529
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
530
+ if (adapter.getState(datenpunktKey).val == deviceHomematicFussbodenheizung) {
531
+ // @ts-ignore
532
+ cacheFussbodenheizungenArray.push(new HomematicFussbodenheizung(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
533
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
534
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
535
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
536
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
537
+ ));
538
+ }
539
+ });
540
+ cacheFussbodenheizungenArray = sortArray(cacheFussbodenheizungenArray);
541
+ return cacheFussbodenheizungenArray;
542
+ }
543
+ var cacheWandtasterArray = null;
544
+ function loadHomematicWandtaster(adapter) {
545
+ if (cacheWandtasterArray != null) {
546
+ return cacheWandtasterArray;
547
+ }
548
+ // @ts-ignore
549
+ cacheWandtasterArray = [];
550
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
551
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
552
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWandtaster) {
553
+ // @ts-ignore
554
+ cacheWandtasterArray.push(new HomematicWandtaster(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
555
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
556
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
557
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
558
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
559
+ ));
560
+ }
561
+ });
562
+ cacheWandtasterArray = sortArray(cacheWandtasterArray);
563
+ return cacheWandtasterArray;
564
+ }
565
+ var cacheAccessPointsArray = null;
566
+ function loadHomematicAccessPoints(adapter) {
567
+ if (cacheAccessPointsArray != null) {
568
+ return cacheAccessPointsArray;
569
+ }
570
+ // @ts-ignore
571
+ cacheAccessPointsArray = [];
572
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
573
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
574
+ if (adapter.getState(datenpunktKey).val == deviceHomematicAccessPoint) {
575
+ // @ts-ignore
576
+ cacheAccessPointsArray.push(new HomematicAccessPoint(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
577
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
578
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
579
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
580
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
581
+ ));
582
+ }
583
+ });
584
+ cacheAccessPointsArray = sortArray(cacheAccessPointsArray);
585
+ return cacheAccessPointsArray;
586
+ }
587
+ var cacheTemperatursensorenArray = null;
588
+ function loadHomematicTemperatursensoren(adapter) {
589
+ if (cacheTemperatursensorenArray != null) {
590
+ return cacheTemperatursensorenArray;
591
+ }
592
+ // @ts-ignore
593
+ cacheTemperatursensorenArray = [];
594
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
595
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
596
+ if (adapter.getState(datenpunktKey).val == deviceHomematicTemperatursensor) {
597
+ // @ts-ignore
598
+ cacheTemperatursensorenArray.push(new HomematicTemperatursensor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
599
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
600
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
601
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
602
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
603
+ ));
604
+ }
605
+ });
606
+ cacheTemperatursensorenArray = sortArray(cacheTemperatursensorenArray);
607
+ return cacheTemperatursensorenArray;
608
+ }
609
+ var cacheRauchmelderArray = null;
610
+ function loadHomematicRauchmelder(adapter) {
611
+ if (cacheRauchmelderArray != null) {
612
+ return cacheRauchmelderArray;
613
+ }
614
+ // @ts-ignore
615
+ cacheRauchmelderArray = [];
616
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
617
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
618
+ if (adapter.getState(datenpunktKey).val == deviceHomematicRauchmelder) {
619
+ // @ts-ignore
620
+ cacheRauchmelderArray.push(new HomematicRauchmelder(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
621
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
622
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
623
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
624
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
625
+ ));
626
+ }
627
+ });
628
+ cacheRauchmelderArray = sortArray(cacheRauchmelderArray);
629
+ return cacheRauchmelderArray;
630
+ }
631
+ var cacheFunkschaltaktorenArray = null;
632
+ function loadHomematicFunktschaltaktoren(adapter) {
633
+ if (cacheFunkschaltaktorenArray != null) {
634
+ return cacheFunkschaltaktorenArray;
635
+ }
636
+ // @ts-ignore
637
+ cacheFunkschaltaktorenArray = [];
638
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
639
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
640
+ if (adapter.getState(datenpunktKey).val == deviceHomematicFunkSchaltaktor) {
641
+ // @ts-ignore
642
+ cacheFunkschaltaktorenArray.push(new HomematicFunkschaltaktor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
643
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
644
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
645
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
646
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
647
+ ));
648
+ }
649
+ });
650
+ cacheFunkschaltaktorenArray = sortArray(cacheFunkschaltaktorenArray);
651
+ return cacheFunkschaltaktorenArray;
652
+ }
653
+ var cacheWindowsArray = null;
654
+ function loadHomematicWindows(adapter) {
655
+ if (cacheWindowsArray != null) {
656
+ return cacheWindowsArray;
657
+ }
658
+ // @ts-ignore
659
+ cacheWindowsArray = [];
660
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
661
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
662
+ if (adapter.getState(datenpunktKey).val == deviceHomematicWindow) {
663
+ // @ts-ignore
664
+ cacheWindowsArray.push(new HomematicWindow(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
665
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
666
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
667
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
668
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
669
+ ));
670
+ }
671
+ });
672
+ cacheWindowsArray = sortArray(cacheWindowsArray);
673
+ return cacheWindowsArray;
674
+ }
675
+ var cacheSteckdosenArray = null;
676
+ function loadHomematicSteckdosen(adapter) {
677
+ if (cacheSteckdosenArray != null) {
678
+ return cacheSteckdosenArray;
679
+ }
680
+ // @ts-ignore
681
+ cacheSteckdosenArray = [];
682
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
683
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
684
+ if (adapter.getState(datenpunktKey).val == deviceHomematicSteckdose) {
685
+ // @ts-ignore
686
+ cacheSteckdosenArray.push(new HomematicSteckdose(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
687
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
688
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
689
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
690
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
691
+ ));
692
+ }
693
+ });
694
+ cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
695
+ return cacheSteckdosenArray;
696
+ }
697
+ var cacheHeizkoerperArray = null;
698
+ function loadHomematicHeizkoerper(adapter) {
699
+ if (cacheHeizkoerperArray != null) {
700
+ return cacheHeizkoerperArray;
701
+ }
702
+ // @ts-ignore
703
+ cacheHeizkoerperArray = [];
704
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
705
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
706
+ if (adapter.getState(datenpunktKey).val == deviceHomematicHeizkoerper) {
707
+ // @ts-ignore
708
+ cacheHeizkoerperArray.push(new HomematicHeizkoerper(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
709
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
710
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
711
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
712
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
713
+ ));
714
+ }
715
+ });
716
+ cacheHeizkoerperArray = sortArray(cacheHeizkoerperArray);
717
+ return cacheHeizkoerperArray;
718
+ }
719
+ var cacheDimmerArray = null;
720
+ function loadHomematicDimmer(adapter) {
721
+ if (cacheDimmerArray != null) {
722
+ return cacheDimmerArray;
723
+ }
724
+ // @ts-ignore
725
+ cacheDimmerArray = [];
726
+ adapter.$('state[id=0_userdata.0.devices.homematic.*.*.category]').each(function (datenpunktKey) {
727
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
728
+ if (adapter.getState(datenpunktKey).val == deviceHomematicDimmer) {
729
+ // Einschalt-Scheme:
730
+ var alexaOnScheme = null;
731
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv).val == true) {
732
+ // @ts-ignore
733
+ alexaOnScheme = new DimmerAlexaScheme(null, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level).val);
734
+ }
735
+ // Weitere Schemes als Array:
736
+ var schemeArray = [];
737
+ // alexaScheme1: InstanceType<typeof DimmerAlexaScheme>
738
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme1_aktiv).val == true) {
739
+ // @ts-ignore
740
+ schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme1_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme1_level).val));
741
+ }
742
+ // alexaScheme2: InstanceType<typeof DimmerAlexaScheme>
743
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme2_aktiv).val == true) {
744
+ // @ts-ignore
745
+ schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme2_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme2_level).val));
746
+ }
747
+ // alexaScheme3: InstanceType<typeof DimmerAlexaScheme>
748
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme3_aktiv).val == true) {
749
+ // @ts-ignore
750
+ schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme3_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme3_level).val));
751
+ }
752
+ // alexaScheme4: InstanceType<typeof DimmerAlexaScheme>
753
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme4_aktiv).val == true) {
754
+ // @ts-ignore
755
+ schemeArray.push(new DimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme4_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme4_level).val));
756
+ }
757
+ // Weitere Schemes als Array:
758
+ var tasterSchemeArray = [];
759
+ // tasterScheme1: InstanceType<typeof DimmerTasterScheme>
760
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme1_aktiv).val == true) {
761
+ // @ts-ignore
762
+ tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme1_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme1_level).val));
763
+ }
764
+ // tasterScheme2: InstanceType<typeof DimmerTasterScheme>
765
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme2_aktiv).val == true) {
766
+ // @ts-ignore
767
+ tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme2_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme2_level).val));
768
+ }
769
+ // tasterScheme3: InstanceType<typeof DimmerTasterScheme>
770
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme3_aktiv).val == true) {
771
+ // @ts-ignore
772
+ tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme3_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme3_level).val));
773
+ }
774
+ // tasterScheme4: InstanceType<typeof DimmerTasterScheme>
775
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme4_aktiv).val == true) {
776
+ // @ts-ignore
777
+ tasterSchemeArray.push(new DimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme4_name).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme4_level).val));
778
+ }
779
+ // @ts-ignore
780
+ cacheDimmerArray.push(new HomematicDimmer(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
781
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
782
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
783
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
784
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [4] Device (z.B. Stehlampe)
785
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
786
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
787
+ alexaOnScheme, // [06 A.-Ein-Scheme]
788
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
789
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOff).val), // [10] Alexa-Action Aus, z.B. "Gute Nacht". Wir müssen hier zu [09] unterscheiden, da wir über "Gute Nacht" und isActionTurnedOn=true informiert werden.
790
+ schemeArray, // [08 Alexa-Schemes]
791
+ tasterSchemeArray, // /* [09 TasterBoolOn ]
792
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
793
+ adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
794
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
795
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
796
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
797
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
798
+ ));
799
+ }
800
+ });
801
+ cacheDimmerArray = sortArray(cacheDimmerArray);
802
+ return cacheDimmerArray;
803
+ }
804
+ //var homematicAllArray = null;
805
+ function loadHomematicDevicesAll(adapter) {
806
+ /*if (homematicAllArray != null) {
807
+ return homematicAllArray;
808
+ }*/
809
+ // @ts-ignore
810
+ var homematicAllArray = [];
811
+ adapter.loadHomematicWandthermostate(adapter).forEach(function (homematic) {
812
+ // @ts-ignore
813
+ homematicAllArray.push(homematic);
814
+ });
815
+ adapter.loadHomematicPraesenzmelder(adapter).forEach(function (homematic) {
816
+ // @ts-ignore
817
+ homematicAllArray.push(homematic);
818
+ });
819
+ adapter.loadHomematicWetterstationen(adapter).forEach(function (homematic) {
820
+ // @ts-ignore
821
+ homematicAllArray.push(homematic);
822
+ });
823
+ adapter.loadHomematicDoors(adapter).forEach(function (homematic) {
824
+ // @ts-ignore
825
+ homematicAllArray.push(homematic);
826
+ });
827
+ adapter.loadHomematicRollladen(adapter).forEach(function (homematic) {
828
+ // @ts-ignore
829
+ homematicAllArray.push(homematic);
830
+ });
831
+ adapter.loadHomematicWandschalter(adapter).forEach(function (homematic) {
832
+ // @ts-ignore
833
+ homematicAllArray.push(homematic);
834
+ });
835
+ adapter.loadHomematicFussbodenheizungen(adapter).forEach(function (homematic) {
836
+ // @ts-ignore
837
+ homematicAllArray.push(homematic);
838
+ });
839
+ adapter.loadHomematicWandtaster(adapter).forEach(function (homematic) {
840
+ // @ts-ignore
841
+ homematicAllArray.push(homematic);
842
+ });
843
+ adapter.loadHomematicAccessPoints(adapter).forEach(function (homematic) {
844
+ // @ts-ignore
845
+ homematicAllArray.push(homematic);
846
+ });
847
+ adapter.loadHomematicTemperatursensoren(adapter).forEach(function (homematic) {
848
+ // @ts-ignore
849
+ homematicAllArray.push(homematic);
850
+ });
851
+ adapter.loadHomematicRauchmelder(adapter).forEach(function (homematic) {
852
+ // @ts-ignore
853
+ homematicAllArray.push(homematic);
854
+ });
855
+ adapter.loadHomematicFunktschaltaktoren(adapter).forEach(function (homematic) {
856
+ // @ts-ignore
857
+ homematicAllArray.push(homematic);
858
+ });
859
+ adapter.loadHomematicWindows(adapter).forEach(function (homematic) {
860
+ // @ts-ignore
861
+ homematicAllArray.push(homematic);
862
+ });
863
+ adapter.loadHomematicSteckdosen(adapter).forEach(function (homematic) {
864
+ // @ts-ignore
865
+ homematicAllArray.push(homematic);
866
+ });
867
+ adapter.loadHomematicHeizkoerper(adapter).forEach(function (homematic) {
868
+ // @ts-ignore
869
+ homematicAllArray.push(homematic);
870
+ });
871
+ adapter.loadHomematicDimmer(adapter).forEach(function (homematic) {
872
+ // @ts-ignore
873
+ homematicAllArray.push(homematic);
874
+ });
875
+ homematicAllArray = sortArray(homematicAllArray);
876
+ return homematicAllArray;
877
+ }
878
+ function toStringArray(databaseValue) {
879
+ var stringArray = [];
880
+ if (databaseValue == null) {
881
+ return stringArray;
882
+ }
883
+ else {
884
+ return databaseValue.split('|');
885
+ }
886
+ }
887
+ function clearHomematicCaches(adapter) {
888
+ //homematicAllArray = null;
889
+ cacheDimmerArray = null;
890
+ cacheHeizkoerperArray = null;
891
+ cacheSteckdosenArray = null;
892
+ cacheWindowsArray = null;
893
+ cacheFunkschaltaktorenArray = null;
894
+ cacheRauchmelderArray = null;
895
+ cacheTemperatursensorenArray = null;
896
+ cacheAccessPointsArray = null;
897
+ cacheWandtasterArray = null;
898
+ cacheFussbodenheizungenArray = null;
899
+ cacheWandschalterArray = null;
900
+ cacheDoorsArray = null;
901
+ cacheWetterstationenArray = null;
902
+ cachePraesenzmelderArray = null;
903
+ cacheWandthermostateArray = null;
904
+ cacheRollladenArray = null;
905
+ adapter.log(">>> Homematic cache cleared!! <<<");
906
+ }
907
+ function sortArray(inputArray) {
908
+ inputArray.sort(function (a, b) {
909
+ var elementA = a;
910
+ var elementB = b;
911
+ var etageA = elementA.getEtage();
912
+ var etageB = elementB.getEtage();
913
+ var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
914
+ if (compareEtage != 0) {
915
+ return compareEtage;
916
+ }
917
+ var typA = elementA.getCategory();
918
+ var typB = elementB.getCategory();
919
+ var compareTyp = typA.localeCompare(typB);
920
+ if (compareTyp != 0) {
921
+ return compareTyp;
922
+ }
923
+ var raumA = elementA.getRaum();
924
+ var raumB = elementB.getRaum();
925
+ var compareRaum = raumA.localeCompare(raumB);
926
+ if (compareRaum != 0) {
927
+ return compareRaum;
928
+ }
929
+ var deviceA = elementA.getDevice();
930
+ var deviceB = elementB.getDevice();
931
+ var compareDevice = deviceA.localeCompare(deviceB);
932
+ if (compareDevice != 0) {
933
+ return compareDevice;
934
+ }
935
+ return 0;
936
+ });
937
+ return inputArray;
938
+ }
939
+ function getEtageSortIndex(etage) {
940
+ if (etage == "OG") {
941
+ return "a";
942
+ }
943
+ else if (etage == "EG") {
944
+ return "b";
945
+ }
946
+ else if (etage == "UG") {
947
+ return "c";
948
+ }
949
+ else {
950
+ return "d";
951
+ }
952
+ }
953
+ module.exports = { createHomematicSteckdose: createHomematicSteckdose, createHomematicHeizkoerper: createHomematicHeizkoerper, createHomematicWindow: createHomematicWindow, createHomematicFunkSchaltaktor: createHomematicFunkSchaltaktor, createHomematicRauchmelder: createHomematicRauchmelder, createHomematicTemperatursensor: createHomematicTemperatursensor, createHomematicAccessPoint: createHomematicAccessPoint, createHomematicWandtaster: createHomematicWandtaster, createHomematicPraesenzmelder: createHomematicPraesenzmelder, createHomematicWandthermostat: createHomematicWandthermostat, createHomematicWetterstation: createHomematicWetterstation, createHomematicDoor: createHomematicDoor, createHomematicRollladen: createHomematicRollladen, createHomematicFussbodenheizung: createHomematicFussbodenheizung, createHomematicDimmer: createHomematicDimmer, createHomematicWandschalter: createHomematicWandschalter, loadHomematicWandthermostate: loadHomematicWandthermostate, loadHomematicPraesenzmelder: loadHomematicPraesenzmelder, loadHomematicWetterstationen: loadHomematicWetterstationen, loadHomematicDoors: loadHomematicDoors, loadHomematicRollladen: loadHomematicRollladen, loadHomematicWandschalter: loadHomematicWandschalter, loadHomematicFussbodenheizungen: loadHomematicFussbodenheizungen, loadHomematicWandtaster: loadHomematicWandtaster, loadHomematicAccessPoints: loadHomematicAccessPoints, loadHomematicTemperatursensoren: loadHomematicTemperatursensoren, loadHomematicRauchmelder: loadHomematicRauchmelder, loadHomematicFunktschaltaktoren: loadHomematicFunktschaltaktoren, loadHomematicWindows: loadHomematicWindows, loadHomematicSteckdosen: loadHomematicSteckdosen, loadHomematicHeizkoerper: loadHomematicHeizkoerper, loadHomematicDimmer: loadHomematicDimmer, loadHomematicDevicesAll: loadHomematicDevicesAll, clearHomematicCaches: clearHomematicCaches };