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,733 +1,733 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadShellyDevicesAll = exports.loadShellySteckdosen = exports.loadShellyLampenWeiss = exports.loadShellyDimmer = exports.loadShellySensoren = exports.loadShellyRollladen = exports.createShellySteckdose = exports.createShellyLampe = exports.createShellyDimmer = exports.createShellyRollladen = exports.createShellySensor = void 0;
4
- var _a = require('./shellyClasses.js'), ShellyLampeWeiss = _a.ShellyLampeWeiss, ShellyDimmerAlexaScheme = _a.ShellyDimmerAlexaScheme, ShellyDimmerTasterScheme = _a.ShellyDimmerTasterScheme, ShellyDimmer = _a.ShellyDimmer, ShellyRGBAlexaScheme = _a.ShellyRGBAlexaScheme, ShellyRGBTasterScheme = _a.ShellyRGBTasterScheme, ShellyLampeRGB = _a.ShellyLampeRGB, ShellySteckdose = _a.ShellySteckdose, ShellyRollladen = _a.ShellyRollladen, ShellySensor = _a.ShellySensor, deviceShellyLampeWeiss = _a.deviceShellyLampeWeiss, deviceShellyDimmer = _a.deviceShellyDimmer, deviceShellyLampeRGB = _a.deviceShellyLampeRGB, deviceShellySteckdose = _a.deviceShellySteckdose, deviceShellyRollladen = _a.deviceShellyRollladen, deviceShellySensor = _a.deviceShellySensor;
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 1:
33
- var attributeDimmer_alexaScheme_aktiv1 = "alexaScheme1_aktiv";
34
- var attributeDimmer_alexaScheme_name1 = "alexaScheme1_name";
35
- var attributeDimmer_alexaScheme_level1 = "alexaScheme1_level";
36
- // Scheme Dimmer 2:
37
- var attributeDimmer_alexaScheme_aktiv2 = "alexaScheme2_aktiv";
38
- var attributeDimmer_alexaScheme_name2 = "alexaScheme2_name";
39
- var attributeDimmer_alexaScheme_level2 = "alexaScheme2_level";
40
- // Scheme Dimmer 3:
41
- var attributeDimmer_alexaScheme_aktiv3 = "alexaScheme3_aktiv";
42
- var attributeDimmer_alexaScheme_name3 = "alexaScheme3_name";
43
- var attributeDimmer_alexaScheme_level3 = "alexaScheme3_level";
44
- // Scheme Dimmer 4:
45
- var attributeDimmer_alexaScheme_aktiv4 = "alexaScheme4_aktiv";
46
- var attributeDimmer_alexaScheme_name4 = "alexaScheme4_name";
47
- var attributeDimmer_alexaScheme_level4 = "alexaScheme4_level";
48
- // Taster Scheme Dimmer 1:
49
- var attributeDimmer_tasterScheme_aktiv1 = "tasterScheme1_aktiv";
50
- var attributeDimmer_tasterScheme_name1 = "tasterScheme1_name";
51
- var attributeDimmer_tasterScheme_level1 = "tasterScheme1_level";
52
- // Taster Scheme Dimmer 2:
53
- var attributeDimmer_tasterScheme_aktiv2 = "tasterScheme2_aktiv";
54
- var attributeDimmer_tasterScheme_name2 = "tasterScheme2_name";
55
- var attributeDimmer_tasterScheme_level2 = "tasterScheme2_level";
56
- // Taster Scheme Dimmer 3:
57
- var attributeDimmer_tasterScheme_aktiv3 = "tasterScheme3_aktiv";
58
- var attributeDimmer_tasterScheme_name3 = "tasterScheme3_name";
59
- var attributeDimmer_tasterScheme_level3 = "tasterScheme3_level";
60
- // Taster Scheme Dimmer 4:
61
- var attributeDimmer_tasterScheme_aktiv4 = "tasterScheme4_aktiv";
62
- var attributeDimmer_tasterScheme_name4 = "tasterScheme4_name";
63
- var attributeDimmer_tasterScheme_level4 = "tasterScheme4_level";
64
- var attributeChannel = "channel";
65
- function createShellyDevice(adapter, rawId, etage, raum, device, baseState, category) {
66
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeRawID, rawId, category);
67
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeCategory, category, category);
68
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeBaseState, baseState, category);
69
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeEtage, etage, category);
70
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeRaum, raum, category);
71
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDevice, device, category);
72
- }
73
- function createDatenpunktSingle(adapter, deviceRawId, attributeType, attributeName, attributeValue, category) {
74
- var stateDatenpunkt = "0_userdata.0.devices.shelly." + category + "." + deviceRawId + "." + attributeName;
75
- adapter.createState(stateDatenpunkt, attributeValue, {
76
- name: "S" + deviceRawId.toString().padStart(2, '0'),
77
- desc: "",
78
- type: attributeType,
79
- read: true,
80
- write: true
81
- });
82
- }
83
- console.log("test");
84
- // Sensor:
85
- function createShellySensor(adapter, rawId, etage, raum, device, baseState) {
86
- createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellySensor);
87
- }
88
- exports.createShellySensor = createShellySensor;
89
- // Rollladen:
90
- function createShellyRollladen(adapter, rawId, etage, raum, device, baseState) {
91
- createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellyRollladen);
92
- }
93
- exports.createShellyRollladen = createShellyRollladen;
94
- // Dimmer:
95
- function createShellyDimmer(adapter, rawId, etage, raum, device, baseState, alexaSmartNamesForOn, alexaActionNamesForOn, alexaLevelSchemeForOn, alexaSmartNamesForOff, alexaActionNamesForOff, levelScheme1, levelScheme2, levelScheme3, levelScheme4, tasterBooleanOn1, tasterBooleanOn2, tasterBooleanOn3, tasterBooleanOn4, tasterBooleanOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
96
- // Allgemein:
97
- createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellyDimmer);
98
- // alexaLevelSchemeForOn: InstanceType<typeof ShellyDimmerAlexaScheme>
99
- if (alexaLevelSchemeForOn != null) {
100
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, true, deviceShellyDimmer);
101
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name, alexaLevelSchemeForOn.getAlexaName(), deviceShellyDimmer);
102
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level, alexaLevelSchemeForOn.getLevel(), deviceShellyDimmer);
103
- }
104
- else {
105
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, false, deviceShellyDimmer);
106
- }
107
- // levelScheme1: InstanceType<typeof ShellyDimmerAlexaScheme>
108
- if (levelScheme1 != null) {
109
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv1, true, deviceShellyDimmer);
110
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name1, levelScheme1.getAlexaName(), deviceShellyDimmer);
111
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level1, levelScheme1.getLevel(), deviceShellyDimmer);
112
- }
113
- else {
114
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv1, false, deviceShellyDimmer);
115
- }
116
- // levelScheme2: InstanceType<typeof ShellyDimmerAlexaScheme>
117
- if (levelScheme2 != null) {
118
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv2, true, deviceShellyDimmer);
119
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name2, levelScheme2.getAlexaName(), deviceShellyDimmer);
120
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level2, levelScheme2.getLevel(), deviceShellyDimmer);
121
- }
122
- else {
123
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv2, false, deviceShellyDimmer);
124
- }
125
- // levelScheme3: InstanceType<typeof ShellyDimmerAlexaScheme>
126
- if (levelScheme3 != null) {
127
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv3, true, deviceShellyDimmer);
128
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name3, levelScheme3.getAlexaName(), deviceShellyDimmer);
129
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level3, levelScheme3.getLevel(), deviceShellyDimmer);
130
- }
131
- else {
132
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv3, false, deviceShellyDimmer);
133
- }
134
- // levelScheme4: InstanceType<typeof ShellyDimmerAlexaScheme>
135
- if (levelScheme4 != null) {
136
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv4, true, deviceShellyDimmer);
137
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name4, levelScheme4.getAlexaName(), deviceShellyDimmer);
138
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level4, levelScheme4.getLevel(), deviceShellyDimmer);
139
- }
140
- else {
141
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv4, false, deviceShellyDimmer);
142
- }
143
- // tasterBooleanOn1: InstanceType<typeof ShellyDimmerTasterScheme>
144
- if (tasterBooleanOn1 != null) {
145
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv1, true, deviceShellyDimmer);
146
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name1, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
147
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level1, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
148
- }
149
- else {
150
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv1, false, deviceShellyDimmer);
151
- }
152
- // tasterBooleanOn2: InstanceType<typeof ShellyDimmerTasterScheme>
153
- if (tasterBooleanOn2 != null) {
154
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv2, true, deviceShellyDimmer);
155
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name2, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
156
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level2, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
157
- }
158
- else {
159
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv2, false, deviceShellyDimmer);
160
- }
161
- // tasterBooleanOn3: InstanceType<typeof ShellyDimmerTasterScheme>
162
- if (tasterBooleanOn3 != null) {
163
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv3, true, deviceShellyDimmer);
164
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name3, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
165
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level3, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
166
- }
167
- else {
168
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv3, false, deviceShellyDimmer);
169
- }
170
- // tasterBooleanOn4: InstanceType<typeof ShellyDimmerTasterScheme>
171
- if (tasterBooleanOn4 != null) {
172
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv4, true, deviceShellyDimmer);
173
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name4, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
174
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level4, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
175
- }
176
- else {
177
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv4, false, deviceShellyDimmer);
178
- }
179
- // alexaSmartNamesForOn:string[]
180
- var db_alexaSmartNamesForOn = null;
181
- alexaSmartNamesForOn.forEach(function (value) {
182
- if (db_alexaSmartNamesForOn == null) {
183
- // @ts-ignore
184
- db_alexaSmartNamesForOn = value;
185
- }
186
- else {
187
- // @ts-ignore
188
- db_alexaSmartNamesForOn += "|" + value;
189
- }
190
- });
191
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceShellyDimmer);
192
- // alexaActionNamesForOn:string[]
193
- var db_alexaActionNamesForOn = null;
194
- alexaActionNamesForOn.forEach(function (value) {
195
- if (db_alexaActionNamesForOn == null) {
196
- // @ts-ignore
197
- db_alexaActionNamesForOn = value;
198
- }
199
- else {
200
- // @ts-ignore
201
- db_alexaActionNamesForOn += "|" + value;
202
- }
203
- });
204
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceShellyDimmer);
205
- // alexaSmartNamesForOff:string[]
206
- var db_alexaSmartNamesForOff = null;
207
- alexaSmartNamesForOff.forEach(function (value) {
208
- if (db_alexaSmartNamesForOff == null) {
209
- // @ts-ignore
210
- db_alexaSmartNamesForOff = value;
211
- }
212
- else {
213
- // @ts-ignore
214
- db_alexaSmartNamesForOff += "|" + value;
215
- }
216
- });
217
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceShellyDimmer);
218
- // alexaActionNamesForOff:string[]
219
- var db_alexaActionNamesForOff = null;
220
- alexaActionNamesForOff.forEach(function (value) {
221
- if (db_alexaActionNamesForOff == null) {
222
- // @ts-ignore
223
- db_alexaActionNamesForOff = value;
224
- }
225
- else {
226
- // @ts-ignore
227
- db_alexaActionNamesForOff += "|" + value;
228
- }
229
- });
230
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceShellyDimmer);
231
- // additionalStates4TurnOff: string[]
232
- var db_additionalStates4TurnOff = null;
233
- tasterBooleanOff.forEach(function (value) {
234
- if (db_additionalStates4TurnOff == null) {
235
- // @ts-ignore
236
- db_additionalStates4TurnOff = value;
237
- }
238
- else {
239
- // @ts-ignore
240
- db_additionalStates4TurnOff += "|" + value;
241
- }
242
- });
243
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceShellyDimmer);
244
- // Weitere:
245
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceShellyDimmer);
246
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceShellyDimmer);
247
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceShellyDimmer);
248
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceShellyDimmer);
249
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceShellyDimmer);
250
- }
251
- exports.createShellyDimmer = createShellyDimmer;
252
- // Lampe Weiss:
253
- function createShellyLampe(adapter, rawId, etage, raum, device, baseState, channel, alexaSmartNamesForOn, alexaActionNamesForOn, alexaSmartNamesForOff, alexaActionNamesForOff, additionalStates4TurnOn, additionalStates4TurnOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
254
- // Allgemein:
255
- createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellyLampeWeiss);
256
- // attributeChannel
257
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeChannel, channel, deviceShellyLampeWeiss);
258
- // alexaSmartNamesForOn:string[]
259
- var db_alexaSmartNamesForOn = null;
260
- alexaSmartNamesForOn.forEach(function (value) {
261
- if (db_alexaSmartNamesForOn == null) {
262
- // @ts-ignore
263
- db_alexaSmartNamesForOn = value;
264
- }
265
- else {
266
- // @ts-ignore
267
- db_alexaSmartNamesForOn += "|" + value;
268
- }
269
- });
270
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceShellyLampeWeiss);
271
- // alexaActionNamesForOn:string[]
272
- var db_alexaActionNamesForOn = null;
273
- alexaActionNamesForOn.forEach(function (value) {
274
- if (db_alexaActionNamesForOn == null) {
275
- // @ts-ignore
276
- db_alexaActionNamesForOn = value;
277
- }
278
- else {
279
- // @ts-ignore
280
- db_alexaActionNamesForOn += "|" + value;
281
- }
282
- });
283
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceShellyLampeWeiss);
284
- // alexaSmartNamesForOff:string[]
285
- var db_alexaSmartNamesForOff = null;
286
- alexaSmartNamesForOff.forEach(function (value) {
287
- if (db_alexaSmartNamesForOff == null) {
288
- // @ts-ignore
289
- db_alexaSmartNamesForOff = value;
290
- }
291
- else {
292
- // @ts-ignore
293
- db_alexaSmartNamesForOff += "|" + value;
294
- }
295
- });
296
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceShellyLampeWeiss);
297
- // alexaActionNamesForOff:string[]
298
- var db_alexaActionNamesForOff = null;
299
- alexaActionNamesForOff.forEach(function (value) {
300
- if (db_alexaActionNamesForOff == null) {
301
- // @ts-ignore
302
- db_alexaActionNamesForOff = value;
303
- }
304
- else {
305
- // @ts-ignore
306
- db_alexaActionNamesForOff += "|" + value;
307
- }
308
- });
309
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceShellyLampeWeiss);
310
- // additionalStates4TurnOn: string[]
311
- var db_additionalStates4TurnOn = null;
312
- additionalStates4TurnOn.forEach(function (value) {
313
- if (db_additionalStates4TurnOn == null) {
314
- // @ts-ignore
315
- db_additionalStates4TurnOn = value;
316
- }
317
- else {
318
- // @ts-ignore
319
- db_additionalStates4TurnOn += "|" + value;
320
- }
321
- });
322
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOn, db_additionalStates4TurnOn, deviceShellyLampeWeiss);
323
- // additionalStates4TurnOff: string[]
324
- var db_additionalStates4TurnOff = null;
325
- additionalStates4TurnOff.forEach(function (value) {
326
- if (db_additionalStates4TurnOff == null) {
327
- // @ts-ignore
328
- db_additionalStates4TurnOff = value;
329
- }
330
- else {
331
- // @ts-ignore
332
- db_additionalStates4TurnOff += "|" + value;
333
- }
334
- });
335
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceShellyLampeWeiss);
336
- // Weitere:
337
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceShellyLampeWeiss);
338
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceShellyLampeWeiss);
339
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceShellyLampeWeiss);
340
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceShellyLampeWeiss);
341
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceShellyLampeWeiss);
342
- }
343
- exports.createShellyLampe = createShellyLampe;
344
- // Steckdose:
345
- function createShellySteckdose(adapter, rawId, etage, raum, device, baseState, channel, alexaSmartNamesForOn, alexaActionNamesForOn, alexaSmartNamesForOff, alexaActionNamesForOff, additionalStates4TurnOn, additionalStates4TurnOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
346
- // Allgemein:
347
- createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellySteckdose);
348
- // attributeChannel
349
- createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeChannel, channel, deviceShellySteckdose);
350
- // alexaSmartNamesForOn:string[]
351
- var db_alexaSmartNamesForOn = null;
352
- alexaSmartNamesForOn.forEach(function (value) {
353
- if (db_alexaSmartNamesForOn == null) {
354
- // @ts-ignore
355
- db_alexaSmartNamesForOn = value;
356
- }
357
- else {
358
- // @ts-ignore
359
- db_alexaSmartNamesForOn += "|" + value;
360
- }
361
- });
362
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceShellySteckdose);
363
- // alexaActionNamesForOn:string[]
364
- var db_alexaActionNamesForOn = null;
365
- alexaActionNamesForOn.forEach(function (value) {
366
- if (db_alexaActionNamesForOn == null) {
367
- // @ts-ignore
368
- db_alexaActionNamesForOn = value;
369
- }
370
- else {
371
- // @ts-ignore
372
- db_alexaActionNamesForOn += "|" + value;
373
- }
374
- });
375
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceShellySteckdose);
376
- // alexaSmartNamesForOff:string[]
377
- var db_alexaSmartNamesForOff = null;
378
- alexaSmartNamesForOff.forEach(function (value) {
379
- if (db_alexaSmartNamesForOff == null) {
380
- // @ts-ignore
381
- db_alexaSmartNamesForOff = value;
382
- }
383
- else {
384
- // @ts-ignore
385
- db_alexaSmartNamesForOff += "|" + value;
386
- }
387
- });
388
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceShellySteckdose);
389
- // alexaActionNamesForOff:string[]
390
- var db_alexaActionNamesForOff = null;
391
- alexaActionNamesForOff.forEach(function (value) {
392
- if (db_alexaActionNamesForOff == null) {
393
- // @ts-ignore
394
- db_alexaActionNamesForOff = value;
395
- }
396
- else {
397
- // @ts-ignore
398
- db_alexaActionNamesForOff += "|" + value;
399
- }
400
- });
401
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceShellySteckdose);
402
- // additionalStates4TurnOn: string[]
403
- var db_additionalStates4TurnOn = null;
404
- additionalStates4TurnOn.forEach(function (value) {
405
- if (db_additionalStates4TurnOn == null) {
406
- // @ts-ignore
407
- db_additionalStates4TurnOn = value;
408
- }
409
- else {
410
- // @ts-ignore
411
- db_additionalStates4TurnOn += "|" + value;
412
- }
413
- });
414
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOn, db_additionalStates4TurnOn, deviceShellySteckdose);
415
- // additionalStates4TurnOff: string[]
416
- var db_additionalStates4TurnOff = null;
417
- additionalStates4TurnOff.forEach(function (value) {
418
- if (db_additionalStates4TurnOff == null) {
419
- // @ts-ignore
420
- db_additionalStates4TurnOff = value;
421
- }
422
- else {
423
- // @ts-ignore
424
- db_additionalStates4TurnOff += "|" + value;
425
- }
426
- });
427
- createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceShellySteckdose);
428
- // Weitere:
429
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceShellySteckdose);
430
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceShellySteckdose);
431
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceShellySteckdose);
432
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceShellySteckdose);
433
- createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceShellySteckdose);
434
- }
435
- exports.createShellySteckdose = createShellySteckdose;
436
- var cacheRollladenArray = null;
437
- function loadShellyRollladen(adapter) {
438
- if (cacheRollladenArray != null) {
439
- return cacheRollladenArray;
440
- }
441
- // @ts-ignore
442
- cacheRollladenArray = [];
443
- adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
444
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
445
- if (adapter.getState(datenpunktKey).val == deviceShellyRollladen) {
446
- // @ts-ignore
447
- cacheRollladenArray.push(new ShellyRollladen(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
448
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
449
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
450
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
451
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
452
- ));
453
- }
454
- });
455
- cacheRollladenArray = sortArray(cacheRollladenArray);
456
- return cacheRollladenArray;
457
- }
458
- exports.loadShellyRollladen = loadShellyRollladen;
459
- var cacheSensorenArray = null;
460
- function loadShellySensoren(adapter) {
461
- if (cacheSensorenArray != null) {
462
- return cacheSensorenArray;
463
- }
464
- // @ts-ignore
465
- cacheSensorenArray = [];
466
- adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
467
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
468
- if (adapter.getState(datenpunktKey).val == deviceShellySensor) {
469
- // @ts-ignore
470
- cacheSensorenArray.push(new ShellySensor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
471
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
472
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
473
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
474
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
475
- ));
476
- }
477
- });
478
- cacheSensorenArray = sortArray(cacheSensorenArray);
479
- return cacheSensorenArray;
480
- }
481
- exports.loadShellySensoren = loadShellySensoren;
482
- var cacheDimmerArray = null;
483
- function loadShellyDimmer(adapter) {
484
- if (cacheDimmerArray != null) {
485
- return cacheDimmerArray;
486
- }
487
- // @ts-ignore
488
- cacheDimmerArray = [];
489
- adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
490
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
491
- if (adapter.getState(datenpunktKey).val == deviceShellyDimmer) {
492
- // Einschalt-Scheme:
493
- var alexaOnScheme = null;
494
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv).val == true) {
495
- // @ts-ignore
496
- alexaOnScheme = new ShellyDimmerAlexaScheme(null, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level).val);
497
- }
498
- // Weitere Schemes als Array:
499
- var schemeArray = [];
500
- // alexaScheme1: InstanceType<typeof ShellyDimmerAlexaScheme>
501
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv1).val == true) {
502
- // @ts-ignore
503
- schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name1).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level1).val));
504
- }
505
- // alexaScheme2: InstanceType<typeof ShellyDimmerAlexaScheme>
506
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv2).val == true) {
507
- // @ts-ignore
508
- schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name2).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level2).val));
509
- }
510
- // alexaScheme3: InstanceType<typeof ShellyDimmerAlexaScheme>
511
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv3).val == true) {
512
- // @ts-ignore
513
- schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name3).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level3).val));
514
- }
515
- // alexaScheme4: InstanceType<typeof ShellyDimmerAlexaScheme>
516
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv4).val == true) {
517
- // @ts-ignore
518
- schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name4).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level4).val));
519
- }
520
- // Weitere Schemes als Array:
521
- var tasterSchemeArray = [];
522
- // tasterScheme1: InstanceType<typeof ShellyDimmerTasterScheme>
523
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv1).val == true) {
524
- // @ts-ignore
525
- tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name1).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level1).val));
526
- }
527
- // tasterScheme2: InstanceType<typeof ShellyDimmerTasterScheme>
528
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv2).val == true) {
529
- // @ts-ignore
530
- tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name2).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level2).val));
531
- }
532
- // tasterScheme3: InstanceType<typeof ShellyDimmerTasterScheme>
533
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv3).val == true) {
534
- // @ts-ignore
535
- tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name3).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level3).val));
536
- }
537
- // tasterScheme4: InstanceType<typeof ShellyDimmerTasterScheme>
538
- if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv4).val == true) {
539
- // @ts-ignore
540
- tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name4).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level4).val));
541
- }
542
- // @ts-ignore
543
- cacheDimmerArray.push(new ShellyDimmer(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
544
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
545
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
546
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
547
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
548
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
549
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
550
- alexaOnScheme, // 08] A.-Ein-Schem
551
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
552
- 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.
553
- schemeArray, // [11] Alexa-Schemes
554
- tasterSchemeArray, // [12 Level-Schemes]
555
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
556
- adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
557
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
558
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
559
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
560
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
561
- ));
562
- }
563
- });
564
- cacheDimmerArray = sortArray(cacheDimmerArray);
565
- return cacheDimmerArray;
566
- }
567
- exports.loadShellyDimmer = loadShellyDimmer;
568
- var cacheLampenWeissArray = null;
569
- function loadShellyLampenWeiss(adapter) {
570
- if (cacheLampenWeissArray != null) {
571
- return cacheLampenWeissArray;
572
- }
573
- // @ts-ignore
574
- cacheLampenWeissArray = [];
575
- adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
576
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
577
- if (adapter.getState(datenpunktKey).val == deviceShellyLampeWeiss) {
578
- // @ts-ignore
579
- cacheLampenWeissArray.push(new ShellyLampeWeiss(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
580
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
581
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
582
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
583
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
584
- adapter.getState(datenpunktPraefix + "." + attributeChannel).val, // [4] Channel
585
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
586
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
587
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
588
- 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.
589
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOn).val), // 14 TasterBoolOn
590
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
591
- adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
592
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
593
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
594
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
595
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
596
- ));
597
- }
598
- });
599
- cacheLampenWeissArray = sortArray(cacheLampenWeissArray);
600
- return cacheLampenWeissArray;
601
- }
602
- exports.loadShellyLampenWeiss = loadShellyLampenWeiss;
603
- var cacheSteckdosenArray = null;
604
- function loadShellySteckdosen(adapter) {
605
- if (cacheSteckdosenArray != null) {
606
- return cacheSteckdosenArray;
607
- }
608
- // @ts-ignore
609
- cacheSteckdosenArray = [];
610
- adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
611
- var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
612
- if (adapter.getState(datenpunktKey).val == deviceShellySteckdose) {
613
- // @ts-ignore
614
- cacheSteckdosenArray.push(new ShellySteckdose(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
615
- adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
616
- adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
617
- adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
618
- adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
619
- adapter.getState(datenpunktPraefix + "." + attributeChannel).val, // [4] Channel
620
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
621
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
622
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
623
- 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.
624
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOn).val), // 14 TasterBoolOn
625
- toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
626
- adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
627
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
628
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
629
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
630
- adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
631
- ));
632
- }
633
- });
634
- cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
635
- return cacheSteckdosenArray;
636
- }
637
- exports.loadShellySteckdosen = loadShellySteckdosen;
638
- //var shellyAllArray = null;
639
- function loadShellyDevicesAll(adapter) {
640
- //if (shellyAllArray != null) {
641
- // return shellyAllArray;
642
- //}
643
- // @ts-ignore
644
- var shellyAllArray = [];
645
- adapter.loadShellyLampenWeiss(adapter).forEach(function (shelly) {
646
- // @ts-ignore
647
- shellyAllArray.push(shelly);
648
- });
649
- adapter.loadShellyDimmer(adapter).forEach(function (shelly) {
650
- // @ts-ignore
651
- shellyAllArray.push(shelly);
652
- });
653
- adapter.loadShellyRollladen(adapter).forEach(function (shelly) {
654
- // @ts-ignore
655
- shellyAllArray.push(shelly);
656
- });
657
- adapter.loadShellySensoren(adapter).forEach(function (shelly) {
658
- // @ts-ignore
659
- shellyAllArray.push(shelly);
660
- });
661
- adapter.loadShellySteckdosen(adapter).forEach(function (shelly) {
662
- // @ts-ignore
663
- shellyAllArray.push(shelly);
664
- });
665
- shellyAllArray = sortArray(shellyAllArray);
666
- return shellyAllArray;
667
- }
668
- exports.loadShellyDevicesAll = loadShellyDevicesAll;
669
- function toStringArray(databaseValue) {
670
- var stringArray = [];
671
- if (databaseValue == null) {
672
- return stringArray;
673
- }
674
- else {
675
- return databaseValue.split('|');
676
- }
677
- }
678
- function clearShellyCaches(adapter) {
679
- //shellyAllArray = null;
680
- cacheSteckdosenArray = null;
681
- cacheLampenWeissArray = null;
682
- cacheDimmerArray = null;
683
- cacheSensorenArray = null;
684
- cacheRollladenArray = null;
685
- adapter.log(">>> Shelly cache cleared!! <<<");
686
- }
687
- function sortArray(inputArray) {
688
- inputArray.sort(function (a, b) {
689
- var elementA = a;
690
- var elementB = b;
691
- var etageA = elementA.getEtage();
692
- var etageB = elementB.getEtage();
693
- var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
694
- if (compareEtage != 0) {
695
- return compareEtage;
696
- }
697
- var typA = elementA.getCategory();
698
- var typB = elementB.getCategory();
699
- var compareTyp = typA.localeCompare(typB);
700
- if (compareTyp != 0) {
701
- return compareTyp;
702
- }
703
- var raumA = elementA.getRaum();
704
- var raumB = elementB.getRaum();
705
- var compareRaum = raumA.localeCompare(raumB);
706
- if (compareRaum != 0) {
707
- return compareRaum;
708
- }
709
- var deviceA = elementA.getDevice();
710
- var deviceB = elementB.getDevice();
711
- var compareDevice = deviceA.localeCompare(deviceB);
712
- if (compareDevice != 0) {
713
- return compareDevice;
714
- }
715
- return 0;
716
- });
717
- return inputArray;
718
- }
719
- function getEtageSortIndex(etage) {
720
- if (etage == "OG") {
721
- return "a";
722
- }
723
- else if (etage == "EG") {
724
- return "b";
725
- }
726
- else if (etage == "UG") {
727
- return "c";
728
- }
729
- else {
730
- return "d";
731
- }
732
- }
733
- module.exports = { createShellyDevice: createShellyDevice, createShellySensor: createShellySensor, createShellyRollladen: createShellyRollladen, createShellyDimmer: createShellyDimmer, createShellyLampe: createShellyLampe, createShellySteckdose: createShellySteckdose, loadShellyRollladen: loadShellyRollladen, loadShellySensoren: loadShellySensoren, loadShellyDimmer: loadShellyDimmer, loadShellyLampenWeiss: loadShellyLampenWeiss, loadShellySteckdosen: loadShellySteckdosen, loadShellyDevicesAll: loadShellyDevicesAll, clearShellyCaches: clearShellyCaches };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadShellyDevicesAll = exports.loadShellySteckdosen = exports.loadShellyLampenWeiss = exports.loadShellyDimmer = exports.loadShellySensoren = exports.loadShellyRollladen = exports.createShellySteckdose = exports.createShellyLampe = exports.createShellyDimmer = exports.createShellyRollladen = exports.createShellySensor = void 0;
4
+ var _a = require('./shellyClasses.js'), ShellyLampeWeiss = _a.ShellyLampeWeiss, ShellyDimmerAlexaScheme = _a.ShellyDimmerAlexaScheme, ShellyDimmerTasterScheme = _a.ShellyDimmerTasterScheme, ShellyDimmer = _a.ShellyDimmer, ShellyRGBAlexaScheme = _a.ShellyRGBAlexaScheme, ShellyRGBTasterScheme = _a.ShellyRGBTasterScheme, ShellyLampeRGB = _a.ShellyLampeRGB, ShellySteckdose = _a.ShellySteckdose, ShellyRollladen = _a.ShellyRollladen, ShellySensor = _a.ShellySensor, deviceShellyLampeWeiss = _a.deviceShellyLampeWeiss, deviceShellyDimmer = _a.deviceShellyDimmer, deviceShellyLampeRGB = _a.deviceShellyLampeRGB, deviceShellySteckdose = _a.deviceShellySteckdose, deviceShellyRollladen = _a.deviceShellyRollladen, deviceShellySensor = _a.deviceShellySensor;
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 1:
33
+ var attributeDimmer_alexaScheme_aktiv1 = "alexaScheme1_aktiv";
34
+ var attributeDimmer_alexaScheme_name1 = "alexaScheme1_name";
35
+ var attributeDimmer_alexaScheme_level1 = "alexaScheme1_level";
36
+ // Scheme Dimmer 2:
37
+ var attributeDimmer_alexaScheme_aktiv2 = "alexaScheme2_aktiv";
38
+ var attributeDimmer_alexaScheme_name2 = "alexaScheme2_name";
39
+ var attributeDimmer_alexaScheme_level2 = "alexaScheme2_level";
40
+ // Scheme Dimmer 3:
41
+ var attributeDimmer_alexaScheme_aktiv3 = "alexaScheme3_aktiv";
42
+ var attributeDimmer_alexaScheme_name3 = "alexaScheme3_name";
43
+ var attributeDimmer_alexaScheme_level3 = "alexaScheme3_level";
44
+ // Scheme Dimmer 4:
45
+ var attributeDimmer_alexaScheme_aktiv4 = "alexaScheme4_aktiv";
46
+ var attributeDimmer_alexaScheme_name4 = "alexaScheme4_name";
47
+ var attributeDimmer_alexaScheme_level4 = "alexaScheme4_level";
48
+ // Taster Scheme Dimmer 1:
49
+ var attributeDimmer_tasterScheme_aktiv1 = "tasterScheme1_aktiv";
50
+ var attributeDimmer_tasterScheme_name1 = "tasterScheme1_name";
51
+ var attributeDimmer_tasterScheme_level1 = "tasterScheme1_level";
52
+ // Taster Scheme Dimmer 2:
53
+ var attributeDimmer_tasterScheme_aktiv2 = "tasterScheme2_aktiv";
54
+ var attributeDimmer_tasterScheme_name2 = "tasterScheme2_name";
55
+ var attributeDimmer_tasterScheme_level2 = "tasterScheme2_level";
56
+ // Taster Scheme Dimmer 3:
57
+ var attributeDimmer_tasterScheme_aktiv3 = "tasterScheme3_aktiv";
58
+ var attributeDimmer_tasterScheme_name3 = "tasterScheme3_name";
59
+ var attributeDimmer_tasterScheme_level3 = "tasterScheme3_level";
60
+ // Taster Scheme Dimmer 4:
61
+ var attributeDimmer_tasterScheme_aktiv4 = "tasterScheme4_aktiv";
62
+ var attributeDimmer_tasterScheme_name4 = "tasterScheme4_name";
63
+ var attributeDimmer_tasterScheme_level4 = "tasterScheme4_level";
64
+ var attributeChannel = "channel";
65
+ function createShellyDevice(adapter, rawId, etage, raum, device, baseState, category) {
66
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeRawID, rawId, category);
67
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeCategory, category, category);
68
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeBaseState, baseState, category);
69
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeEtage, etage, category);
70
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeRaum, raum, category);
71
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDevice, device, category);
72
+ }
73
+ function createDatenpunktSingle(adapter, deviceRawId, attributeType, attributeName, attributeValue, category) {
74
+ var stateDatenpunkt = "0_userdata.0.devices.shelly." + category + "." + deviceRawId + "." + attributeName;
75
+ adapter.createState(stateDatenpunkt, attributeValue, {
76
+ name: "S" + deviceRawId.toString().padStart(2, '0'),
77
+ desc: "",
78
+ type: attributeType,
79
+ read: true,
80
+ write: true
81
+ });
82
+ }
83
+ console.log("test");
84
+ // Sensor:
85
+ function createShellySensor(adapter, rawId, etage, raum, device, baseState) {
86
+ createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellySensor);
87
+ }
88
+ exports.createShellySensor = createShellySensor;
89
+ // Rollladen:
90
+ function createShellyRollladen(adapter, rawId, etage, raum, device, baseState) {
91
+ createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellyRollladen);
92
+ }
93
+ exports.createShellyRollladen = createShellyRollladen;
94
+ // Dimmer:
95
+ function createShellyDimmer(adapter, rawId, etage, raum, device, baseState, alexaSmartNamesForOn, alexaActionNamesForOn, alexaLevelSchemeForOn, alexaSmartNamesForOff, alexaActionNamesForOff, levelScheme1, levelScheme2, levelScheme3, levelScheme4, tasterBooleanOn1, tasterBooleanOn2, tasterBooleanOn3, tasterBooleanOn4, tasterBooleanOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
96
+ // Allgemein:
97
+ createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellyDimmer);
98
+ // alexaLevelSchemeForOn: InstanceType<typeof ShellyDimmerAlexaScheme>
99
+ if (alexaLevelSchemeForOn != null) {
100
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, true, deviceShellyDimmer);
101
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name, alexaLevelSchemeForOn.getAlexaName(), deviceShellyDimmer);
102
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level, alexaLevelSchemeForOn.getLevel(), deviceShellyDimmer);
103
+ }
104
+ else {
105
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv, false, deviceShellyDimmer);
106
+ }
107
+ // levelScheme1: InstanceType<typeof ShellyDimmerAlexaScheme>
108
+ if (levelScheme1 != null) {
109
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv1, true, deviceShellyDimmer);
110
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name1, levelScheme1.getAlexaName(), deviceShellyDimmer);
111
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level1, levelScheme1.getLevel(), deviceShellyDimmer);
112
+ }
113
+ else {
114
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv1, false, deviceShellyDimmer);
115
+ }
116
+ // levelScheme2: InstanceType<typeof ShellyDimmerAlexaScheme>
117
+ if (levelScheme2 != null) {
118
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv2, true, deviceShellyDimmer);
119
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name2, levelScheme2.getAlexaName(), deviceShellyDimmer);
120
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level2, levelScheme2.getLevel(), deviceShellyDimmer);
121
+ }
122
+ else {
123
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv2, false, deviceShellyDimmer);
124
+ }
125
+ // levelScheme3: InstanceType<typeof ShellyDimmerAlexaScheme>
126
+ if (levelScheme3 != null) {
127
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv3, true, deviceShellyDimmer);
128
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name3, levelScheme3.getAlexaName(), deviceShellyDimmer);
129
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level3, levelScheme3.getLevel(), deviceShellyDimmer);
130
+ }
131
+ else {
132
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv3, false, deviceShellyDimmer);
133
+ }
134
+ // levelScheme4: InstanceType<typeof ShellyDimmerAlexaScheme>
135
+ if (levelScheme4 != null) {
136
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv4, true, deviceShellyDimmer);
137
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_alexaScheme_name4, levelScheme4.getAlexaName(), deviceShellyDimmer);
138
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_alexaScheme_level4, levelScheme4.getLevel(), deviceShellyDimmer);
139
+ }
140
+ else {
141
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_alexaScheme_aktiv4, false, deviceShellyDimmer);
142
+ }
143
+ // tasterBooleanOn1: InstanceType<typeof ShellyDimmerTasterScheme>
144
+ if (tasterBooleanOn1 != null) {
145
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv1, true, deviceShellyDimmer);
146
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name1, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
147
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level1, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
148
+ }
149
+ else {
150
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv1, false, deviceShellyDimmer);
151
+ }
152
+ // tasterBooleanOn2: InstanceType<typeof ShellyDimmerTasterScheme>
153
+ if (tasterBooleanOn2 != null) {
154
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv2, true, deviceShellyDimmer);
155
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name2, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
156
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level2, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
157
+ }
158
+ else {
159
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv2, false, deviceShellyDimmer);
160
+ }
161
+ // tasterBooleanOn3: InstanceType<typeof ShellyDimmerTasterScheme>
162
+ if (tasterBooleanOn3 != null) {
163
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv3, true, deviceShellyDimmer);
164
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name3, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
165
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level3, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
166
+ }
167
+ else {
168
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv3, false, deviceShellyDimmer);
169
+ }
170
+ // tasterBooleanOn4: InstanceType<typeof ShellyDimmerTasterScheme>
171
+ if (tasterBooleanOn4 != null) {
172
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv4, true, deviceShellyDimmer);
173
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDimmer_tasterScheme_name4, tasterBooleanOn1.getTasterBooleanOnName(), deviceShellyDimmer);
174
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeDimmer_tasterScheme_level4, tasterBooleanOn1.getLevel(), deviceShellyDimmer);
175
+ }
176
+ else {
177
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attributeDimmer_tasterScheme_aktiv4, false, deviceShellyDimmer);
178
+ }
179
+ // alexaSmartNamesForOn:string[]
180
+ var db_alexaSmartNamesForOn = null;
181
+ alexaSmartNamesForOn.forEach(function (value) {
182
+ if (db_alexaSmartNamesForOn == null) {
183
+ // @ts-ignore
184
+ db_alexaSmartNamesForOn = value;
185
+ }
186
+ else {
187
+ // @ts-ignore
188
+ db_alexaSmartNamesForOn += "|" + value;
189
+ }
190
+ });
191
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceShellyDimmer);
192
+ // alexaActionNamesForOn:string[]
193
+ var db_alexaActionNamesForOn = null;
194
+ alexaActionNamesForOn.forEach(function (value) {
195
+ if (db_alexaActionNamesForOn == null) {
196
+ // @ts-ignore
197
+ db_alexaActionNamesForOn = value;
198
+ }
199
+ else {
200
+ // @ts-ignore
201
+ db_alexaActionNamesForOn += "|" + value;
202
+ }
203
+ });
204
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceShellyDimmer);
205
+ // alexaSmartNamesForOff:string[]
206
+ var db_alexaSmartNamesForOff = null;
207
+ alexaSmartNamesForOff.forEach(function (value) {
208
+ if (db_alexaSmartNamesForOff == null) {
209
+ // @ts-ignore
210
+ db_alexaSmartNamesForOff = value;
211
+ }
212
+ else {
213
+ // @ts-ignore
214
+ db_alexaSmartNamesForOff += "|" + value;
215
+ }
216
+ });
217
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceShellyDimmer);
218
+ // alexaActionNamesForOff:string[]
219
+ var db_alexaActionNamesForOff = null;
220
+ alexaActionNamesForOff.forEach(function (value) {
221
+ if (db_alexaActionNamesForOff == null) {
222
+ // @ts-ignore
223
+ db_alexaActionNamesForOff = value;
224
+ }
225
+ else {
226
+ // @ts-ignore
227
+ db_alexaActionNamesForOff += "|" + value;
228
+ }
229
+ });
230
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceShellyDimmer);
231
+ // additionalStates4TurnOff: string[]
232
+ var db_additionalStates4TurnOff = null;
233
+ tasterBooleanOff.forEach(function (value) {
234
+ if (db_additionalStates4TurnOff == null) {
235
+ // @ts-ignore
236
+ db_additionalStates4TurnOff = value;
237
+ }
238
+ else {
239
+ // @ts-ignore
240
+ db_additionalStates4TurnOff += "|" + value;
241
+ }
242
+ });
243
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceShellyDimmer);
244
+ // Weitere:
245
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceShellyDimmer);
246
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceShellyDimmer);
247
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceShellyDimmer);
248
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceShellyDimmer);
249
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceShellyDimmer);
250
+ }
251
+ exports.createShellyDimmer = createShellyDimmer;
252
+ // Lampe Weiss:
253
+ function createShellyLampe(adapter, rawId, etage, raum, device, baseState, channel, alexaSmartNamesForOn, alexaActionNamesForOn, alexaSmartNamesForOff, alexaActionNamesForOff, additionalStates4TurnOn, additionalStates4TurnOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
254
+ // Allgemein:
255
+ createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellyLampeWeiss);
256
+ // attributeChannel
257
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeChannel, channel, deviceShellyLampeWeiss);
258
+ // alexaSmartNamesForOn:string[]
259
+ var db_alexaSmartNamesForOn = null;
260
+ alexaSmartNamesForOn.forEach(function (value) {
261
+ if (db_alexaSmartNamesForOn == null) {
262
+ // @ts-ignore
263
+ db_alexaSmartNamesForOn = value;
264
+ }
265
+ else {
266
+ // @ts-ignore
267
+ db_alexaSmartNamesForOn += "|" + value;
268
+ }
269
+ });
270
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceShellyLampeWeiss);
271
+ // alexaActionNamesForOn:string[]
272
+ var db_alexaActionNamesForOn = null;
273
+ alexaActionNamesForOn.forEach(function (value) {
274
+ if (db_alexaActionNamesForOn == null) {
275
+ // @ts-ignore
276
+ db_alexaActionNamesForOn = value;
277
+ }
278
+ else {
279
+ // @ts-ignore
280
+ db_alexaActionNamesForOn += "|" + value;
281
+ }
282
+ });
283
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceShellyLampeWeiss);
284
+ // alexaSmartNamesForOff:string[]
285
+ var db_alexaSmartNamesForOff = null;
286
+ alexaSmartNamesForOff.forEach(function (value) {
287
+ if (db_alexaSmartNamesForOff == null) {
288
+ // @ts-ignore
289
+ db_alexaSmartNamesForOff = value;
290
+ }
291
+ else {
292
+ // @ts-ignore
293
+ db_alexaSmartNamesForOff += "|" + value;
294
+ }
295
+ });
296
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceShellyLampeWeiss);
297
+ // alexaActionNamesForOff:string[]
298
+ var db_alexaActionNamesForOff = null;
299
+ alexaActionNamesForOff.forEach(function (value) {
300
+ if (db_alexaActionNamesForOff == null) {
301
+ // @ts-ignore
302
+ db_alexaActionNamesForOff = value;
303
+ }
304
+ else {
305
+ // @ts-ignore
306
+ db_alexaActionNamesForOff += "|" + value;
307
+ }
308
+ });
309
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceShellyLampeWeiss);
310
+ // additionalStates4TurnOn: string[]
311
+ var db_additionalStates4TurnOn = null;
312
+ additionalStates4TurnOn.forEach(function (value) {
313
+ if (db_additionalStates4TurnOn == null) {
314
+ // @ts-ignore
315
+ db_additionalStates4TurnOn = value;
316
+ }
317
+ else {
318
+ // @ts-ignore
319
+ db_additionalStates4TurnOn += "|" + value;
320
+ }
321
+ });
322
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOn, db_additionalStates4TurnOn, deviceShellyLampeWeiss);
323
+ // additionalStates4TurnOff: string[]
324
+ var db_additionalStates4TurnOff = null;
325
+ additionalStates4TurnOff.forEach(function (value) {
326
+ if (db_additionalStates4TurnOff == null) {
327
+ // @ts-ignore
328
+ db_additionalStates4TurnOff = value;
329
+ }
330
+ else {
331
+ // @ts-ignore
332
+ db_additionalStates4TurnOff += "|" + value;
333
+ }
334
+ });
335
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceShellyLampeWeiss);
336
+ // Weitere:
337
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceShellyLampeWeiss);
338
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceShellyLampeWeiss);
339
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceShellyLampeWeiss);
340
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceShellyLampeWeiss);
341
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceShellyLampeWeiss);
342
+ }
343
+ exports.createShellyLampe = createShellyLampe;
344
+ // Steckdose:
345
+ function createShellySteckdose(adapter, rawId, etage, raum, device, baseState, channel, alexaSmartNamesForOn, alexaActionNamesForOn, alexaSmartNamesForOff, alexaActionNamesForOff, additionalStates4TurnOn, additionalStates4TurnOff, nachtbeleuchtung, turnOffExitHouseSummer, turnOffExitHouseWinter, turnOnEnterHouseSummer, turnOnEnterHouseWinter) {
346
+ // Allgemein:
347
+ createShellyDevice(adapter, rawId, etage, raum, device, baseState, deviceShellySteckdose);
348
+ // attributeChannel
349
+ createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeChannel, channel, deviceShellySteckdose);
350
+ // alexaSmartNamesForOn:string[]
351
+ var db_alexaSmartNamesForOn = null;
352
+ alexaSmartNamesForOn.forEach(function (value) {
353
+ if (db_alexaSmartNamesForOn == null) {
354
+ // @ts-ignore
355
+ db_alexaSmartNamesForOn = value;
356
+ }
357
+ else {
358
+ // @ts-ignore
359
+ db_alexaSmartNamesForOn += "|" + value;
360
+ }
361
+ });
362
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOn, db_alexaSmartNamesForOn, deviceShellySteckdose);
363
+ // alexaActionNamesForOn:string[]
364
+ var db_alexaActionNamesForOn = null;
365
+ alexaActionNamesForOn.forEach(function (value) {
366
+ if (db_alexaActionNamesForOn == null) {
367
+ // @ts-ignore
368
+ db_alexaActionNamesForOn = value;
369
+ }
370
+ else {
371
+ // @ts-ignore
372
+ db_alexaActionNamesForOn += "|" + value;
373
+ }
374
+ });
375
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOn, db_alexaActionNamesForOn, deviceShellySteckdose);
376
+ // alexaSmartNamesForOff:string[]
377
+ var db_alexaSmartNamesForOff = null;
378
+ alexaSmartNamesForOff.forEach(function (value) {
379
+ if (db_alexaSmartNamesForOff == null) {
380
+ // @ts-ignore
381
+ db_alexaSmartNamesForOff = value;
382
+ }
383
+ else {
384
+ // @ts-ignore
385
+ db_alexaSmartNamesForOff += "|" + value;
386
+ }
387
+ });
388
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaSmartNamesForOff, db_alexaSmartNamesForOff, deviceShellySteckdose);
389
+ // alexaActionNamesForOff:string[]
390
+ var db_alexaActionNamesForOff = null;
391
+ alexaActionNamesForOff.forEach(function (value) {
392
+ if (db_alexaActionNamesForOff == null) {
393
+ // @ts-ignore
394
+ db_alexaActionNamesForOff = value;
395
+ }
396
+ else {
397
+ // @ts-ignore
398
+ db_alexaActionNamesForOff += "|" + value;
399
+ }
400
+ });
401
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_AlexaActionNamesForOff, db_alexaActionNamesForOff, deviceShellySteckdose);
402
+ // additionalStates4TurnOn: string[]
403
+ var db_additionalStates4TurnOn = null;
404
+ additionalStates4TurnOn.forEach(function (value) {
405
+ if (db_additionalStates4TurnOn == null) {
406
+ // @ts-ignore
407
+ db_additionalStates4TurnOn = value;
408
+ }
409
+ else {
410
+ // @ts-ignore
411
+ db_additionalStates4TurnOn += "|" + value;
412
+ }
413
+ });
414
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOn, db_additionalStates4TurnOn, deviceShellySteckdose);
415
+ // additionalStates4TurnOff: string[]
416
+ var db_additionalStates4TurnOff = null;
417
+ additionalStates4TurnOff.forEach(function (value) {
418
+ if (db_additionalStates4TurnOff == null) {
419
+ // @ts-ignore
420
+ db_additionalStates4TurnOff = value;
421
+ }
422
+ else {
423
+ // @ts-ignore
424
+ db_additionalStates4TurnOff += "|" + value;
425
+ }
426
+ });
427
+ createDatenpunktSingle(adapter, rawId, attributeTypeString, attribute_TasterBooleanOff, db_additionalStates4TurnOff, deviceShellySteckdose);
428
+ // Weitere:
429
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_Nachtbeleuchtung, nachtbeleuchtung, deviceShellySteckdose);
430
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseSummer, turnOffExitHouseSummer, deviceShellySteckdose);
431
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOffExitHouseWinter, turnOffExitHouseWinter, deviceShellySteckdose);
432
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseSummer, turnOnEnterHouseSummer, deviceShellySteckdose);
433
+ createDatenpunktSingle(adapter, rawId, attributeTypeBoolean, attribute_TurnOnEnterHouseWinter, turnOnEnterHouseWinter, deviceShellySteckdose);
434
+ }
435
+ exports.createShellySteckdose = createShellySteckdose;
436
+ var cacheRollladenArray = null;
437
+ function loadShellyRollladen(adapter) {
438
+ if (cacheRollladenArray != null) {
439
+ return cacheRollladenArray;
440
+ }
441
+ // @ts-ignore
442
+ cacheRollladenArray = [];
443
+ adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
444
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
445
+ if (adapter.getState(datenpunktKey).val == deviceShellyRollladen) {
446
+ // @ts-ignore
447
+ cacheRollladenArray.push(new ShellyRollladen(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
448
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
449
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
450
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
451
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
452
+ ));
453
+ }
454
+ });
455
+ cacheRollladenArray = sortArray(cacheRollladenArray);
456
+ return cacheRollladenArray;
457
+ }
458
+ exports.loadShellyRollladen = loadShellyRollladen;
459
+ var cacheSensorenArray = null;
460
+ function loadShellySensoren(adapter) {
461
+ if (cacheSensorenArray != null) {
462
+ return cacheSensorenArray;
463
+ }
464
+ // @ts-ignore
465
+ cacheSensorenArray = [];
466
+ adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
467
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
468
+ if (adapter.getState(datenpunktKey).val == deviceShellySensor) {
469
+ // @ts-ignore
470
+ cacheSensorenArray.push(new ShellySensor(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
471
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
472
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
473
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
474
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
475
+ ));
476
+ }
477
+ });
478
+ cacheSensorenArray = sortArray(cacheSensorenArray);
479
+ return cacheSensorenArray;
480
+ }
481
+ exports.loadShellySensoren = loadShellySensoren;
482
+ var cacheDimmerArray = null;
483
+ function loadShellyDimmer(adapter) {
484
+ if (cacheDimmerArray != null) {
485
+ return cacheDimmerArray;
486
+ }
487
+ // @ts-ignore
488
+ cacheDimmerArray = [];
489
+ adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
490
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
491
+ if (adapter.getState(datenpunktKey).val == deviceShellyDimmer) {
492
+ // Einschalt-Scheme:
493
+ var alexaOnScheme = null;
494
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv).val == true) {
495
+ // @ts-ignore
496
+ alexaOnScheme = new ShellyDimmerAlexaScheme(null, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level).val);
497
+ }
498
+ // Weitere Schemes als Array:
499
+ var schemeArray = [];
500
+ // alexaScheme1: InstanceType<typeof ShellyDimmerAlexaScheme>
501
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv1).val == true) {
502
+ // @ts-ignore
503
+ schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name1).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level1).val));
504
+ }
505
+ // alexaScheme2: InstanceType<typeof ShellyDimmerAlexaScheme>
506
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv2).val == true) {
507
+ // @ts-ignore
508
+ schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name2).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level2).val));
509
+ }
510
+ // alexaScheme3: InstanceType<typeof ShellyDimmerAlexaScheme>
511
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv3).val == true) {
512
+ // @ts-ignore
513
+ schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name3).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level3).val));
514
+ }
515
+ // alexaScheme4: InstanceType<typeof ShellyDimmerAlexaScheme>
516
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_aktiv4).val == true) {
517
+ // @ts-ignore
518
+ schemeArray.push(new ShellyDimmerAlexaScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_name4).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_alexaScheme_level4).val));
519
+ }
520
+ // Weitere Schemes als Array:
521
+ var tasterSchemeArray = [];
522
+ // tasterScheme1: InstanceType<typeof ShellyDimmerTasterScheme>
523
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv1).val == true) {
524
+ // @ts-ignore
525
+ tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name1).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level1).val));
526
+ }
527
+ // tasterScheme2: InstanceType<typeof ShellyDimmerTasterScheme>
528
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv2).val == true) {
529
+ // @ts-ignore
530
+ tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name2).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level2).val));
531
+ }
532
+ // tasterScheme3: InstanceType<typeof ShellyDimmerTasterScheme>
533
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv3).val == true) {
534
+ // @ts-ignore
535
+ tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name3).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level3).val));
536
+ }
537
+ // tasterScheme4: InstanceType<typeof ShellyDimmerTasterScheme>
538
+ if (adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_aktiv4).val == true) {
539
+ // @ts-ignore
540
+ tasterSchemeArray.push(new ShellyDimmerTasterScheme(adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_name4).val, adapter.getState(datenpunktPraefix + "." + attributeDimmer_tasterScheme_level4).val));
541
+ }
542
+ // @ts-ignore
543
+ cacheDimmerArray.push(new ShellyDimmer(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
544
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
545
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
546
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
547
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
548
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
549
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
550
+ alexaOnScheme, // 08] A.-Ein-Schem
551
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
552
+ 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.
553
+ schemeArray, // [11] Alexa-Schemes
554
+ tasterSchemeArray, // [12 Level-Schemes]
555
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
556
+ adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
557
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
558
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
559
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
560
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
561
+ ));
562
+ }
563
+ });
564
+ cacheDimmerArray = sortArray(cacheDimmerArray);
565
+ return cacheDimmerArray;
566
+ }
567
+ exports.loadShellyDimmer = loadShellyDimmer;
568
+ var cacheLampenWeissArray = null;
569
+ function loadShellyLampenWeiss(adapter) {
570
+ if (cacheLampenWeissArray != null) {
571
+ return cacheLampenWeissArray;
572
+ }
573
+ // @ts-ignore
574
+ cacheLampenWeissArray = [];
575
+ adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
576
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
577
+ if (adapter.getState(datenpunktKey).val == deviceShellyLampeWeiss) {
578
+ // @ts-ignore
579
+ cacheLampenWeissArray.push(new ShellyLampeWeiss(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
580
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
581
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
582
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
583
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
584
+ adapter.getState(datenpunktPraefix + "." + attributeChannel).val, // [4] Channel
585
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
586
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
587
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
588
+ 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.
589
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOn).val), // 14 TasterBoolOn
590
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
591
+ adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
592
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
593
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
594
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
595
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
596
+ ));
597
+ }
598
+ });
599
+ cacheLampenWeissArray = sortArray(cacheLampenWeissArray);
600
+ return cacheLampenWeissArray;
601
+ }
602
+ exports.loadShellyLampenWeiss = loadShellyLampenWeiss;
603
+ var cacheSteckdosenArray = null;
604
+ function loadShellySteckdosen(adapter) {
605
+ if (cacheSteckdosenArray != null) {
606
+ return cacheSteckdosenArray;
607
+ }
608
+ // @ts-ignore
609
+ cacheSteckdosenArray = [];
610
+ adapter.$('state[id=0_userdata.0.devices.shelly.*.*.category]').each(function (datenpunktKey) {
611
+ var datenpunktPraefix = datenpunktKey.replaceAll(".category", "");
612
+ if (adapter.getState(datenpunktKey).val == deviceShellySteckdose) {
613
+ // @ts-ignore
614
+ cacheSteckdosenArray.push(new ShellySteckdose(adapter, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
615
+ adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [1] Etage/Bereich (z.B. EG)
616
+ adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [2] Raum/Unterbereich (z.B. Wohnzimmer)
617
+ adapter.getState(datenpunktPraefix + "." + attributeDevice).val, // [3] Device (z.B. Stehlampe)
618
+ adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [4] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
619
+ adapter.getState(datenpunktPraefix + "." + attributeChannel).val, // [4] Channel
620
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOn).val), // 08 Alexa-Ein
621
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaActionNamesForOn).val), // Alexa-Action-Ein, z.B. "Guten morgen" (Würde auch funktionieren, wenn dies bei [06] eingetragen ist)
622
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_AlexaSmartNamesForOff).val), // 09 Alexa-Aus
623
+ 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.
624
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOn).val), // 14 TasterBoolOn
625
+ toStringArray(adapter.getState(datenpunktPraefix + "." + attribute_TasterBooleanOff).val), // 14 TasterBoolOff
626
+ adapter.getState(datenpunktPraefix + "." + attribute_Nachtbeleuchtung).val, // Gehört zur Nachtbeleuchtung ja/nein
627
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseSummer).val, // turnOffExitHouseSummer (Ausschalten, wenn Haus verlassen - Sommer)
628
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOffExitHouseWinter).val, // turnOffExitHouseWinter (Ausschalten, wenn Haus verlassen - Winter)
629
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseSummer).val, // turnOnEnterHouseSummer (Einschalten, wenn Haus betreten - Sommer)
630
+ adapter.getState(datenpunktPraefix + "." + attribute_TurnOnEnterHouseWinter).val // turnOnEnterHouseWinter (Einschalten, wenn Haus betreten - Winter)
631
+ ));
632
+ }
633
+ });
634
+ cacheSteckdosenArray = sortArray(cacheSteckdosenArray);
635
+ return cacheSteckdosenArray;
636
+ }
637
+ exports.loadShellySteckdosen = loadShellySteckdosen;
638
+ //var shellyAllArray = null;
639
+ function loadShellyDevicesAll(adapter) {
640
+ //if (shellyAllArray != null) {
641
+ // return shellyAllArray;
642
+ //}
643
+ // @ts-ignore
644
+ var shellyAllArray = [];
645
+ adapter.loadShellyLampenWeiss(adapter).forEach(function (shelly) {
646
+ // @ts-ignore
647
+ shellyAllArray.push(shelly);
648
+ });
649
+ adapter.loadShellyDimmer(adapter).forEach(function (shelly) {
650
+ // @ts-ignore
651
+ shellyAllArray.push(shelly);
652
+ });
653
+ adapter.loadShellyRollladen(adapter).forEach(function (shelly) {
654
+ // @ts-ignore
655
+ shellyAllArray.push(shelly);
656
+ });
657
+ adapter.loadShellySensoren(adapter).forEach(function (shelly) {
658
+ // @ts-ignore
659
+ shellyAllArray.push(shelly);
660
+ });
661
+ adapter.loadShellySteckdosen(adapter).forEach(function (shelly) {
662
+ // @ts-ignore
663
+ shellyAllArray.push(shelly);
664
+ });
665
+ shellyAllArray = sortArray(shellyAllArray);
666
+ return shellyAllArray;
667
+ }
668
+ exports.loadShellyDevicesAll = loadShellyDevicesAll;
669
+ function toStringArray(databaseValue) {
670
+ var stringArray = [];
671
+ if (databaseValue == null) {
672
+ return stringArray;
673
+ }
674
+ else {
675
+ return databaseValue.split('|');
676
+ }
677
+ }
678
+ function clearShellyCaches(adapter) {
679
+ //shellyAllArray = null;
680
+ cacheSteckdosenArray = null;
681
+ cacheLampenWeissArray = null;
682
+ cacheDimmerArray = null;
683
+ cacheSensorenArray = null;
684
+ cacheRollladenArray = null;
685
+ adapter.log(">>> Shelly cache cleared!! <<<");
686
+ }
687
+ function sortArray(inputArray) {
688
+ inputArray.sort(function (a, b) {
689
+ var elementA = a;
690
+ var elementB = b;
691
+ var etageA = elementA.getEtage();
692
+ var etageB = elementB.getEtage();
693
+ var compareEtage = getEtageSortIndex(etageA).localeCompare(getEtageSortIndex(etageB));
694
+ if (compareEtage != 0) {
695
+ return compareEtage;
696
+ }
697
+ var typA = elementA.getCategory();
698
+ var typB = elementB.getCategory();
699
+ var compareTyp = typA.localeCompare(typB);
700
+ if (compareTyp != 0) {
701
+ return compareTyp;
702
+ }
703
+ var raumA = elementA.getRaum();
704
+ var raumB = elementB.getRaum();
705
+ var compareRaum = raumA.localeCompare(raumB);
706
+ if (compareRaum != 0) {
707
+ return compareRaum;
708
+ }
709
+ var deviceA = elementA.getDevice();
710
+ var deviceB = elementB.getDevice();
711
+ var compareDevice = deviceA.localeCompare(deviceB);
712
+ if (compareDevice != 0) {
713
+ return compareDevice;
714
+ }
715
+ return 0;
716
+ });
717
+ return inputArray;
718
+ }
719
+ function getEtageSortIndex(etage) {
720
+ if (etage == "OG") {
721
+ return "a";
722
+ }
723
+ else if (etage == "EG") {
724
+ return "b";
725
+ }
726
+ else if (etage == "UG") {
727
+ return "c";
728
+ }
729
+ else {
730
+ return "d";
731
+ }
732
+ }
733
+ module.exports = { createShellyDevice: createShellyDevice, createShellySensor: createShellySensor, createShellyRollladen: createShellyRollladen, createShellyDimmer: createShellyDimmer, createShellyLampe: createShellyLampe, createShellySteckdose: createShellySteckdose, loadShellyRollladen: loadShellyRollladen, loadShellySensoren: loadShellySensoren, loadShellyDimmer: loadShellyDimmer, loadShellyLampenWeiss: loadShellyLampenWeiss, loadShellySteckdosen: loadShellySteckdosen, loadShellyDevicesAll: loadShellyDevicesAll, clearShellyCaches: clearShellyCaches };