isy-nodejs 1.0.5-alpha.1 → 1.0.6-alpha.1

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 (135) hide show
  1. package/dist/esm/CodeGeneration/EnumFactory.js +1 -1
  2. package/dist/esm/CodeGeneration/EnumFactory.js.map +1 -1
  3. package/dist/esm/CodeGeneration/NodeClassFactory.js +5 -4
  4. package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
  5. package/dist/esm/Converters.js.map +1 -1
  6. package/dist/esm/Definitions/Global/Drivers.js +7 -5
  7. package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
  8. package/dist/esm/Devices/DynamicNode.js +19 -0
  9. package/dist/esm/Devices/DynamicNode.js.map +1 -0
  10. package/dist/esm/Devices/GenericNode.js +17 -0
  11. package/dist/esm/Devices/GenericNode.js.map +1 -0
  12. package/dist/esm/Devices/Insteon/InsteonDevice.js.map +1 -1
  13. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +86 -102
  14. package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +1 -1
  15. package/dist/esm/Devices/Insteon/InsteonLockDevice.js +4 -5
  16. package/dist/esm/Devices/Insteon/InsteonLockDevice.js.map +1 -1
  17. package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js +4 -5
  18. package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js.map +1 -1
  19. package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
  20. package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js +2 -24
  21. package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js.map +1 -1
  22. package/dist/esm/Devices/Insteon/index.js +3 -0
  23. package/dist/esm/Devices/Insteon/index.js.map +1 -1
  24. package/dist/esm/Devices/MapsTo.js +0 -11
  25. package/dist/esm/Devices/MapsTo.js.map +1 -1
  26. package/dist/esm/Devices/NodeFactory.js +1 -1
  27. package/dist/esm/Devices/NodeFactory.js.map +1 -1
  28. package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js +2 -2
  29. package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js.map +1 -1
  30. package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js +2 -2
  31. package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js.map +1 -1
  32. package/dist/esm/Devices/ZWave/ZWaveLockDevice.js +5 -5
  33. package/dist/esm/Devices/ZWave/ZWaveLockDevice.js.map +1 -1
  34. package/dist/esm/ISY.js +3 -3
  35. package/dist/esm/ISY.js.map +1 -1
  36. package/dist/esm/ISYConstants.js +0 -5
  37. package/dist/esm/ISYConstants.js.map +1 -1
  38. package/dist/esm/ISYDevice.js.map +1 -1
  39. package/dist/esm/ISYNode.js +12 -7
  40. package/dist/esm/ISYNode.js.map +1 -1
  41. package/dist/esm/ISYScene.js +3 -3
  42. package/dist/esm/ISYScene.js.map +1 -1
  43. package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js +1 -1
  44. package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js.map +1 -1
  45. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js +1 -0
  46. package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
  47. package/dist/esm/Matter/Bridge/Server.js +1 -1
  48. package/dist/esm/Matter/Bridge/Server.js.map +1 -1
  49. package/dist/esm/Matter/Mappings/Insteon.js +3 -5
  50. package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
  51. package/dist/esm/Matter/Mappings/MappingRegistry.js +26 -9
  52. package/dist/esm/Matter/Mappings/MappingRegistry.js.map +1 -1
  53. package/dist/esm/Utils.js.map +1 -1
  54. package/dist/esm/types/CodeGeneration/EnumFactory.d.ts +2 -2
  55. package/dist/esm/types/CodeGeneration/EnumFactory.d.ts.map +1 -1
  56. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts +11 -9
  57. package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
  58. package/dist/esm/types/Converters.d.ts +25 -16
  59. package/dist/esm/types/Converters.d.ts.map +1 -1
  60. package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
  61. package/dist/esm/types/Devices/DynamicNode.d.ts +11 -0
  62. package/dist/esm/types/Devices/DynamicNode.d.ts.map +1 -0
  63. package/dist/esm/types/Devices/EndpointFor.d.ts +3 -3
  64. package/dist/esm/types/Devices/GenericNode.d.ts +9 -0
  65. package/dist/esm/types/Devices/GenericNode.d.ts.map +1 -0
  66. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +10 -10
  67. package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
  68. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts +3 -4
  69. package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts.map +1 -1
  70. package/dist/esm/types/Devices/Insteon/InsteonMotionSensorDevice.d.ts +3 -3
  71. package/dist/esm/types/Devices/Insteon/InsteonMotionSensorDevice.d.ts.map +1 -1
  72. package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
  73. package/dist/esm/types/Devices/Insteon/InsteonThermostatDevice.d.ts +2 -9
  74. package/dist/esm/types/Devices/Insteon/InsteonThermostatDevice.d.ts.map +1 -1
  75. package/dist/esm/types/Devices/Insteon/index.d.ts +3 -0
  76. package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
  77. package/dist/esm/types/Devices/MapsTo.d.ts +1 -3
  78. package/dist/esm/types/Devices/MapsTo.d.ts.map +1 -1
  79. package/dist/esm/types/Devices/ZWave/ZWaveBaseDevice.d.ts +2 -2
  80. package/dist/esm/types/Devices/ZWave/ZWaveBaseDevice.d.ts.map +1 -1
  81. package/dist/esm/types/Devices/ZWave/ZWaveDimmerSwitchDevice.d.ts +2 -2
  82. package/dist/esm/types/Devices/ZWave/ZWaveDimmerSwitchDevice.d.ts.map +1 -1
  83. package/dist/esm/types/Devices/ZWave/ZWaveLockDevice.d.ts +2 -1
  84. package/dist/esm/types/Devices/ZWave/ZWaveLockDevice.d.ts.map +1 -1
  85. package/dist/esm/types/ISY.d.ts.map +1 -1
  86. package/dist/esm/types/ISYConstants.d.ts +0 -263
  87. package/dist/esm/types/ISYConstants.d.ts.map +1 -1
  88. package/dist/esm/types/ISYDevice.d.ts.map +1 -1
  89. package/dist/esm/types/ISYNode.d.ts +5 -5
  90. package/dist/esm/types/ISYNode.d.ts.map +1 -1
  91. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +4 -4
  92. package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
  93. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +2 -2
  94. package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
  95. package/dist/esm/types/Matter/Mappings/Insteon.d.ts.map +1 -1
  96. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts +35 -21
  97. package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts.map +1 -1
  98. package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
  99. package/dist/esm/types/Utils.d.ts +5 -5
  100. package/dist/esm/types/Utils.d.ts.map +1 -1
  101. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  102. package/package.json +3 -2
  103. package/src/CodeGeneration/EnumFactory.ts +1 -1
  104. package/src/CodeGeneration/NodeClassFactory.ts +7 -4
  105. package/src/Converters.ts +7 -4
  106. package/src/Definitions/Global/Drivers.ts +8 -6
  107. package/src/Devices/DynamicNode.ts +37 -0
  108. package/src/Devices/GenericNode.ts +31 -0
  109. package/src/Devices/Insteon/InsteonDevice.ts +0 -3
  110. package/src/Devices/Insteon/InsteonDeviceFactory.ts +93 -104
  111. package/src/Devices/Insteon/InsteonFanDevice.ts +1 -1
  112. package/src/Devices/Insteon/InsteonLockDevice.ts +5 -5
  113. package/src/Devices/Insteon/InsteonMotionSensorDevice.ts +8 -5
  114. package/src/Devices/Insteon/InsteonRelayDevice.ts +1 -8
  115. package/src/Devices/Insteon/InsteonThermostatDevice.ts +3 -20
  116. package/src/Devices/Insteon/index.ts +6 -0
  117. package/src/Devices/MapsTo.ts +0 -25
  118. package/src/Devices/NCD/Generated/Relay.ts +17 -14
  119. package/src/Devices/NodeFactory.ts +1 -1
  120. package/src/Devices/ZWave/ZWaveBaseDevice.ts +2 -1
  121. package/src/Devices/ZWave/ZWaveDimmerSwitchDevice.ts +2 -1
  122. package/src/Devices/ZWave/ZWaveLockDevice.ts +7 -6
  123. package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +14 -17
  124. package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +70 -87
  125. package/src/ISY.ts +3 -4
  126. package/src/ISYConstants.ts +0 -10
  127. package/src/ISYDevice.ts +0 -4
  128. package/src/ISYNode.ts +7 -2
  129. package/src/ISYScene.ts +3 -3
  130. package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +12 -30
  131. package/src/Matter/Behaviors/ISYClusterBehavior.ts +8 -7
  132. package/src/Matter/Bridge/Server.ts +1 -1
  133. package/src/Matter/Mappings/Insteon.ts +7 -7
  134. package/src/Matter/Mappings/MappingRegistry.ts +93 -35
  135. package/src/Utils.ts +21 -18
