isy-nodejs 1.0.1-alpha.1 → 1.0.1-alpha.2

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.
Files changed (107) hide show
  1. package/dist/cjs/ISY.js +113 -110
  2. package/dist/cjs/ISY.js.map +1 -1
  3. package/dist/cjs/ISYNode.js +21 -5
  4. package/dist/cjs/ISYNode.js.map +1 -1
  5. package/dist/cjs/types/ISY.d.ts +37 -37
  6. package/dist/cjs/types/ISY.d.ts.map +1 -1
  7. package/dist/cjs/types/ISYNode.d.ts.map +1 -1
  8. package/dist/esm/ISY.js +152 -149
  9. package/dist/esm/ISY.js.map +1 -1
  10. package/dist/esm/ISYNode.js +21 -5
  11. package/dist/esm/ISYNode.js.map +1 -1
  12. package/dist/esm/types/ISY.d.ts +37 -37
  13. package/dist/esm/types/ISY.d.ts.map +1 -1
  14. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  15. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  16. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  17. package/package.json +3 -5
  18. package/src/ISY.ts +790 -820
  19. package/src/ISYNode.ts +19 -6
  20. package/dist/esm/Devices/Brultech/index.js +0 -4
  21. package/dist/esm/Devices/Brultech/index.js.map +0 -1
  22. package/dist/esm/Devices/Constructor.js +0 -2
  23. package/dist/esm/Devices/Constructor.js.map +0 -1
  24. package/dist/esm/Devices/DeviceFactory.js +0 -13
  25. package/dist/esm/Devices/DeviceFactory.js.map +0 -1
  26. package/dist/esm/Devices/DeviceMap.js +0 -4
  27. package/dist/esm/Devices/DeviceMap.js.map +0 -1
  28. package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js +0 -181
  29. package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js.map +0 -1
  30. package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js +0 -107
  31. package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js.map +0 -1
  32. package/dist/esm/Devices/EndpointFor.js +0 -31
  33. package/dist/esm/Devices/EndpointFor.js.map +0 -1
  34. package/dist/esm/Devices/ISYDevice.js +0 -35
  35. package/dist/esm/Devices/ISYDevice.js.map +0 -1
  36. package/dist/esm/Devices/ISYDeviceNode.js +0 -62
  37. package/dist/esm/Devices/ISYDeviceNode.js.map +0 -1
  38. package/dist/esm/Devices/ISYMultiNodeDevice.js +0 -89
  39. package/dist/esm/Devices/ISYMultiNodeDevice.js.map +0 -1
  40. package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js +0 -8
  41. package/dist/esm/Devices/Insteon/InsteonBallastDimmerDevice.js.map +0 -1
  42. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +0 -47
  43. package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +0 -1
  44. package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js +0 -14
  45. package/dist/esm/Devices/Insteon/InsteonCOSensorDevice.js.map +0 -1
  46. package/dist/esm/Devices/Insteon/InsteonDevice.js +0 -17
  47. package/dist/esm/Devices/Insteon/InsteonDevice.js.map +0 -1
  48. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +0 -875
  49. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +0 -1
  50. package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js +0 -32
  51. package/dist/esm/Devices/Insteon/InsteonDimmableDevice.js.map +0 -1
  52. package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js +0 -7
  53. package/dist/esm/Devices/Insteon/InsteonDimmerOutletDevice.js.map +0 -1
  54. package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js +0 -8
  55. package/dist/esm/Devices/Insteon/InsteonDimmerSwitchDevice.js.map +0 -1
  56. package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js +0 -11
  57. package/dist/esm/Devices/Insteon/InsteonDoorWindowSensorDevice.js.map +0 -1
  58. package/dist/esm/Devices/Insteon/InsteonFanDevice.js +0 -56
  59. package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +0 -1
  60. package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js +0 -8
  61. package/dist/esm/Devices/Insteon/InsteonKeypadDevice.js.map +0 -1
  62. package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js +0 -8
  63. package/dist/esm/Devices/Insteon/InsteonKeypadDimmerDevice.js.map +0 -1
  64. package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js +0 -8
  65. package/dist/esm/Devices/Insteon/InsteonKeypadRelayDevice.js.map +0 -1
  66. package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js +0 -11
  67. package/dist/esm/Devices/Insteon/InsteonLeakSensorDevice.js.map +0 -1
  68. package/dist/esm/Devices/Insteon/InsteonLockDevice.js +0 -32
  69. package/dist/esm/Devices/Insteon/InsteonLockDevice.js.map +0 -1
  70. package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js +0 -36
  71. package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js.map +0 -1
  72. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js +0 -19
  73. package/dist/esm/Devices/Insteon/InsteonOnOffOutletDevice.js.map +0 -1
  74. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js +0 -46
  75. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +0 -1
  76. package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js +0 -8
  77. package/dist/esm/Devices/Insteon/InsteonRelaySwitchDevice.js.map +0 -1
  78. package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js +0 -11
  79. package/dist/esm/Devices/Insteon/InsteonSmokeSensorDevice.js.map +0 -1
  80. package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js +0 -30
  81. package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js.map +0 -1
  82. package/dist/esm/Devices/Insteon/index.js +0 -31
  83. package/dist/esm/Devices/Insteon/index.js.map +0 -1
  84. package/dist/esm/Devices/Lutron/index.js +0 -4
  85. package/dist/esm/Devices/Lutron/index.js.map +0 -1
  86. package/dist/esm/Devices/MapsTo.js +0 -2
  87. package/dist/esm/Devices/MapsTo.js.map +0 -1
  88. package/dist/esm/Devices/NCD/index.js +0 -4
  89. package/dist/esm/Devices/NCD/index.js.map +0 -1
  90. package/dist/esm/Devices/NodeFactory.js +0 -48
  91. package/dist/esm/Devices/NodeFactory.js.map +0 -1
  92. package/dist/esm/Devices/Poly/index.js +0 -4
  93. package/dist/esm/Devices/Poly/index.js.map +0 -1
  94. package/dist/esm/Devices/Scene/index.js +0 -4
  95. package/dist/esm/Devices/Scene/index.js.map +0 -1
  96. package/dist/esm/Devices/UDI/index.js +0 -4
  97. package/dist/esm/Devices/UDI/index.js.map +0 -1
  98. package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js +0 -38
  99. package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js.map +0 -1
  100. package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js +0 -8
  101. package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js.map +0 -1
  102. package/dist/esm/Devices/ZWave/ZWaveLockDevice.js +0 -35
  103. package/dist/esm/Devices/ZWave/ZWaveLockDevice.js.map +0 -1
  104. package/dist/esm/Devices/ZWave/index.js +0 -20
  105. package/dist/esm/Devices/ZWave/index.js.map +0 -1
  106. package/dist/esm/Devices/index.js +0 -9
  107. 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
