iobroker-ucl 1.0.36 → 1.0.38

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,124 @@ 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;
159
200
  };
160
201
  return HomematicFunkschaltaktor;
161
202
  }(AbstractHomematic));
203
+ exports.HomematicFunkschaltaktor = HomematicFunkschaltaktor;
162
204
  var HomematicRauchmelder = /** @class */ (function (_super) {
163
205
  __extends(HomematicRauchmelder, _super);
164
206
  function HomematicRauchmelder(adapter, id, baseState, etage, raum, device) {
165
207
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
166
208
  }
167
- HomematicRauchmelder.prototype.getCategoryAsString = function () {
168
- return "Rauchmelder";
169
- };
170
209
  HomematicRauchmelder.prototype.getCategory = function () {
171
- return HomematicCategory.Rauchmelder;
210
+ return deviceRauchmelder;
211
+ };
212
+ HomematicRauchmelder.prototype.isStatusBattery = function () {
213
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
172
214
  };
173
215
  return HomematicRauchmelder;
174
216
  }(AbstractHomematic));
217
+ exports.HomematicRauchmelder = HomematicRauchmelder;
175
218
  var HomematicTemperatursensor = /** @class */ (function (_super) {
176
219
  __extends(HomematicTemperatursensor, _super);
177
220
  function HomematicTemperatursensor(adapter, id, baseState, etage, raum, device) {
@@ -183,27 +226,26 @@ var HomematicTemperatursensor = /** @class */ (function (_super) {
183
226
  HomematicTemperatursensor.prototype.getHumanity = function () {
184
227
  return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.00181BE98EF50E.1.HUMIDITY
185
228
  };
186
- HomematicTemperatursensor.prototype.getCategoryAsString = function () {
187
- return "Temperatursensor";
188
- };
189
229
  HomematicTemperatursensor.prototype.getCategory = function () {
190
- return HomematicCategory.Temperatursensor;
230
+ return deviceTemperatursensor;
231
+ };
232
+ HomematicTemperatursensor.prototype.isStatusBattery = function () {
233
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
191
234
  };
192
235
  return HomematicTemperatursensor;
193
236
  }(AbstractHomematic));
237
+ exports.HomematicTemperatursensor = HomematicTemperatursensor;
194
238
  var HomematicWandtaster = /** @class */ (function (_super) {
195
239
  __extends(HomematicWandtaster, _super);
196
240
  function HomematicWandtaster(adapter, id, baseState, etage, raum, device) {
197
241
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
198
242
  }
199
- HomematicWandtaster.prototype.getCategoryAsString = function () {
200
- return "Wandtaster";
201
- };
202
243
  HomematicWandtaster.prototype.getCategory = function () {
203
- return HomematicCategory.Wandtaster;
244
+ return deviceWandtaster;
204
245
  };
205
246
  return HomematicWandtaster;
206
247
  }(AbstractHomematic));
248
+ exports.HomematicWandtaster = HomematicWandtaster;
207
249
  var HomematicAccessPoint = /** @class */ (function (_super) {
208
250
  __extends(HomematicAccessPoint, _super);
209
251
  function HomematicAccessPoint(adapter, id, baseState, etage, raum, device) {
@@ -219,10 +261,11 @@ var HomematicAccessPoint = /** @class */ (function (_super) {
219
261
  return "";
220
262
  };
221
263
  HomematicAccessPoint.prototype.getCategory = function () {
222
- return HomematicCategory.AccessPoint;
264
+ return deviceAccessPoint;
223
265
  };
224
266
  return HomematicAccessPoint;
225
267
  }(AbstractHomematic));
268
+ exports.HomematicAccessPoint = HomematicAccessPoint;
226
269
  var HomematicRollladen = /** @class */ (function (_super) {
227
270
  __extends(HomematicRollladen, _super);
228
271
  function HomematicRollladen(adapter, id, baseState, etage, raum, device, positionAuf, positionMitte, positionZu) {
@@ -232,11 +275,8 @@ var HomematicRollladen = /** @class */ (function (_super) {
232
275
  _this.positionZu = positionZu;
233
276
  return _this;
234
277
  }
235
- HomematicRollladen.prototype.getCategoryAsString = function () {
236
- return "Rollladenschalter";
237
- };
238
278
  HomematicRollladen.prototype.getCategory = function () {
239
- return HomematicCategory.Rollladen;
279
+ return deviceRollladen;
240
280
  };
241
281
  HomematicRollladen.prototype.auf = function () {
242
282
  this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionAuf);
@@ -249,6 +289,7 @@ var HomematicRollladen = /** @class */ (function (_super) {
249
289
  };
250
290
  return HomematicRollladen;
251
291
  }(AbstractHomematic));
292
+ exports.HomematicRollladen = HomematicRollladen;
252
293
  var HomematicDoor = /** @class */ (function (_super) {
253
294
  __extends(HomematicDoor, _super);
254
295
  function HomematicDoor(adapter, id, baseState, etage, raum, device, skipStatisticIsOpened, skipStatisticIsClosed) {
@@ -263,11 +304,11 @@ var HomematicDoor = /** @class */ (function (_super) {
263
304
  HomematicDoor.prototype.isSkipStatisticIsClosed = function () {
264
305
  return this.skipStatisticIsClosed;
265
306
  };
266
- HomematicDoor.prototype.getCategoryAsString = function () {
267
- return "Türsensor";
268
- };
269
307
  HomematicDoor.prototype.getCategory = function () {
270
- return HomematicCategory.Door;
308
+ return deviceDoor;
309
+ };
310
+ HomematicDoor.prototype.isStatusBattery = function () {
311
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
271
312
  };
272
313
  HomematicDoor.prototype.isOpen = function () {
273
314
  if (this.adapter.getState(this.baseState + ".1.STATE").val) { // hm-rpc.0.0000DD89BE05F9.1.STATE
@@ -277,29 +318,28 @@ var HomematicDoor = /** @class */ (function (_super) {
277
318
  };
278
319
  return HomematicDoor;
279
320
  }(AbstractHomematic));
321
+ exports.HomematicDoor = HomematicDoor;
280
322
  var HomematicFussbodenheizung = /** @class */ (function (_super) {
281
323
  __extends(HomematicFussbodenheizung, _super);
282
324
  function HomematicFussbodenheizung(adapter, id, baseState, etage, raum, device) {
283
325
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
284
326
  }
285
- HomematicFussbodenheizung.prototype.getCategoryAsString = function () {
286
- return "Fussbodenheizung";
287
- };
288
327
  HomematicFussbodenheizung.prototype.getCategory = function () {
289
- return HomematicCategory.Fussbodenheizung;
328
+ return deviceFussbodenheizung;
290
329
  };
291
330
  return HomematicFussbodenheizung;
292
331
  }(AbstractHomematic));
332
+ exports.HomematicFussbodenheizung = HomematicFussbodenheizung;
293
333
  var HomematicWandschalter = /** @class */ (function (_super) {
294
334
  __extends(HomematicWandschalter, _super);
295
335
  function HomematicWandschalter(adapter, id, baseState, etage, raum, device) {
296
336
  return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
297
337
  }
298
- HomematicWandschalter.prototype.getCategoryAsString = function () {
299
- return "Wandschalter";
300
- };
301
338
  HomematicWandschalter.prototype.getCategory = function () {
302
- return HomematicCategory.Wandschalter;
339
+ return deviceWandschalter;
340
+ };
341
+ HomematicWandschalter.prototype.isStatusBattery = function () {
342
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
303
343
  };
304
344
  HomematicWandschalter.prototype.isSwitchedOn = function () {
305
345
  if (this.getType() == "HM-LC-Sw1PBU-FM") {
@@ -321,4 +361,5 @@ var HomematicWandschalter = /** @class */ (function (_super) {
321
361
  };
322
362
  return HomematicWandschalter;
323
363
  }(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 };
364
+ exports.HomematicWandschalter = HomematicWandschalter;
365
+ 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,386 @@
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
+
210
+ export class HomematicRauchmelder extends AbstractHomematic {
211
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
212
+ super(adapter, id, baseState, etage, raum, device);
213
+ }
214
+
215
+ public getCategory(): string {
216
+ return deviceRauchmelder;
217
+ }
218
+
219
+ public isStatusBattery(): boolean {
220
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
221
+ }
222
+ }
223
+
224
+
225
+ export class HomematicTemperatursensor extends AbstractHomematic {
226
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
227
+ super(adapter, id, baseState, etage, raum, device);
228
+ }
229
+
230
+ public getTemperatureIst(): string { // hm-rpc.0.00181BE98EF50E.1.ACTUAL_TEMPERATURE
231
+ return this.adapter.getState(this.baseState + ".1.ACTUAL_TEMPERATURE").val + " °C";
232
+ }
233
+
234
+ public getHumanity(): string {
235
+ return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.00181BE98EF50E.1.HUMIDITY
236
+ }
237
+
238
+ public getCategory(): string {
239
+ return deviceTemperatursensor;
240
+ }
241
+
242
+ public isStatusBattery(): boolean {
243
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
244
+ }
245
+ }
246
+
247
+ export class HomematicWandtaster extends AbstractHomematic {
248
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
249
+ super(adapter, id, baseState, etage, raum, device);
250
+ }
251
+
252
+ public getCategory(): string {
253
+ return deviceWandtaster;
254
+ }
255
+
256
+ }
257
+
258
+ export class HomematicAccessPoint extends AbstractHomematic {
259
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
260
+ super(adapter, id, baseState, etage, raum, device);
261
+ }
262
+
263
+ public getCategoryAsString(): string {
264
+ return "Access Point";
265
+ }
266
+
267
+ public isStatusBattery(): boolean {
268
+ return true;
269
+ }
270
+
271
+ public getSignal(): string {
272
+ return "";
273
+ }
274
+
275
+ public getCategory(): string {
276
+ return deviceAccessPoint;
277
+ }
278
+
279
+ }
280
+
281
+ export class HomematicRollladen extends AbstractHomematic {
282
+ protected positionAuf: number;
283
+ protected positionMitte: number;
284
+ protected positionZu: number;
285
+
286
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string, positionAuf: number, positionMitte: number, positionZu: number) {
287
+ super(adapter, id, baseState, etage, raum, device);
288
+ this.positionAuf = positionAuf;
289
+ this.positionMitte = positionMitte;
290
+ this.positionZu = positionZu;
291
+ }
292
+
293
+ public getCategory(): string {
294
+ return deviceRollladen;
295
+ }
296
+
297
+ public auf() {
265
298
  this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionAuf);
266
- }
267
-
268
- public zu() {
299
+ }
300
+
301
+ public zu() {
269
302
  this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionZu);
270
- }
271
-
272
- public mitte() {
303
+ }
304
+
305
+ public mitte() {
273
306
  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
-
307
+ }
308
+ }
309
+
310
+ export class HomematicDoor extends AbstractHomematic {
311
+ protected skipStatisticIsOpened: boolean;
312
+ protected skipStatisticIsClosed: boolean;
313
+
314
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string, skipStatisticIsOpened: boolean, skipStatisticIsClosed: boolean) {
315
+ super(adapter, id, baseState, etage, raum, device);
316
+ this.skipStatisticIsOpened = skipStatisticIsOpened;
317
+ this.skipStatisticIsClosed = skipStatisticIsClosed;
318
+ }
319
+
320
+ public isSkipStatisticIsOpened(): boolean {
321
+ return this.skipStatisticIsOpened;
322
+ }
323
+
324
+ public isSkipStatisticIsClosed(): boolean {
325
+ return this.skipStatisticIsClosed;
326
+ }
327
+
328
+ public getCategory(): string {
329
+ return deviceDoor;
330
+ }
331
+
332
+ public isStatusBattery(): boolean {
333
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
334
+ }
335
+
336
+ public isOpen(): boolean {
337
+ if (this.adapter.getState(this.baseState + ".1.STATE").val) { // hm-rpc.0.0000DD89BE05F9.1.STATE
338
+ return true;
339
+ }
340
+ return false;
341
+ }
342
+ }
343
+
344
+ export class HomematicFussbodenheizung extends AbstractHomematic {
345
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
346
+ super(adapter, id, baseState, etage, raum, device);
347
+ }
348
+
349
+ public getCategory(): string {
350
+ return deviceFussbodenheizung;
351
+ }
352
+
353
+ }
354
+
355
+ export class HomematicWandschalter extends AbstractHomematic {
356
+ constructor(adapter: any, id: number, baseState: string, etage: string, raum: string, device: string) {
357
+ super(adapter, id, baseState, etage, raum, device);
358
+ }
359
+
360
+ public getCategory(): string {
361
+ return deviceWandschalter;
362
+ }
363
+
364
+ public isStatusBattery(): boolean {
365
+ return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
366
+ }
367
+
368
+ public isSwitchedOn(): boolean {
369
+ if (this.getType() == "HM-LC-Sw1PBU-FM") {
370
+ if (this.adapter.getState(this.baseState + ".1.STATE").val == false) { // hm-rpc.0.PEQ2220753.1.STATE
371
+ return false;
372
+ }
373
+ return true;
374
+ } else if (this.getType() == "HmIP-BSM") {
375
+ if (this.adapter.getState(this.baseState + ".4.STATE").val == false) { // // hm-rpc.1.000855699C4F38.4.STATE
376
+ return false;
377
+ }
378
+ return true;
379
+ } else {
380
+ // @ts-ignore
381
+ return undefined;
382
+ }
383
+ }
384
+ }
385
+
386
+ 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.38",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "build": "tsc --build",