@@ -3,28 +3,17 @@ import { Category } from '../../Definitions/Global/Categories.js';
3
3
  import { parseTypeCode } from '../../Utils.js';
4
4
  import { NodeInfo } from '../../Model/NodeInfo.js';
5
5
  import * as Insteon from './index.js';
6
- import { InsteonDimmableDevice } from './InsteonDimmableDevice.js';
7
- import { InsteonDimmerOutletDevice } from './InsteonDimmerOutletDevice.js';
8
- import { InsteonDimmerSwitchDevice } from './InsteonDimmerSwitchDevice.js';
9
- import { InsteonDoorWindowSensorDevice } from './InsteonDoorWindowSensorDevice.js';
10
- import { InsteonFanDevice, InsteonFanMotorDevice } from './InsteonFanDevice.js';
11
- import { InsteonKeypadButtonDevice } from './InsteonKeypadDevice.js';
12
- import { InsteonKeypadDimmerDevice } from './InsteonKeypadDimmerDevice.js';
13
- import { InsteonKeypadRelayDevice } from './InsteonKeypadRelayDevice.js';
14
- import { InsteonLeakSensorDevice } from './InsteonLeakSensorDevice.js';
15
- import { InsteonMotionSensorDevice } from './InsteonMotionSensorDevice.js';
16
- import { InsteonOnOffOutletDevice } from './InsteonOnOffOutletDevice.js';
17
- import { InsteonRelayDevice } from './InsteonRelayDevice.js';
18
- import { InsteonRelaySwitchDevice } from './InsteonRelaySwitchDevice.js';
6
+
7
+
8
+
9
+
10
+
11
+
19
12
  import { ISYNode } from '../../ISYNode.js';
20
13
  import { DeviceDef, type CategoryDef, type FamilyDef } from '../DeviceMap.js';
21
14
  import { writeFileSync } from 'fs';
22
15
  import type { Constructor } from '../Constructor.js';
23
16
  import { Family } from '../../Definitions/index.js';
24
- import { InsteonBaseDevice } from './InsteonBaseDevice.js';
25
- import { InsteonSmokeSensorDevice } from './InsteonSmokeSensorDevice.js';
26
- import { InsteonThermostatDevice } from './InsteonThermostatDevice.js';
27
- import { InsteonLockDevice } from './InsteonLockDevice.js';
28
17
 
29
18
 
30
19
 
@@ -81,7 +70,7 @@ export class InsteonDeviceFactory {
81
70
  //insteonFamilyDef.categories.forEach(callbackfn)
82
71
  return this.getInsteonDeviceDetails(node);
83
72
 
84
- } else { return { name: "Unsupported Device", class: InsteonBaseDevice, unsupported: true }; }
73
+ } else { return { name: "Unsupported Device", class: Insteon.Base, unsupported: true }; }
85
74
  }
86
75
 
