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