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
@@ -1,875 +0,0 @@
1
- import { Category } from '../../Definitions/Global/Categories.js';
2
- import { Family, InsteonBaseDevice, InsteonLockDevice, InsteonSmokeSensorDevice, InsteonThermostatDevice } from '../../ISY.js';
3
- import { parseTypeCode } from '../../Utils.js';
4
- import { InsteonDimmableDevice } from './InsteonDimmableDevice.js';
5
- import { InsteonDimmerOutletDevice } from './InsteonDimmerOutletDevice.js';
6
- import { InsteonDimmerSwitchDevice } from './InsteonDimmerSwitchDevice.js';
7
- import { InsteonDoorWindowSensorDevice } from './InsteonDoorWindowSensorDevice.js';
8
- import { InsteonFanDevice, InsteonFanMotorDevice } from './InsteonFanDevice.js';
9
- import { InsteonKeypadButtonDevice } from './InsteonKeypadDevice.js';
10
- import { InsteonKeypadDimmerDevice } from './InsteonKeypadDimmerDevice.js';
11
- import { InsteonKeypadRelayDevice } from './InsteonKeypadRelayDevice.js';
12
- import { InsteonLeakSensorDevice } from './InsteonLeakSensorDevice.js';
13
- import { InsteonMotionSensorDevice } from './InsteonMotionSensorDevice.js';
14
- import { InsteonOnOffOutletDevice } from './InsteonOnOffOutletDevice.js';
15
- import { InsteonRelayDevice } from './InsteonRelayDevice.js';
16
- import { InsteonRelaySwitchDevice } from './InsteonRelaySwitchDevice.js';
17
- export class InsteonDeviceFactory {
18
- // public static buildDeviceMap() {
19
- // var fams = new Map<Family, FamilyDef<Family>>();
20
- // s.forEach((item) => {
21
- // var id = item.id as Family;
22
- // fams.set(id, { id: item.id, description: item.description, name: item.name, categories: new Map<string, CategoryDef<typeof id>>() });
23
- // var famDef = fams[id] as FamilyDef<Family>;
24
- // item.categories.forEach((element) => {
25
- // var catDef = { id: element.id, name: element.name, devices: new Map<string, DeviceDef<Family>> };
26
- // element.devices.forEach(
27
- // device => {
28
- // const r = this.getDeviceDetails({
29
- // family: item.id,
30
- // type: `${element.id}.${device.id}.0.0`,
31
- // address: '0 0 0 1',
32
- // nodeDefId: '',
33
- // enabled: undefined,
34
- // pnode: undefined,
35
- // name: '',
36
- // startDelay: 0,
37
- // hint: '',
38
- // endDelay: 0,
39
- // wattage: 0,
40
- // dcPeriod: 0
41
- // });
42
- // if (!r.unsupported) {
43
- // device.name = r.name;
44
- // device.modelNumber = r.modelNumber;
45
- // device.class = r.class.name;
46
- // }
47
- // catDef.devices.set(`${device.id}`, { id: device.id, modelNumber: device.modelNumber, name: device.name, class: r.class });
48
- // }
49
- // );
50
- // famDef.categories.set(element.name, catDef);
51
- // element.devices = element.devices.sort((a, b) => a.id - b.id);
52
- // });
53
- // }
54
- // );
55
- // writeFileSync("DeviceMapClean.json", JSON.stringify(fams));
56
- // }
57
- static getDeviceDetails(node) {
58
- const family = Number(node.family ?? '1');
59
- //let insteonFamilyDef = s[0] as FamilyDef<Family.Insteon>;
60
- if ((family ?? Family.Insteon) === Family.Insteon) {
61
- //insteonFamilyDef.categories.forEach(callbackfn)
62
- return this.getInsteonDeviceDetails(node);
63
- }
64
- else {
65
- return { name: "Unsupported Device", class: InsteonBaseDevice, unsupported: true };
66
- }
67
- }
68
- static getInsteonDeviceDetails(node) {
69
- const type = parseTypeCode(node.type);
70
- const subAddress = node.address.split(' ').pop();
71
- // const typeArray = typeCode.split('.');
72
- const category = type.category;
73
- const deviceCode = type.deviceCode;
74
- let deviceDetails = null;
75
- if (category === Category.Controller) {
76
- deviceDetails = InsteonDeviceFactory.getControllerInfo(deviceCode);
77
- }
78
- else if (category === 1) {
79
- deviceDetails = InsteonDeviceFactory.getDimLightInfo(deviceCode, subAddress, node);
80
- }
81
- else if (category === 2) {
82
- deviceDetails = InsteonDeviceFactory.getSwitchLightInfo(deviceCode, subAddress);
83
- }
84
- else if (category === 3) {
85
- deviceDetails = InsteonDeviceFactory.getNetworkBridgeInfo(deviceCode);
86
- }
87
- else if (category === 5) {
88
- deviceDetails = InsteonDeviceFactory.getClimateControlInfo(deviceCode);
89
- }
90
- else if (category === 4) {
91
- deviceDetails = InsteonDeviceFactory.getIrrigationControlInfo(deviceCode);
92
- }
93
- else if (category === 7) {
94
- deviceDetails = InsteonDeviceFactory.getIOControlInfo(deviceCode);
95
- }
96
- else if (category === 15) {
97
- deviceDetails = InsteonDeviceFactory.getAccessControlInfo(deviceCode);
98
- }
99
- else if (category === 16) {
100
- deviceDetails = InsteonDeviceFactory.getSHS(deviceCode, subAddress, node);
101
- }
102
- else if (category === 9) {
103
- deviceDetails = InsteonDeviceFactory.getEnergyManagement(deviceCode);
104
- }
105
- else if (category === 14) {
106
- deviceDetails = InsteonDeviceFactory.getWindowsCovering(deviceCode);
107
- }
108
- if (deviceDetails) {
109
- deviceDetails.version = type.firmwareVersion;
110
- if (deviceDetails.class === InsteonOnOffOutletDevice && subAddress !== '1') {
111
- deviceDetails.class = InsteonRelayDevice;
112
- }
113
- }
114
- if (!deviceDetails) {
115
- deviceDetails =
116
- { name: 'Unsupported Insteon Device', class: null, unsupported: true };
117
- }
118
- if (!deviceDetails.class) {
119
- deviceDetails.class = InsteonBaseDevice;
120
- deviceDetails.unsupported = true;
121
- }
122
- return deviceDetails;
123
- // deviceDetails = deviceDetails + version.toString(16);
124
- }
125
- static getNetworkBridgeInfo(deviceCode) {
126
- const c = String.fromCharCode(deviceCode);
127
- let retVal = null;
128
- switch (c) {
129
- case String.fromCharCode(1):
130
- retVal = { name: 'PowerLinc Serial', modelNumber: '2414S' };
131
- break;
132
- case String.fromCharCode(2):
133
- retVal = { name: 'PowerLinc USB', modelNumber: '2414U' };
134
- break;
135
- case String.fromCharCode(3):
136
- retVal = { name: 'Icon PowerLinc Serial', modelNumber: '2814S' };
137
- break;
138
- case String.fromCharCode(4):
139
- retVal = { name: 'Icon PowerLinc USB', modelNumber: '2814U' };
140
- break;
141
- case String.fromCharCode(5):
142
- retVal = { name: 'PowerLine Modem', modelNumber: '2412S' };
143
- break;
144
- case String.fromCharCode(6):
145
- retVal = { name: 'IRLinc Receiver', modelNumber: '2411R' };
146
- break;
147
- case String.fromCharCode(7):
148
- retVal = { name: 'IRLinc Transmitter', modelNumber: '2411T' };
149
- break;
150
- case String.fromCharCode(11):
151
- retVal = { name: 'PowerLine Modem USB', modelNumber: '2412U' };
152
- break;
153
- case '\r':
154
- retVal = { name: 'EZX10-RF' };
155
- break;
156
- case String.fromCharCode(15):
157
- retVal = {
158
- name: 'EZX10-IR'
159
- };
160
- break;
161
- case 'O':
162
- retVal = { name: 'PowerLine Modem', modelNumber: '12237DB' };
163
- }
164
- return retVal;
165
- }
166
- static getIrrigationControlInfo(deviceCode) {
167
- const c = String.fromCharCode(deviceCode);
168
- return c === String.fromCharCode(0) ? { name: 'EZRain/EZFlora Irrigation Controller' } : null;
169
- }
170
- static getSwitchLightInfo(deviceCode, subAddress) {
171
- const c = String.fromCharCode(deviceCode);
172
- let retVal = { name: 'Generic Insteon Relay', class: InsteonRelayDevice };
173
- switch (c) {
174
- case String.fromCharCode(6):
175
- retVal = { name: 'ApplianceLinc - Outdoor Plugin Module', modelNumber: '2456S3E' };
176
- break;
177
- case String.fromCharCode(7):
178
- retVal = { name: 'TimerLinc', modelNumber: '2456S3T' };
179
- break;
180
- case '\t':
181
- retVal = { name: 'ApplianceLinc', modelNumber: '2456S3' };
182
- break;
183
- case '\n':
184
- retVal = { name: 'SwitchLinc Relay', modelNumber: '2476ST', class: InsteonRelaySwitchDevice };
185
- break;
186
- case String.fromCharCode(11):
187
- retVal.class = InsteonRelaySwitchDevice;
188
- retVal.name = 'Icon On/Off Switch';
189
- retVal.modelNumber = '2876S';
190
- break;
191
- case '\f':
192
- retVal = { name: 'Icon Appliance Adapter', modelNumber: '2856S3' };
193
- break;
194
- case '\r':
195
- retVal = { name: 'ToggleLinc Relay', modelNumber: '2466S', class: InsteonRelaySwitchDevice };
196
- break;
197
- case String.fromCharCode(26):
198
- retVal = { name: 'ToggleLinc Relay', modelNumber: '2466S', class: InsteonRelaySwitchDevice };
199
- break;
200
- case String.fromCharCode(14):
201
- break;
202
- case ')':
203
- retVal = { name: 'SwitchLinc Relay Timer', modelNumber: '2476ST', class: InsteonRelaySwitchDevice };
204
- break;
205
- case String.fromCharCode(17):
206
- retVal = {
207
- name: 'EZSwitch30', class: InsteonRelaySwitchDevice
208
- };
209
- break;
210
- case String.fromCharCode(15):
211
- retVal = { name: 'KeypadLinc Relay', modelNumber: '2486S/WH6', class: InsteonKeypadRelayDevice };
212
- break;
213
- case String.fromCharCode(5):
214
- retVal = { name: 'KeypadLinc Relay (8 buttons)', modelNumber: '2486S/WH8', class: InsteonKeypadRelayDevice };
215
- break;
216
- case String.fromCharCode(16):
217
- retVal = { name: 'In-LineLinc Relay', modelNumber: '2475S' };
218
- break;
219
- case String.fromCharCode(20):
220
- retVal = { name: 'In-LineLinc Relay W/ Sense', modelNumber: 'B2475S' };
221
- break;
222
- case String.fromCharCode(19):
223
- retVal = { name: 'Icon SwitchLinc Relay for Bell Canada', modelNumber: 'B2475S' };
224
- break;
225
- case '\b':
226
- retVal = { name: 'OutletLinc', modelNumber: '2473', class: InsteonOnOffOutletDevice };
227
- break;
228
- case String.fromCharCode(18):
229
- retVal = { name: 'Companion Switch', modelNumber: '2474S', class: InsteonRelaySwitchDevice };
230
- break;
231
- case String.fromCharCode(21):
232
- retVal = { name: 'SwitchLinc Relay W/ Sense', modelNumber: '2476S', class: InsteonRelaySwitchDevice };
233
- break;
234
- case String.fromCharCode(23):
235
- retVal = { name: 'Icon Relay 3-Pin', modelNumber: '2856S3B', class: InsteonRelaySwitchDevice };
236
- break;
237
- case String.fromCharCode(22):
238
- retVal = { name: ' Icon Relay Switch', modelNumber: '2876SB', class: InsteonRelaySwitchDevice };
239
- break;
240
- case String.fromCharCode(24):
241
- retVal = { name: 'SwitchLinc Relay 220 V.', modelNumber: '2494S220', class: InsteonRelaySwitchDevice };
242
- break;
243
- case String.fromCharCode(25):
244
- retVal = { name: 'SwitchLinc Relay 220 V. w/Beeper', modelNumber: '2494S220', class: InsteonRelaySwitchDevice };
245
- break;
246
- case String.fromCharCode(28):
247
- retVal = { name: 'SwitchLinc Relay - Remote Control On/Off Switch', modelNumber: '2476S', class: InsteonRelaySwitchDevice };
248
- break;
249
- case '%':
250
- retVal = { name: 'KeypadLinc Timer Relay (8 buttons)', modelNumber: '2484S/WH8', class: InsteonKeypadRelayDevice };
251
- break;
252
- case ' ':
253
- retVal = { name: 'KeypadLinc Relay', modelNumber: '2486S/WH6-SP', class: InsteonKeypadRelayDevice };
254
- break;
255
- case '!':
256
- retVal = { name: 'OutletLinc', modelNumber: '2473-SP', class: InsteonOnOffOutletDevice };
257
- break;
258
- case '#':
259
- retVal = { name: 'SwitchLinc Relay - Remote Control On/Off Switch', modelNumber: '2476S-SP', class: InsteonRelaySwitchDevice };
260
- case '"':
261
- retVal = { name: 'In-LineLinc Relay', modelNumber: '2475S-SP', class: InsteonRelaySwitchDevice };
262
- break;
263
- case String.fromCharCode(30):
264
- retVal = { name: 'KeypadLinc Relay', modelNumber: '2487S', class: InsteonKeypadRelayDevice };
265
- break;
266
- case ',':
267
- retVal = { name: 'Dual Band KeypadLinc Relay', modelNumber: '2487S', class: InsteonKeypadRelayDevice };
268
- break;
269
- case String.fromCharCode(31):
270
- retVal = { name: 'Dual Band InlineLinc On/Off Switch', modelNumber: '2475SDB', class: InsteonRelaySwitchDevice };
271
- break;
272
- case '*':
273
- retVal = { name: 'Dual Band SwitchLinc On/Off Switch', modelNumber: '2477S', class: InsteonRelaySwitchDevice };
274
- break;
275
- case '/':
276
- retVal = { name: 'Micro Module On/Off', modelNumber: '2443-222' };
277
- break;
278
- case '1':
279
- retVal = { name: 'Micro Module On/Off', modelNumber: '2443-422' };
280
- break;
281
- case '2':
282
- retVal = { name: 'Micro Module On/Off', modelNumber: '2443-422' };
283
- break;
284
- case '<':
285
- retVal = { name: 'Micro Module On/Off', modelNumber: '2443-522' };
286
- break;
287
- case '.':
288
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-222', class: InsteonRelaySwitchDevice };
289
- break;
290
- case '3':
291
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-422', class: InsteonRelaySwitchDevice };
292
- break;
293
- case '4':
294
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-522', class: InsteonRelaySwitchDevice };
295
- break;
296
- case '=':
297
- retVal = { name: 'Din Rail Relay', modelNumber: '2453-522', class: InsteonRelaySwitchDevice };
298
- break;
299
- case '7':
300
- retVal = { name: 'On/Off Module', modelNumber: '2635-222', };
301
- break;
302
- case '8':
303
- retVal = { name: 'On/Off Outdoor Module', modelNumber: '2634-222' };
304
- break;
305
- case '9':
306
- retVal = { name: 'On/Off Outlet', modelNumber: '2663-222' };
307
- break;
308
- case '-':
309
- retVal = { name: 'Plugin Relay', modelNumber: '2633-422' };
310
- break;
311
- case '0':
312
- retVal = { name: 'Plugin Relay', modelNumber: '2633-432' };
313
- break;
314
- case '5':
315
- retVal = { name: 'Plugin Relay', modelNumber: '2633-442' };
316
- break;
317
- case '6':
318
- retVal = { name: 'Plugin Relay', modelNumber: '2633-522' };
319
- }
320
- if (subAddress != '1' && retVal.class === InsteonKeypadRelayDevice) {
321
- retVal.class = InsteonKeypadButtonDevice;
322
- }
323
- if (retVal.class === undefined) {
324
- retVal.class = InsteonRelayDevice;
325
- }
326
- return retVal;
327
- }
328
- static getDimLightInfo(deviceCode, subAddress, node) {
329
- const c = String.fromCharCode(deviceCode);
330
- let retVal = { name: "Generic Insteon Dimmer", class: InsteonDimmableDevice };
331
- switch (c) {
332
- case String.fromCharCode(0):
333
- retVal = { name: 'LampLinc', modelNumber: '2456D3' };
334
- break;
335
- case String.fromCharCode(1):
336
- retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476D', class: InsteonDimmerSwitchDevice };
337
- break;
338
- case String.fromCharCode(2):
339
- retVal = { name: 'In-LineLinc Dimmable', modelNumber: '2475D' };
340
- break;
341
- case String.fromCharCode(3):
342
- retVal = { name: 'Icon Switch Dimmer', modelNumber: '2876D3' };
343
- break;
344
- case String.fromCharCode(4):
345
- retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476DH', class: InsteonDimmerSwitchDevice };
346
- break;
347
- case String.fromCharCode(6):
348
- retVal = { name: 'LampLinc 2 Pin', modelNumber: '2456D2' };
349
- break;
350
- case '\t':
351
- retVal = { name: 'KeypadLinc Dimmer', modelNumber: '2486D' };
352
- break;
353
- case String.fromCharCode(7):
354
- retVal = { name: 'Icon LampLinc 2 Pin', modelNumber: '2856D2' };
355
- break;
356
- case '\n':
357
- retVal = { name: 'Icon In-Wall Controller', modelNumber: '2886D' };
358
- break;
359
- case '\r':
360
- retVal = { name: 'SocketLinc', modelNumber: '2454D' };
361
- break;
362
- case '\f':
363
- retVal = { name: 'KeypadLinc Dimmer 8 Button', modelNumber: '2486DWH8', class: InsteonKeypadDimmerDevice };
364
- break;
365
- case String.fromCharCode(19):
366
- retVal = { name: 'Icon SwitchLinc Dimmer for Bell Canada' };
367
- break;
368
- case String.fromCharCode(23):
369
- break;
370
- case String.fromCharCode(31):
371
- retVal = { name: 'ToggleLinc Dimmer', modelNumber: '2466D', class: InsteonDimmerSwitchDevice };
372
- break;
373
- case String.fromCharCode(24):
374
- retVal = { name: 'Companion Dimmer', modelNumber: '2474D' };
375
- break;
376
- case String.fromCharCode(26):
377
- retVal = { name: 'InlineLinc Dimmer', modelNumber: '2475D', class: InsteonDimmerSwitchDevice };
378
- break;
379
- case String.fromCharCode(5):
380
- retVal = { name: 'KeypadLinc Countdown Timer', modelNumber: '2484DWH8' };
381
- break;
382
- case String.fromCharCode(27):
383
- retVal = { name: 'KeypadLinc Dimmer 6 Buttons', modelNumber: '2486D', class: InsteonKeypadDimmerDevice };
384
- break;
385
- case String.fromCharCode(28):
386
- retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2486D', class: InsteonKeypadDimmerDevice };
387
- break;
388
- case String.fromCharCode(25):
389
- retVal = { name: 'SwitchLinc Dimmer W/Beeper', modelNumber: '2476D' };
390
- break;
391
- case String.fromCharCode(14):
392
- retVal = { name: 'LampLinc BiPhy', modelNumber: 'B2457D2' };
393
- break;
394
- case String.fromCharCode(30):
395
- retVal = { name: 'Icon Dimmer', modelNumber: '2876DB' };
396
- break;
397
- case String.fromCharCode(29):
398
- retVal = { name: 'SwitchLinc Dimmer 1000W', modelNumber: '2476DH', class: InsteonDimmerSwitchDevice };
399
- break;
400
- case '"':
401
- retVal = { name: 'LampLinc 2-Pin Dimmer', modelNumber: '2457D2X' };
402
- break;
403
- case 'U':
404
- retVal = { name: 'Dual Band Switchlinc Dimmer', modelNumber: '2432-622', class: InsteonDimmerSwitchDevice };
405
- break;
406
- case ' ':
407
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477D', class: InsteonDimmerSwitchDevice };
408
- break;
409
- case '1':
410
- retVal = { name: 'Dual Band SwitchLinc Dimmer (240V)', modelNumber: '2478D', class: InsteonDimmerSwitchDevice };
411
- break;
412
- case '-':
413
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477DH', class: InsteonDimmerSwitchDevice };
414
- break;
415
- case '\'':
416
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477D-SP', class: InsteonDimmerSwitchDevice };
417
- break;
418
- case '+':
419
- retVal = { name: 'Dual Band SwitchLinc Dimmer', modelNumber: '2477DH-SP', class: InsteonDimmerSwitchDevice };
420
- break;
421
- case ')':
422
- retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2486D-SP', class: InsteonDimmerSwitchDevice };
423
- break;
424
- case '*':
425
- retVal = { name: 'LampLinc 2-Pin Dimmer', modelNumber: '2457D2X-SP' };
426
- break;
427
- case ',':
428
- retVal = { name: 'InlineLinc Dimmer', modelNumber: '2475D-SP' };
429
- break;
430
- case '%':
431
- retVal = { name: 'Ballast Dimmer', modelNumber: '2475DA2' };
432
- break;
433
- case '=':
434
- retVal = { name: 'Ballast Dimmer', modelNumber: '2446-422' };
435
- break;
436
- case '>':
437
- retVal = { name: 'Ballast Dimmer', modelNumber: '2446-522' };
438
- break;
439
- case '.':
440
- retVal = { name: 'FanLinc', modelNumber: '2475F', class: InsteonFanDevice };
441
- break;
442
- case '!':
443
- retVal = { name: 'Dual Band OutletLinc Dimmer', modelNumber: '2472D', class: InsteonDimmerOutletDevice };
444
- break;
445
- case '0':
446
- retVal = { name: 'SwitchLinc Dimmer', modelNumber: '2476D', class: InsteonDimmerSwitchDevice };
447
- break;
448
- case '$':
449
- retVal = { name: 'SwitchLinc Dimmer 2-Wire', modelNumber: '2474DWH', class: InsteonDimmerSwitchDevice };
450
- break;
451
- case '2':
452
- retVal = { name: 'InLineLinc Dimmer', modelNumber: '2475DA1' };
453
- break;
454
- case ':':
455
- retVal = { name: 'Insteon LED Bulb 8 Watt (60W)', modelNumber: '2672-222' };
456
- break;
457
- case 'I':
458
- retVal = { name: 'Insteon LED Bulb PAR38 12 Watt', modelNumber: '2674-222' };
459
- break;
460
- case '5':
461
- retVal = { name: 'Micro Module Dimmer', modelNumber: '2442-222' };
462
- break;
463
- case '8':
464
- retVal = { name: 'Micro Module Dimmer', modelNumber: '2442-422' };
465
- break;
466
- case '9':
467
- retVal = { name: 'Micro Module Dimmer', modelNumber: '2442-522' };
468
- break;
469
- case 'S':
470
- retVal = { name: 'Micro Module Dimmer', modelNumber: '2442-522' };
471
- break;
472
- case '4':
473
- retVal = { name: 'Din Rail Dimmer', modelNumber: '2452-222' };
474
- break;
475
- case '6':
476
- retVal = { name: 'Din Rail Dimmer', modelNumber: '2452-422' };
477
- break;
478
- case '7':
479
- retVal = { name: 'Din Rail Dimmer', modelNumber: '2452-522' };
480
- break;
481
- case 'T':
482
- retVal = { name: 'Din Rail Dimmer', modelNumber: '2452-522' };
483
- break;
484
- case 'B':
485
- retVal = { name: 'KeypadLinc Dimmer 5 Buttons', modelNumber: '2334-2', class: InsteonKeypadDimmerDevice };
486
- break;
487
- case 'A':
488
- retVal = { name: 'KeypadLinc Dimmer 8 Buttons', modelNumber: '2334-2', class: InsteonKeypadDimmerDevice };
489
- break;
490
- case 'V':
491
- retVal = { name: 'KeypadLinc Dimmer 6 Buttons', modelNumber: '2334-632', class: InsteonKeypadDimmerDevice };
492
- break;
493
- case String.fromCharCode(11):
494
- retVal = { name: 'Plugin Dimmer', modelNumber: '2632-422' };
495
- break;
496
- case String.fromCharCode(15):
497
- retVal = { name: 'Plugin Dimmer', modelNumber: '2632-432' };
498
- break;
499
- case String.fromCharCode(17):
500
- retVal = { name: 'Plugin Dimmer', modelNumber: '2632-442' };
501
- break;
502
- case 'P':
503
- retVal = { name: 'Plugin Dimmer', modelNumber: '2632-452' };
504
- break;
505
- case String.fromCharCode(18):
506
- retVal = { name: 'Plugin Dimmer', modelNumber: '2632-522' };
507
- }
508
- if (subAddress !== '1' && retVal.class === InsteonKeypadDimmerDevice) {
509
- retVal.class = InsteonKeypadButtonDevice;
510
- }
511
- if (node.nodeDefId === 'FanLincMotor') {
512
- retVal.class = InsteonFanMotorDevice;
513
- }
514
- if (retVal?.class === undefined) {
515
- retVal.class = InsteonDimmableDevice;
516
- }
517
- return retVal;
518
- }
519
- static getControllerInfo(deviceCode) {
520
- const c = String.fromCharCode(deviceCode);
521
- let retVal = null;
522
- switch (c) {
523
- case String.fromCharCode(0):
524
- retVal = { name: 'ControLinc', modelNumber: '2430' };
525
- break;
526
- case String.fromCharCode(5):
527
- retVal = { name: 'RemoteLinc', modelNumber: '2440' };
528
- break;
529
- case String.fromCharCode(14):
530
- retVal = { name: 'RemoteLinc EZ', modelNumber: '2440EZ' };
531
- break;
532
- case String.fromCharCode(6):
533
- retVal = { name: 'Icon Tabletop', modelNumber: '2830' };
534
- break;
535
- case '\t':
536
- retVal = { name: 'SignaLinc', modelNumber: '2442' };
537
- break;
538
- case String.fromCharCode(17):
539
- retVal = { name: 'RemoteLinc 2 Switch', modelNumber: '2342-242' };
540
- break;
541
- case String.fromCharCode(16):
542
- retVal = { name: 'RemoteLinc 2 Keypad, 4 Scene', modelNumber: '2342-232' };
543
- break;
544
- case String.fromCharCode(18):
545
- retVal = { name: 'RemoteLinc 2 Keypad, 8 Scene', modelNumber: '2342-222' };
546
- break;
547
- case String.fromCharCode(20):
548
- retVal = { name: 'Mini Remote Keypad, 4 Scene', modelNumber: '2342-432' };
549
- break;
550
- case String.fromCharCode(21):
551
- retVal = { name: 'Mini Remote Switch', modelNumber: '2342-442' };
552
- break;
553
- case String.fromCharCode(22):
554
- retVal = { name: 'Mini Remote Keypad, 8 Scene', modelNumber: '2342-422' };
555
- break;
556
- case String.fromCharCode(23):
557
- retVal = { name: 'Mini Remote Keypad, 4 Scene', modelNumber: '2342-532' };
558
- break;
559
- case String.fromCharCode(24):
560
- retVal = { name: 'Mini Remote Keypad, 8 Scene', modelNumber: '2342-522' };
561
- break;
562
- case String.fromCharCode(25):
563
- retVal = { name: 'Mini Remote Switch', modelNumber: '2342-542' };
564
- break;
565
- case String.fromCharCode(26):
566
- retVal = { name: 'Mini Remote Keypad, 8 Scene', modelNumber: '2342-222' };
567
- break;
568
- case String.fromCharCode(27):
569
- retVal = { name: 'Mini Remote Keypad, 4 Scene', modelNumber: '2342-232' };
570
- break;
571
- case String.fromCharCode(28):
572
- retVal = { name: 'Mini Remote Switch', modelNumber: '2342-242' };
573
- }
574
- return retVal;
575
- }
576
- static getIOControlInfo(deviceCode) {
577
- const c = String.fromCharCode(deviceCode);
578
- let retVal = null;
579
- switch (c) {
580
- case String.fromCharCode(0):
581
- retVal = { name: 'IOLinc', modelNumber: '2450' };
582
- break;
583
- case String.fromCharCode(3):
584
- retVal = { name: 'Compacta EZIO 2x4: INSTEON I/O Controller' };
585
- break;
586
- case String.fromCharCode(4):
587
- retVal = {
588
- name: 'Compacta EZIO8SA: INSTEON I/O Controller'
589
- };
590
- break;
591
- case String.fromCharCode(2):
592
- retVal = {
593
- name: 'Compacta EZIO8T: INSTEON I/O Controller'
594
- };
595
- break;
596
- case String.fromCharCode(5):
597
- retVal = {
598
- name: 'Compacta EZSnSRF'
599
- };
600
- break;
601
- case String.fromCharCode(6):
602
- retVal = {
603
- name: 'Compacta EZSnSRF Interface'
604
- };
605
- break;
606
- case String.fromCharCode(7):
607
- retVal = {
608
- name: 'Compacta EZIO6I'
609
- };
610
- break;
611
- case '\b':
612
- retVal = {
613
- name: 'Compacta EZIO4O'
614
- };
615
- break;
616
- case '\t':
617
- retVal = { name: 'SynchroLinc', modelNumber: '2423A5' };
618
- break;
619
- case '\r':
620
- retVal = { name: 'IOLinc (Refurbished)', modelNumber: '2450' };
621
- break;
622
- case String.fromCharCode(14):
623
- retVal = { name: 'I/O Module', modelNumber: '2248-222' };
624
- break;
625
- case String.fromCharCode(15):
626
- retVal = { name: 'I/O Module', modelNumber: '2248-422' };
627
- break;
628
- case String.fromCharCode(16):
629
- retVal = { name: 'I/O Module', modelNumber: '2248-442' };
630
- break;
631
- case String.fromCharCode(17):
632
- retVal = { name: 'I/O Module', modelNumber: '2248-522' };
633
- break;
634
- case String.fromCharCode(18):
635
- retVal = { name: 'IOLinc', modelNumber: '2822-222' };
636
- break;
637
- case String.fromCharCode(19):
638
- retVal = { name: 'IOLinc', modelNumber: '2822-422' };
639
- break;
640
- case String.fromCharCode(20):
641
- retVal = { name: 'IOLinc', modelNumber: '2822-442' };
642
- break;
643
- case String.fromCharCode(21):
644
- retVal = { name: 'IOLinc', modelNumber: '2822-522' };
645
- break;
646
- case String.fromCharCode(22):
647
- retVal = { name: 'Contact Closure', modelNumber: '2822-222' };
648
- break;
649
- case String.fromCharCode(23):
650
- retVal = { name: 'Contact Closure', modelNumber: '2822-422' };
651
- break;
652
- case String.fromCharCode(24):
653
- retVal = { name: 'Contact Closure', modelNumber: '2822-442' };
654
- break;
655
- case String.fromCharCode(25):
656
- retVal = { name: 'Contact Closure', modelNumber: '2822-522' };
657
- break;
658
- case String.fromCharCode(26):
659
- retVal = { name: 'Alert Module', modelNumber: '2867-222' };
660
- break;
661
- case String.fromCharCode(30):
662
- retVal = { name: 'Siren', modelNumber: '2868-222' };
663
- break;
664
- case ' ':
665
- retVal = { name: 'Siren', modelNumber: '2868-622' };
666
- }
667
- return retVal;
668
- }
669
- static getSHS(deviceCode, subAddress, node) {
670
- const c = String.fromCharCode(deviceCode);
671
- let retVal = null;
672
- switch (c) {
673
- case String.fromCharCode(1):
674
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-222', class: InsteonMotionSensorDevice };
675
- break;
676
- case String.fromCharCode(4):
677
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-422', class: InsteonMotionSensorDevice };
678
- break;
679
- case String.fromCharCode(5):
680
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2842-522', class: InsteonMotionSensorDevice };
681
- break;
682
- case String.fromCharCode(3):
683
- retVal = { name: 'INSTEON Motion Sensor', modelNumber: '2420M-SP', class: InsteonMotionSensorDevice };
684
- break;
685
- case String.fromCharCode(2):
686
- retVal = { name: 'TriggerLinc', modelNumber: '2421', class: InsteonDoorWindowSensorDevice };
687
- break;
688
- case '\t':
689
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-222', class: InsteonDoorWindowSensorDevice };
690
- break;
691
- case String.fromCharCode(6):
692
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-422', class: InsteonDoorWindowSensorDevice };
693
- break;
694
- case String.fromCharCode(7):
695
- break;
696
- case String.fromCharCode(25):
697
- retVal = { name: 'Open/Close Sensor', modelNumber: '2843-522', class: InsteonDoorWindowSensorDevice };
698
- break;
699
- case '\b':
700
- retVal = { name: 'Leak Sensor', modelNumber: '2852-222', class: InsteonLeakSensorDevice };
701
- break;
702
- case '\r':
703
- retVal = { name: 'Leak Sensor', modelNumber: '2852-422', class: InsteonLeakSensorDevice };
704
- break;
705
- case String.fromCharCode(14):
706
- retVal = { name: 'Leak Sensor', modelNumber: '2852-522', class: InsteonLeakSensorDevice };
707
- break;
708
- case String.fromCharCode(26):
709
- retVal = { name: 'Leak Sensor', modelNumber: '2852-522', class: InsteonLeakSensorDevice };
710
- break;
711
- case '\n':
712
- retVal = { name: 'INSTEON Smoke Sensor', modelNumber: '', class: InsteonSmokeSensorDevice };
713
- break;
714
- case String.fromCharCode(17):
715
- retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-222', class: InsteonDoorWindowSensorDevice };
716
- break;
717
- case String.fromCharCode(20):
718
- retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-422', class: InsteonDoorWindowSensorDevice };
719
- break;
720
- case String.fromCharCode(21):
721
- break;
722
- case String.fromCharCode(27):
723
- retVal = { name: 'INSTEON Hidden Door Sensor', modelNumber: '2845-522', class: InsteonDoorWindowSensorDevice };
724
- break;
725
- case String.fromCharCode(22):
726
- retVal = { name: 'Insteon Motion Sensor II', modelNumber: '2844-222', class: InsteonMotionSensorDevice };
727
- break;
728
- case String.fromCharCode(24):
729
- retVal = { name: 'Insteon Motion Sensor II', modelNumber: '2844-522', class: InsteonMotionSensorDevice };
730
- }
731
- if ((node.nodeDefId === 'BinaryAlarm' || node.nodeDefId === 'BinaryAlarm_ADV') && subAddress !== '1') {
732
- if (retVal) {
733
- retVal.class = InsteonBaseDevice;
734
- }
735
- }
736
- return retVal;
737
- }
738
- static getClimateControlInfo(deviceCode) {
739
- const c = String.fromCharCode(deviceCode);
740
- let retVal = null;
741
- switch (c) {
742
- case String.fromCharCode(0):
743
- retVal = {
744
- name: 'BROAN SMSC080 Exhaust Fan'
745
- };
746
- break;
747
- case String.fromCharCode(2):
748
- retVal = {
749
- name: 'BROAN SMSC110 Exhaust Fan'
750
- };
751
- break;
752
- case String.fromCharCode(5):
753
- retVal = {
754
- name: 'BROAN, Venmar, Best Rangehoods'
755
- };
756
- break;
757
- case String.fromCharCode(1):
758
- retVal = {
759
- name: 'Compacta EZTherm'
760
- };
761
- break;
762
- case String.fromCharCode(4):
763
- retVal = {
764
- name: 'Compacta EZTherm'
765
- };
766
- break;
767
- case String.fromCharCode(3):
768
- retVal = { name: 'INSTEON Thermostat Adapter', modelNumber: '2441V' };
769
- break;
770
- case '\t':
771
- retVal = { name: 'INSTEON Thermostat Adapter', modelNumber: '2441V-SP' };
772
- break;
773
- case String.fromCharCode(11):
774
- retVal = { name: 'INSTEON Thermostat', modelNumber: '2441TH' };
775
- break;
776
- case String.fromCharCode(15):
777
- retVal = { name: 'INSTEON Thermostat', modelNumber: '2732-422' };
778
- break;
779
- case String.fromCharCode(16):
780
- retVal = { name: 'INSTEON Thermostat', modelNumber: '2732-522' };
781
- break;
782
- case String.fromCharCode(17):
783
- retVal = { name: 'INSTEON Thermostat', modelNumber: '2732-432' };
784
- break;
785
- case String.fromCharCode(18):
786
- retVal = { name: 'INSTEON Thermostat', modelNumber: '2732-532' };
787
- break;
788
- case String.fromCharCode(19):
789
- retVal = { name: 'INSTEON Thermostat Heat Pump', modelNumber: '2732-242' };
790
- break;
791
- case String.fromCharCode(20):
792
- retVal = { name: 'INSTEON Thermostat Heat Pump for Europe', modelNumber: '2732-442' };
793
- break;
794
- case String.fromCharCode(21):
795
- retVal = { name: 'INSTEON Thermostat Heat Pump for Aus/NZ', modelNumber: '2732-542' };
796
- break;
797
- case String.fromCharCode(22):
798
- retVal = { name: 'INSTEON Thermostat 2.0 (HVAC/HP)', modelNumber: '2732-222' };
799
- break;
800
- case String.fromCharCode(23):
801
- retVal = { name: 'INSTEON Thermostat 2.0 (HVAC/HP) for Europe', modelNumber: '2732-422' };
802
- break;
803
- case String.fromCharCode(24):
804
- retVal = { name: 'INSTEON Thermostat 2.0 (HVAC/HP) for Aus/NZ', modelNumber: '(2732-522)' };
805
- break;
806
- case '\n':
807
- retVal = { name: 'INSTEON Wireless Thermostat', modelNumber: '2441ZTH' };
808
- break;
809
- case String.fromCharCode(14):
810
- retVal = { name: 'All-In-One INSTEON Thermostat Adapter', modelNumber: '2491T' };
811
- }
812
- if (retVal?.class === undefined) {
813
- retVal.class = InsteonThermostatDevice;
814
- }
815
- return retVal;
816
- }
817
- static getAccessControlInfo(deviceCode) {
818
- const c = String.fromCharCode(deviceCode);
819
- const retVal = { name: '', modelNumber: '', class: InsteonLockDevice };
820
- switch (c) {
821
- case String.fromCharCode(6):
822
- retVal.name = 'MorningLinc';
823
- break;
824
- case '\n':
825
- retVal.name = 'Lock Controller';
826
- }
827
- return retVal;
828
- }
829
- static getEnergyManagement(deviceCode) {
830
- const c = String.fromCharCode(deviceCode);
831
- let retVal = null;
832
- switch (c) {
833
- case String.fromCharCode(0):
834
- retVal = {
835
- name: 'ZBPCM (iMeter Solo compat.)'
836
- };
837
- break;
838
- case String.fromCharCode(7):
839
- retVal = { name: 'iMeter Solo', modelNumber: '2423A1' };
840
- break;
841
- case String.fromCharCode(11):
842
- retVal = {
843
- name: 'Dual Band Normally Closed 240V Load Controller', modelNumber: '2477SA2'
844
- };
845
- break;
846
- case '\n':
847
- retVal = { name: 'Dual Band Normally Open 240V Load Controller', modelNumber: '2477SA1' };
848
- break;
849
- case '\r':
850
- retVal = {
851
- name: 'Energy Display', modelNumber: '(2448A2)'
852
- };
853
- }
854
- return retVal;
855
- }
856
- static getWindowsCovering(deviceCode) {
857
- const c = String.fromCharCode(deviceCode);
858
- let retVal = null;
859
- switch (c) {
860
- case String.fromCharCode(1):
861
- retVal = { name: 'Micro Module Open/Close', modelNumber: '2444-222' };
862
- break;
863
- case String.fromCharCode(2):
864
- retVal = { name: 'Micro Module Open/Close', modelNumber: '2444-422' };
865
- break;
866
- case String.fromCharCode(3):
867
- retVal = { name: 'Micro Module Open/Close', modelNumber: '2444-522' };
868
- break;
869
- case String.fromCharCode(7):
870
- retVal = { name: 'Micro Module Open/Close', modelNumber: '2444-522' };
871
- }
872
- return retVal;
873
- }
874
- }
875
- //# sourceMappingURL=InsteonDeviceFactory.js.map