iobroker-ucl 1.0.36 → 1.0.37

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/homematic.js CHANGED
@@ -15,28 +15,23 @@ var __extends = (this && this.__extends) || (function () {
15
15
  };
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.AbstractHomematic = exports.HomematicCategory = void 0;
19
- var HomematicCategory;
20
- (function (HomematicCategory) {
21
- HomematicCategory[HomematicCategory["Wandthermostat"] = 0] = "Wandthermostat";
22
- HomematicCategory[HomematicCategory["Praesenzmelder"] = 1] = "Praesenzmelder";
23
- HomematicCategory[HomematicCategory["Window"] = 2] = "Window";
24
- HomematicCategory[HomematicCategory["Wetterstation"] = 3] = "Wetterstation";
25
- HomematicCategory[HomematicCategory["Door"] = 4] = "Door";
26
- HomematicCategory[HomematicCategory["Dimmer"] = 5] = "Dimmer";
27
- HomematicCategory[HomematicCategory["Rollladen"] = 6] = "Rollladen";
28
- HomematicCategory[HomematicCategory["Wandschalter"] = 7] = "Wandschalter";
29
- HomematicCategory[HomematicCategory["Heizkoerper"] = 8] = "Heizkoerper";
30
- HomematicCategory[HomematicCategory["Fussbodenheizung"] = 9] = "Fussbodenheizung";
31
- HomematicCategory[HomematicCategory["Wandtaster"] = 10] = "Wandtaster";
32
- HomematicCategory[HomematicCategory["Steckdose"] = 11] = "Steckdose";
33
- HomematicCategory[HomematicCategory["Fernbedienung"] = 12] = "Fernbedienung";
34
- HomematicCategory[HomematicCategory["AccessPoint"] = 13] = "AccessPoint";
35
- HomematicCategory[HomematicCategory["Wasserstand"] = 14] = "Wasserstand";
36
- HomematicCategory[HomematicCategory["Temperatursensor"] = 15] = "Temperatursensor";
37
- HomematicCategory[HomematicCategory["Rauchmelder"] = 16] = "Rauchmelder";
38
- HomematicCategory[HomematicCategory["Funk_Schaltaktor"] = 17] = "Funk_Schaltaktor";
39
- })(HomematicCategory || (exports.HomematicCategory = HomematicCategory = {}));
18
+ exports.HomematicWandschalter = exports.HomematicFussbodenheizung = exports.HomematicDoor = exports.HomematicRollladen = exports.HomematicAccessPoint = exports.HomematicWandtaster = exports.HomematicTemperatursensor = exports.HomematicRauchmelder = exports.HomematicFunkschaltaktor = exports.HomematicDimmer = exports.HomematicHeizkoerper = exports.HomematicSteckdose = exports.HomematicWindow = exports.HomematicWetterstation = exports.HomematicPraesenzmelder = exports.HomematicWandthermostat = exports.AbstractHomematic = void 0;
19
+ var deviceWandthermostat = "Wandthermostat";
20
+ var devicePraesenzmelder = "Praesenzmelder";
21
+ var deviceWetterstation = "Wetterstation";
22
+ var deviceDoor = "Door";
23
+ var deviceRollladen = "Rollladen";
24
+ var deviceWandschalter = "Wandschalter";
25
+ var deviceFussbodenheizung = "Fussbodenheizung";
26
+ var deviceWandtaster = "Wandtaster";
27
+ var deviceAccessPoint = "AccessPoint";
28
+ var deviceTemperatursensor = "Temperatursensor";
29
+ var deviceRauchmelder = "Rauchmelder";
30
+ var deviceFunkSchaltaktor = "FunkSchaltaktor";
31
+ var deviceWindow = "Window";
32
+ var deviceSteckdose = "Steckdose";
33
+ var deviceHeizkoerper = "Heizkoerper";
34
+ var deviceDimmer = "Dimmer";
40
35
  var AbstractHomematic = /** @class */ (function () {
41
36
  function AbstractHomematic(adapter, id, baseState, etage, raum, device) {
42
37
  this.adapter = adapter;
@@ -74,9 +69,6 @@ var AbstractHomematic = /** @class */ (function () {
74
69
  return !this.adapter.getState(this.baseState + ".0.UNREACH").val;
75
70
  };
76
71
  AbstractHomematic.prototype.isStatusBattery = function () {
77
- if (this.getCategory() != HomematicCategory.Funk_Schaltaktor && this.getCategory() != HomematicCategory.Steckdose && this.getCategory() != HomematicCategory.Dimmer && this.getCategory() != HomematicCategory.Wandtaster && this.getCategory() != HomematicCategory.Fussbodenheizung && this.getCategory() != HomematicCategory.Rollladen && this.getCategory() != HomematicCategory.Wandschalter) { // Bei Dimmer gibts keine Batterie! (230V!)
78
- return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
79
- }
80
72
  return true;
81
73
  };
82
74
  AbstractHomematic.prototype.isStatusDutyCycle = function () {
@@ -105,73 +97,127 @@ var HomematicWandthermostat = /** @class */ (function (_super) {
105
97
  HomematicWandthermostat.prototype.getHumanity = function () {
106
98
  return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.000A9BE993E2F7.1.HUMIDITY
107
99
  };
108
- HomematicWandthermostat.prototype.getCategoryAsString = function () {
109
- return "Wandthermostat";
110
- };
111
100
  HomematicWandthermostat.prototype.getCategory = function () {
112
- return HomematicCategory.Wandthermostat;
101
+ return deviceWandthermostat;
102
+ };
103
+ HomematicWandthermostat.prototype.isStatusBattery = function () {
104
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
113
105
  };
114
106
  return HomematicWandthermostat;
115
107
  }(AbstractHomematic));
108
+ exports.HomematicWandthermostat = HomematicWandthermostat;
116
109
  var HomematicPraesenzmelder = /** @class */ (function (_super) {
117
110
  __extends(HomematicPraesenzmelder, _super);
118
111
  function HomematicPraesenzmelder(adapter, id, baseState, etage, raum, device) {
119
112
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
120
113
  }
121
- HomematicPraesenzmelder.prototype.getCategoryAsString = function () {
122
- return "Präsenzmelder";
123
- };
124
114
  HomematicPraesenzmelder.prototype.getCategory = function () {
125
- return HomematicCategory.Praesenzmelder;
115
+ return devicePraesenzmelder;
126
116
  };
127
117
  HomematicPraesenzmelder.prototype.getIllumination = function () {
128
- // log("returns: " + getState(this.baseState + ".1.CURRENT_ILLUMINATION").val)
129
118
  if (this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val != null) {
130
119
  return this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val + " lux"; // hm-rpc.0.000C1BE98E093D.1.CURRENT_ILLUMINATION
131
120
  }
132
121
  return "-";
133
122
  };
123
+ HomematicPraesenzmelder.prototype.isStatusBattery = function () {
124
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
125
+ };
134
126
  return HomematicPraesenzmelder;
135
127
  }(AbstractHomematic));
128
+ exports.HomematicPraesenzmelder = HomematicPraesenzmelder;
136
129
  var HomematicWetterstation = /** @class */ (function (_super) {
137
130
  __extends(HomematicWetterstation, _super);
138
131
  function HomematicWetterstation(adapter, id, baseState, etage, raum, device) {
139
132
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
140
133
  }
141
- HomematicWetterstation.prototype.getCategoryAsString = function () {
142
- return "Wetterstation";
143
- };
144
134
  HomematicWetterstation.prototype.getCategory = function () {
145
- return HomematicCategory.Wetterstation;
135
+ return deviceWetterstation;
136
+ };
137
+ HomematicWetterstation.prototype.isStatusBattery = function () {
138
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
146
139
  };
147
140
  return HomematicWetterstation;
148
141
  }(AbstractHomematic));
142
+ exports.HomematicWetterstation = HomematicWetterstation;
143
+ var HomematicWindow = /** @class */ (function (_super) {
144
+ __extends(HomematicWindow, _super);
145
+ function HomematicWindow(adapter, id, baseState, etage, raum, device) {
146
+ return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
147
+ }
148
+ HomematicWindow.prototype.getCategory = function () {
149
+ return deviceWindow;
150
+ };
151
+ HomematicWindow.prototype.isStatusBattery = function () {
152
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
153
+ };
154
+ return HomematicWindow;
155
+ }(AbstractHomematic));
156
+ exports.HomematicWindow = HomematicWindow;
157
+ var HomematicSteckdose = /** @class */ (function (_super) {
158
+ __extends(HomematicSteckdose, _super);
159
+ function HomematicSteckdose(adapter, id, baseState, etage, raum, device) {
160
+ return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
161
+ }
162
+ HomematicSteckdose.prototype.getCategory = function () {
163
+ return deviceSteckdose;
164
+ };
165
+ return HomematicSteckdose;
166
+ }(AbstractHomematic));
167
+ exports.HomematicSteckdose = HomematicSteckdose;
168
+ var HomematicHeizkoerper = /** @class */ (function (_super) {
169
+ __extends(HomematicHeizkoerper, _super);
170
+ function HomematicHeizkoerper(adapter, id, baseState, etage, raum, device) {
171
+ return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
172
+ }
173
+ HomematicHeizkoerper.prototype.getCategory = function () {
174
+ return deviceHeizkoerper;
175
+ };
176
+ HomematicHeizkoerper.prototype.isStatusBattery = function () {
177
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
178
+ };
179
+ return HomematicHeizkoerper;
180
+ }(AbstractHomematic));
181
+ exports.HomematicHeizkoerper = HomematicHeizkoerper;
182
+ var HomematicDimmer = /** @class */ (function (_super) {
183
+ __extends(HomematicDimmer, _super);
184
+ function HomematicDimmer(adapter, id, baseState, etage, raum, device) {
185
+ return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
186
+ }
187
+ HomematicDimmer.prototype.getCategory = function () {
188
+ return deviceDimmer;
189
+ };
190
+ return HomematicDimmer;
191
+ }(AbstractHomematic));
192
+ exports.HomematicDimmer = HomematicDimmer;
149
193
  var HomematicFunkschaltaktor = /** @class */ (function (_super) {
150
194
  __extends(HomematicFunkschaltaktor, _super);
151
195
  function HomematicFunkschaltaktor(adapter, id, baseState, etage, raum, device) {
152
196
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
153
197
  }
154
- HomematicFunkschaltaktor.prototype.getCategoryAsString = function () {
155
- return "Funk-Schaltaktor";
156
- };
157
198
  HomematicFunkschaltaktor.prototype.getCategory = function () {
158
- return HomematicCategory.Funk_Schaltaktor;
199
+ return deviceFunkSchaltaktor;
200
+ };
201
+ HomematicFunkschaltaktor.prototype.isStatusBattery = function () {
202
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
159
203
  };
160
204
  return HomematicFunkschaltaktor;
161
205
  }(AbstractHomematic));
206
+ exports.HomematicFunkschaltaktor = HomematicFunkschaltaktor;
162
207
  var HomematicRauchmelder = /** @class */ (function (_super) {
163
208
  __extends(HomematicRauchmelder, _super);
164
209
  function HomematicRauchmelder(adapter, id, baseState, etage, raum, device) {
165
210
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
166
211
  }
167
- HomematicRauchmelder.prototype.getCategoryAsString = function () {
168
- return "Rauchmelder";
169
- };
170
212
  HomematicRauchmelder.prototype.getCategory = function () {
171
- return HomematicCategory.Rauchmelder;
213
+ return deviceRauchmelder;
214
+ };
215
+ HomematicRauchmelder.prototype.isStatusBattery = function () {
216
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
172
217
  };
173
218
  return HomematicRauchmelder;
174
219
  }(AbstractHomematic));
220
+ exports.HomematicRauchmelder = HomematicRauchmelder;
175
221
  var HomematicTemperatursensor = /** @class */ (function (_super) {
176
222
  __extends(HomematicTemperatursensor, _super);
177
223
  function HomematicTemperatursensor(adapter, id, baseState, etage, raum, device) {
@@ -183,27 +229,26 @@ var HomematicTemperatursensor = /** @class */ (function (_super) {
183
229
  HomematicTemperatursensor.prototype.getHumanity = function () {
184
230
  return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.00181BE98EF50E.1.HUMIDITY
185
231
  };
186
- HomematicTemperatursensor.prototype.getCategoryAsString = function () {
187
- return "Temperatursensor";
188
- };
189
232
  HomematicTemperatursensor.prototype.getCategory = function () {
190
- return HomematicCategory.Temperatursensor;
233
+ return deviceTemperatursensor;
234
+ };
235
+ HomematicTemperatursensor.prototype.isStatusBattery = function () {
236
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
191
237
  };
192
238
  return HomematicTemperatursensor;
193
239
  }(AbstractHomematic));
240
+ exports.HomematicTemperatursensor = HomematicTemperatursensor;
194
241
  var HomematicWandtaster = /** @class */ (function (_super) {
195
242
  __extends(HomematicWandtaster, _super);
196
243
  function HomematicWandtaster(adapter, id, baseState, etage, raum, device) {
197
244
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
198
245
  }
199
- HomematicWandtaster.prototype.getCategoryAsString = function () {
200
- return "Wandtaster";
201
- };
202
246
  HomematicWandtaster.prototype.getCategory = function () {
203
- return HomematicCategory.Wandtaster;
247
+ return deviceWandtaster;
204
248
  };
205
249
  return HomematicWandtaster;
206
250
  }(AbstractHomematic));
251
+ exports.HomematicWandtaster = HomematicWandtaster;
207
252
  var HomematicAccessPoint = /** @class */ (function (_super) {
208
253
  __extends(HomematicAccessPoint, _super);
209
254
  function HomematicAccessPoint(adapter, id, baseState, etage, raum, device) {
@@ -219,10 +264,11 @@ var HomematicAccessPoint = /** @class */ (function (_super) {
219
264
  return "";
220
265
  };
221
266
  HomematicAccessPoint.prototype.getCategory = function () {
222
- return HomematicCategory.AccessPoint;
267
+ return deviceAccessPoint;
223
268
  };
224
269
  return HomematicAccessPoint;
225
270
  }(AbstractHomematic));
271
+ exports.HomematicAccessPoint = HomematicAccessPoint;
226
272
  var HomematicRollladen = /** @class */ (function (_super) {
227
273
  __extends(HomematicRollladen, _super);
228
274
  function HomematicRollladen(adapter, id, baseState, etage, raum, device, positionAuf, positionMitte, positionZu) {
@@ -232,11 +278,8 @@ var HomematicRollladen = /** @class */ (function (_super) {
232
278
  _this.positionZu = positionZu;
233
279
  return _this;
234
280
  }
235
- HomematicRollladen.prototype.getCategoryAsString = function () {
236
- return "Rollladenschalter";
237
- };
238
281
  HomematicRollladen.prototype.getCategory = function () {
239
- return HomematicCategory.Rollladen;
282
+ return deviceRollladen;
240
283
  };
241
284
  HomematicRollladen.prototype.auf = function () {
242
285
  this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionAuf);
@@ -249,6 +292,7 @@ var HomematicRollladen = /** @class */ (function (_super) {
249
292
  };
250
293
  return HomematicRollladen;
251
294
  }(AbstractHomematic));
295
+ exports.HomematicRollladen = HomematicRollladen;
252
296
  var HomematicDoor = /** @class */ (function (_super) {
253
297
  __extends(HomematicDoor, _super);
254
298
  function HomematicDoor(adapter, id, baseState, etage, raum, device, skipStatisticIsOpened, skipStatisticIsClosed) {
@@ -263,11 +307,11 @@ var HomematicDoor = /** @class */ (function (_super) {
263
307
  HomematicDoor.prototype.isSkipStatisticIsClosed = function () {
264
308
  return this.skipStatisticIsClosed;
265
309
  };
266
- HomematicDoor.prototype.getCategoryAsString = function () {
267
- return "Türsensor";
268
- };
269
310
  HomematicDoor.prototype.getCategory = function () {
270
- return HomematicCategory.Door;
311
+ return deviceDoor;
312
+ };
313
+ HomematicDoor.prototype.isStatusBattery = function () {
314
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
271
315
  };
272
316
  HomematicDoor.prototype.isOpen = function () {
273
317
  if (this.adapter.getState(this.baseState + ".1.STATE").val) { // hm-rpc.0.0000DD89BE05F9.1.STATE
@@ -277,29 +321,28 @@ var HomematicDoor = /** @class */ (function (_super) {
277
321
  };
278
322
  return HomematicDoor;
279
323
  }(AbstractHomematic));
324
+ exports.HomematicDoor = HomematicDoor;
280
325
  var HomematicFussbodenheizung = /** @class */ (function (_super) {
281
326
  __extends(HomematicFussbodenheizung, _super);
282
327
  function HomematicFussbodenheizung(adapter, id, baseState, etage, raum, device) {
283
328
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
284
329
  }
285
- HomematicFussbodenheizung.prototype.getCategoryAsString = function () {
286
- return "Fussbodenheizung";
287
- };
288
330
  HomematicFussbodenheizung.prototype.getCategory = function () {
289
- return HomematicCategory.Fussbodenheizung;
331
+ return deviceFussbodenheizung;
290
332
  };
291
333
  return HomematicFussbodenheizung;
292
334
  }(AbstractHomematic));
335
+ exports.HomematicFussbodenheizung = HomematicFussbodenheizung;
293
336
  var HomematicWandschalter = /** @class */ (function (_super) {
294
337
  __extends(HomematicWandschalter, _super);
295
338
  function HomematicWandschalter(adapter, id, baseState, etage, raum, device) {
296
339
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
297
340
  }
298
- HomematicWandschalter.prototype.getCategoryAsString = function () {
299
- return "Wandschalter";
300
- };
301
341
  HomematicWandschalter.prototype.getCategory = function () {
302
- return HomematicCategory.Wandschalter;
342
+ return deviceWandschalter;
343
+ };
344
+ HomematicWandschalter.prototype.isStatusBattery = function () {
345
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
303
346
  };
304
347
  HomematicWandschalter.prototype.isSwitchedOn = function () {
305
348
  if (this.getType() == "HM-LC-Sw1PBU-FM") {
@@ -321,4 +364,5 @@ var HomematicWandschalter = /** @class */ (function (_super) {
321
364
  };
322
365
  return HomematicWandschalter;
323
366
  }(AbstractHomematic));
324
- module.exports = { HomematicWandthermostat: HomematicWandthermostat, HomematicFussbodenheizung: HomematicFussbodenheizung, HomematicWandschalter: HomematicWandschalter, HomematicDoor: HomematicDoor, HomematicWetterstation: HomematicWetterstation, HomematicAccessPoint: HomematicAccessPoint, HomematicRollladen: HomematicRollladen, HomematicWandtaster: HomematicWandtaster, HomematicTemperatursensor: HomematicTemperatursensor, HomematicRauchmelder: HomematicRauchmelder, HomematicPraesenzmelder: HomematicPraesenzmelder, HomematicCategory: HomematicCategory, AbstractHomematic: AbstractHomematic, HomematicFunkschaltaktor: HomematicFunkschaltaktor };
367
+ exports.HomematicWandschalter = HomematicWandschalter;
368
+ module.exports = { HomematicWindow: HomematicWindow, HomematicSteckdose: HomematicSteckdose, HomematicHeizkoerper: HomematicHeizkoerper, HomematicDimmer: HomematicDimmer, HomematicWandthermostat: HomematicWandthermostat, HomematicFussbodenheizung: HomematicFussbodenheizung, HomematicWandschalter: HomematicWandschalter, HomematicDoor: HomematicDoor, HomematicWetterstation: HomematicWetterstation, HomematicAccessPoint: HomematicAccessPoint, HomematicRollladen: HomematicRollladen, HomematicWandtaster: HomematicWandtaster, HomematicTemperatursensor: HomematicTemperatursensor, HomematicRauchmelder: HomematicRauchmelder, HomematicPraesenzmelder: HomematicPraesenzmelder, AbstractHomematic: AbstractHomematic, HomematicFunkschaltaktor: HomematicFunkschaltaktor };
package/homematic.ts CHANGED
@@ -1,358 +1,391 @@
1
1
 
2
- export enum HomematicCategory {
3
- Wandthermostat,
4
- Praesenzmelder,
5
- Window,
6
- Wetterstation,
7
- Door,
8
- Dimmer, // Homematic IP Phasenabschnittdimmer-Einsatz HmIP-BDT
9
- Rollladen,
10
- Wandschalter,
11
- Heizkoerper,
12
- Fussbodenheizung,
13
- Wandtaster,
14
- Steckdose, Fernbedienung, AccessPoint, Wasserstand, Temperatursensor, Rauchmelder, Funk_Schaltaktor
15
- }
16
-
17
- export abstract class AbstractHomematic {
18
- protected baseState: string;
19
- protected etage: string;
20
- protected raum: string;
21
- protected device: string;
22
- protected id: number;
23
- protected adapter: any;
24
-
25
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
26
- this.adapter = adapter;
27
- this.id = id;
28
- this.etage = etage;
29
- this.raum = raum;
30
- this.device = device;
31
- this.baseState = baseState;
32
- }
33
-
34
- public getDeviceId() : string {
35
- return "H" + this.id.toString().padStart(2, '0');
36
- }
37
-
38
- public getDeviceIdAsRawNumber() : number {
39
- return this.id;
40
- }
41
-
42
- public getBaseState() : string {
43
- return this.baseState;
44
- }
45
-
46
- public getType() : string {
47
- return "";//getObject(this.baseState).native.TYPE;
48
- }
49
-
50
- public getEtage() : string {
51
- return this.etage;
52
- }
53
-
54
- public getRaum() : string {
55
- return this.raum;
56
- }
57
-
58
- public getDevice() : string {
59
- return this.device;
60
- }
61
-
62
- public isStatusTotal() : boolean {
63
- return this.isStatusReachable() && this.isStatusBattery() && this.isStatusDutyCycle();
64
- }
65
-
66
- public isStatusReachable() : boolean { // .0.UNREACH
67
- return !this.adapter.getState(this.baseState + ".0.UNREACH").val;
68
- }
69
-
70
- public isStatusBattery() : boolean { // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
71
- if (this.getCategory() != HomematicCategory.Funk_Schaltaktor && this.getCategory() != HomematicCategory.Steckdose && this.getCategory() != HomematicCategory.Dimmer && this.getCategory() != HomematicCategory.Wandtaster && this.getCategory() != HomematicCategory.Fussbodenheizung && this.getCategory() != HomematicCategory.Rollladen && this.getCategory() != HomematicCategory.Wandschalter) { // Bei Dimmer gibts keine Batterie! (230V!)
72
- return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
73
- }
74
- return true;
75
- }
76
-
77
- public isStatusDutyCycle() : boolean {
78
- if (this.getType().includes("HmIP")) {
79
- return !this.adapter.getState(this.baseState + ".0.DUTY_CYCLE").val; // hm-rpc.0.000A9BE993E2F7.0.DUTY_CYCLE
80
- }
81
- return true;
82
- }
83
-
84
- public getSignal() : string { // hm-rpc.0.0000DD89BE05F9.0.RSSI_DEVICE
85
- return this.adapter.getState(this.baseState + ".0.RSSI_DEVICE").val;
86
- }
87
-
88
- abstract getCategoryAsString(): string;
89
-
90
- abstract getCategory() : HomematicCategory;
91
-
92
- }
93
-
94
- class HomematicWandthermostat extends AbstractHomematic {
95
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
96
- super(adapter, id, baseState, etage, raum, device);
97
- }
98
-
99
- public getTemperatureIst() : number {
100
- return this.adapter.getState(this.baseState + ".1.ACTUAL_TEMPERATURE").val; // hm-rpc.0.000A9BE993E2F7.1.ACTUAL_TEMPERATURE
101
- }
102
-
103
- public getTemperatureSoll() : number {
104
- return this.adapter.getState(this.baseState + ".1.SET_POINT_TEMPERATURE").val; // hm-rpc.0.000A9BE993E2F7.1.SET_POINT_TEMPERATURE
105
- }
106
-
107
- public getHumanity() : string {
108
- return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.000A9BE993E2F7.1.HUMIDITY
109
- }
110
-
111
- public getCategoryAsString(): string {
112
- return "Wandthermostat";
113
- }
114
-
115
- public getCategory(): HomematicCategory {
116
- return HomematicCategory.Wandthermostat;
117
- }
118
- }
119
-
120
- class HomematicPraesenzmelder extends AbstractHomematic {
121
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
122
- super(adapter, id, baseState, etage, raum, device);
123
- }
124
-
125
- public getCategoryAsString(): string {
126
- return "Präsenzmelder";
127
- }
128
-
129
- public getCategory(): HomematicCategory {
130
- return HomematicCategory.Praesenzmelder;
131
- }
132
-
133
- public getIllumination():string {
134
- // log("returns: " + getState(this.baseState + ".1.CURRENT_ILLUMINATION").val)
135
- if (this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val != null) {
136
- return this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val + " lux"; // hm-rpc.0.000C1BE98E093D.1.CURRENT_ILLUMINATION
137
- }
138
- return "-";
139
- }
140
- }
141
-
142
- class HomematicWetterstation extends AbstractHomematic {
143
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
144
- super(adapter, id, baseState, etage, raum, device);
145
- }
146
-
147
- public getCategoryAsString(): string {
148
- return "Wetterstation";
149
- }
150
-
151
- public getCategory(): HomematicCategory {
152
- return HomematicCategory.Wetterstation;
153
- }
154
- }
155
-
156
- class HomematicFunkschaltaktor extends AbstractHomematic {
157
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
158
- super(adapter, id, baseState, etage, raum, device);
159
- }
160
-
161
- public getCategoryAsString(): string {
162
- return "Funk-Schaltaktor";
163
- }
164
-
165
- public getCategory(): HomematicCategory {
166
- return HomematicCategory.Funk_Schaltaktor;
167
- }
168
- }
169
-
170
-
171
- class HomematicRauchmelder extends AbstractHomematic {
172
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
173
- super(adapter, id, baseState, etage, raum, device);
174
- }
175
-
176
- public getCategoryAsString(): string {
177
- return "Rauchmelder";
178
- }
179
-
180
- public getCategory(): HomematicCategory {
181
- return HomematicCategory.Rauchmelder;
182
- }
183
- }
184
-
185
-
186
- class HomematicTemperatursensor extends AbstractHomematic {
187
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
188
- super(adapter, id, baseState, etage, raum, device);
189
- }
190
-
191
- public getTemperatureIst() : string { // hm-rpc.0.00181BE98EF50E.1.ACTUAL_TEMPERATURE
192
- return this.adapter.getState(this.baseState + ".1.ACTUAL_TEMPERATURE").val + " °C";
193
- }
194
-
195
- public getHumanity() : string {
196
- return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.00181BE98EF50E.1.HUMIDITY
197
- }
198
-
199
- public getCategoryAsString(): string {
200
- return "Temperatursensor";
201
- }
202
-
203
- public getCategory(): HomematicCategory {
204
- return HomematicCategory.Temperatursensor;
205
- }
206
- }
207
-
208
- class HomematicWandtaster extends AbstractHomematic {
209
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
210
- super(adapter, id, baseState, etage, raum, device);
211
- }
212
-
213
- public getCategoryAsString(): string {
214
- return "Wandtaster";
215
- }
216
-
217
- public getCategory(): HomematicCategory {
218
- return HomematicCategory.Wandtaster;
219
- }
220
- }
221
-
222
- class HomematicAccessPoint extends AbstractHomematic {
223
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
224
- super(adapter, id, baseState, etage, raum, device);
225
- }
226
-
227
- public getCategoryAsString(): string {
228
- return "Access Point";
229
- }
230
-
231
- public isStatusBattery() : boolean {
232
- return true;
233
- }
234
-
235
- public getSignal() : string {
236
- return "";
237
- }
238
-
239
- public getCategory(): HomematicCategory {
240
- return HomematicCategory.AccessPoint;
241
- }
242
- }
243
-
244
- class HomematicRollladen extends AbstractHomematic {
245
- protected positionAuf: number;
246
- protected positionMitte: number;
247
- protected positionZu: number;
248
-
249
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string, positionAuf: number, positionMitte: number, positionZu: number) {
250
- super(adapter, id, baseState, etage, raum, device);
251
- this.positionAuf = positionAuf;
252
- this.positionMitte = positionMitte;
253
- this.positionZu = positionZu;
254
- }
255
-
256
- public getCategoryAsString(): string {
257
- return "Rollladenschalter";
258
- }
259
-
260
- public getCategory(): HomematicCategory {
261
- return HomematicCategory.Rollladen;
262
- }
263
-
264
- public auf() {
2
+ const deviceWandthermostat = "Wandthermostat";
3
+ const devicePraesenzmelder = "Praesenzmelder";
4
+ const deviceWetterstation = "Wetterstation";
5
+ const deviceDoor = "Door";
6
+ const deviceRollladen = "Rollladen";
7
+ const deviceWandschalter = "Wandschalter";
8
+ const deviceFussbodenheizung = "Fussbodenheizung";
9
+ const deviceWandtaster = "Wandtaster";
10
+ const deviceAccessPoint = "AccessPoint";
11
+ const deviceTemperatursensor = "Temperatursensor";
12
+ const deviceRauchmelder = "Rauchmelder";
13
+ const deviceFunkSchaltaktor = "FunkSchaltaktor";
14
+ const deviceWindow = "Window";
15
+ const deviceSteckdose = "Steckdose";
16
+ const deviceHeizkoerper = "Heizkoerper";
17
+ const deviceDimmer = "Dimmer";
18
+
19
+ export abstract class AbstractHomematic {
20
+ protected baseState: string;
21
+ protected etage: string;
22
+ protected raum: string;
23
+ protected device: string;
24
+ protected id: number;
25
+ protected adapter: any;
26
+
27
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
28
+ this.adapter = adapter;
29
+ this.id = id;
30
+ this.etage = etage;
31
+ this.raum = raum;
32
+ this.device = device;
33
+ this.baseState = baseState;
34
+ }
35
+
36
+ public getDeviceId(): string {
37
+ return "H" + this.id.toString().padStart(2, '0');
38
+ }
39
+
40
+ public getDeviceIdAsRawNumber(): number {
41
+ return this.id;
42
+ }
43
+
44
+ public getBaseState(): string {
45
+ return this.baseState;
46
+ }
47
+
48
+ public getType(): string {
49
+ return "";//getObject(this.baseState).native.TYPE;
50
+ }
51
+
52
+ public getEtage(): string {
53
+ return this.etage;
54
+ }
55
+
56
+ public getRaum(): string {
57
+ return this.raum;
58
+ }
59
+
60
+ public getDevice(): string {
61
+ return this.device;
62
+ }
63
+
64
+ public isStatusTotal(): boolean {
65
+ return this.isStatusReachable() && this.isStatusBattery() && this.isStatusDutyCycle();
66
+ }
67
+
68
+ public isStatusReachable(): boolean { // .0.UNREACH
69
+ return !this.adapter.getState(this.baseState + ".0.UNREACH").val;
70
+ }
71
+
72
+ public isStatusBattery(): boolean {
73
+ return true;
74
+ }
75
+
76
+ public isStatusDutyCycle(): boolean {
77
+ if (this.getType().includes("HmIP")) {
78
+ return !this.adapter.getState(this.baseState + ".0.DUTY_CYCLE").val; // hm-rpc.0.000A9BE993E2F7.0.DUTY_CYCLE
79
+ }
80
+ return true;
81
+ }
82
+
83
+ public getSignal(): string { // hm-rpc.0.0000DD89BE05F9.0.RSSI_DEVICE
84
+ return this.adapter.getState(this.baseState + ".0.RSSI_DEVICE").val;
85
+ }
86
+
87
+ abstract getCategory(): string;
88
+
89
+ }
90
+
91
+ export class HomematicWandthermostat extends AbstractHomematic {
92
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
93
+ super(adapter, id, baseState, etage, raum, device);
94
+ }
95
+
96
+ public getTemperatureIst(): number {
97
+ return this.adapter.getState(this.baseState + ".1.ACTUAL_TEMPERATURE").val; // hm-rpc.0.000A9BE993E2F7.1.ACTUAL_TEMPERATURE
98
+ }
99
+
100
+ public getTemperatureSoll(): number {
101
+ return this.adapter.getState(this.baseState + ".1.SET_POINT_TEMPERATURE").val; // hm-rpc.0.000A9BE993E2F7.1.SET_POINT_TEMPERATURE
102
+ }
103
+
104
+ public getHumanity(): string {
105
+ return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.000A9BE993E2F7.1.HUMIDITY
106
+ }
107
+
108
+ public getCategory(): string {
109
+ return deviceWandthermostat;
110
+ }
111
+
112
+ public isStatusBattery(): boolean {
113
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
114
+ }
115
+ }
116
+
117
+ export class HomematicPraesenzmelder extends AbstractHomematic {
118
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
119
+ super(adapter, id, baseState, etage, raum, device);
120
+ }
121
+
122
+ public getCategory(): string {
123
+ return devicePraesenzmelder;
124
+ }
125
+
126
+ public getIllumination(): string {
127
+ if (this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val != null) {
128
+ return this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val + " lux"; // hm-rpc.0.000C1BE98E093D.1.CURRENT_ILLUMINATION
129
+ }
130
+ return "-";
131
+ }
132
+
133
+ public isStatusBattery(): boolean {
134
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
135
+ }
136
+ }
137
+
138
+ export class HomematicWetterstation extends AbstractHomematic {
139
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
140
+ super(adapter, id, baseState, etage, raum, device);
141
+ }
142
+
143
+ public getCategory(): string {
144
+ return deviceWetterstation;
145
+ }
146
+
147
+ public isStatusBattery(): boolean {
148
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
149
+ }
150
+ }
151
+
152
+ export class HomematicWindow extends AbstractHomematic {
153
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
154
+ super(adapter, id, baseState, etage, raum, device);
155
+ }
156
+
157
+ public getCategory(): string {
158
+ return deviceWindow;
159
+ }
160
+
161
+ public isStatusBattery(): boolean {
162
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
163
+ }
164
+ }
165
+
166
+ export class HomematicSteckdose extends AbstractHomematic {
167
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
168
+ super(adapter, id, baseState, etage, raum, device);
169
+ }
170
+
171
+ public getCategory(): string {
172
+ return deviceSteckdose;
173
+ }
174
+ }
175
+
176
+ export class HomematicHeizkoerper extends AbstractHomematic {
177
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
178
+ super(adapter, id, baseState, etage, raum, device);
179
+ }
180
+
181
+ public getCategory(): string {
182
+ return deviceHeizkoerper;
183
+ }
184
+
185
+ public isStatusBattery(): boolean {
186
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
187
+ }
188
+ }
189
+
190
+ export class HomematicDimmer extends AbstractHomematic {
191
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
192
+ super(adapter, id, baseState, etage, raum, device);
193
+ }
194
+
195
+ public getCategory(): string {
196
+ return deviceDimmer;
197
+ }
198
+ }
199
+
200
+ export class HomematicFunkschaltaktor extends AbstractHomematic {
201
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
202
+ super(adapter, id, baseState, etage, raum, device);
203
+ }
204
+
205
+ public getCategory(): string {
206
+ return deviceFunkSchaltaktor;
207
+ }
208
+
209
+ public isStatusBattery(): boolean {
210
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
211
+ }
212
+ }
213
+
214
+
215
+ export class HomematicRauchmelder extends AbstractHomematic {
216
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
217
+ super(adapter, id, baseState, etage, raum, device);
218
+ }
219
+
220
+ public getCategory(): string {
221
+ return deviceRauchmelder;
222
+ }
223
+
224
+ public isStatusBattery(): boolean {
225
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
226
+ }
227
+ }
228
+
229
+
230
+ export class HomematicTemperatursensor extends AbstractHomematic {
231
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
232
+ super(adapter, id, baseState, etage, raum, device);
233
+ }
234
+
235
+ public getTemperatureIst(): string { // hm-rpc.0.00181BE98EF50E.1.ACTUAL_TEMPERATURE
236
+ return this.adapter.getState(this.baseState + ".1.ACTUAL_TEMPERATURE").val + " °C";
237
+ }
238
+
239
+ public getHumanity(): string {
240
+ return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.00181BE98EF50E.1.HUMIDITY
241
+ }
242
+
243
+ public getCategory(): string {
244
+ return deviceTemperatursensor;
245
+ }
246
+
247
+ public isStatusBattery(): boolean {
248
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
249
+ }
250
+ }
251
+
252
+ export class HomematicWandtaster extends AbstractHomematic {
253
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
254
+ super(adapter, id, baseState, etage, raum, device);
255
+ }
256
+
257
+ public getCategory(): string {
258
+ return deviceWandtaster;
259
+ }
260
+
261
+ }
262
+
263
+ export class HomematicAccessPoint extends AbstractHomematic {
264
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
265
+ super(adapter, id, baseState, etage, raum, device);
266
+ }
267
+
268
+ public getCategoryAsString(): string {
269
+ return "Access Point";
270
+ }
271
+
272
+ public isStatusBattery(): boolean {
273
+ return true;
274
+ }
275
+
276
+ public getSignal(): string {
277
+ return "";
278
+ }
279
+
280
+ public getCategory(): string {
281
+ return deviceAccessPoint;
282
+ }
283
+
284
+ }
285
+
286
+ export class HomematicRollladen extends AbstractHomematic {
287
+ protected positionAuf: number;
288
+ protected positionMitte: number;
289
+ protected positionZu: number;
290
+
291
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string, positionAuf: number, positionMitte: number, positionZu: number) {
292
+ super(adapter, id, baseState, etage, raum, device);
293
+ this.positionAuf = positionAuf;
294
+ this.positionMitte = positionMitte;
295
+ this.positionZu = positionZu;
296
+ }
297
+
298
+ public getCategory(): string {
299
+ return deviceRollladen;
300
+ }
301
+
302
+ public auf() {
265
303
  this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionAuf);
266
- }
267
-
268
- public zu() {
304
+ }
305
+
306
+ public zu() {
269
307
  this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionZu);
270
- }
271
-
272
- public mitte() {
308
+ }
309
+
310
+ public mitte() {
273
311
  this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionMitte);