87
76
  public static getInsteonDeviceDetails(node: NodeInfo): { name: string; modelNumber?: string; version?: string; class: Constructor<ISYNode<Family.Insteon,any,any>>; unsupported?: true; } {
@@ -118,8 +107,8 @@ export class InsteonDeviceFactory {
118
107
  }
119
108
  if (deviceDetails) {
120
109
  deviceDetails.version = type.firmwareVersion;
121
- if (deviceDetails.class === InsteonOnOffOutletDevice && subAddress !== '1') {
122
- deviceDetails.class = InsteonRelayDevice;
110
+ if (deviceDetails.class === Insteon.OnOffOutlet && subAddress !== '1') {
111
+ deviceDetails.class = Insteon.RelayLampSwitch.Node;
123
112
  }
124
113
  }
125
114
  if (!deviceDetails) {
@@ -127,7 +116,7 @@ export class InsteonDeviceFactory {
127
116
  { name: 'Unsupported Insteon Device', class: null, unsupported: true };
128
117
  }
129
118
  if (!deviceDetails.class) {
130
- deviceDetails.class = InsteonBaseDevice;
119
+ deviceDetails.class = Insteon.Base;
131
120
  deviceDetails.unsupported = true;
132
121
  }
133
122
  return deviceDetails;
@@ -177,14 +166,14 @@ export class InsteonDeviceFactory {
177
166
  return retVal;
178
167
  }
179
168
 
180
- public static getIrrigationControlInfo(deviceCode: number): { name: string; modelNumber?: string; version?: string; class?: InsteonBaseDevice; } {
169
+ public static getIrrigationControlInfo(deviceCode: number): { name: string; modelNumber?: string; version?: string; class?: Insteon.Base; } {
181
170
  const c = String.fromCharCode(deviceCode);
182
171
  return c === String.fromCharCode(0) ? { name: 'EZRain/EZFlora Irrigation Controller' } : null;
183
172
  }
184
173
 
185
- public static getSwitchLightInfo(deviceCode: number, subAddress: string): { name: string; modelNumber?: string; version?: string; class?: typeof InsteonRelayDevice; } {
174
+ public static getSwitchLightInfo(deviceCode: number, subAddress: string): { name: string; modelNumber?: string; version?: string; class?: typeof Insteon.RelayLampSwitch.Node | typeof Insteon.KeypadRelay.Node | typeof Insteon.KeypadButton.Node | typeof Insteon.OnOffOutlet; } {
186
175
  const c = String.fromCharCode(deviceCode);
187
- let retVal = { name: 'Generic Insteon Relay', class: InsteonRelayDevice } as { name: string; modelNumber?: string; version?: string; class?: typeof InsteonRelayDevice; };
176
+ let retVal = { name: 'Generic Insteon Relay', class: Insteon.RelayLampSwitch.Node } as { name: string; modelNumber?: string; version?: string; class?: typeof Insteon.RelayLampSwitch.Node | typeof Insteon.KeypadRelay.Node | typeof Insteon.KeypadButton.Node | typeof Insteon.OnOffOutlet; };
188
177
  switch (c) {
189
178
  case String.fromCharCode(6):
190
179
  retVal = { name: 'ApplianceLinc - Outdoor Plugin Module', modelNumber: '2456S3E' };
@@ -196,10 +185,10 @@ export class InsteonDeviceFactory {
196
185
  retVal = { name: 'ApplianceLinc', modelNumber: '2456S3' };
197
186
  break;
198
187
  case '\n':
199
- retVal = { name: 'SwitchLinc Relay', modelNumber: '2476ST', class: InsteonRelaySwitchDevice };
188
+ retVal = { name: 'SwitchLinc Relay', modelNumber: '2476ST', class: Insteon.RelayLampSwitch.Node };
200
189
  break;
201
190
  case String.fromCharCode(11):
202
- retVal.class = InsteonRelaySwitchDevice;
191
+ retVal.class = Insteon.RelayLampSwitch.Node;
203
192
  retVal.name = 'Icon On/Off Switch';
204
193
  retVal.modelNumber = '2876S';
205
194
  break;
@@ -207,26 +196,26 @@ export class InsteonDeviceFactory {
207
196
  retVal = { name: 'Icon Appliance Adapter', modelNumber: '2856S3' };
208
197
  break;
209
198
  case '\r':
210
- retVal = { name: 'ToggleLinc Relay', modelNumber: '2466S', class: InsteonRelaySwitchDevice };
199
+ retVal = { name: 'ToggleLinc Relay', modelNumber: '2466S', class: Insteon.RelayLampSwitch.Node };
211
200
  break;
212
201
  case String.fromCharCode(26):
213
- retVal = { name: 'ToggleLinc Relay', modelNumber: '2466S', class: InsteonRelaySwitchDevice };
202
+ retVal = { name: 'ToggleLinc Relay', modelNumber: '2466S', class: Insteon.RelayLampSwitch.Node };
214
203
  break;
215
204
  case String.fromCharCode(14):
216
205
  break;
217
206
  case ')':
218
- retVal = { name: 'SwitchLinc Relay Timer', modelNumber: '2476ST', class: InsteonRelaySwitchDevice };
207
+ retVal = { name: 'SwitchLinc Relay Timer', modelNumber: '2476ST', class: Insteon.RelayLampSwitch.Node };
219
208
  break;
220
209
  case String.fromCharCode(17):
221
210
  retVal = {
222
- name: 'EZSwitch30', class: InsteonRelaySwitchDevice
211
+ name: 'EZSwitch30', class: Insteon.RelayLampSwitch.Node
223
212
  };
224
213
  break;
225
214
  case String.fromCharCode(15):
226
- retVal = { name: 'KeypadLinc Relay', modelNumber: '2486S/WH6', class: InsteonKeypadRelayDevice };
215
+ retVal = { name: 'KeypadLinc Relay', modelNumber: '2486S/WH6', class: Insteon.KeypadRelay.Node };
227
216
  break;
228
217
  case String.fromCharCode(5):
229
- retVal = { name: 'KeypadLinc Relay (8 buttons)', modelNumber: '2486S/WH8', class: InsteonKeypadRelayDevice };
218
+ retVal = { name: 'KeypadLinc Relay (8 buttons)', modelNumber: '2486S/WH8', class: Insteon.KeypadRelay.Node };
230
219
  break;
231
220
  case String.fromCharCode(16):
232
221
  retVal = { name: 'In-LineLinc Relay', modelNumber: '2475S' };
@@ -238,54 +227,54 @@ export class InsteonDeviceFactory {
238
227
  retVal = { name: 'Icon SwitchLinc Relay for Bell Canada', modelNumber: 'B2475S' };
239
228
  break;
240
229
  case '\b':
241
- retVal = { name: 'OutletLinc', modelNumber: '2473', class: InsteonOnOffOutletDevice };
230
+ retVal = { name: 'OutletLinc', modelNumber: '2473', class: Insteon.OnOffOutlet };
242
231
  break;
243
232
  case String.fromCharCode(18):
244
- retVal = { name: 'Companion Switch', modelNumber: '2474S', class: InsteonRelaySwitchDevice };
233
+ retVal = { name: 'Companion Switch', modelNumber: '2474S', class: Insteon.RelayLampSwitch.Node };
245
234
  break;
246
235
  case String.fromCharCode(21):
247
- retVal = { name: 'SwitchLinc Relay W/ Sense', modelNumber: '2476S', class: InsteonRelaySwitchDevice };
236
+ retVal = { name: 'SwitchLinc Relay W/ Sense', modelNumber: '2476S', class: Insteon.RelayLampSwitch.Node };
248
237
  break;
249
238
  case String.fromCharCode(23):
250
- retVal = { name: 'Icon Relay 3-Pin', modelNumber: '2856S3B', class: InsteonRelaySwitchDevice };
239
+ retVal = { name: 'Icon Relay 3-Pin', modelNumber: '2856S3B', class: Insteon.RelayLampSwitch.Node };
251
240
  break;
252
241
  case String.fromCharCode(22):
253
- retVal = { name: ' Icon Relay Switch', modelNumber: '2876SB', class: InsteonRelaySwitchDevice };
242
+ retVal = { name: ' Icon Relay Switch', modelNumber: '2876SB', class: Insteon.RelayLampSwitch.Node };
254
243
  break;
255
244
  case String.fromCharCode(24):
256
- retVal = { name: 'SwitchLinc Relay 220 V.', modelNumber: '2494S220', class: InsteonRelaySwitchDevice };
245
+ retVal = { name: 'SwitchLinc Relay 220 V.', modelNumber: '2494S220', class: Insteon.RelayLampSwitch.Node };
257
246
  break;
258
247
  case String.fromCharCode(25):
259
- retVal = { name: 'SwitchLinc Relay 220 V. w/Beeper', modelNumber: '2494S220', class: InsteonRelaySwitchDevice };
248
+ retVal = { name: 'SwitchLinc Relay 220 V. w/Beeper', modelNumber: '2494S220', class: Insteon.RelayLampSwitch.Node };
260
249
  break;
261
250
  case String.fromCharCode(28):
262
- retVal = { name: 'SwitchLinc Relay - Remote Control On/Off Switch', modelNumber: '2476S', class: InsteonRelaySwitchDevice };
251
+ retVal = { name: 'SwitchLinc Relay - Remote Control On/Off Switch', modelNumber: '2476S', class: Insteon.RelayLampSwitch.Node };
263
252
  break;
264
253
  case '%':
265
- retVal = { name: 'KeypadLinc Timer Relay (8 buttons)', modelNumber: '2484S/WH8', class: InsteonKeypadRelayDevice };
254
+ retVal = { name: 'KeypadLinc Timer Relay (8 buttons)', modelNumber: '2484S/WH8', class: Insteon.KeypadRelay.Node };
266
255
  break;
267
256
  case ' ':
268
- retVal = { name: 'KeypadLinc Relay', modelNumber: '2486S/WH6-SP', class: InsteonKeypadRelayDevice };
257
+ retVal = { name: 'KeypadLinc Relay', modelNumber: '2486S/WH6-SP', class: Insteon.KeypadRelay.Node };
269
258
  break;
270
259
  case '!':
271
- retVal = { name: 'OutletLinc', modelNumber: '2473-SP', class: InsteonOnOffOutletDevice };
260
+ retVal = { name: 'OutletLinc', modelNumber: '2473-SP', class: Insteon.OnOffOutlet };
272
261
  break;
273
262
  case '#':
274
- retVal = { name: 'SwitchLinc Relay - Remote Control On/Off Switch', modelNumber: '2476S-SP', class: InsteonRelaySwitchDevice };
263
+ retVal = { name: 'SwitchLinc Relay - Remote Control On/Off Switch', modelNumber: '2476S-SP', class: Insteon.RelayLampSwitch.Node };
275
264
  case '"':
276
- retVal = { name: 'In-LineLinc Relay', modelNumber: '2475S-SP', class: InsteonRelaySwitchDevice };
265
+ retVal = { name: 'In-LineLinc Relay', modelNumber: '2475S-SP', class: Insteon.RelayLampSwitch.Node };
277
266
  break;
278
267
  case String.fromCharCode(30):
279
- retVal = { name: 'KeypadLinc Relay', modelNumber: '2487S', class: InsteonKeypadRelayDevice };
268
+ retVal = { name: 'KeypadLinc Relay', modelNumber: '2487S', class: Insteon.KeypadRelay.Node };
280
269
  break;
281
270
  case ',':
282
- retVal = { name: 'Dual Band KeypadLinc Relay', modelNumber: '2487S', class: InsteonKeypadRelayDevice };
271
+ retVal = { name: 'Dual Band KeypadLinc Relay', modelNumber: '2487S', class: Insteon.KeypadRelay.Node };
283
272
  break;
284
273
  case String.fromCharCode(31):
285
- retVal = { name: 'Dual Band InlineLinc On/Off Switch', modelNumber: '2475SDB', class: InsteonRelaySwitchDevice };
274
+ retVal = { name: 'Dual Band InlineLinc On/Off Switch', modelNumber: '2475SDB', class: Insteon.RelayLampSwitch.Node };
286
275
  break;
287
276
  case '*':
288
- retVal = { name: 'Dual Band SwitchLinc On/Off Switch', modelNumber: '2477S', class: InsteonRelaySwitchDevice };
277
+ retVal = { name: 'Dual Band SwitchLinc On/Off Switch', modelNumber: '2477S', class: Insteon.RelayLampSwitch.Node };
289
278
  break;
290
279
  case '/':
291
280
  retVal = { name: 'Micro Module On/Off', modelNumber: '2443-222' };
@@ -300,16 +289,16 @@ export class InsteonDeviceFactory {
300
289
  retVal = { name: 'Micro Module On/Off', modelNumber: '2443-522' };
301
290
  break;
302
291
  case '.':
303
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-222', class: InsteonRelaySwitchDevice };
292
+ retVal = { name: 'Din Rail Relay', modelNumber: '2453-222', class: Insteon.RelayLampSwitch.Node };
304
293
  break;
305
294
  case '3':
306
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-422', class: InsteonRelaySwitchDevice };
295
+ retVal = { name: 'Din Rail Relay', modelNumber: '2453-422', class: Insteon.RelayLampSwitch.Node };
307
296
  break;
308
297
  case '4':
309
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-522', class: InsteonRelaySwitchDevice };
298
+ retVal = { name: 'Din Rail Relay', modelNumber: '2453-522', class: Insteon.RelayLampSwitch.Node };
310
299
  break;
311
300
  case '=':
312
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-522', class: InsteonRelaySwitchDevice };
301
+ retVal = { name: 'Din Rail Relay', modelNumber: '2453-522', class: Insteon.RelayLampSwitch.Node };
313
302
  break;
314
303
  case '7':
315
304
  retVal = { name: 'On/Off Module', modelNumber: '2635-222', };
@@ -332,16 +321,16 @@ export class InsteonDeviceFactory {
332
321
  case '6':
333
322
  retVal = { name: 'Plugin Relay', modelNumber: '2633-522' };
334
323
  }
335
- if (subAddress != '1' && retVal.class === InsteonKeypadRelayDevice) {
336
- retVal.class = InsteonKeypadButtonDevice as any;
324
+ if (subAddress != '1' && retVal.class === Insteon.KeypadRelay.Node) {
325
+ retVal.class = Insteon.KeypadButton.Node as any;
337
326
  }
338
- if (retVal.class === undefined) { retVal.class = InsteonRelayDevice; }
327
+ if (retVal.class === undefined) { retVal.class = Insteon.RelayLampSwitch.Node; }
339
328
  return retVal;
340
329
  }
341
330
 
342
331
  private static getDimLightInfo(deviceCode: number, subAddress: string, node: NodeInfo): { name: string; modelNumber?: string; version?: string; class?: Constructor<ISYNode<Family.Insteon,any,any>>; } {
343
332
  const c = String.fromCharCode(deviceCode);
344
- let retVal = { name: "Generic Insteon Dimmer", class: InsteonDimmableDevice } as {
333
+ let retVal = { name: "Generic Insteon Dimmer", class: Insteon.DimmerLamp.Node } as {
345
334
  name: string;
346
335
  modelNumber?: string;
347
336
  version?: string;
@@ -352,7 +341,7 @@ export class InsteonDeviceFactory {
352
341
  retVal = { name: 'LampLinc', modelNumber: '2456D3' };
353
342
  break;
354
343
  case String.fromCharCode(1):
355
- retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476D', class: InsteonDimmerSwitchDevice };
344
+ retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476D', class: Insteon.DimmerLampSwitch.Node };
356
345
  break;
357
346
  case String.fromCharCode(2):
358
347
  retVal = { name: 'In-LineLinc Dimmable', modelNumber: '2475D' };
@@ -361,7 +350,7 @@ export class InsteonDeviceFactory {
361
350
  retVal = { name: 'Icon Switch Dimmer', modelNumber: '2876D3' };
362
351
  break;
363
352
  case String.fromCharCode(4):
364
- retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476DH', class: InsteonDimmerSwitchDevice };
353
+ retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476DH', class: Insteon.DimmerLampSwitch.Node };
365
354
  break;
366
355
  case String.fromCharCode(6):
367
356
  retVal = { name: 'LampLinc 2 Pin', modelNumber: '2456D2' };
@@ -379,7 +368,7 @@ export class InsteonDeviceFactory {
379
368
  retVal = { name: 'SocketLinc', modelNumber: '2454D' };
380
369
  break;
381
370
  case '\f':
382
- retVal = { name: 'KeypadLinc Dimmer 8 Button', modelNumber: '2486DWH8', class: InsteonKeypadDimmerDevice };
371
+ retVal = { name: 'KeypadLinc Dimmer 8 Button', modelNumber: '2486DWH8', class: Insteon.KeypadDimmer.Node };
383
372
  break;
384
373
  case String.fromCharCode(19):
385
374
  retVal = { name: 'Icon SwitchLinc Dimmer for Bell Canada' };
@@ -387,23 +376,23 @@ export class InsteonDeviceFactory {
387
376
  case String.fromCharCode(23):
388
377
  break;
389
378
  case String.fromCharCode(31):
390
- retVal = { name: 'ToggleLinc Dimmer', modelNumber: '2466D', class: InsteonDimmerSwitchDevice };
379
+ retVal = { name: 'ToggleLinc Dimmer', modelNumber: '2466D', class: Insteon.DimmerLampSwitch.Node };
391
380
  break;
392
381
  case String.fromCharCode(24):
393
382
  retVal = { name: 'Companion Dimmer', modelNumber: '2474D' };
394
383
  break;
395
384
  case String.fromCharCode(26):
396
- retVal = { name: 'InlineLinc Dimmer', modelNumber: '2475D', class: InsteonDimmerSwitchDevice };
385
+ retVal = { name: 'InlineLinc Dimmer', modelNumber: '2475D', class: Insteon.DimmerLampSwitch.Node };
397
386
  break;
398
387
  case String.fromCharCode(5):
399
388
  retVal = { name: 'KeypadLinc Countdown Timer', modelNumber: '2484DWH8' };
400
389
  break;
401
390
  case String.fromCharCode(27):
402
- retVal = { name: 'KeypadLinc Dimmer 6 Buttons', modelNumber: '2486D', class: InsteonKeypadDimmerDevice };
391
+ retVal = { name: 'KeypadLinc Dimmer 6 Buttons', modelNumber: '2486D', class: Insteon.KeypadDimmer.Node };
403
392
  break;
404
393
  case String.fromCharCode(28):
405
394
 
406
- retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2486D', class: InsteonKeypadDimmerDevice };
395
+ retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2486D', class: Insteon.KeypadDimmer.Node };
407
396
  break;
408
397
  case String.fromCharCode(25):
409
398
  retVal = { name: 'SwitchLinc Dimmer W/Beeper', modelNumber: '2476D' };
@@ -415,31 +404,31 @@ export class InsteonDeviceFactory {
415
404
  retVal = { name: 'Icon Dimmer', modelNumber: '2876DB' };
416
405
  break;
417
406
  case String.fromCharCode(29):
418
- retVal = { name: 'SwitchLinc Dimmer 1000W', modelNumber: '2476DH', class: InsteonDimmerSwitchDevice };
407
+ retVal = { name: 'SwitchLinc Dimmer 1000W', modelNumber: '2476DH', class: Insteon.DimmerLampSwitch.Node };
419
408
  break;
420
409
  case '"':
421
410
  retVal = { name: 'LampLinc 2-Pin Dimmer', modelNumber: '2457D2X' };
422
411
  break;
423
412
  case 'U':
424
- retVal = { name: 'Dual Band Switchlinc Dimmer', modelNumber: '2432-622', class: InsteonDimmerSwitchDevice };
413
+ retVal = { name: 'Dual Band Switchlinc Dimmer', modelNumber: '2432-622', class: Insteon.DimmerLampSwitch.Node };
425
414
  break;
426
415
  case ' ':
427
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477D', class: InsteonDimmerSwitchDevice };
416
+ retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477D', class: Insteon.DimmerLampSwitch.Node };
428
417
  break;
429
418
  case '1':
430
- retVal = { name: 'Dual Band SwitchLinc Dimmer (240V)', modelNumber: '2478D', class: InsteonDimmerSwitchDevice };
419
+ retVal = { name: 'Dual Band SwitchLinc Dimmer (240V)', modelNumber: '2478D', class: Insteon.DimmerLampSwitch.Node };
431
420
  break;
432
421
  case '-':
433
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477DH', class: InsteonDimmerSwitchDevice };
422
+ retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477DH', class: Insteon.DimmerLampSwitch.Node };
434
423
  break;
435
424
  case '\'':
436
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477D-SP', class: InsteonDimmerSwitchDevice };
425
+ retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477D-SP', class: Insteon.DimmerLampSwitch.Node };
437
426
  break;
438
427
  case '+':
439
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477DH-SP', class: InsteonDimmerSwitchDevice };
428
+ retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477DH-SP', class: Insteon.DimmerLampSwitch.Node };
440
429
  break;
441
430
  case ')':
442
- retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2486D-SP', class: InsteonDimmerSwitchDevice };
431
+ retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2486D-SP', class: Insteon.DimmerLampSwitch.Node };
443
432
  break;
444
433
  case '*':
445
434
  retVal = { name: 'LampLinc 2-Pin Dimmer', modelNumber: '2457D2X-SP' };
@@ -458,16 +447,16 @@ export class InsteonDeviceFactory {
458
447
  break;
459
448
  case '.':
460
449
 
461
- retVal = { name: 'FanLinc', modelNumber: '2475F', class: InsteonFanDevice };
450
+ retVal = { name: 'FanLinc', modelNumber: '2475F', class: Insteon.Fan };
462
451
  break;
463
452
  case '!':
464
- retVal = { name: 'Dual Band OutletLinc Dimmer', modelNumber: '2472D', class: InsteonDimmerOutletDevice };
453
+ retVal = { name: 'Dual Band OutletLinc Dimmer', modelNumber: '2472D', class: Insteon.DimmerOutlet };
465
454
  break;
466
455
  case '0':
467
- retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476D', class: InsteonDimmerSwitchDevice };
456
+ retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476D', class: Insteon.DimmerLampSwitch.Node };
468
457
  break;
469
458
  case '$':
470
- retVal = { name: 'SwitchLinc Dimmer 2-Wire', modelNumber: '2474DWH', class: InsteonDimmerSwitchDevice };
459
+ retVal = { name: 'SwitchLinc Dimmer 2-Wire', modelNumber: '2474DWH', class: Insteon.DimmerLampSwitch.Node };
471
460
  break;
472
461
  case '2':
473
462
  retVal = { name: 'InLineLinc Dimmer', modelNumber: '2475DA1' };
@@ -503,13 +492,13 @@ export class InsteonDeviceFactory {
503
492
  retVal = { name: 'Din Rail Dimmer', modelNumber: '2452-522' };
504
493
  break;
505
494
  case 'B':
506
- retVal = { name: 'KeypadLinc Dimmer 5 Buttons', modelNumber: '2334-2', class: InsteonKeypadDimmerDevice };
495
+ retVal = { name: 'KeypadLinc Dimmer 5 Buttons', modelNumber: '2334-2', class: Insteon.KeypadDimmer.Node };
507
496
  break;
508
497
  case 'A':
509
- retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2334-2', class: InsteonKeypadDimmerDevice };
498
+ retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2334-2', class: Insteon.KeypadDimmer.Node };
510
499
  break;
511
500
  case 'V':
512
- retVal = { name: 'KeypadLinc Dimmer 6 Buttons', modelNumber: '2334-632', class: InsteonKeypadDimmerDevice };
501
+ retVal = { name: 'KeypadLinc Dimmer 6 Buttons', modelNumber: '2334-632', class: Insteon.KeypadDimmer.Node };
513
502
  break;
514
503
  case String.fromCharCode(11):
515
504
  retVal = { name: 'Plugin Dimmer', modelNumber: '2632-422' };
@@ -526,13 +515,13 @@ export class InsteonDeviceFactory {
526
515
  case String.fromCharCode(18):
527
516
  retVal = { name: 'Plugin Dimmer', modelNumber: '2632-522' };
528
517
  }
529
- if (subAddress !== '1' && retVal.class === InsteonKeypadDimmerDevice) {
530
- retVal.class = InsteonKeypadButtonDevice;
518
+ if (subAddress !== '1' && retVal.class === Insteon.KeypadDimmer.Node) {
519
+ retVal.class = Insteon.KeypadButton.Node;
531
520
  }
532
521
  if (node.nodeDefId === 'FanLincMotor') {
533
- retVal.class = InsteonFanMotorDevice;
522
+ retVal.class = Insteon.FanLincMotor.Node;
534
523
  }
535
- if (retVal?.class === undefined) { retVal.class = InsteonDimmableDevice; }
524
+ if (retVal?.class === undefined) { retVal.class = Insteon.DimmerLamp.Node; }
536
525
  return retVal;
537
526
  }
538
527
 
@@ -693,66 +682,66 @@ export class InsteonDeviceFactory {
693
682
  let retVal = null;
694
683
  switch (c) {
695
684
  case String.fromCharCode(1):
696
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-222', class: InsteonMotionSensorDevice };
685
+ retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-222', class: Insteon.MotionSensor };
697
686
  break;
698
687
  case String.fromCharCode(4):
699
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-422', class: InsteonMotionSensorDevice };
688
+ retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-422', class: Insteon.MotionSensor };
700
689
  break;
701
690
  case String.fromCharCode(5):
702
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-522', class: InsteonMotionSensorDevice };
691
+ retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-522', class: Insteon.MotionSensor };
703
692
  break;
704
693
  case String.fromCharCode(3):
705
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2420M-SP', class: InsteonMotionSensorDevice };
694
+ retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2420M-SP', class: Insteon.MotionSensor };
706
695
  break;
707
696
  case String.fromCharCode(2):
708
- retVal = { name: 'TriggerLinc', modelNumber: '2421', class: InsteonDoorWindowSensorDevice };
697
+ retVal = { name: 'TriggerLinc', modelNumber: '2421', class: Insteon.DoorWindowSensor };
709
698
  break;
710
699
  case '\t':
711
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-222', class: InsteonDoorWindowSensorDevice };
700
+ retVal = { name: 'Open/Close Sensor', modelNumber: '2843-222', class: Insteon.DoorWindowSensor };
712
701
  break;
713
702
  case String.fromCharCode(6):
714
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-422', class: InsteonDoorWindowSensorDevice };
703
+ retVal = { name: 'Open/Close Sensor', modelNumber: '2843-422', class: Insteon.DoorWindowSensor };
715
704
  break;
716
705
  case String.fromCharCode(7):
717
706
  break;
718
707
  case String.fromCharCode(25):
719
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-522', class: InsteonDoorWindowSensorDevice };
708
+ retVal = { name: 'Open/Close Sensor', modelNumber: '2843-522', class: Insteon.DoorWindowSensor };
720
709
  break;
721
710
  case '\b':
722
- retVal = { name: 'Leak Sensor', modelNumber: '2852-222', class: InsteonLeakSensorDevice };
711
+ retVal = { name: 'Leak Sensor', modelNumber: '2852-222', class: Insteon.LeakSensor };
723
712
  break;
724
713
  case '\r':
725
- retVal = { name: 'Leak Sensor', modelNumber: '2852-422', class: InsteonLeakSensorDevice };
714
+ retVal = { name: 'Leak Sensor', modelNumber: '2852-422', class: Insteon.LeakSensor };
726
715
  break;
727
716
  case String.fromCharCode(14):
728
- retVal = { name: 'Leak Sensor', modelNumber: '2852-522', class: InsteonLeakSensorDevice };
717
+ retVal = { name: 'Leak Sensor', modelNumber: '2852-522', class: Insteon.LeakSensor };
729
718
  break;
730
719
  case String.fromCharCode(26):
731
- retVal = { name: 'Leak Sensor', modelNumber: '2852-522', class: InsteonLeakSensorDevice };
720
+ retVal = { name: 'Leak Sensor', modelNumber: '2852-522', class: Insteon.LeakSensor };
732
721
  break;
733
722
  case '\n':
734
- retVal = { name: 'INSTEON Smoke Sensor', modelNumber: '', class: InsteonSmokeSensorDevice };
723
+ retVal = { name: 'INSTEON Smoke Sensor', modelNumber: '', class: Insteon.SmokeSensor };
735
724
  break;
736
725
  case String.fromCharCode(17):
737
- retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-222', class: InsteonDoorWindowSensorDevice };
726
+ retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-222', class: Insteon.DoorWindowSensor };
738
727
  break;
739
728
  case String.fromCharCode(20):
740
- retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-422', class: InsteonDoorWindowSensorDevice };
729
+ retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-422', class: Insteon.DoorWindowSensor };
741
730
  break;
742
731
  case String.fromCharCode(21):
743
732
  break;
744
733
  case String.fromCharCode(27):
745
- retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-522', class: InsteonDoorWindowSensorDevice };
734
+ retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-522', class: Insteon.DoorWindowSensor };
746
735
  break;
747
736
  case String.fromCharCode(22):
748
- retVal = { name: 'Insteon Motion Sensor II', modelNumber: '2844-222', class: InsteonMotionSensorDevice };
737
+ retVal = { name: 'Insteon Motion Sensor II', modelNumber: '2844-222', class: Insteon.MotionSensor };
749
738
  break;
750
739
  case String.fromCharCode(24):
751
- retVal = { name: 'Insteon Motion Sensor II', modelNumber: '2844-522', class: InsteonMotionSensorDevice };
740
+ retVal = { name: 'Insteon Motion Sensor II', modelNumber: '2844-522', class: Insteon.MotionSensor };
752
741
  }
753
742
  if ((node.nodeDefId === 'BinaryAlarm' || node.nodeDefId === 'BinaryAlarm_ADV') && subAddress !== '1') {
754
743
  if (retVal) {
755
- retVal.class = InsteonBaseDevice;
744
+ retVal.class = Insteon.Base;
756
745
  }
757
746
  }
758
747
  return retVal;
@@ -832,13 +821,13 @@ export class InsteonDeviceFactory {
832
821
  case String.fromCharCode(14):
833
822
  retVal = { name: 'All-In-One INSTEON Thermostat Adapter', modelNumber: '2491T' };
834
823
  }
835
- if (retVal?.class === undefined) { retVal.class = InsteonThermostatDevice; }
824
+ if (retVal?.class === undefined) { retVal.class = Insteon.Thermostat.Node; }
836
825
  return retVal;
837
826
  }
838
827
 
839
828
  private static getAccessControlInfo(deviceCode: number): { name: string; modelNumber?: string; version?: string; class?: Constructor<ISYNode<any,any,any,any>>; } {
840
829
  const c = String.fromCharCode(deviceCode);
841
- const retVal = { name: '', modelNumber: '', class: InsteonLockDevice };
830
+ const retVal = { name: '', modelNumber: '', class: Insteon.Lock };
842
831
  switch (c) {
843
832
  case String.fromCharCode(6):
844
833
  retVal.name = 'MorningLinc';
@@ -1,6 +1,6 @@
1
1
  import { Family } from '../../Definitions/Global/Families.js';
2
2
  import { ISY } from '../../ISY.js';
3
- import { States } from '../../ISYConstants.js';
3
+
4
4
 
5
5
  import 'winston';
6
6
  import { Command, Driver, UnitOfMeasure } from '../../Definitions/index.js';
@@ -1,5 +1,5 @@
1
1
  import { ISY } from '../../ISY.js';
2
- import { Commands, States } from '../../ISYConstants.js';
2
+
3
3
 
4
4
  import { InsteonBaseDevice } from './InsteonBaseDevice.js';
5
5
  import 'winston';
@@ -23,18 +23,18 @@ export class InsteonLockDevice extends InsteonBaseDevice {
23
23
 
24
24
  public async sendNonSecureLockCommand(lockState: any) {
25
25
  if (lockState) {
26
- return this.isy.sendNodeCommand(this, Commands.Lock.Lock);
26
+ return this.isy.sendNodeCommand(this, 'DON');
27
27
  }
28
28
  else {
29
- return this.isy.sendNodeCommand(this, Commands.Lock.Unlock);
29
+ return this.isy.sendNodeCommand(this, 'DOF');
30
30
  }
31
31
  }
32
32
  public async sendSecureLockCommand(lockState: any) {
33
33
  if (lockState) {
34
- return this.isy.sendNodeCommand(this, Commands.On, States.SecureLock.Secured);
34
+ return this.isy.sendNodeCommand(this, 'DON',1);
35
35
  }
36
36
  else {
37
- return this.isy.sendNodeCommand(this, Commands.On, States.SecureLock.NotSecured);
37
+ return this.isy.sendNodeCommand(this, 'DOF', 0);
38
38
  }
39
39
  }
40
40
  }
@@ -1,19 +1,22 @@
1
1
  import type { NodeInfo } from '../../Model/NodeInfo.js';
2
2
  import { ISY } from '../../ISY.js';
3
- import { Commands } from '../../ISYConstants.js';
3
+
4
4
  import { InsteonBaseDevice } from './InsteonBaseDevice.js';
5
5
  import 'winston';
6
+ import { Pir2844 } from './Generated/Pir2844.js';
7
+ import type { Pir2844c } from './Generated/Pir2844c.js';
8
+ import { Pir2844OnOff } from './Generated/Pir2844OnOff.js';
6
9
 
7
- export class InsteonMotionSensorDevice extends InsteonBaseDevice {
10
+ export class InsteonMotionSensorDevice extends Pir2844OnOff.Node {
8
11
  private _isMotionDetected: boolean;
9
12
  constructor (isy: ISY, deviceNode: NodeInfo) {
10
13
  super(isy, deviceNode);
11
14
  this._isMotionDetected = false;
12
15
  }
13
16
 
14
- public override handleControlTrigger(controlName: string) {
17
+ public override handleControlTrigger(controlName: keyof Pir2844OnOff.Commands) {
15
18
 
16
- if (controlName === Commands.On) {
19
+ if (controlName === 'DON') {
17
20
  this.logger('Motion detected.');
18
21
  this._isMotionDetected = true;
19
22
  this.emit('controlTriggered',controlName);
@@ -27,7 +30,7 @@ export class InsteonMotionSensorDevice extends InsteonBaseDevice {
27
30
  return true;
28
31
  }
29
32
 
30
- else if (controlName === Commands.Off) {
33
+ else if (controlName === 'DOF') {
31
34
  this._isMotionDetected = false;
32
35
  this.logger('No motion detected.');
33
36
  this.emit('controlTriggered',controlName);
@@ -1,19 +1,12 @@
1
- import { ISY } from '../../ISY.js';
1
+ import { ISY } from '../../ISY.js';
2
2
 
3
3
  import { NodeInfo } from '../../Model/NodeInfo.js';
4
4
 
5
5
 
6
- import { InsteonBaseDevice } from './InsteonBaseDevice.js';
7
6
 
8
- import type { OnOffBehavior } from '@project-chip/matter.js/behaviors/on-off';
9
7
  import 'winston';
10
8
 
11
- import type { Command } from '../../Definitions/Global/Commands.js';
12
- import { Driver, DriverType } from '../../Definitions/Global/Drivers.js';
13
- import { UnitOfMeasure } from '../../Definitions/index.js';
14
- import { Properties } from '../../ISYConstants.js';
15
9
 
16
- import type { DriverState } from '../../Model/DriverState.js';
17
10
  import { RelayLampSwitch } from './Generated/RelayLampSwitch.js';
18
11
 
19
12
  export class InsteonRelayDevice extends RelayLampSwitch.Node /*InsteonBaseDevice<Driver.Signatures<'ST' | 'OL' | 'RR' | 'ERR'>, Command.Signatures<'DON' | 'DOF'>>*/ {
@@ -1,35 +1,18 @@
1
1
  import { ISY } from '../../ISY.js';
2
- import { Props } from '../../ISYConstants.js';
2
+
3
3
  import { NodeInfo } from '../../Model/NodeInfo.js';
4
4
  import { InsteonBaseDevice } from './InsteonBaseDevice.js';
5
5
  import { Driver } from '../../Definitions/Global/Drivers.js';
6
6
  import 'winston';
7
+ import { Thermostat } from './Generated/Thermostat.js';
7
8
 
8
- export class InsteonThermostatDevice extends InsteonBaseDevice< Driver.Signatures<'CLISPH' | 'CLISPC' | 'CLIMD' | 'CLIHUM' | 'CLIFS' | 'CLIFSH' | 'CLIFC' | 'CLITEMP' | 'CLISMD' | 'CLISFAN' | 'CLISMD' | 'CLISFAN' | 'CLISMD' | 'CLISFAN' | 'CLISMD' | 'CLISFAN'>> {
9
+ export class InsteonThermostatDevice extends Thermostat.Node {
9
10
  constructor (isy: ISY, deviceNode: NodeInfo) {
10
11
  super(isy, deviceNode);
11
12
  }
12
13
  // get currentTemperature() {
13
14
  // return this.drivers.ST;
14
15
  // }
15
- get coolSetPoint() {
16
- return this.drivers[Props.Climate.CoolSetPoint];
17
- }
18
- get heatSetPoint() {
19
- return this.drivers[Props.Climate.HeatSetPoint];
20
- }
21
- get mode() {
22
- return this.drivers[Props.Climate.Mode];
23
- }
24
- get operatingMode() {
25
- return this.drivers[Props.Climate.OperatingMode];
26
- }
27
- get fanMode() {
28
- return this.drivers[Props.Climate.FanMode];
29
- }
30
- get humidity() {
31
- return this.drivers[Props.Climate.Humidity];
32
- }
33
16
  // public async updateCoolSetPoint(value: string) {
34
17
  // return this.updateProperty(DriverType.CoolSetpoint, value);
35
18
  // }
@@ -5,10 +5,16 @@
5
5
 
6
6
  export {InsteonBaseDevice as Base} from "./InsteonBaseDevice.js";
7
7
 
8
+ export {InsteonOnOffOutletDevice as OnOffOutlet} from "./InsteonOnOffOutletDevice.js";
9
+
8
10
  export * from './Generated/index.js';
9
11
 
10
12
  export {InsteonDimmableDevice as Dimmable} from "./InsteonDimmableDevice.js";
11
13
 
14
+ export {InsteonFanDevice as Fan} from "./InsteonFanDevice.js";
15
+
16
+ export {InsteonLockDevice as Lock} from "./InsteonLockDevice.js";
17
+
12
18
  export {InsteonRelayDevice as Relay} from "./InsteonRelayDevice.js";
13
19
 
14
20
  export {InsteonLeakSensorDevice as LeakSensor} from "./InsteonLeakSensorDevice.js";