iobroker-ucl 1.4.8 → 1.4.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,954 +1,954 @@
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.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 };