274
- }
275
- }
276
-
277
- class HomematicDoor extends AbstractHomematic {
278
- protected skipStatisticIsOpened: boolean;
279
- protected skipStatisticIsClosed: boolean;
280
-
281
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string, skipStatisticIsOpened: boolean, skipStatisticIsClosed: boolean) {
282
- super(adapter, id, baseState, etage, raum, device);
283
- this.skipStatisticIsOpened = skipStatisticIsOpened;
284
- this.skipStatisticIsClosed = skipStatisticIsClosed;
285
- }
286
-
287
- public isSkipStatisticIsOpened() : boolean {
288
- return this.skipStatisticIsOpened;
289
- }
290
-
291
- public isSkipStatisticIsClosed() : boolean {
292
- return this.skipStatisticIsClosed;
293
- }
294
-
295
- public getCategoryAsString(): string {
296
- return "Türsensor";
297
- }
298
-
299
- public getCategory(): HomematicCategory {
300
- return HomematicCategory.Door;
301
- }
302
-
303
- public isOpen(): boolean {
304
- if (this.adapter.getState(this.baseState + ".1.STATE").val) { // hm-rpc.0.0000DD89BE05F9.1.STATE
305
- return true;
306
- }
307
- return false;
308
- }
309
- }
310
-
311
- class HomematicFussbodenheizung extends AbstractHomematic {
312
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
313
- super(adapter, id, baseState, etage, raum, device);
314
- }
315
-
316
- public getCategoryAsString(): string {
317
- return "Fussbodenheizung";
318
- }
319
-
320
- public getCategory(): HomematicCategory {
321
- return HomematicCategory.Fussbodenheizung;
322
- }
323
- }
324
-
325
- class HomematicWandschalter extends AbstractHomematic {
326
- constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
327
- super(adapter, id, baseState, etage, raum, device);
328
- }
329
-
330
- public getCategoryAsString(): string {
331
- return "Wandschalter";
332
- }
333
-
334
- public getCategory(): HomematicCategory {
335
- return HomematicCategory.Wandschalter;
336
- }
337
-
338
- public isSwitchedOn(): boolean {
339
- if (this.getType() == "HM-LC-Sw1PBU-FM") {
340
- if (this.adapter.getState(this.baseState + ".1.STATE").val == false) { // hm-rpc.0.PEQ2220753.1.STATE
341
- return false;
342
- }
343
- return true;
344
- } else if (this.getType() == "HmIP-BSM") {
345
- if (this.adapter.getState(this.baseState + ".4.STATE").val == false) { // // hm-rpc.1.000855699C4F38.4.STATE
346
- return false;
347
- }
348
- return true;
349
- } else {
350
- // @ts-ignore
351
- return undefined;
352
- }
353
- }
354
- }
355
-
356
-
357
- module.exports = { HomematicWandthermostat ,HomematicFussbodenheizung ,HomematicWandschalter , HomematicDoor , HomematicWetterstation ,HomematicAccessPoint , HomematicRollladen , HomematicWandtaster , HomematicTemperatursensor , HomematicRauchmelder , HomematicPraesenzmelder , HomematicCategory, AbstractHomematic, HomematicFunkschaltaktor};
358
-
312
+ }
313
+ }
314
+
315
+ export class HomematicDoor extends AbstractHomematic {
316
+ protected skipStatisticIsOpened: boolean;
317
+ protected skipStatisticIsClosed: boolean;
318
+
319
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string, skipStatisticIsOpened: boolean, skipStatisticIsClosed: boolean) {
320
+ super(adapter, id, baseState, etage, raum, device);
321
+ this.skipStatisticIsOpened = skipStatisticIsOpened;
322
+ this.skipStatisticIsClosed = skipStatisticIsClosed;
323
+ }
324
+
325
+ public isSkipStatisticIsOpened(): boolean {
326
+ return this.skipStatisticIsOpened;
327
+ }
328
+
329
+ public isSkipStatisticIsClosed(): boolean {
330
+ return this.skipStatisticIsClosed;
331
+ }
332
+
333
+ public getCategory(): string {
334
+ return deviceDoor;
335
+ }
336
+
337
+ public isStatusBattery(): boolean {
338
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
339
+ }
340
+
341
+ public isOpen(): boolean {
342
+ if (this.adapter.getState(this.baseState + ".1.STATE").val) { // hm-rpc.0.0000DD89BE05F9.1.STATE
343
+ return true;
344
+ }
345
+ return false;
346
+ }
347
+ }
348
+
349
+ export class HomematicFussbodenheizung extends AbstractHomematic {
350
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
351
+ super(adapter, id, baseState, etage, raum, device);
352
+ }
353
+
354
+ public getCategory(): string {
355
+ return deviceFussbodenheizung;
356
+ }
357
+
358
+ }
359
+
360
+ export class HomematicWandschalter extends AbstractHomematic {
361
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
362
+ super(adapter, id, baseState, etage, raum, device);
363
+ }
364
+
365
+ public getCategory(): string {
366
+ return deviceWandschalter;
367
+ }
368
+
369
+ public isStatusBattery(): boolean {
370
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
371
+ }
372
+
373
+ public isSwitchedOn(): boolean {
374
+ if (this.getType() == "HM-LC-Sw1PBU-FM") {
375
+ if (this.adapter.getState(this.baseState + ".1.STATE").val == false) { // hm-rpc.0.PEQ2220753.1.STATE
376
+ return false;
377
+ }
378
+ return true;
379
+ } else if (this.getType() == "HmIP-BSM") {
380
+ if (this.adapter.getState(this.baseState + ".4.STATE").val == false) { // // hm-rpc.1.000855699C4F38.4.STATE
381
+ return false;
382
+ }
383
+ return true;
384
+ } else {
385
+ // @ts-ignore
386
+ return undefined;
387
+ }
388
+ }
389
+ }
390
+
391
+ module.exports = { HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor };
package/main.js CHANGED
@@ -1,7 +1,7 @@
1
1
  var DateHelper = require('./date.js').DateHelper;
