iobroker-ucl 1.4.9 → 1.4.10

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