- throw new Error('Method not implemented.');
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].uom != uom) {
176
- this.isy.logger.debug(`Converting ${this.drivers[propertyName].label} from ${this.drivers[propertyName].uom} to ${UnitOfMeasure}`);
177
- return this.convertTo(value, uom);
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
 
@@ -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, any, any, any>>>(Base: T) => {
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,4 +0,0 @@
1
- import { ISYNode } from '../../ISYNode.js';
2
- export class Base extends ISYNode {
3
- }
4
- //# sourceMappingURL=index.js.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Constructor.js.map
@@ -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"}
@@ -1,89 +0,0 @@
1
- export {};
2
- /*
3
-
4
- export class ISYMultiNodeDevice<T extends Family, N extends NodeList>
5
- implements ISYDevice<T, ISYNode.DriverMap<N>, ISYNode.CommandMap<N>, string> {
6
- commands: UnionToIntersection<{ [x in keyof N]: ISYNode.CommandsOf<N[x]>; } extends Record<string, unknown> ? keyof N extends string ? { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends Record<string, unknown> ? keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends string ? { [x in `${string & keyof N}.${string & keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N]}`]: { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N][x extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? any : B : B : B : B : B : B : B : B : B : B : x]; } : never : never : never : never>;
7
- readProperty(propertyName: keyof UnionToIntersection<{ [x in keyof N]: ISYNode.DriversOf<N[x]>; } extends Record<string, unknown> ? keyof N extends string ? { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N] extends Record<string, unknown> ? keyof { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N] extends string ? { [x in `${string & keyof N}.${string & keyof { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N]}`]: { [x in keyof N]: ISYNode.DriversOf<N[x]>; }[string & keyof N][x extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? any : B : B : B : B : B : B : B : B : B : B : x]; } : never : never : never : never>): Promise<DriverState> {
8
- throw new Error('Method not implemented.');
9
- }
10
- sendCommand(command: Extract<keyof UnionToIntersection<{ [x in keyof N]: ISYNode.CommandsOf<N[x]>; } extends Record<string, unknown> ? keyof N extends string ? { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends Record<string, unknown> ? keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N] extends string ? { [x in `${string & keyof N}.${string & keyof { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N]}`]: { [x in keyof N]: ISYNode.CommandsOf<N[x]>; }[string & keyof N][x extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? B extends `${infer A}.${infer B}` ? any : B : B : B : B : B : B : B : B : B : B : x]; } : never : never : never : never>, string>, parameters?: Record<string | symbol, string | number> | string | number): Promise<any> {
11
- throw new Error('Method not implemented.');
12
- }
13
-
14
- updateProperty(propertyName: keyof ISYNode.DriverMap<N>, value: string): Promise<any> {
15
- throw new Error('Method not implemented.');
16
- }
17
-
18
- handleControlTrigger(controlName: string): boolean {
19
- throw new Error('Method not implemented.');
20
- }
21
-
22
- _parentDevice: ISYDevice<T, any, any, any>;
23
- children: ISYNode<any, any, any, any>[];
24
- convertTo(value: any, uom: number);
25
- convertTo(value: any, uom: number, propertyName: keyof DriverMap<N>);
26
- convertTo(value: unknown, uom: unknown, propertyName?: unknown): any {
27
- throw new Error('Method not implemented.');
28
- }
29
- convertFrom(value: any, uom: number);
30
- convertFrom(value: any, uom: number, propertyName: keyof DriverMap<N>);
31
- convertFrom(value: unknown, uom: unknown, propertyName?: unknown): any {
32
- throw new Error('Method not implemented.');
33
- }
34
- addLink(isyScene: ISYScene): void {
35
- throw new Error('Method not implemented.');
36
- }
37
- addChild(childDevice: ISYNode<any, any, any, any>): void {
38
- throw new Error('Method not implemented.');
39
- }
40
-
41
- readProperties(): Promise<DriverState[]> {
42
- throw new Error('Method not implemented.');
43
- }
44
-
45
- refresh(): Promise<any> {
46
- throw new Error('Method not implemented.');
47
- }
48
- refreshNotes(): Promise<void> {
49
- throw new Error('Method not implemented.');
50
- }
51
- parseResult(node: { property: DriverState | DriverState[]; }): void {
52
- throw new Error('Method not implemented.');
53
- }
54
-
55
- handlePropertyChange(propertyName: keyof ISYNode.DriverMap<N> & string, value: any, uom: UnitOfMeasure, prec: number, formattedValue: string): boolean {
56
- throw new Error('Method not implemented.');
57
- }
58
-
59
- logger(arg0: string): unknown {
60
- throw new Error('Method not implemented.');
61
- }
62
- handleEvent(evt: any): unknown {
63
- throw new Error('Method not implemented.');
64
- }
65
- on(arg0: string, arg1: any): unknown {
66
- throw new Error('Method not implemented.');
67
- }
68
- name: any;
69
- drivers: Driver.ForAll<ISYNode.DriverMap<N>>;
70
- address: string;
71
- family: T;
72
- typeCode: string;
73
- deviceClass: any;
74
- parentAddress: any;
75
- category: number;
76
- subCategory: number;
77
- type: any;
78
- scenes: ISYScene[];
79
- hidden: boolean;
80
- enabled: boolean;
81
- productName: string;
82
- model: string;
83
- modelNumber: string;
84
- version: string;
85
- isDimmable: boolean;
86
- label: string;
87
-
88
- } */
89
- //# sourceMappingURL=ISYMultiNodeDevice.js.map