2
2
  var DateCalendarTest = require('./test.js').DateCalendarTest;
3
3
  var _a = require('./html.js'), AbstractColumn = _a.AbstractColumn, HtmlTable = _a.HtmlTable, HtmlCreator = _a.HtmlCreator, StaticIconColumn = _a.StaticIconColumn, AbstractStandardTextColumn = _a.AbstractStandardTextColumn;
4
- var _b = require('./homematic.js'), HomematicWandthermostat = _b.HomematicWandthermostat, HomematicFussbodenheizung = _b.HomematicFussbodenheizung, HomematicWandschalter = _b.HomematicWandschalter, HomematicDoor = _b.HomematicDoor, HomematicWetterstation = _b.HomematicWetterstation, HomematicAccessPoint = _b.HomematicAccessPoint, HomematicRollladen = _b.HomematicRollladen, HomematicWandtaster = _b.HomematicWandtaster, HomematicTemperatursensor = _b.HomematicTemperatursensor, HomematicRauchmelder = _b.HomematicRauchmelder, HomematicPraesenzmelder = _b.HomematicPraesenzmelder, HomematicCategory = _b.HomematicCategory, AbstractHomematic = _b.AbstractHomematic, HomematicFunkschaltaktor = _b.HomematicFunkschaltaktor;
4
+ var _b = require('./homematic.js'), HomematicWindow = _b.HomematicWindow, HomematicSteckdose = _b.HomematicSteckdose, HomematicHeizkoerper = _b.HomematicHeizkoerper, HomematicDimmer = _b.HomematicDimmer, HomematicWandthermostat = _b.HomematicWandthermostat, HomematicFussbodenheizung = _b.HomematicFussbodenheizung, HomematicWandschalter = _b.HomematicWandschalter, HomematicDoor = _b.HomematicDoor, HomematicWetterstation = _b.HomematicWetterstation, HomematicAccessPoint = _b.HomematicAccessPoint, HomematicRollladen = _b.HomematicRollladen, HomematicWandtaster = _b.HomematicWandtaster, HomematicTemperatursensor = _b.HomematicTemperatursensor, HomematicRauchmelder = _b.HomematicRauchmelder, HomematicPraesenzmelder = _b.HomematicPraesenzmelder, AbstractHomematic = _b.AbstractHomematic, HomematicFunkschaltaktor = _b.HomematicFunkschaltaktor;
5
5
  module.exports = {
6
6
  DateHelper: DateHelper,
7
7
  DateCalendarTest: DateCalendarTest,
@@ -10,6 +10,10 @@ module.exports = {
10
10
  HtmlCreator: HtmlCreator,
11
11
  StaticIconColumn: StaticIconColumn,
12
12
  AbstractStandardTextColumn: AbstractStandardTextColumn,
13
+ HomematicWindow: HomematicWindow,
14
+ HomematicSteckdose: HomematicSteckdose,
15
+ HomematicHeizkoerper: HomematicHeizkoerper,
16
+ HomematicDimmer: HomematicDimmer,
13
17
  HomematicWandthermostat: HomematicWandthermostat,
14
18
  HomematicFussbodenheizung: HomematicFussbodenheizung,
15
19
  HomematicWandschalter: HomematicWandschalter,
@@ -21,7 +25,6 @@ module.exports = {
21
25
  HomematicTemperatursensor: HomematicTemperatursensor,
22
26
  HomematicRauchmelder: HomematicRauchmelder,
23
27
  HomematicPraesenzmelder: HomematicPraesenzmelder,
24
- HomematicCategory: HomematicCategory,
25
28
  AbstractHomematic: AbstractHomematic,
26
29
  HomematicFunkschaltaktor: HomematicFunkschaltaktor
27
30
  };
package/main.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  const { DateHelper } = require('./date.js');
2
2
  const { DateCalendarTest } = require('./test.js');
3
3
  const { AbstractColumn, HtmlTable, HtmlCreator, StaticIconColumn, AbstractStandardTextColumn } = require('./html.js');
4
- const { HomematicWandthermostat ,HomematicFussbodenheizung ,HomematicWandschalter , HomematicDoor , HomematicWetterstation ,HomematicAccessPoint , HomematicRollladen , HomematicWandtaster , HomematicTemperatursensor , HomematicRauchmelder , HomematicPraesenzmelder , HomematicCategory, AbstractHomematic, HomematicFunkschaltaktor } = require('./homematic.js');
4
+ const { HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor } = require('./homematic.js');
5
5
 
6
6
  module.exports = {
7
7
  DateHelper,
8
8
  DateCalendarTest,
9
9
  AbstractColumn, HtmlTable, HtmlCreator, StaticIconColumn, AbstractStandardTextColumn,
10
- HomematicWandthermostat ,HomematicFussbodenheizung ,HomematicWandschalter , HomematicDoor , HomematicWetterstation ,HomematicAccessPoint , HomematicRollladen , HomematicWandtaster , HomematicTemperatursensor , HomematicRauchmelder , HomematicPraesenzmelder , HomematicCategory, AbstractHomematic, HomematicFunkschaltaktor
10
+ HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor
11
11
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker-ucl",
3
- "version": "1.0.36",
3
+ "version": "1.0.37",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "build": "tsc --build",