isy-nodejs 1.0.1-alpha.1 → 1.0.1-alpha.3
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/dist/cjs/ISY.js +113 -110
- package/dist/cjs/ISY.js.map +1 -1
- package/dist/cjs/ISYNode.js +22 -6
- package/dist/cjs/ISYNode.js.map +1 -1
- package/dist/cjs/types/ISY.d.ts +37 -37
- package/dist/cjs/types/ISY.d.ts.map +1 -1
- package/dist/cjs/types/ISYNode.d.ts.map +1 -1
- package/dist/esm/ISY.js +152 -149
- package/dist/esm/ISY.js.map +1 -1
- package/dist/esm/ISYNode.js +22 -6
- package/dist/esm/ISYNode.js.map +1 -1
- package/dist/esm/types/ISY.d.ts +37 -37
- package/dist/esm/types/ISY.d.ts.map +1 -1
- package/dist/esm/types/ISYNode.d.ts.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -5
- package/src/ISY.ts +790 -820
- package/src/ISYNode.ts +20 -7
- package/dist/esm/Devices/Brultech/index.js +0 -4
- package/dist/esm/Devices/Brultech/index.js.map +0 -1
- package/dist/esm/Devices/Constructor.js +0 -2
- package/dist/esm/Devices/Constructor.js.map +0 -1
- package/dist/esm/Devices/DeviceFactory.js +0 -13
- package/dist/esm/Devices/DeviceFactory.js.map +0 -1
- package/dist/esm/Devices/DeviceMap.js +0 -4
- package/dist/esm/Devices/DeviceMap.js.map +0 -1
- package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js +0 -181
- package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js.map +0 -1
- package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js +0 -107
- package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js.map +0 -1
- package/dist/esm/Devices/EndpointFor.js +0 -31
- package/dist/esm/Devices/EndpointFor.js.map +0 -1
- package/dist/esm/Devices/ISYDevice.js +0 -35
- package/dist/esm/Devices/ISYDevice.js.map +0 -1
- package/dist/esm/Devices/ISYDeviceNode.js +0 -62
- package/dist/esm/Devices/ISYDeviceNode.js.map +0 -1
- package/dist/esm/Devices/ISYMultiNodeDevice.js +0 -89
- package/dist/esm/Devices/ISYMultiNodeDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +0 -47
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js +0 -14
- package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDevice.js +0 -17
- package/dist/esm/Devices/Insteon/InsteonDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +0 -875
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js +0 -32
- package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js +0 -7
- package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js +0 -11
- package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js +0 -56
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js +0 -11
- package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonLockDevice.js +0 -32
- package/dist/esm/Devices/Insteon/InsteonLockDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js +0 -36
- package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +0 -19
- package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js +0 -46
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js +0 -8
- package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js +0 -11
- package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js +0 -30
- package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js.map +0 -1
- package/dist/esm/Devices/Insteon/index.js +0 -31
- package/dist/esm/Devices/Insteon/index.js.map +0 -1
- package/dist/esm/Devices/Lutron/index.js +0 -4
- package/dist/esm/Devices/Lutron/index.js.map +0 -1
- package/dist/esm/Devices/MapsTo.js +0 -2
- package/dist/esm/Devices/MapsTo.js.map +0 -1
- package/dist/esm/Devices/NCD/index.js +0 -4
- package/dist/esm/Devices/NCD/index.js.map +0 -1
- package/dist/esm/Devices/NodeFactory.js +0 -48
- package/dist/esm/Devices/NodeFactory.js.map +0 -1
- package/dist/esm/Devices/Poly/index.js +0 -4
- package/dist/esm/Devices/Poly/index.js.map +0 -1
- package/dist/esm/Devices/Scene/index.js +0 -4
- package/dist/esm/Devices/Scene/index.js.map +0 -1
- package/dist/esm/Devices/UDI/index.js +0 -4
- package/dist/esm/Devices/UDI/index.js.map +0 -1
- package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js +0 -38
- package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js.map +0 -1
- package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js +0 -8
- package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js.map +0 -1
- package/dist/esm/Devices/ZWave/ZWaveLockDevice.js +0 -35
- package/dist/esm/Devices/ZWave/ZWaveLockDevice.js.map +0 -1
- package/dist/esm/Devices/ZWave/index.js +0 -20
- package/dist/esm/Devices/ZWave/index.js.map +0 -1
- package/dist/esm/Devices/index.js +0 -9
- package/dist/esm/Devices/index.js.map +0 -1
package/src/ISYNode.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { UnitOfMeasure } from './Definitions/Global/UOM.js';
|
|
|
6
6
|
import { ISY, NodeType, type ISYScene } from './ISY.js';
|
|
7
7
|
|
|
8
8
|
import { CliConfigSetLevels } from 'winston/lib/winston/config/index.js';
|
|
9
|
+
import { Converters } from './Converters.js';
|
|
9
10
|
import type { Command } from './Definitions/Global/Commands.js';
|
|
10
11
|
import { Event } from './Definitions/Global/Events.js';
|
|
11
12
|
import type { Constructor } from './Devices/Constructor.js';
|
|
@@ -164,17 +165,29 @@ export class ISYNode<
|
|
|
164
165
|
}
|
|
165
166
|
|
|
166
167
|
public convert(value: any, from: UnitOfMeasure, to: UnitOfMeasure): any {
|
|
167
|
-
return value;
|
|
168
|
+
if (from === to) return value;
|
|
169
|
+
else {
|
|
170
|
+
try {
|
|
171
|
+
return Converters.Standard[from][to].from(value);
|
|
172
|
+
} catch {
|
|
173
|
+
this.isy.logger.error(`Conversion from ${UnitOfMeasure[from]} to ${UnitOfMeasure[to]} not supported.`);
|
|
174
|
+
} finally {
|
|
175
|
+
return value;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
168
178
|
}
|
|
169
179
|
|
|
170
180
|
public convertFrom(value: any, uom: UnitOfMeasure, propertyName?: StringKeys<D>): any {
|
|
171
|
-
|
|
181
|
+
if (this.drivers[propertyName]?.uom != uom) {
|
|
182
|
+
this.logger(`Converting ${this.drivers[propertyName].label} to ${UnitOfMeasure[this.drivers[propertyName]?.uom]} from ${UnitOfMeasure[uom]}`);
|
|
183
|
+
return this.convert(value, uom, this.drivers[propertyName].uom);
|
|
184
|
+
}
|
|
172
185
|
}
|
|
173
186
|
|
|
174
187
|
public convertTo(value: any, uom: UnitOfMeasure, propertyName?: StringKeys<D>) {
|
|
175
|
-
if (this.drivers[propertyName]
|
|
176
|
-
this.isy.logger.debug(`Converting ${this.drivers[propertyName].label} from ${this.drivers[propertyName].uom} to ${UnitOfMeasure}`);
|
|
177
|
-
return this.
|
|
188
|
+
if (this.drivers[propertyName]?.uom != uom) {
|
|
189
|
+
this.isy.logger.debug(`Converting ${this.drivers[propertyName].label} from ${UnitOfMeasure[this.drivers[propertyName].uom]} to ${UnitOfMeasure[uom]}`);
|
|
190
|
+
return this.convert(value, uom, this.drivers[propertyName].uom);
|
|
178
191
|
}
|
|
179
192
|
}
|
|
180
193
|
|
|
@@ -256,7 +269,7 @@ export class ISYNode<
|
|
|
256
269
|
const oldValue = this.drivers[propertyName].value;
|
|
257
270
|
if (this.drivers[propertyName].patch(value, formattedValue, uom, prec)) {
|
|
258
271
|
this.emit('PropertyChanged', propertyName, value, oldValue, formattedValue);
|
|
259
|
-
this.scenes
|
|
272
|
+
this.scenes?.forEach((element) => {
|
|
260
273
|
this.logger(`Recalulating ${element.deviceFriendlyName}`);
|
|
261
274
|
element.recalculateState();
|
|
262
275
|
});
|
|
@@ -523,7 +536,7 @@ export namespace ISYNode {
|
|
|
523
536
|
[K in C[U]["name"]]: C[K];
|
|
524
537
|
} : never;*/
|
|
525
538
|
|
|
526
|
-
export const With = <K extends Family, D extends DriverSignatures, C extends CommandSignatures, T extends Constructor<ISYNode<K,
|
|
539
|
+
export const With = <K extends Family, D extends DriverSignatures, C extends CommandSignatures, T extends Constructor<ISYNode<K, any, any, any>>>(Base: T) => {
|
|
527
540
|
return class extends Base implements Omit<ISYNode<K, D, C>, 'events'> {
|
|
528
541
|
declare drivers: Driver.ForAll<any, false>;
|
|
529
542
|
declare commands: Command.ForAll<C>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Devices/Brultech/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AAExC,MAAM,OAAO,IAA6E,SAAQ,OAAyB;CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Constructor.js","sourceRoot":"","sources":["../../../src/Devices/Constructor.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Family } from '../Definitions/Global/Families.js';
|
|
2
|
-
import { InsteonDeviceFactory } from './Insteon/InsteonDeviceFactory.js';
|
|
3
|
-
export class DeviceFactory {
|
|
4
|
-
static getDeviceDetails(node) {
|
|
5
|
-
if ((node.family ?? Family.Insteon) == Family.Insteon) {
|
|
6
|
-
return InsteonDeviceFactory.getInsteonDeviceDetails(node);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
return { name: 'Unsupported Device', class: null, unsupported: true };
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=DeviceFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceFactory.js","sourceRoot":"","sources":["../../../src/Devices/DeviceFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAI3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAKzE,MAAM,OAAO,aAAa;IAElB,MAAM,CAAC,gBAAgB,CAAC,IAAc;QAG5C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAEvD,OAAO,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAQ,CAAC;QAElE,CAAC;aAAM,CAAC;YAAC,OAAO,EAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC,CAAA;QAAC,CAAC;IAC/E,CAAC;CAGD"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Family } from '../Definitions/Global/Families.js';
|
|
2
|
-
import { Category } from '../Definitions/Global/Categories.js';
|
|
3
|
-
var s = { id: Family.Insteon, description: "Insteon", name: "Insteon", categories: { DimmableControl: { id: Category.DimmableControl, name: "DimmableControl", devices: { 1: { id: 0, name: "DimmableControl" } } } } };
|
|
4
|
-
//# sourceMappingURL=DeviceMap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceMap.js","sourceRoot":"","sources":["../../../src/Devices/DeviceMap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAmC/D,IAAI,CAAC,GAA+B,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAC,eAAe,EAAE,EAAC,EAAE,EAAE,QAAQ,CAAC,eAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAC,CAAC,EAAC,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC"}
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { Family } from '../../Definitions/Global/Families.js';
|
|
2
|
-
import { ISYDeviceNode } from '../ISYDeviceNode.js';
|
|
3
|
-
import { ElkAlarmSensorDevice } from './ElkAlarmSensorDevice.js';
|
|
4
|
-
/////////////////////////////
|
|
5
|
-
// ELKAlarmPanelDevice
|
|
6
|
-
//
|
|
7
|
-
export class ELKAlarmPanelDevice extends ISYDeviceNode {
|
|
8
|
-
setFromAreaUpdate(nodes) {
|
|
9
|
-
throw new Error('Method not implemented.');
|
|
10
|
-
}
|
|
11
|
-
alarmTripState;
|
|
12
|
-
alarmState;
|
|
13
|
-
alarmMode;
|
|
14
|
-
area;
|
|
15
|
-
deviceFriendlyName;
|
|
16
|
-
deviceType;
|
|
17
|
-
connectionType;
|
|
18
|
-
batteryOperated;
|
|
19
|
-
voltage;
|
|
20
|
-
constructor(isy, area) {
|
|
21
|
-
super(isy, {
|
|
22
|
-
family: Family.Global, type: '0.0.0.0', enabled: true, address: `ElkAlarmPanel_${area}`, name: `Elk Alarm Panel ${area}`,
|
|
23
|
-
pnode: undefined,
|
|
24
|
-
startDelay: 0,
|
|
25
|
-
hint: '',
|
|
26
|
-
endDelay: 0,
|
|
27
|
-
wattage: 0,
|
|
28
|
-
dcPeriod: 0
|
|
29
|
-
});
|
|
30
|
-
this.area = area;
|
|
31
|
-
this.alarmTripState = AlarmTripState.DISARMED;
|
|
32
|
-
this.alarmState = AlarmState.NOT_READY_TO_ARM;
|
|
33
|
-
this.alarmMode = AlarmMode.DISARMED;
|
|
34
|
-
this.deviceFriendlyName = 'Elk Alarm Panel ' + area;
|
|
35
|
-
this.connectionType = 'Elk Network Module';
|
|
36
|
-
this.batteryOperated = false;
|
|
37
|
-
this.voltage = 71;
|
|
38
|
-
this
|
|
39
|
-
.lastChanged = new Date();
|
|
40
|
-
}
|
|
41
|
-
async sendCommand(command) {
|
|
42
|
-
return this.isy.sendISYCommand(`elk/area/${this.area}/cmd/${command}`);
|
|
43
|
-
}
|
|
44
|
-
async sendSetAlarmModeCommand(alarmMode) {
|
|
45
|
-
if (alarmMode === 'disarm') {
|
|
46
|
-
return this.sendCommand('disarm');
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
return this.sendCommand(`arm?armType=${alarmMode}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
async clearAllBypasses() {
|
|
53
|
-
return this.sendCommand('unbypass');
|
|
54
|
-
}
|
|
55
|
-
getAlarmStatusAsText() {
|
|
56
|
-
return `AM [${this.alarmMode}] AS [${this.alarmState}] ATS [${this.alarmTripState}]`;
|
|
57
|
-
}
|
|
58
|
-
getAlarmTripState() {
|
|
59
|
-
return this.alarmTripState;
|
|
60
|
-
}
|
|
61
|
-
getAlarmState() {
|
|
62
|
-
return this.alarmState;
|
|
63
|
-
}
|
|
64
|
-
getAlarmMode() {
|
|
65
|
-
return this.alarmMode;
|
|
66
|
-
}
|
|
67
|
-
handleEvent(event) {
|
|
68
|
-
const areaUpdate = event.eventInfo.ae;
|
|
69
|
-
const areaId = areaUpdate.attr.area;
|
|
70
|
-
const updateType = areaUpdate.attr.type;
|
|
71
|
-
const valueToSet = Number(areaUpdate.attr.val);
|
|
72
|
-
let valueChanged = false;
|
|
73
|
-
if (areaId === this.area) {
|
|
74
|
-
if (updateType === AlarmPanelProperty.AlarmTripState) {
|
|
75
|
-
if (this.alarmTripState !== valueToSet) {
|
|
76
|
-
const oldVal = this.alarmTripState;
|
|
77
|
-
this.alarmTripState = valueToSet;
|
|
78
|
-
this.emit('PropertyChanged', 'alarmTripState', this.alarmTripState, oldVal, AlarmTripState[this.alarmTripState]);
|
|
79
|
-
valueChanged = true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else if (updateType === AlarmPanelProperty.AlarmState) {
|
|
83
|
-
if (this.alarmState !== valueToSet) {
|
|
84
|
-
const oldVal = this.alarmState;
|
|
85
|
-
this.alarmState = valueToSet;
|
|
86
|
-
this.emit('PropertyChanged', 'alarmState', this.alarmState, oldVal, AlarmState[this.alarmState]);
|
|
87
|
-
valueChanged = true;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else if (updateType === AlarmPanelProperty.AlarmMode) {
|
|
91
|
-
if (this.alarmMode !== valueToSet) {
|
|
92
|
-
const oldVal = this.alarmMode;
|
|
93
|
-
this.alarmMode = valueToSet;
|
|
94
|
-
this.emit('PropertyChanged', 'alarmMode', this.alarmState, oldVal, AlarmMode[this.alarmMode]);
|
|
95
|
-
valueChanged = true;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
if (valueChanged) {
|
|
100
|
-
this.lastChanged = new Date();
|
|
101
|
-
}
|
|
102
|
-
return valueChanged;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
export var AlarmPanelProperty;
|
|
106
|
-
(function (AlarmPanelProperty) {
|
|
107
|
-
AlarmPanelProperty[AlarmPanelProperty["AlarmMode"] = 3] = "AlarmMode";
|
|
108
|
-
AlarmPanelProperty[AlarmPanelProperty["AlarmState"] = 2] = "AlarmState";
|
|
109
|
-
AlarmPanelProperty[AlarmPanelProperty["AlarmTripState"] = 1] = "AlarmTripState";
|
|
110
|
-
})(AlarmPanelProperty || (AlarmPanelProperty = {}));
|
|
111
|
-
export var AlarmMode;
|
|
112
|
-
(function (AlarmMode) {
|
|
113
|
-
AlarmMode[AlarmMode["DISARMED"] = 0] = "DISARMED";
|
|
114
|
-
AlarmMode[AlarmMode["AWAY"] = 1] = "AWAY";
|
|
115
|
-
AlarmMode[AlarmMode["STAY"] = 2] = "STAY";
|
|
116
|
-
AlarmMode[AlarmMode["STAY_INSTANT"] = 3] = "STAY_INSTANT";
|
|
117
|
-
AlarmMode[AlarmMode["NIGHT"] = 4] = "NIGHT";
|
|
118
|
-
AlarmMode[AlarmMode["NIGHT_INSTANT"] = 5] = "NIGHT_INSTANT";
|
|
119
|
-
AlarmMode[AlarmMode["VACATION"] = 6] = "VACATION";
|
|
120
|
-
})(AlarmMode || (AlarmMode = {}));
|
|
121
|
-
export var AlarmTripState;
|
|
122
|
-
(function (AlarmTripState) {
|
|
123
|
-
AlarmTripState[AlarmTripState["DISARMED"] = 0] = "DISARMED";
|
|
124
|
-
AlarmTripState[AlarmTripState["EXIT_DELAY"] = 1] = "EXIT_DELAY";
|
|
125
|
-
AlarmTripState[AlarmTripState["TRIPPED"] = 2] = "TRIPPED";
|
|
126
|
-
})(AlarmTripState || (AlarmTripState = {}));
|
|
127
|
-
export var AlarmState;
|
|
128
|
-
(function (AlarmState) {
|
|
129
|
-
AlarmState[AlarmState["NOT_READY_TO_ARM"] = 0] = "NOT_READY_TO_ARM";
|
|
130
|
-
AlarmState[AlarmState["READY_TO_ARM"] = 1] = "READY_TO_ARM";
|
|
131
|
-
AlarmState[AlarmState["READY_TO_ARM_VIOLATION"] = 2] = "READY_TO_ARM_VIOLATION";
|
|
132
|
-
AlarmState[AlarmState["ARMED_WITH_TIMER"] = 3] = "ARMED_WITH_TIMER";
|
|
133
|
-
AlarmState[AlarmState["ARMED_FULLY"] = 4] = "ARMED_FULLY";
|
|
134
|
-
AlarmState[AlarmState["FORCE_ARMED_VIOLATION"] = 5] = "FORCE_ARMED_VIOLATION";
|
|
135
|
-
AlarmState[AlarmState["ARMED_WITH_BYPASS"] = 6] = "ARMED_WITH_BYPASS";
|
|
136
|
-
})(AlarmState || (AlarmState = {}));
|
|
137
|
-
// Alarm mode constanrs
|
|
138
|
-
ELKAlarmPanelDevice.prototype.ALARM_MODE_DISARMED = 0;
|
|
139
|
-
ELKAlarmPanelDevice.prototype.ALARM_MODE_AWAY = 1;
|
|
140
|
-
ELKAlarmPanelDevice.prototype.ALARM_MODE_STAY = 2;
|
|
141
|
-
ELKAlarmPanelDevice.prototype.ALARM_MODE_STAY_INSTANT = 3;
|
|
142
|
-
ELKAlarmPanelDevice.prototype.ALARM_MODE_NIGHT = 4;
|
|
143
|
-
ELKAlarmPanelDevice.prototype.ALARM_MODE_NIGHT_INSTANT = 5;
|
|
144
|
-
ELKAlarmPanelDevice.prototype.ALARM_MODE_VACATION = 6;
|
|
145
|
-
// Alarm trip state
|
|
146
|
-
ELKAlarmPanelDevice.prototype.ALARM_TRIP_STATE_DISARMED = 0;
|
|
147
|
-
ELKAlarmPanelDevice.prototype.ALARM_TRIP_STATE_EXIT_DELAY = 1;
|
|
148
|
-
ELKAlarmPanelDevice.prototype.ALARM_TRIP_STATE_TRIPPED = 2;
|
|
149
|
-
// Alarm state
|
|
150
|
-
ELKAlarmPanelDevice.prototype.ALARM_STATE_NOT_READY_TO_ARM = 0;
|
|
151
|
-
ELKAlarmPanelDevice.prototype.ALARM_STATE_READY_TO_ARM = 1;
|
|
152
|
-
ELKAlarmPanelDevice.prototype.ALARM_STATE_READY_TO_ARM_VIOLATION = 2;
|
|
153
|
-
ELKAlarmPanelDevice.prototype.ALARM_STATE_ARMED_WITH_TIMER = 3;
|
|
154
|
-
ELKAlarmPanelDevice.prototype.ALARM_STATE_ARMED_FULLY = 4;
|
|
155
|
-
ELKAlarmPanelDevice.prototype.ALARM_STATE_FORCE_ARMED_VIOLATION = 5;
|
|
156
|
-
ELKAlarmPanelDevice.prototype.ALARM_STATE_ARMED_WITH_BYPASS = 6;
|
|
157
|
-
// Logical Status for sensors
|
|
158
|
-
export var AlarmSensorPhysicalState;
|
|
159
|
-
(function (AlarmSensorPhysicalState) {
|
|
160
|
-
AlarmSensorPhysicalState[AlarmSensorPhysicalState["NOT_CONFIGURED"] = 0] = "NOT_CONFIGURED";
|
|
161
|
-
AlarmSensorPhysicalState[AlarmSensorPhysicalState["OPEN"] = 1] = "OPEN";
|
|
162
|
-
AlarmSensorPhysicalState[AlarmSensorPhysicalState["EOL"] = 2] = "EOL";
|
|
163
|
-
AlarmSensorPhysicalState[AlarmSensorPhysicalState["SHORT"] = 3] = "SHORT";
|
|
164
|
-
})(AlarmSensorPhysicalState || (AlarmSensorPhysicalState = {}));
|
|
165
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_PHYSICAL_NOT_CONFIGURED = 0;
|
|
166
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_PHYSICAL_OPEN = 1;
|
|
167
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_PHYSICAL_EOL = 2;
|
|
168
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_PHYSICAL_SHORT = 3;
|
|
169
|
-
export var AlarmSensorLogicalState;
|
|
170
|
-
(function (AlarmSensorLogicalState) {
|
|
171
|
-
AlarmSensorLogicalState[AlarmSensorLogicalState["NORMAL"] = 0] = "NORMAL";
|
|
172
|
-
AlarmSensorLogicalState[AlarmSensorLogicalState["TROUBLE"] = 1] = "TROUBLE";
|
|
173
|
-
AlarmSensorLogicalState[AlarmSensorLogicalState["VIOLATED"] = 2] = "VIOLATED";
|
|
174
|
-
AlarmSensorLogicalState[AlarmSensorLogicalState["BYPASSED"] = 3] = "BYPASSED";
|
|
175
|
-
})(AlarmSensorLogicalState || (AlarmSensorLogicalState = {}));
|
|
176
|
-
// Physical status for sensors
|
|
177
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_LOGICAL_NORMAL = 0;
|
|
178
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_LOGICAL_TROUBLE = 1;
|
|
179
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_LOGICAL_VIOLATED = 2;
|
|
180
|
-
ElkAlarmSensorDevice.prototype.SENSOR_STATE_LOGICAL_BYPASSED = 3;
|
|
181
|
-
//# sourceMappingURL=ElkAlarmPanelDevice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ElkAlarmPanelDevice.js","sourceRoot":"","sources":["../../../../src/Devices/Elk/ElkAlarmPanelDevice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Family } from '../../Definitions/Global/Families.js';
|
|
2
|
-
import { ISYDeviceNode } from '../ISYDeviceNode.js';
|
|
3
|
-
import { AlarmSensorPhysicalState, AlarmSensorLogicalState } from './ElkAlarmPanelDevice.js';
|
|
4
|
-
/////////////////////////////
|
|
5
|
-
// ELKAlarmSensor
|
|
6
|
-
//
|
|
7
|
-
export class ElkAlarmSensorDevice extends ISYDeviceNode {
|
|
8
|
-
area;
|
|
9
|
-
zone;
|
|
10
|
-
deviceFriendlyName;
|
|
11
|
-
deviceType;
|
|
12
|
-
connectionType;
|
|
13
|
-
batteryOperated;
|
|
14
|
-
physicalState;
|
|
15
|
-
logicalState;
|
|
16
|
-
voltage;
|
|
17
|
-
constructor(isy, name, area, zone) {
|
|
18
|
-
super(isy, {
|
|
19
|
-
family: Family.Global, name, address: `ElkZone_${zone}`, enabled: true,
|
|
20
|
-
pnode: undefined,
|
|
21
|
-
startDelay: 0,
|
|
22
|
-
hint: '',
|
|
23
|
-
endDelay: 0,
|
|
24
|
-
wattage: 0,
|
|
25
|
-
dcPeriod: 0
|
|
26
|
-
});
|
|
27
|
-
this.area = area;
|
|
28
|
-
this.zone = zone;
|
|
29
|
-
// this.name = name;
|
|
30
|
-
// this.address = "ElkZone" + zone;
|
|
31
|
-
this.label = `Elk Connected Sensor ${zone}`;
|
|
32
|
-
this.deviceFriendlyName = `Elk Connected Sensor ${zone}`;
|
|
33
|
-
this.connectionType = 'Elk Network';
|
|
34
|
-
this.batteryOperated = false;
|
|
35
|
-
this.physicalState = AlarmSensorPhysicalState.NOT_CONFIGURED;
|
|
36
|
-
this.logicalState = AlarmSensorLogicalState.NORMAL;
|
|
37
|
-
this.lastChanged = new Date();
|
|
38
|
-
}
|
|
39
|
-
async sendCommand(command) {
|
|
40
|
-
return this.isy.sendISYCommand(`elk/zone/${this.zone}/cmd/${command}`);
|
|
41
|
-
}
|
|
42
|
-
async sendBypassToggleCommand() {
|
|
43
|
-
return this.sendCommand(`toggle/bypass`);
|
|
44
|
-
}
|
|
45
|
-
getPhysicalState() {
|
|
46
|
-
return this.physicalState;
|
|
47
|
-
}
|
|
48
|
-
isBypassed() {
|
|
49
|
-
return (this.logicalState === 3);
|
|
50
|
-
}
|
|
51
|
-
getLogicalState() {
|
|
52
|
-
return this.logicalState;
|
|
53
|
-
}
|
|
54
|
-
getCurrentDoorWindowState() {
|
|
55
|
-
return (this.physicalState === this.SENSOR_STATE_PHYSICAL_OPEN || this.logicalState === this.SENSOR_STATE_LOGICAL_VIOLATED);
|
|
56
|
-
}
|
|
57
|
-
getSensorStatus() {
|
|
58
|
-
return 'PS [' + this.physicalState + '] LS [' + this.logicatState + ']';
|
|
59
|
-
}
|
|
60
|
-
isPresent() {
|
|
61
|
-
if (this.voltage < 65 || this.voltage > 80) {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
handleEvent(event) {
|
|
69
|
-
const zoneUpdate = event.eventInfo.ze;
|
|
70
|
-
const zone = zoneUpdate.attr.zone;
|
|
71
|
-
const updateType = zoneUpdate.attr.type;
|
|
72
|
-
const valueToSet = zoneUpdate.attr.val;
|
|
73
|
-
let valueChanged = false;
|
|
74
|
-
if (zone === this.zone) {
|
|
75
|
-
if (updateType === 51) {
|
|
76
|
-
if (this.logicalState !== valueToSet) {
|
|
77
|
-
const temp = this.logicalState;
|
|
78
|
-
this.logicalState = valueToSet;
|
|
79
|
-
this.emit('PropertyChanged', 'logicalState', this.logicalState, temp, this.voltage.toString());
|
|
80
|
-
// Not triggering change update on logical state because physical always follows and don't want double notify.
|
|
81
|
-
// valueChanged = true;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else if (updateType === 52) {
|
|
85
|
-
if (this.physicalState !== valueToSet) {
|
|
86
|
-
const temp = this.physicalState;
|
|
87
|
-
this.physicalState = valueToSet;
|
|
88
|
-
this.emit('PropertyChanged', 'physicalState', this.physicalState, temp, this.voltage.toString());
|
|
89
|
-
valueChanged = true;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
else if (updateType === 53) {
|
|
93
|
-
if (this.voltage !== valueToSet) {
|
|
94
|
-
const temp = this.voltage;
|
|
95
|
-
this.voltage = valueToSet;
|
|
96
|
-
this.emit('PropertyChanged', 'voltage', this.voltage, temp, this.voltage.toString());
|
|
97
|
-
valueChanged = true;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (valueChanged) {
|
|
102
|
-
this.lastChanged = new Date();
|
|
103
|
-
}
|
|
104
|
-
return valueChanged;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=ElkAlarmSensorDevice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ElkAlarmSensorDevice.js","sourceRoot":"","sources":["../../../../src/Devices/Elk/ElkAlarmSensorDevice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Endpoint } from '@project-chip/matter.js/endpoint';
|
|
2
|
-
import { BridgedDeviceBasicInformationBehavior, BridgedDeviceBasicInformationServer } from '@project-chip/matter.js/behaviors/bridged-device-basic-information';
|
|
3
|
-
export const MatterEndpoint = (base, endpointType) => {
|
|
4
|
-
return class extends base {
|
|
5
|
-
endpointType = endpointType;
|
|
6
|
-
createEndpoint() {
|
|
7
|
-
var p = this.endpointType.with(BridgedDeviceBasicInformationServer);
|
|
8
|
-
const id = this.address.replaceAll(' ', '_').replaceAll('.', ' ');
|
|
9
|
-
return new Endpoint(p, { id: id, address: this.address, bridgedDeviceBasicInformation: {
|
|
10
|
-
nodeLabel: this.label.rightWithToken(32, ' '),
|
|
11
|
-
productName: this.productName.rightWithToken(32, ' '),
|
|
12
|
-
productLabel: this.model.leftWithToken(64, ' '),
|
|
13
|
-
serialNumber: id,
|
|
14
|
-
reachable: this.enabled,
|
|
15
|
-
} });
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
// @ts-ignore
|
|
20
|
-
const BISY = BridgedDeviceBasicInformationBehavior.alter({ attributes: { address: { optional: false }, ...BridgedDeviceBasicInformationServer.cluster.attributes } });
|
|
21
|
-
export class BridgedISYNodeInformationServer extends BridgedDeviceBasicInformationServer {
|
|
22
|
-
async initialize() {
|
|
23
|
-
return super.initialize();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
(function (BridgedISYNodeInformationServer) {
|
|
27
|
-
class State extends BridgedDeviceBasicInformationServer.State {
|
|
28
|
-
}
|
|
29
|
-
BridgedISYNodeInformationServer.State = State;
|
|
30
|
-
})(BridgedISYNodeInformationServer || (BridgedISYNodeInformationServer = {}));
|
|
31
|
-
//# sourceMappingURL=EndpointFor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointFor.js","sourceRoot":"","sources":["../../../src/Devices/EndpointFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAS5D,OAAO,EAAE,qCAAqC,EAAE,mCAAmC,EAAE,MAAM,oEAAoE,CAAC;AA2BhK,MAAM,CAAC,MAAM,cAAc,GAAE,CAA8F,IAAO,EAAE,YAAe,EAAE,EAAE;IAItJ,OAAO,KAAM,SAAQ,IAAI;QAGxB,YAAY,GAAM,YAAY,CAAC;QAI/B,cAAc;YAEb,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAEnE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEnE,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAC,EAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,6BAA6B,EAAE;oBAEpF,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,EAAC,GAAG,CAAC;oBAChC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,EAAC,GAAG,CAAC;oBACpD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAC,GAAG,CAAC;oBAC9C,YAAY,EAAE,EAAE;oBAChB,SAAS,EAAE,IAAI,CAAC,OAAO;iBAC1B,EAAC,CAAC,CAAC;QAId,CAAC;KAIF,CAAA;AACD,CAAC,CAAA;AAEA,aAAa;AACX,MAAM,IAAI,GAAG,qCAAqC,CAAC,KAAK,CAAC,EAAC,UAAU,EAAE,EAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,EAAE,GAAG,mCAAmC,CAAC,OAAO,CAAC,UAAU,EAAC,EAAC,CAAC,CAAC;AAGjK,MAAM,OAAO,+BAAgC,SAAQ,mCAAmC;IAG7E,KAAK,CAAC,UAAU;QAIrB,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;IAI9B,CAAC;CACF;AAED,WAAiB,+BAA+B;IAC9C,MAAa,KAAM,SAAQ,mCAAmC,CAAC,KAAK;KAGnE;IAHY,qCAAK,QAGjB,CAAA;AACL,CAAC,EALkB,+BAA+B,KAA/B,+BAA+B,QAKjD"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import 'winston';
|
|
2
|
-
// export const ISYLevelDevice = <T extends Constructor<ISYDeviceNode<any,any,any,any>>>(base: T) =>
|
|
3
|
-
// class extends base {
|
|
4
|
-
// get level(): number {
|
|
5
|
-
// return super.drivers.ST?.value;
|
|
6
|
-
// }
|
|
7
|
-
// };
|
|
8
|
-
// tslint:disable-next-line: variable-name
|
|
9
|
-
// export const ISYUpdateableLevelDevice = <T extends Constructor<ISYDeviceNode<any,any,any>>>(base: T) =>
|
|
10
|
-
// class extends base {
|
|
11
|
-
// get level(): number {
|
|
12
|
-
// return this.local.ST;
|
|
13
|
-
// }
|
|
14
|
-
// public async updateLevel(level: number): Promise<any> {
|
|
15
|
-
// if (level != this.local.ST && level !== (this.pending.ST ?? this.local.ST)) {
|
|
16
|
-
// this.pending.ST = level;
|
|
17
|
-
// if (level > 0) {
|
|
18
|
-
// return this.sendCommand(
|
|
19
|
-
// Commands.On,
|
|
20
|
-
// this.convertTo(level, this.uom.ST)
|
|
21
|
-
// ).then((p) => {
|
|
22
|
-
// //this.local.ST = this.pending.ST; *Wait to receive propertu update from subscription
|
|
23
|
-
// this.pending.ST = null;
|
|
24
|
-
// });
|
|
25
|
-
// } else {
|
|
26
|
-
// return this.sendCommand(Commands.Off).then((p) => {
|
|
27
|
-
// //this.local.ST = this.pending.ST; *Wait to receive propertu update from subscription
|
|
28
|
-
// this.pending.ST = null;
|
|
29
|
-
// });
|
|
30
|
-
// }
|
|
31
|
-
// }
|
|
32
|
-
// return Promise.resolve();
|
|
33
|
-
// }
|
|
34
|
-
// };
|
|
35
|
-
//# sourceMappingURL=ISYDevice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ISYDevice.js","sourceRoot":"","sources":["../../../src/Devices/ISYDevice.ts"],"names":[],"mappings":"AAOA,OAAO,SAAS,CAAA;AAoGhB,oGAAoG;AACpG,wBAAwB;AACxB,0BAA0B;AAC1B,qCAAqC;AACrC,MAAM;AACN,MAAM;AAEN,0CAA0C;AAE1C,0GAA0G;AAC1G,wBAAwB;AACxB,0BAA0B;AAC1B,2BAA2B;AAC3B,MAAM;AAEN,4DAA4D;AAC5D,mFAAmF;AAEnF,+BAA+B;AAC/B,uBAAuB;AACvB,gCAAgC;AAChC,qBAAqB;AACrB,2CAA2C;AAC3C,uBAAuB;AACvB,8FAA8F;AAC9F,gCAAgC;AAChC,WAAW;AACX,eAAe;AACf,2DAA2D;AAC3D,8FAA8F;AAC9F,gCAAgC;AAChC,WAAW;AACX,QAAQ;AACR,OAAO;AACP,+BAA+B;AAC/B,MAAM;AACN,MAAM"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { ISYNode } from '../ISYNode.js';
|
|
2
|
-
export class ISYDeviceNode extends ISYNode {
|
|
3
|
-
typeCode;
|
|
4
|
-
deviceClass;
|
|
5
|
-
category;
|
|
6
|
-
subCategory;
|
|
7
|
-
declare;
|
|
8
|
-
//public readonly isDimmable: boolean;
|
|
9
|
-
//public _parentDevice: ISYDeviceNode<T, any, any, any>;
|
|
10
|
-
//public readonly children: Array<ISYDeviceNode<T, any, any, any>> = [];
|
|
11
|
-
_enabled;
|
|
12
|
-
productName;
|
|
13
|
-
model;
|
|
14
|
-
modelNumber;
|
|
15
|
-
version;
|
|
16
|
-
constructor(isy, node) {
|
|
17
|
-
super(isy, node);
|
|
18
|
-
this.family = node.family;
|
|
19
|
-
this.nodeType = 1;
|
|
20
|
-
this.type = node.type;
|
|
21
|
-
this._enabled = node.enabled;
|
|
22
|
-
this.deviceClass = node.deviceClass;
|
|
23
|
-
this.parentAddress = node.pnode;
|
|
24
|
-
const s = this.type.split(".");
|
|
25
|
-
this.category = Number(s[0]);
|
|
26
|
-
this.subCategory = Number(s[1]);
|
|
27
|
-
// console.log(nodeDetail);
|
|
28
|
-
// if (this.parentAddress !== this.address && this.parentAddress !== undefined) {
|
|
29
|
-
// this._parentDevice = isy.getDevice(this.parentAddress) as unknown as ISYDeviceNode<T, any, any, any>;
|
|
30
|
-
// if (!isNullOrUndefined(this._parentDevice)) {
|
|
31
|
-
// this._parentDevice.addChild(this);
|
|
32
|
-
// }
|
|
33
|
-
// }
|
|
34
|
-
// if (Array.isArray(node.property)) {
|
|
35
|
-
// for (const prop of node.property) {
|
|
36
|
-
// this.local[prop.id] = this.convertFrom(prop.value, prop.uom, prop.id as Driver.Literal);
|
|
37
|
-
// this.formatted[prop.id] = prop.formatted;
|
|
38
|
-
// this.uom[prop.id] = prop.uom;
|
|
39
|
-
// this.logger(
|
|
40
|
-
// `Property ${Controls[prop.id].label} (${prop.id}) initialized to: ${this.local[prop.id]} (${this.formatted[prop.id]})`
|
|
41
|
-
// );
|
|
42
|
-
// }
|
|
43
|
-
// } else if (node.property) {
|
|
44
|
-
// this.local[node.property.id] = this.convertFrom(
|
|
45
|
-
// node.property.value,
|
|
46
|
-
// node.property.uom,
|
|
47
|
-
// node.property.id as Driver.Literal
|
|
48
|
-
// );
|
|
49
|
-
// this.formatted[node.property.id] = node.property.formatted;
|
|
50
|
-
// this.uom[node.property.id] = node.property.uom;
|
|
51
|
-
// this.logger(
|
|
52
|
-
// `Property ${Controls[node.property.id].label} (${node.property.id}) initialized to: ${this.local[node.property.id]} (${this.formatted[node.property.id]})`
|
|
53
|
-
// );
|
|
54
|
-
// }
|
|
55
|
-
}
|
|
56
|
-
_parentDevice;
|
|
57
|
-
children;
|
|
58
|
-
addChild(childDevice) {
|
|
59
|
-
this.children.push(childDevice);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=ISYDeviceNode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ISYDeviceNode.js","sourceRoot":"","sources":["../../../src/Devices/ISYDeviceNode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAUvC,MAAM,OAAO,aAMX,SAAQ,OAAmB;IAIX,QAAQ,CAAS;IACjB,WAAW,CAAM;IACjB,QAAQ,CAAW;IACnB,WAAW,CAAS;IAGpC,OAAO,CAAA;IAEP,sCAAsC;IAEtC,wDAAwD;IACxD,wEAAwE;IAGjE,QAAQ,CAAM;IACrB,WAAW,CAAS;IACpB,KAAK,CAAS;IACd,WAAW,CAAS;IACpB,OAAO,CAAS;IAEhB,YAAa,GAAQ,EAAE,IAAc;QAEnC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhC,2BAA2B;QAC3B,iFAAiF;QACjF,0GAA0G;QAC1G,kDAAkD;QAClD,yCAAyC;QACzC,MAAM;QACN,IAAI;QACJ,sCAAsC;QACtC,wCAAwC;QACxC,+FAA+F;QAC/F,gDAAgD;QAChD,oCAAoC;QACpC,mBAAmB;QACnB,+HAA+H;QAC/H,SAAS;QACT,MAAM;QACN,8BAA8B;QAC9B,qDAAqD;QACrD,2BAA2B;QAC3B,yBAAyB;QACzB,yCAAyC;QACzC,OAAO;QACP,gEAAgE;QAChE,oDAAoD;QACpD,iBAAiB;QACjB,iKAAiK;QACjK,OAAO;QACP,IAAI;IACN,CAAC;IAED,aAAa,CAA8B;IAC3C,QAAQ,CAAgC;IAEjC,QAAQ,CAAuC,WAAc;QAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;CAuEF"}
|