iobroker-ucl 1.0.40 → 1.0.42
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 +11 -2
- package/homematicClasses.js +400 -0
- package/{homematic.ts → homematicClasses.ts} +39 -34
- package/homematicFunctions.js +233 -0
- package/homematicFunctions.ts +237 -0
- package/main.js +11 -19
- package/main.ts +14 -20
- package/package.json +1 -1
package/homematic.js
CHANGED
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
15
15
|
};
|
16
16
|
})();
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
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;
|
18
|
+
exports.getHomematicDevicesUwe = 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
19
|
var deviceWandthermostat = "Wandthermostat";
|
20
20
|
var devicePraesenzmelder = "Praesenzmelder";
|
21
21
|
var deviceWetterstation = "Wetterstation";
|
@@ -362,4 +362,13 @@ var HomematicWandschalter = /** @class */ (function (_super) {
|
|
362
362
|
return HomematicWandschalter;
|
363
363
|
}(AbstractHomematic));
|
364
364
|
exports.HomematicWandschalter = HomematicWandschalter;
|
365
|
-
|
365
|
+
function getHomematicDevicesUwe(adapter, filterCategory) {
|
366
|
+
adapter.log("INSIDE: ");
|
367
|
+
var homematicArray = [];
|
368
|
+
adapter.$('state[id=0_userdata.0.devices.homematic.*.type]').each(function (datenpunktKey) {
|
369
|
+
adapter.log("Here i am: " + datenpunktKey);
|
370
|
+
});
|
371
|
+
return homematicArray;
|
372
|
+
}
|
373
|
+
exports.getHomematicDevicesUwe = getHomematicDevicesUwe;
|
374
|
+
module.exports = { getHomematicDevicesUwe: getHomematicDevicesUwe, 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 };
|
@@ -0,0 +1,400 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
3
|
+
var extendStatics = function (d, b) {
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
7
|
+
return extendStatics(d, b);
|
8
|
+
};
|
9
|
+
return function (d, b) {
|
10
|
+
if (typeof b !== "function" && b !== null)
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
12
|
+
extendStatics(d, b);
|
13
|
+
function __() { this.constructor = d; }
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
15
|
+
};
|
16
|
+
})();
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
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
|
+
// https://stackoverflow.com/questions/8595509/how-do-you-share-constants-in-nodejs-modules
|
20
|
+
var deviceHomematicWandthermostat = "Wandthermostat";
|
21
|
+
var deviceHomematicPraesenzmelder = "Praesenzmelder";
|
22
|
+
var deviceHomematicWetterstation = "Wetterstation";
|
23
|
+
var deviceHomematicDoor = "Door";
|
24
|
+
var deviceHomematicRollladen = "Rollladen";
|
25
|
+
var deviceHomematicWandschalter = "Wandschalter";
|
26
|
+
var deviceHomematicFussbodenheizung = "Fussbodenheizung";
|
27
|
+
var deviceHomematicWandtaster = "Wandtaster";
|
28
|
+
var deviceHomematicAccessPoint = "AccessPoint";
|
29
|
+
var deviceHomematicTemperatursensor = "Temperatursensor";
|
30
|
+
var deviceHomematicRauchmelder = "Rauchmelder";
|
31
|
+
var deviceHomematicFunkSchaltaktor = "FunkSchaltaktor";
|
32
|
+
var deviceHomematicWindow = "Window";
|
33
|
+
var deviceHomematicSteckdose = "Steckdose";
|
34
|
+
var deviceHomematicHeizkoerper = "Heizkoerper";
|
35
|
+
var deviceHomematicDimmer = "Dimmer";
|
36
|
+
var AbstractHomematic = /** @class */ (function () {
|
37
|
+
function AbstractHomematic(adapter, id, baseState, etage, raum, device) {
|
38
|
+
this.adapter = adapter;
|
39
|
+
this.id = id;
|
40
|
+
this.etage = etage;
|
41
|
+
this.raum = raum;
|
42
|
+
this.device = device;
|
43
|
+
this.baseState = baseState;
|
44
|
+
}
|
45
|
+
AbstractHomematic.prototype.getDeviceId = function () {
|
46
|
+
return "H" + this.id.toString().padStart(2, '0');
|
47
|
+
};
|
48
|
+
AbstractHomematic.prototype.getDeviceIdAsRawNumber = function () {
|
49
|
+
return this.id;
|
50
|
+
};
|
51
|
+
AbstractHomematic.prototype.getBaseState = function () {
|
52
|
+
return this.baseState;
|
53
|
+
};
|
54
|
+
AbstractHomematic.prototype.getType = function () {
|
55
|
+
return ""; //getObject(this.baseState).native.TYPE;
|
56
|
+
};
|
57
|
+
AbstractHomematic.prototype.getEtage = function () {
|
58
|
+
return this.etage;
|
59
|
+
};
|
60
|
+
AbstractHomematic.prototype.getRaum = function () {
|
61
|
+
return this.raum;
|
62
|
+
};
|
63
|
+
AbstractHomematic.prototype.getDevice = function () {
|
64
|
+
return this.device;
|
65
|
+
};
|
66
|
+
AbstractHomematic.prototype.isStatusTotal = function () {
|
67
|
+
return this.isStatusReachable() && this.isStatusBattery() && this.isStatusDutyCycle();
|
68
|
+
};
|
69
|
+
AbstractHomematic.prototype.isStatusReachable = function () {
|
70
|
+
return !this.adapter.getState(this.baseState + ".0.UNREACH").val;
|
71
|
+
};
|
72
|
+
AbstractHomematic.prototype.isStatusBattery = function () {
|
73
|
+
return true;
|
74
|
+
};
|
75
|
+
AbstractHomematic.prototype.isStatusDutyCycle = function () {
|
76
|
+
if (this.getType().includes("HmIP")) {
|
77
|
+
return !this.adapter.getState(this.baseState + ".0.DUTY_CYCLE").val; // hm-rpc.0.000A9BE993E2F7.0.DUTY_CYCLE
|
78
|
+
}
|
79
|
+
return true;
|
80
|
+
};
|
81
|
+
AbstractHomematic.prototype.getSignal = function () {
|
82
|
+
return this.adapter.getState(this.baseState + ".0.RSSI_DEVICE").val;
|
83
|
+
};
|
84
|
+
return AbstractHomematic;
|
85
|
+
}());
|
86
|
+
exports.AbstractHomematic = AbstractHomematic;
|
87
|
+
var HomematicWandthermostat = /** @class */ (function (_super) {
|
88
|
+
__extends(HomematicWandthermostat, _super);
|
89
|
+
function HomematicWandthermostat(adapter, id, baseState, etage, raum, device) {
|
90
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
91
|
+
}
|
92
|
+
HomematicWandthermostat.prototype.getTemperatureIst = function () {
|
93
|
+
return this.adapter.getState(this.baseState + ".1.ACTUAL_TEMPERATURE").val; // hm-rpc.0.000A9BE993E2F7.1.ACTUAL_TEMPERATURE
|
94
|
+
};
|
95
|
+
HomematicWandthermostat.prototype.getTemperatureSoll = function () {
|
96
|
+
return this.adapter.getState(this.baseState + ".1.SET_POINT_TEMPERATURE").val; // hm-rpc.0.000A9BE993E2F7.1.SET_POINT_TEMPERATURE
|
97
|
+
};
|
98
|
+
HomematicWandthermostat.prototype.getHumanity = function () {
|
99
|
+
return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.000A9BE993E2F7.1.HUMIDITY
|
100
|
+
};
|
101
|
+
HomematicWandthermostat.prototype.getCategory = function () {
|
102
|
+
return deviceHomematicWandthermostat;
|
103
|
+
};
|
104
|
+
HomematicWandthermostat.prototype.isStatusBattery = function () {
|
105
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
106
|
+
};
|
107
|
+
return HomematicWandthermostat;
|
108
|
+
}(AbstractHomematic));
|
109
|
+
exports.HomematicWandthermostat = HomematicWandthermostat;
|
110
|
+
var HomematicPraesenzmelder = /** @class */ (function (_super) {
|
111
|
+
__extends(HomematicPraesenzmelder, _super);
|
112
|
+
function HomematicPraesenzmelder(adapter, id, baseState, etage, raum, device) {
|
113
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
114
|
+
}
|
115
|
+
HomematicPraesenzmelder.prototype.getCategory = function () {
|
116
|
+
return deviceHomematicPraesenzmelder;
|
117
|
+
};
|
118
|
+
HomematicPraesenzmelder.prototype.getIllumination = function () {
|
119
|
+
if (this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val != null) {
|
120
|
+
return this.adapter.getState(this.baseState + ".1.CURRENT_ILLUMINATION").val + " lux"; // hm-rpc.0.000C1BE98E093D.1.CURRENT_ILLUMINATION
|
121
|
+
}
|
122
|
+
return "-";
|
123
|
+
};
|
124
|
+
HomematicPraesenzmelder.prototype.isStatusBattery = function () {
|
125
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
126
|
+
};
|
127
|
+
return HomematicPraesenzmelder;
|
128
|
+
}(AbstractHomematic));
|
129
|
+
exports.HomematicPraesenzmelder = HomematicPraesenzmelder;
|
130
|
+
var HomematicWetterstation = /** @class */ (function (_super) {
|
131
|
+
__extends(HomematicWetterstation, _super);
|
132
|
+
function HomematicWetterstation(adapter, id, baseState, etage, raum, device) {
|
133
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
134
|
+
}
|
135
|
+
HomematicWetterstation.prototype.getCategory = function () {
|
136
|
+
return deviceHomematicWetterstation;
|
137
|
+
};
|
138
|
+
HomematicWetterstation.prototype.isStatusBattery = function () {
|
139
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
140
|
+
};
|
141
|
+
return HomematicWetterstation;
|
142
|
+
}(AbstractHomematic));
|
143
|
+
exports.HomematicWetterstation = HomematicWetterstation;
|
144
|
+
var HomematicWindow = /** @class */ (function (_super) {
|
145
|
+
__extends(HomematicWindow, _super);
|
146
|
+
function HomematicWindow(adapter, id, baseState, etage, raum, device) {
|
147
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
148
|
+
}
|
149
|
+
HomematicWindow.prototype.getCategory = function () {
|
150
|
+
return deviceHomematicWindow;
|
151
|
+
};
|
152
|
+
HomematicWindow.prototype.isStatusBattery = function () {
|
153
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
154
|
+
};
|
155
|
+
return HomematicWindow;
|
156
|
+
}(AbstractHomematic));
|
157
|
+
exports.HomematicWindow = HomematicWindow;
|
158
|
+
var HomematicSteckdose = /** @class */ (function (_super) {
|
159
|
+
__extends(HomematicSteckdose, _super);
|
160
|
+
function HomematicSteckdose(adapter, id, baseState, etage, raum, device) {
|
161
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
162
|
+
}
|
163
|
+
HomematicSteckdose.prototype.getCategory = function () {
|
164
|
+
return deviceHomematicSteckdose;
|
165
|
+
};
|
166
|
+
return HomematicSteckdose;
|
167
|
+
}(AbstractHomematic));
|
168
|
+
exports.HomematicSteckdose = HomematicSteckdose;
|
169
|
+
var HomematicHeizkoerper = /** @class */ (function (_super) {
|
170
|
+
__extends(HomematicHeizkoerper, _super);
|
171
|
+
function HomematicHeizkoerper(adapter, id, baseState, etage, raum, device) {
|
172
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
173
|
+
}
|
174
|
+
HomematicHeizkoerper.prototype.getCategory = function () {
|
175
|
+
return deviceHomematicHeizkoerper;
|
176
|
+
};
|
177
|
+
HomematicHeizkoerper.prototype.isStatusBattery = function () {
|
178
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
179
|
+
};
|
180
|
+
return HomematicHeizkoerper;
|
181
|
+
}(AbstractHomematic));
|
182
|
+
exports.HomematicHeizkoerper = HomematicHeizkoerper;
|
183
|
+
var HomematicDimmer = /** @class */ (function (_super) {
|
184
|
+
__extends(HomematicDimmer, _super);
|
185
|
+
function HomematicDimmer(adapter, id, baseState, etage, raum, device) {
|
186
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
187
|
+
}
|
188
|
+
HomematicDimmer.prototype.getCategory = function () {
|
189
|
+
return deviceHomematicDimmer;
|
190
|
+
};
|
191
|
+
return HomematicDimmer;
|
192
|
+
}(AbstractHomematic));
|
193
|
+
exports.HomematicDimmer = HomematicDimmer;
|
194
|
+
var HomematicFunkschaltaktor = /** @class */ (function (_super) {
|
195
|
+
__extends(HomematicFunkschaltaktor, _super);
|
196
|
+
function HomematicFunkschaltaktor(adapter, id, baseState, etage, raum, device) {
|
197
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
198
|
+
}
|
199
|
+
HomematicFunkschaltaktor.prototype.getCategory = function () {
|
200
|
+
return deviceHomematicFunkSchaltaktor;
|
201
|
+
};
|
202
|
+
return HomematicFunkschaltaktor;
|
203
|
+
}(AbstractHomematic));
|
204
|
+
exports.HomematicFunkschaltaktor = HomematicFunkschaltaktor;
|
205
|
+
var HomematicRauchmelder = /** @class */ (function (_super) {
|
206
|
+
__extends(HomematicRauchmelder, _super);
|
207
|
+
function HomematicRauchmelder(adapter, id, baseState, etage, raum, device) {
|
208
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
209
|
+
}
|
210
|
+
HomematicRauchmelder.prototype.getCategory = function () {
|
211
|
+
return deviceHomematicRauchmelder;
|
212
|
+
};
|
213
|
+
HomematicRauchmelder.prototype.isStatusBattery = function () {
|
214
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
215
|
+
};
|
216
|
+
return HomematicRauchmelder;
|
217
|
+
}(AbstractHomematic));
|
218
|
+
exports.HomematicRauchmelder = HomematicRauchmelder;
|
219
|
+
var HomematicTemperatursensor = /** @class */ (function (_super) {
|
220
|
+
__extends(HomematicTemperatursensor, _super);
|
221
|
+
function HomematicTemperatursensor(adapter, id, baseState, etage, raum, device) {
|
222
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
223
|
+
}
|
224
|
+
HomematicTemperatursensor.prototype.getTemperatureIst = function () {
|
225
|
+
return this.adapter.getState(this.baseState + ".1.ACTUAL_TEMPERATURE").val + " °C";
|
226
|
+
};
|
227
|
+
HomematicTemperatursensor.prototype.getHumanity = function () {
|
228
|
+
return this.adapter.getState(this.baseState + ".1.HUMIDITY").val + " %"; // hm-rpc.0.00181BE98EF50E.1.HUMIDITY
|
229
|
+
};
|
230
|
+
HomematicTemperatursensor.prototype.getCategory = function () {
|
231
|
+
return deviceHomematicTemperatursensor;
|
232
|
+
};
|
233
|
+
HomematicTemperatursensor.prototype.isStatusBattery = function () {
|
234
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
235
|
+
};
|
236
|
+
return HomematicTemperatursensor;
|
237
|
+
}(AbstractHomematic));
|
238
|
+
exports.HomematicTemperatursensor = HomematicTemperatursensor;
|
239
|
+
var HomematicWandtaster = /** @class */ (function (_super) {
|
240
|
+
__extends(HomematicWandtaster, _super);
|
241
|
+
function HomematicWandtaster(adapter, id, baseState, etage, raum, device) {
|
242
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
243
|
+
}
|
244
|
+
HomematicWandtaster.prototype.getCategory = function () {
|
245
|
+
return deviceHomematicWandtaster;
|
246
|
+
};
|
247
|
+
return HomematicWandtaster;
|
248
|
+
}(AbstractHomematic));
|
249
|
+
exports.HomematicWandtaster = HomematicWandtaster;
|
250
|
+
var HomematicAccessPoint = /** @class */ (function (_super) {
|
251
|
+
__extends(HomematicAccessPoint, _super);
|
252
|
+
function HomematicAccessPoint(adapter, id, baseState, etage, raum, device) {
|
253
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
254
|
+
}
|
255
|
+
HomematicAccessPoint.prototype.getCategoryAsString = function () {
|
256
|
+
return "Access Point";
|
257
|
+
};
|
258
|
+
HomematicAccessPoint.prototype.isStatusBattery = function () {
|
259
|
+
return true;
|
260
|
+
};
|
261
|
+
HomematicAccessPoint.prototype.getSignal = function () {
|
262
|
+
return "";
|
263
|
+
};
|
264
|
+
HomematicAccessPoint.prototype.getCategory = function () {
|
265
|
+
return deviceHomematicAccessPoint;
|
266
|
+
};
|
267
|
+
return HomematicAccessPoint;
|
268
|
+
}(AbstractHomematic));
|
269
|
+
exports.HomematicAccessPoint = HomematicAccessPoint;
|
270
|
+
var HomematicRollladen = /** @class */ (function (_super) {
|
271
|
+
__extends(HomematicRollladen, _super);
|
272
|
+
function HomematicRollladen(adapter, id, baseState, etage, raum, device, positionAuf, positionMitte, positionZu) {
|
273
|
+
var _this = _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
274
|
+
_this.positionAuf = positionAuf;
|
275
|
+
_this.positionMitte = positionMitte;
|
276
|
+
_this.positionZu = positionZu;
|
277
|
+
return _this;
|
278
|
+
}
|
279
|
+
HomematicRollladen.prototype.getCategory = function () {
|
280
|
+
return deviceHomematicRollladen;
|
281
|
+
};
|
282
|
+
HomematicRollladen.prototype.auf = function () {
|
283
|
+
this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionAuf);
|
284
|
+
};
|
285
|
+
HomematicRollladen.prototype.zu = function () {
|
286
|
+
this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionZu);
|
287
|
+
};
|
288
|
+
HomematicRollladen.prototype.mitte = function () {
|
289
|
+
this.adapter.setState(this.getBaseState() + ".4.LEVEL", this.positionMitte);
|
290
|
+
};
|
291
|
+
return HomematicRollladen;
|
292
|
+
}(AbstractHomematic));
|
293
|
+
exports.HomematicRollladen = HomematicRollladen;
|
294
|
+
var HomematicDoor = /** @class */ (function (_super) {
|
295
|
+
__extends(HomematicDoor, _super);
|
296
|
+
function HomematicDoor(adapter, id, baseState, etage, raum, device, skipStatisticIsOpened, skipStatisticIsClosed) {
|
297
|
+
var _this = _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
298
|
+
_this.skipStatisticIsOpened = skipStatisticIsOpened;
|
299
|
+
_this.skipStatisticIsClosed = skipStatisticIsClosed;
|
300
|
+
return _this;
|
301
|
+
}
|
302
|
+
HomematicDoor.prototype.isSkipStatisticIsOpened = function () {
|
303
|
+
return this.skipStatisticIsOpened;
|
304
|
+
};
|
305
|
+
HomematicDoor.prototype.isSkipStatisticIsClosed = function () {
|
306
|
+
return this.skipStatisticIsClosed;
|
307
|
+
};
|
308
|
+
HomematicDoor.prototype.getCategory = function () {
|
309
|
+
return deviceHomematicDoor;
|
310
|
+
};
|
311
|
+
HomematicDoor.prototype.isStatusBattery = function () {
|
312
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
313
|
+
};
|
314
|
+
HomematicDoor.prototype.isOpen = function () {
|
315
|
+
if (this.adapter.getState(this.baseState + ".1.STATE").val) { // hm-rpc.0.0000DD89BE05F9.1.STATE
|
316
|
+
return true;
|
317
|
+
}
|
318
|
+
return false;
|
319
|
+
};
|
320
|
+
return HomematicDoor;
|
321
|
+
}(AbstractHomematic));
|
322
|
+
exports.HomematicDoor = HomematicDoor;
|
323
|
+
var HomematicFussbodenheizung = /** @class */ (function (_super) {
|
324
|
+
__extends(HomematicFussbodenheizung, _super);
|
325
|
+
function HomematicFussbodenheizung(adapter, id, baseState, etage, raum, device) {
|
326
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
327
|
+
}
|
328
|
+
HomematicFussbodenheizung.prototype.getCategory = function () {
|
329
|
+
return deviceHomematicFussbodenheizung;
|
330
|
+
};
|
331
|
+
return HomematicFussbodenheizung;
|
332
|
+
}(AbstractHomematic));
|
333
|
+
exports.HomematicFussbodenheizung = HomematicFussbodenheizung;
|
334
|
+
var HomematicWandschalter = /** @class */ (function (_super) {
|
335
|
+
__extends(HomematicWandschalter, _super);
|
336
|
+
function HomematicWandschalter(adapter, id, baseState, etage, raum, device) {
|
337
|
+
return _super.call(this, adapter, id, baseState, etage, raum, device) || this;
|
338
|
+
}
|
339
|
+
HomematicWandschalter.prototype.getCategory = function () {
|
340
|
+
return deviceHomematicWandschalter;
|
341
|
+
};
|
342
|
+
HomematicWandschalter.prototype.isStatusBattery = function () {
|
343
|
+
return !this.adapter.getState(this.baseState + ".0.LOW_BAT").val; // // hm-rpc.0.000A9BE993E2F7.0.LOW_BAT
|
344
|
+
};
|
345
|
+
HomematicWandschalter.prototype.isSwitchedOn = function () {
|
346
|
+
if (this.getType() == "HM-LC-Sw1PBU-FM") {
|
347
|
+
if (this.adapter.getState(this.baseState + ".1.STATE").val == false) { // hm-rpc.0.PEQ2220753.1.STATE
|
348
|
+
return false;
|
349
|
+
}
|
350
|
+
return true;
|
351
|
+
}
|
352
|
+
else if (this.getType() == "HmIP-BSM") {
|
353
|
+
if (this.adapter.getState(this.baseState + ".4.STATE").val == false) { // // hm-rpc.1.000855699C4F38.4.STATE
|
354
|
+
return false;
|
355
|
+
}
|
356
|
+
return true;
|
357
|
+
}
|
358
|
+
else {
|
359
|
+
// @ts-ignore
|
360
|
+
return undefined;
|
361
|
+
}
|
362
|
+
};
|
363
|
+
return HomematicWandschalter;
|
364
|
+
}(AbstractHomematic));
|
365
|
+
exports.HomematicWandschalter = HomematicWandschalter;
|
366
|
+
module.exports = {
|
367
|
+
HomematicWindow: HomematicWindow,
|
368
|
+
HomematicSteckdose: HomematicSteckdose,
|
369
|
+
HomematicHeizkoerper: HomematicHeizkoerper,
|
370
|
+
HomematicDimmer: HomematicDimmer,
|
371
|
+
HomematicWandthermostat: HomematicWandthermostat,
|
372
|
+
HomematicFussbodenheizung: HomematicFussbodenheizung,
|
373
|
+
HomematicWandschalter: HomematicWandschalter,
|
374
|
+
HomematicDoor: HomematicDoor,
|
375
|
+
HomematicWetterstation: HomematicWetterstation,
|
376
|
+
HomematicAccessPoint: HomematicAccessPoint,
|
377
|
+
HomematicRollladen: HomematicRollladen,
|
378
|
+
HomematicWandtaster: HomematicWandtaster,
|
379
|
+
HomematicTemperatursensor: HomematicTemperatursensor,
|
380
|
+
HomematicRauchmelder: HomematicRauchmelder,
|
381
|
+
HomematicPraesenzmelder: HomematicPraesenzmelder,
|
382
|
+
AbstractHomematic: AbstractHomematic,
|
383
|
+
HomematicFunkschaltaktor: HomematicFunkschaltaktor,
|
384
|
+
deviceHomematicWandthermostat: deviceHomematicWandthermostat,
|
385
|
+
deviceHomematicPraesenzmelder: deviceHomematicPraesenzmelder,
|
386
|
+
deviceHomematicWetterstation: deviceHomematicWetterstation,
|
387
|
+
deviceHomematicDoor: deviceHomematicDoor,
|
388
|
+
deviceHomematicRollladen: deviceHomematicRollladen,
|
389
|
+
deviceHomematicWandschalter: deviceHomematicWandschalter,
|
390
|
+
deviceHomematicFussbodenheizung: deviceHomematicFussbodenheizung,
|
391
|
+
deviceHomematicWandtaster: deviceHomematicWandtaster,
|
392
|
+
deviceHomematicAccessPoint: deviceHomematicAccessPoint,
|
393
|
+
deviceHomematicTemperatursensor: deviceHomematicTemperatursensor,
|
394
|
+
deviceHomematicRauchmelder: deviceHomematicRauchmelder,
|
395
|
+
deviceHomematicFunkSchaltaktor: deviceHomematicFunkSchaltaktor,
|
396
|
+
deviceHomematicWindow: deviceHomematicWindow,
|
397
|
+
deviceHomematicSteckdose: deviceHomematicSteckdose,
|
398
|
+
deviceHomematicHeizkoerper: deviceHomematicHeizkoerper,
|
399
|
+
deviceHomematicDimmer: deviceHomematicDimmer
|
400
|
+
};
|
@@ -1,20 +1,20 @@
|
|
1
|
-
|
2
|
-
const
|
3
|
-
const
|
4
|
-
const
|
5
|
-
const
|
6
|
-
const
|
7
|
-
const
|
8
|
-
const
|
9
|
-
const
|
10
|
-
const
|
11
|
-
const
|
12
|
-
const
|
13
|
-
const
|
14
|
-
const
|
15
|
-
const
|
16
|
-
const
|
17
|
-
const
|
1
|
+
// https://stackoverflow.com/questions/8595509/how-do-you-share-constants-in-nodejs-modules
|
2
|
+
const deviceHomematicWandthermostat: string = "Wandthermostat";
|
3
|
+
const deviceHomematicPraesenzmelder: string = "Praesenzmelder";
|
4
|
+
const deviceHomematicWetterstation: string = "Wetterstation";
|
5
|
+
const deviceHomematicDoor: string = "Door";
|
6
|
+
const deviceHomematicRollladen: string = "Rollladen";
|
7
|
+
const deviceHomematicWandschalter: string = "Wandschalter";
|
8
|
+
const deviceHomematicFussbodenheizung: string = "Fussbodenheizung";
|
9
|
+
const deviceHomematicWandtaster: string = "Wandtaster";
|
10
|
+
const deviceHomematicAccessPoint: string = "AccessPoint";
|
11
|
+
const deviceHomematicTemperatursensor: string = "Temperatursensor";
|
12
|
+
const deviceHomematicRauchmelder: string = "Rauchmelder";
|
13
|
+
const deviceHomematicFunkSchaltaktor: string = "FunkSchaltaktor";
|
14
|
+
const deviceHomematicWindow: string = "Window";
|
15
|
+
const deviceHomematicSteckdose: string = "Steckdose";
|
16
|
+
const deviceHomematicHeizkoerper: string = "Heizkoerper";
|
17
|
+
const deviceHomematicDimmer: string = "Dimmer";
|
18
18
|
|
19
19
|
export abstract class AbstractHomematic {
|
20
20
|
protected baseState: string;
|
@@ -106,7 +106,7 @@ export class HomematicWandthermostat extends AbstractHomematic {
|
|
106
106
|
}
|
107
107
|
|
108
108
|
public getCategory(): string {
|
109
|
-
return
|
109
|
+
return deviceHomematicWandthermostat;
|
110
110
|
}
|
111
111
|
|
112
112
|
public isStatusBattery(): boolean {
|
@@ -120,7 +120,7 @@ export class HomematicPraesenzmelder extends AbstractHomematic {
|
|
120
120
|
}
|
121
121
|
|
122
122
|
public getCategory(): string {
|
123
|
-
return
|
123
|
+
return deviceHomematicPraesenzmelder;
|
124
124
|
}
|
125
125
|
|
126
126
|
public getIllumination(): string {
|
@@ -141,7 +141,7 @@ export class HomematicWetterstation extends AbstractHomematic {
|
|
141
141
|
}
|
142
142
|
|
143
143
|
public getCategory(): string {
|
144
|
-
return
|
144
|
+
return deviceHomematicWetterstation;
|
145
145
|
}
|
146
146
|
|
147
147
|
public isStatusBattery(): boolean {
|
@@ -155,7 +155,7 @@ export class HomematicWindow extends AbstractHomematic {
|
|
155
155
|
}
|
156
156
|
|
157
157
|
public getCategory(): string {
|
158
|
-
return
|
158
|
+
return deviceHomematicWindow;
|
159
159
|
}
|
160
160
|
|
161
161
|
public isStatusBattery(): boolean {
|
@@ -169,7 +169,7 @@ export class HomematicSteckdose extends AbstractHomematic {
|
|
169
169
|
}
|
170
170
|
|
171
171
|
public getCategory(): string {
|
172
|
-
return
|
172
|
+
return deviceHomematicSteckdose;
|
173
173
|
}
|
174
174
|
}
|
175
175
|
|
@@ -179,7 +179,7 @@ export class HomematicHeizkoerper extends AbstractHomematic {
|
|
179
179
|
}
|
180
180
|
|
181
181
|
public getCategory(): string {
|
182
|
-
return
|
182
|
+
return deviceHomematicHeizkoerper;
|
183
183
|
}
|
184
184
|
|
185
185
|
public isStatusBattery(): boolean {
|
@@ -193,7 +193,7 @@ export class HomematicDimmer extends AbstractHomematic {
|
|
193
193
|
}
|
194
194
|
|
195
195
|
public getCategory(): string {
|
196
|
-
return
|
196
|
+
return deviceHomematicDimmer;
|
197
197
|
}
|
198
198
|
}
|
199
199
|
|
@@ -203,7 +203,7 @@ export class HomematicFunkschaltaktor extends AbstractHomematic {
|
|
203
203
|
}
|
204
204
|
|
205
205
|
public getCategory(): string {
|
206
|
-
return
|
206
|
+
return deviceHomematicFunkSchaltaktor;
|
207
207
|
}
|
208
208
|
}
|
209
209
|
|
@@ -213,7 +213,7 @@ export class HomematicRauchmelder extends AbstractHomematic {
|
|
213
213
|
}
|
214
214
|
|
215
215
|
public getCategory(): string {
|
216
|
-
return
|
216
|
+
return deviceHomematicRauchmelder;
|
217
217
|
}
|
218
218
|
|
219
219
|
public isStatusBattery(): boolean {
|
@@ -236,7 +236,7 @@ export class HomematicTemperatursensor extends AbstractHomematic {
|
|
236
236
|
}
|
237
237
|
|
238
238
|
public getCategory(): string {
|
239
|
-
return
|
239
|
+
return deviceHomematicTemperatursensor;
|
240
240
|
}
|
241
241
|
|
242
242
|
public isStatusBattery(): boolean {
|
@@ -250,7 +250,7 @@ export class HomematicWandtaster extends AbstractHomematic {
|
|
250
250
|
}
|
251
251
|
|
252
252
|
public getCategory(): string {
|
253
|
-
return
|
253
|
+
return deviceHomematicWandtaster;
|
254
254
|
}
|
255
255
|
|
256
256
|
}
|
@@ -273,7 +273,7 @@ export class HomematicAccessPoint extends AbstractHomematic {
|
|
273
273
|
}
|
274
274
|
|
275
275
|
public getCategory(): string {
|
276
|
-
return
|
276
|
+
return deviceHomematicAccessPoint;
|
277
277
|
}
|
278
278
|
|
279
279
|
}
|
@@ -291,7 +291,7 @@ export class HomematicRollladen extends AbstractHomematic {
|
|
291
291
|
}
|
292
292
|
|
293
293
|
public getCategory(): string {
|
294
|
-
return
|
294
|
+
return deviceHomematicRollladen;
|
295
295
|
}
|
296
296
|
|
297
297
|
public auf() {
|
@@ -326,7 +326,7 @@ export class HomematicDoor extends AbstractHomematic {
|
|
326
326
|
}
|
327
327
|
|
328
328
|
public getCategory(): string {
|
329
|
-
return
|
329
|
+
return deviceHomematicDoor;
|
330
330
|
}
|
331
331
|
|
332
332
|
public isStatusBattery(): boolean {
|
@@ -347,7 +347,7 @@ export class HomematicFussbodenheizung extends AbstractHomematic {
|
|
347
347
|
}
|
348
348
|
|
349
349
|
public getCategory(): string {
|
350
|
-
return
|
350
|
+
return deviceHomematicFussbodenheizung;
|
351
351
|
}
|
352
352
|
|
353
353
|
}
|
@@ -358,7 +358,7 @@ export class HomematicWandschalter extends AbstractHomematic {
|
|
358
358
|
}
|
359
359
|
|
360
360
|
public getCategory(): string {
|
361
|
-
return
|
361
|
+
return deviceHomematicWandschalter;
|
362
362
|
}
|
363
363
|
|
364
364
|
public isStatusBattery(): boolean {
|
@@ -383,4 +383,9 @@ export class HomematicWandschalter extends AbstractHomematic {
|
|
383
383
|
}
|
384
384
|
}
|
385
385
|
|
386
|
-
|
386
|
+
|
387
|
+
|
388
|
+
module.exports = {
|
389
|
+
HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor,
|
390
|
+
deviceHomematicWandthermostat, deviceHomematicPraesenzmelder, deviceHomematicWetterstation, deviceHomematicDoor, deviceHomematicRollladen, deviceHomematicWandschalter, deviceHomematicFussbodenheizung, deviceHomematicWandtaster, deviceHomematicAccessPoint, deviceHomematicTemperatursensor, deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor, deviceHomematicWindow, deviceHomematicSteckdose, deviceHomematicHeizkoerper, deviceHomematicDimmer
|
391
|
+
};
|
@@ -0,0 +1,233 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getHomematicDevicesAll = exports.getHomematicDevices = exports.createDatenpunktDevice = void 0;
|
4
|
+
var _a = require('./homematic.js'), HomematicWindow = _a.HomematicWindow, HomematicSteckdose = _a.HomematicSteckdose, HomematicHeizkoerper = _a.HomematicHeizkoerper, HomematicDimmer = _a.HomematicDimmer, HomematicWandthermostat = _a.HomematicWandthermostat, HomematicFussbodenheizung = _a.HomematicFussbodenheizung, HomematicWandschalter = _a.HomematicWandschalter, HomematicDoor = _a.HomematicDoor, HomematicWetterstation = _a.HomematicWetterstation, HomematicAccessPoint = _a.HomematicAccessPoint, HomematicRollladen = _a.HomematicRollladen, HomematicWandtaster = _a.HomematicWandtaster, HomematicTemperatursensor = _a.HomematicTemperatursensor, HomematicRauchmelder = _a.HomematicRauchmelder, HomematicPraesenzmelder = _a.HomematicPraesenzmelder, AbstractHomematic = _a.AbstractHomematic, HomematicFunkschaltaktor = _a.HomematicFunkschaltaktor;
|
5
|
+
var attributeRawID = "rawId";
|
6
|
+
var attributeBaseState = "baseState";
|
7
|
+
var attributeEtage = "etage";
|
8
|
+
var attributeRaum = "raum";
|
9
|
+
var attributeDevice = "device";
|
10
|
+
var attributeCategory = "type";
|
11
|
+
var attributeTypeNumber = "number";
|
12
|
+
var attributeTypeString = "string";
|
13
|
+
function createDatenpunktDevice(adapter, rawId, baseState, etage, raum, device, category) {
|
14
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeRawID, rawId);
|
15
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeCategory, category);
|
16
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeBaseState, baseState);
|
17
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeEtage, etage);
|
18
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeRaum, raum);
|
19
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDevice, device);
|
20
|
+
}
|
21
|
+
exports.createDatenpunktDevice = createDatenpunktDevice;
|
22
|
+
function createDatenpunktSingle(adapter, deviceRawId, attributeType, attributeName, attributeValue) {
|
23
|
+
var stateDatenpunkt = "0_userdata.0.devices.homematic." + deviceRawId + "." + attributeName;
|
24
|
+
adapter.createState(stateDatenpunkt, null, {
|
25
|
+
name: stateDatenpunkt,
|
26
|
+
desc: stateDatenpunkt,
|
27
|
+
type: attributeType,
|
28
|
+
read: true,
|
29
|
+
write: true
|
30
|
+
});
|
31
|
+
adapter.setState(stateDatenpunkt, attributeValue);
|
32
|
+
}
|
33
|
+
function getHomematicDevices(adapter, filterCategory) {
|
34
|
+
var _this = this;
|
35
|
+
var homematicArray = [{}];
|
36
|
+
adapter.$('state[id=0_userdata.0.devices.homematic.*.type]').each(function (datenpunktKey) {
|
37
|
+
var datenpunktPraefix = datenpunktKey.replaceAll(".type", "");
|
38
|
+
if (adapter.getState(datenpunktKey).val == filterCategory) {
|
39
|
+
if (filterCategory == deviceHomematicWandthermostat) {
|
40
|
+
homematicArray.push(new HomematicWandthermostat(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
41
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
42
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
43
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
44
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
45
|
+
));
|
46
|
+
}
|
47
|
+
else if (filterCategory == deviceHomematicPraesenzmelder) {
|
48
|
+
homematicArray.push(new HomematicPraesenzmelder(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
49
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
50
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
51
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
52
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
53
|
+
));
|
54
|
+
}
|
55
|
+
else if (filterCategory == deviceHomematicWetterstation) {
|
56
|
+
homematicArray.push(new HomematicWetterstation(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
57
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
58
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
59
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
60
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
61
|
+
));
|
62
|
+
}
|
63
|
+
else if (filterCategory == deviceHomematicDoor) {
|
64
|
+
homematicArray.push(new HomematicDoor(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
65
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
66
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
67
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
68
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
69
|
+
));
|
70
|
+
}
|
71
|
+
else if (filterCategory == deviceHomematicRollladen) {
|
72
|
+
homematicArray.push(new HomematicRollladen(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
73
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
74
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
75
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
76
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
77
|
+
));
|
78
|
+
}
|
79
|
+
else if (filterCategory == deviceHomematicWandschalter) {
|
80
|
+
homematicArray.push(new HomematicWandschalter(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
81
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
82
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
83
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
84
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
85
|
+
));
|
86
|
+
}
|
87
|
+
else if (filterCategory == deviceHomematicFussbodenheizung) {
|
88
|
+
homematicArray.push(new HomematicFussbodenheizung(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
89
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
90
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
91
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
92
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
93
|
+
));
|
94
|
+
}
|
95
|
+
else if (filterCategory == deviceHomematicWandtaster) {
|
96
|
+
homematicArray.push(new HomematicWandtaster(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
97
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
98
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
99
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
100
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
101
|
+
));
|
102
|
+
}
|
103
|
+
else if (filterCategory == deviceHomematicAccessPoint) {
|
104
|
+
homematicArray.push(new HomematicAccessPoint(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
105
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
106
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
107
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
108
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
109
|
+
));
|
110
|
+
}
|
111
|
+
else if (filterCategory == deviceHomematicTemperatursensor) {
|
112
|
+
homematicArray.push(new HomematicTemperatursensor(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
113
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
114
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
115
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
116
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
117
|
+
));
|
118
|
+
}
|
119
|
+
else if (filterCategory == deviceHomematicRauchmelder) {
|
120
|
+
homematicArray.push(new HomematicRauchmelder(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
121
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
122
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
123
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
124
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
125
|
+
));
|
126
|
+
}
|
127
|
+
else if (filterCategory == deviceHomematicFunkSchaltaktor) {
|
128
|
+
homematicArray.push(new HomematicFunkschaltaktor(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
129
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
130
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
131
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
132
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
133
|
+
));
|
134
|
+
}
|
135
|
+
else if (filterCategory == deviceHomematicWindow) {
|
136
|
+
homematicArray.push(new HomematicWindow(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
137
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
138
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
139
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
140
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
141
|
+
));
|
142
|
+
}
|
143
|
+
else if (filterCategory == deviceHomematicSteckdose) {
|
144
|
+
homematicArray.push(new HomematicSteckdose(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
145
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
146
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
147
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
148
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
149
|
+
));
|
150
|
+
}
|
151
|
+
else if (filterCategory == deviceHomematicHeizkoerper) {
|
152
|
+
homematicArray.push(new HomematicHeizkoerper(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
153
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
154
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
155
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
156
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
157
|
+
));
|
158
|
+
}
|
159
|
+
else if (filterCategory == deviceHomematicDimmer) {
|
160
|
+
homematicArray.push(new HomematicDimmer(_this, adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
161
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
162
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
163
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
164
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
165
|
+
));
|
166
|
+
}
|
167
|
+
}
|
168
|
+
});
|
169
|
+
return homematicArray;
|
170
|
+
}
|
171
|
+
exports.getHomematicDevices = getHomematicDevices;
|
172
|
+
function getHomematicDevicesAll(adapter) {
|
173
|
+
var homematicArray = [{}];
|
174
|
+
adapter.getHomematicDevices(deviceHomematicWandthermostat).forEach(function (homematic) {
|
175
|
+
homematicArray.push(homematic);
|
176
|
+
});
|
177
|
+
adapter.getHomematicDevices(deviceHomematicPraesenzmelder).forEach(function (homematic) {
|
178
|
+
homematicArray.push(homematic);
|
179
|
+
});
|
180
|
+
adapter.getHomematicDevices(deviceHomematicWetterstation).forEach(function (homematic) {
|
181
|
+
homematicArray.push(homematic);
|
182
|
+
});
|
183
|
+
adapter.getHomematicDevices(deviceHomematicDoor).forEach(function (homematic) {
|
184
|
+
homematicArray.push(homematic);
|
185
|
+
});
|
186
|
+
adapter.getHomematicDevices(deviceHomematicRollladen).forEach(function (homematic) {
|
187
|
+
homematicArray.push(homematic);
|
188
|
+
});
|
189
|
+
adapter.getHomematicDevices(deviceHomematicWandschalter).forEach(function (homematic) {
|
190
|
+
homematicArray.push(homematic);
|
191
|
+
});
|
192
|
+
adapter.getHomematicDevices(deviceHomematicFussbodenheizung).forEach(function (homematic) {
|
193
|
+
homematicArray.push(homematic);
|
194
|
+
});
|
195
|
+
adapter.getHomematicDevices(deviceHomematicWandtaster).forEach(function (homematic) {
|
196
|
+
homematicArray.push(homematic);
|
197
|
+
});
|
198
|
+
adapter.getHomematicDevices(deviceHomematicAccessPoint).forEach(function (homematic) {
|
199
|
+
homematicArray.push(homematic);
|
200
|
+
});
|
201
|
+
adapter.getHomematicDevices(deviceHomematicTemperatursensor).forEach(function (homematic) {
|
202
|
+
homematicArray.push(homematic);
|
203
|
+
});
|
204
|
+
adapter.getHomematicDevices(deviceHomematicRauchmelder).forEach(function (homematic) {
|
205
|
+
homematicArray.push(homematic);
|
206
|
+
});
|
207
|
+
adapter.getHomematicDevices(deviceHomematicFunkSchaltaktor).forEach(function (homematic) {
|
208
|
+
homematicArray.push(homematic);
|
209
|
+
});
|
210
|
+
adapter.getHomematicDevices(deviceHomematicWindow).forEach(function (homematic) {
|
211
|
+
homematicArray.push(homematic);
|
212
|
+
});
|
213
|
+
adapter.getHomematicDevices(deviceHomematicSteckdose).forEach(function (homematic) {
|
214
|
+
homematicArray.push(homematic);
|
215
|
+
});
|
216
|
+
adapter.getHomematicDevices(deviceHomematicHeizkoerper).forEach(function (homematic) {
|
217
|
+
homematicArray.push(homematic);
|
218
|
+
});
|
219
|
+
adapter.getHomematicDevices(deviceHomematicDimmer).forEach(function (homematic) {
|
220
|
+
homematicArray.push(homematic);
|
221
|
+
});
|
222
|
+
return homematicArray;
|
223
|
+
}
|
224
|
+
exports.getHomematicDevicesAll = getHomematicDevicesAll;
|
225
|
+
/*export function getHomematicDevicesUwe(adapter: any, filterCategory:string) {
|
226
|
+
adapter.log("INSIDE: ");
|
227
|
+
var homematicArray = [];
|
228
|
+
adapter.$('state[id=0_userdata.0.devices.homematic.*.type]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
|
229
|
+
adapter.log("Here i am: " + datenpunktKey);
|
230
|
+
});
|
231
|
+
return homematicArray;
|
232
|
+
}*/
|
233
|
+
module.exports = { createDatenpunktDevice: createDatenpunktDevice, getHomematicDevices: getHomematicDevices, getHomematicDevicesAll: getHomematicDevicesAll };
|
@@ -0,0 +1,237 @@
|
|
1
|
+
const { HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor } = require('./homematic.js');
|
2
|
+
|
3
|
+
const attributeRawID = "rawId";
|
4
|
+
const attributeBaseState = "baseState";
|
5
|
+
const attributeEtage = "etage";
|
6
|
+
const attributeRaum = "raum";
|
7
|
+
const attributeDevice = "device";
|
8
|
+
const attributeCategory = "type";
|
9
|
+
|
10
|
+
const attributeTypeNumber = "number";
|
11
|
+
const attributeTypeString = "string";
|
12
|
+
|
13
|
+
export function createDatenpunktDevice(adapter:any, rawId, baseState, etage, raum, device, category) {
|
14
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeNumber, attributeRawID, rawId);
|
15
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeCategory, category);
|
16
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeBaseState, baseState);
|
17
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeEtage, etage);
|
18
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeRaum, raum);
|
19
|
+
createDatenpunktSingle(adapter, rawId, attributeTypeString, attributeDevice, device);
|
20
|
+
}
|
21
|
+
|
22
|
+
function createDatenpunktSingle(adapter:any, deviceRawId, attributeType, attributeName, attributeValue) {
|
23
|
+
var stateDatenpunkt = "0_userdata.0.devices.homematic." + deviceRawId + "." + attributeName;
|
24
|
+
adapter.createState(stateDatenpunkt, null, {
|
25
|
+
name: stateDatenpunkt,
|
26
|
+
desc: stateDatenpunkt,
|
27
|
+
type: attributeType,
|
28
|
+
read: true,
|
29
|
+
write: true
|
30
|
+
});
|
31
|
+
adapter.setState(stateDatenpunkt, attributeValue);
|
32
|
+
}
|
33
|
+
|
34
|
+
export function getHomematicDevices(adapter:any, filterCategory:string) {
|
35
|
+
var homematicArray = [{}];
|
36
|
+
adapter.$('state[id=0_userdata.0.devices.homematic.*.type]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
|
37
|
+
var datenpunktPraefix = datenpunktKey.replaceAll(".type", "");
|
38
|
+
if (adapter.getState(datenpunktKey).val == filterCategory) {
|
39
|
+
if (filterCategory == deviceHomematicWandthermostat) {
|
40
|
+
homematicArray.push(new HomematicWandthermostat(this,
|
41
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
42
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
43
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
44
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
45
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
46
|
+
));
|
47
|
+
} else if (filterCategory == deviceHomematicPraesenzmelder) {
|
48
|
+
homematicArray.push(new HomematicPraesenzmelder(this,
|
49
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
50
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
51
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
52
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
53
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
54
|
+
));
|
55
|
+
} else if (filterCategory == deviceHomematicWetterstation) {
|
56
|
+
homematicArray.push(new HomematicWetterstation(this,
|
57
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
58
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
59
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
60
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
61
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
62
|
+
));
|
63
|
+
} else if (filterCategory == deviceHomematicDoor) {
|
64
|
+
homematicArray.push(new HomematicDoor(this,
|
65
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
66
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
67
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
68
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
69
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
70
|
+
));
|
71
|
+
} else if (filterCategory == deviceHomematicRollladen) {
|
72
|
+
homematicArray.push(new HomematicRollladen(this,
|
73
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
74
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
75
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
76
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
77
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
78
|
+
));
|
79
|
+
} else if (filterCategory == deviceHomematicWandschalter) {
|
80
|
+
homematicArray.push(new HomematicWandschalter(this,
|
81
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
82
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
83
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
84
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
85
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
86
|
+
));
|
87
|
+
} else if (filterCategory == deviceHomematicFussbodenheizung) {
|
88
|
+
homematicArray.push(new HomematicFussbodenheizung(this,
|
89
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
90
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
91
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
92
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
93
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
94
|
+
));
|
95
|
+
} else if (filterCategory == deviceHomematicWandtaster) {
|
96
|
+
homematicArray.push(new HomematicWandtaster(this,
|
97
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
98
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
99
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
100
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
101
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
102
|
+
));
|
103
|
+
} else if (filterCategory == deviceHomematicAccessPoint) {
|
104
|
+
homematicArray.push(new HomematicAccessPoint(this,
|
105
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
106
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
107
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
108
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
109
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
110
|
+
));
|
111
|
+
} else if (filterCategory == deviceHomematicTemperatursensor) {
|
112
|
+
homematicArray.push(new HomematicTemperatursensor(this,
|
113
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
114
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
115
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
116
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
117
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
118
|
+
));
|
119
|
+
} else if (filterCategory == deviceHomematicRauchmelder) {
|
120
|
+
homematicArray.push(new HomematicRauchmelder(this,
|
121
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
122
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
123
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
124
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
125
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
126
|
+
));
|
127
|
+
} else if (filterCategory == deviceHomematicFunkSchaltaktor) {
|
128
|
+
homematicArray.push(new HomematicFunkschaltaktor(this,
|
129
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
130
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
131
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
132
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
133
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
134
|
+
));
|
135
|
+
} else if (filterCategory == deviceHomematicWindow) {
|
136
|
+
homematicArray.push(new HomematicWindow(this,
|
137
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
138
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
139
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
140
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
141
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
142
|
+
));
|
143
|
+
} else if (filterCategory == deviceHomematicSteckdose) {
|
144
|
+
homematicArray.push(new HomematicSteckdose(this,
|
145
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
146
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
147
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
148
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
149
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
150
|
+
));
|
151
|
+
} else if (filterCategory == deviceHomematicHeizkoerper) {
|
152
|
+
homematicArray.push(new HomematicHeizkoerper(this,
|
153
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
154
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
155
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
156
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
157
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
158
|
+
));
|
159
|
+
} else if (filterCategory == deviceHomematicDimmer) {
|
160
|
+
homematicArray.push(new HomematicDimmer(this,
|
161
|
+
adapter.getState(datenpunktPraefix + "." + attributeRawID).val, // [0] Device-ID (z.B. 1 --> In der Anzeige wird daraus "H01")
|
162
|
+
adapter.getState(datenpunktPraefix + "." + attributeBaseState).val, // [1] Datenpunkt Device (z.B. hm-rpc.1.001B9D898F9CBC)
|
163
|
+
adapter.getState(datenpunktPraefix + "." + attributeEtage).val, // [2] Etage/Bereich (z.B. EG)
|
164
|
+
adapter.getState(datenpunktPraefix + "." + attributeRaum).val, // [3] Raum/Unterbereich (z.B. Wohnzimmer)
|
165
|
+
adapter.getState(datenpunktPraefix + "." + attributeDevice).val // [4] Device (z.B. Stehlampe)
|
166
|
+
));
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
170
|
+
});
|
171
|
+
return homematicArray;
|
172
|
+
}
|
173
|
+
|
174
|
+
export function getHomematicDevicesAll(adapter:any) {
|
175
|
+
var homematicArray = [{}];
|
176
|
+
|
177
|
+
adapter.getHomematicDevices(deviceHomematicWandthermostat).forEach(homematic => {
|
178
|
+
homematicArray.push(homematic);
|
179
|
+
});
|
180
|
+
adapter.getHomematicDevices(deviceHomematicPraesenzmelder).forEach(homematic => {
|
181
|
+
homematicArray.push(homematic);
|
182
|
+
});
|
183
|
+
adapter.getHomematicDevices(deviceHomematicWetterstation).forEach(homematic => {
|
184
|
+
homematicArray.push(homematic);
|
185
|
+
});
|
186
|
+
adapter.getHomematicDevices(deviceHomematicDoor).forEach(homematic => {
|
187
|
+
homematicArray.push(homematic);
|
188
|
+
});
|
189
|
+
adapter.getHomematicDevices(deviceHomematicRollladen).forEach(homematic => {
|
190
|
+
homematicArray.push(homematic);
|
191
|
+
});
|
192
|
+
adapter.getHomematicDevices(deviceHomematicWandschalter).forEach(homematic => {
|
193
|
+
homematicArray.push(homematic);
|
194
|
+
});
|
195
|
+
adapter.getHomematicDevices(deviceHomematicFussbodenheizung).forEach(homematic => {
|
196
|
+
homematicArray.push(homematic);
|
197
|
+
});
|
198
|
+
adapter.getHomematicDevices(deviceHomematicWandtaster).forEach(homematic => {
|
199
|
+
homematicArray.push(homematic);
|
200
|
+
});
|
201
|
+
adapter.getHomematicDevices(deviceHomematicAccessPoint).forEach(homematic => {
|
202
|
+
homematicArray.push(homematic);
|
203
|
+
});
|
204
|
+
adapter.getHomematicDevices(deviceHomematicTemperatursensor).forEach(homematic => {
|
205
|
+
homematicArray.push(homematic);
|
206
|
+
});
|
207
|
+
adapter.getHomematicDevices(deviceHomematicRauchmelder).forEach(homematic => {
|
208
|
+
homematicArray.push(homematic);
|
209
|
+
});
|
210
|
+
adapter.getHomematicDevices(deviceHomematicFunkSchaltaktor).forEach(homematic => {
|
211
|
+
homematicArray.push(homematic);
|
212
|
+
});
|
213
|
+
adapter.getHomematicDevices(deviceHomematicWindow).forEach(homematic => {
|
214
|
+
homematicArray.push(homematic);
|
215
|
+
});
|
216
|
+
adapter.getHomematicDevices(deviceHomematicSteckdose).forEach(homematic => {
|
217
|
+
homematicArray.push(homematic);
|
218
|
+
});
|
219
|
+
adapter.getHomematicDevices(deviceHomematicHeizkoerper).forEach(homematic => {
|
220
|
+
homematicArray.push(homematic);
|
221
|
+
});
|
222
|
+
adapter.getHomematicDevices(deviceHomematicDimmer).forEach(homematic => {
|
223
|
+
homematicArray.push(homematic);
|
224
|
+
});
|
225
|
+
return homematicArray;
|
226
|
+
}
|
227
|
+
|
228
|
+
/*export function getHomematicDevicesUwe(adapter: any, filterCategory:string) {
|
229
|
+
adapter.log("INSIDE: ");
|
230
|
+
var homematicArray = [];
|
231
|
+
adapter.$('state[id=0_userdata.0.devices.homematic.*.type]').each(datenpunktKey => { // 0_userdata.0.devices.homematic.30.type
|
232
|
+
adapter.log("Here i am: " + datenpunktKey);
|
233
|
+
});
|
234
|
+
return homematicArray;
|
235
|
+
}*/
|
236
|
+
|
237
|
+
module.exports = { createDatenpunktDevice, getHomematicDevices, getHomematicDevicesAll };
|
package/main.js
CHANGED
@@ -1,32 +1,20 @@
|
|
1
|
-
// https://stackoverflow.com/questions/8595509/how-do-you-share-constants-in-nodejs-modules
|
2
|
-
var deviceHomematicWandthermostat = "Wandthermostat";
|
3
|
-
var deviceHomematicPraesenzmelder = "Praesenzmelder";
|
4
|
-
var deviceHomematicWetterstation = "Wetterstation";
|
5
|
-
var deviceHomematicDoor = "Door";
|
6
|
-
var deviceHomematicRollladen = "Rollladen";
|
7
|
-
var deviceHomematicWandschalter = "Wandschalter";
|
8
|
-
var deviceHomematicFussbodenheizung = "Fussbodenheizung";
|
9
|
-
var deviceHomematicWandtaster = "Wandtaster";
|
10
|
-
var deviceHomematicAccessPoint = "AccessPoint";
|
11
|
-
var deviceHomematicTemperatursensor = "Temperatursensor";
|
12
|
-
var deviceHomematicRauchmelder = "Rauchmelder";
|
13
|
-
var deviceHomematicFunkSchaltaktor = "FunkSchaltaktor";
|
14
|
-
var deviceHomematicWindow = "Window";
|
15
|
-
var deviceHomematicSteckdose = "Steckdose";
|
16
|
-
var deviceHomematicHeizkoerper = "Heizkoerper";
|
17
|
-
var deviceHomematicDimmer = "Dimmer";
|
18
1
|
var DateHelper = require('./date.js').DateHelper;
|
19
2
|
var DateCalendarTest = require('./test.js').DateCalendarTest;
|
20
3
|
var _a = require('./html.js'), AbstractColumn = _a.AbstractColumn, HtmlTable = _a.HtmlTable, HtmlCreator = _a.HtmlCreator, StaticIconColumn = _a.StaticIconColumn, AbstractStandardTextColumn = _a.AbstractStandardTextColumn;
|
21
|
-
var _b = require('./
|
4
|
+
var _b = require('./homematicClasses.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, deviceHomematicWandthermostat = _b.deviceHomematicWandthermostat, deviceHomematicPraesenzmelder = _b.deviceHomematicPraesenzmelder, deviceHomematicWetterstation = _b.deviceHomematicWetterstation, deviceHomematicDoor = _b.deviceHomematicDoor, deviceHomematicRollladen = _b.deviceHomematicRollladen, deviceHomematicWandschalter = _b.deviceHomematicWandschalter, deviceHomematicFussbodenheizung = _b.deviceHomematicFussbodenheizung, deviceHomematicWandtaster = _b.deviceHomematicWandtaster, deviceHomematicAccessPoint = _b.deviceHomematicAccessPoint, deviceHomematicTemperatursensor = _b.deviceHomematicTemperatursensor, deviceHomematicRauchmelder = _b.deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor = _b.deviceHomematicFunkSchaltaktor, deviceHomematicWindow = _b.deviceHomematicWindow, deviceHomematicSteckdose = _b.deviceHomematicSteckdose, deviceHomematicHeizkoerper = _b.deviceHomematicHeizkoerper, deviceHomematicDimmer = _b.deviceHomematicDimmer;
|
5
|
+
var _c = require('./homematicFunctions.js'), createDatenpunktDevice = _c.createDatenpunktDevice, getHomematicDevices = _c.getHomematicDevices, getHomematicDevicesAll = _c.getHomematicDevicesAll;
|
22
6
|
module.exports = {
|
7
|
+
// date.ts:
|
23
8
|
DateHelper: DateHelper,
|
9
|
+
// test.ts:
|
24
10
|
DateCalendarTest: DateCalendarTest,
|
11
|
+
// html.ts:
|
25
12
|
AbstractColumn: AbstractColumn,
|
26
13
|
HtmlTable: HtmlTable,
|
27
14
|
HtmlCreator: HtmlCreator,
|
28
15
|
StaticIconColumn: StaticIconColumn,
|
29
16
|
AbstractStandardTextColumn: AbstractStandardTextColumn,
|
17
|
+
// homematicClasses.ts
|
30
18
|
HomematicWindow: HomematicWindow,
|
31
19
|
HomematicSteckdose: HomematicSteckdose,
|
32
20
|
HomematicHeizkoerper: HomematicHeizkoerper,
|
@@ -59,5 +47,9 @@ module.exports = {
|
|
59
47
|
deviceHomematicWindow: deviceHomematicWindow,
|
60
48
|
deviceHomematicSteckdose: deviceHomematicSteckdose,
|
61
49
|
deviceHomematicHeizkoerper: deviceHomematicHeizkoerper,
|
62
|
-
deviceHomematicDimmer: deviceHomematicDimmer
|
50
|
+
deviceHomematicDimmer: deviceHomematicDimmer,
|
51
|
+
// homematicFunctions.ts
|
52
|
+
createDatenpunktDevice: createDatenpunktDevice,
|
53
|
+
getHomematicDevices: getHomematicDevices,
|
54
|
+
getHomematicDevicesAll: getHomematicDevicesAll
|
63
55
|
};
|
package/main.ts
CHANGED
@@ -1,31 +1,25 @@
|
|
1
|
-
// https://stackoverflow.com/questions/8595509/how-do-you-share-constants-in-nodejs-modules
|
2
|
-
|
3
|
-
const deviceHomematicWandthermostat: string = "Wandthermostat";
|
4
|
-
const deviceHomematicPraesenzmelder: string = "Praesenzmelder";
|
5
|
-
const deviceHomematicWetterstation: string = "Wetterstation";
|
6
|
-
const deviceHomematicDoor: string = "Door";
|
7
|
-
const deviceHomematicRollladen: string = "Rollladen";
|
8
|
-
const deviceHomematicWandschalter: string = "Wandschalter";
|
9
|
-
const deviceHomematicFussbodenheizung: string = "Fussbodenheizung";
|
10
|
-
const deviceHomematicWandtaster: string = "Wandtaster";
|
11
|
-
const deviceHomematicAccessPoint: string = "AccessPoint";
|
12
|
-
const deviceHomematicTemperatursensor: string = "Temperatursensor";
|
13
|
-
const deviceHomematicRauchmelder: string = "Rauchmelder";
|
14
|
-
const deviceHomematicFunkSchaltaktor: string = "FunkSchaltaktor";
|
15
|
-
const deviceHomematicWindow: string = "Window";
|
16
|
-
const deviceHomematicSteckdose: string = "Steckdose";
|
17
|
-
const deviceHomematicHeizkoerper: string = "Heizkoerper";
|
18
|
-
const deviceHomematicDimmer: string = "Dimmer";
|
19
1
|
|
20
2
|
const { DateHelper } = require('./date.js');
|
21
3
|
const { DateCalendarTest } = require('./test.js');
|
22
4
|
const { AbstractColumn, HtmlTable, HtmlCreator, StaticIconColumn, AbstractStandardTextColumn } = require('./html.js');
|
23
|
-
const { HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor } = require('./
|
5
|
+
const { HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor, deviceHomematicWandthermostat, deviceHomematicPraesenzmelder, deviceHomematicWetterstation, deviceHomematicDoor, deviceHomematicRollladen, deviceHomematicWandschalter, deviceHomematicFussbodenheizung, deviceHomematicWandtaster, deviceHomematicAccessPoint, deviceHomematicTemperatursensor, deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor, deviceHomematicWindow, deviceHomematicSteckdose, deviceHomematicHeizkoerper, deviceHomematicDimmer} = require('./homematicClasses.js');
|
6
|
+
const { createDatenpunktDevice, getHomematicDevices, getHomematicDevicesAll } = require('./homematicFunctions.js');
|
24
7
|
|
25
8
|
module.exports = {
|
9
|
+
|
10
|
+
// date.ts:
|
26
11
|
DateHelper,
|
12
|
+
|
13
|
+
// test.ts:
|
27
14
|
DateCalendarTest,
|
15
|
+
|
16
|
+
// html.ts:
|
28
17
|
AbstractColumn, HtmlTable, HtmlCreator, StaticIconColumn, AbstractStandardTextColumn,
|
18
|
+
|
19
|
+
// homematicClasses.ts
|
29
20
|
HomematicWindow, HomematicSteckdose, HomematicHeizkoerper, HomematicDimmer, HomematicWandthermostat, HomematicFussbodenheizung, HomematicWandschalter, HomematicDoor, HomematicWetterstation, HomematicAccessPoint, HomematicRollladen, HomematicWandtaster, HomematicTemperatursensor, HomematicRauchmelder, HomematicPraesenzmelder, AbstractHomematic, HomematicFunkschaltaktor,
|
30
|
-
deviceHomematicWandthermostat, deviceHomematicPraesenzmelder, deviceHomematicWetterstation, deviceHomematicDoor, deviceHomematicRollladen, deviceHomematicWandschalter, deviceHomematicFussbodenheizung, deviceHomematicWandtaster, deviceHomematicAccessPoint, deviceHomematicTemperatursensor, deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor, deviceHomematicWindow, deviceHomematicSteckdose, deviceHomematicHeizkoerper, deviceHomematicDimmer
|
21
|
+
deviceHomematicWandthermostat, deviceHomematicPraesenzmelder, deviceHomematicWetterstation, deviceHomematicDoor, deviceHomematicRollladen, deviceHomematicWandschalter, deviceHomematicFussbodenheizung, deviceHomematicWandtaster, deviceHomematicAccessPoint, deviceHomematicTemperatursensor, deviceHomematicRauchmelder, deviceHomematicFunkSchaltaktor, deviceHomematicWindow, deviceHomematicSteckdose, deviceHomematicHeizkoerper, deviceHomematicDimmer,
|
22
|
+
|
23
|
+
// homematicFunctions.ts
|
24
|
+
createDatenpunktDevice, getHomematicDevices, getHomematicDevicesAll
|
31
25
|
};
|