isy-nodejs 1.0.6-alpha.0 → 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.
- package/dist/esm/CodeGeneration/EnumFactory.js +1 -1
- package/dist/esm/CodeGeneration/EnumFactory.js.map +1 -1
- package/dist/esm/CodeGeneration/NodeClassFactory.js +5 -4
- package/dist/esm/CodeGeneration/NodeClassFactory.js.map +1 -1
- package/dist/esm/Converters.js.map +1 -1
- package/dist/esm/Definitions/Global/Drivers.js +7 -5
- package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
- package/dist/esm/Devices/DynamicNode.js +19 -0
- package/dist/esm/Devices/DynamicNode.js.map +1 -0
- package/dist/esm/Devices/GenericNode.js +17 -0
- package/dist/esm/Devices/GenericNode.js.map +1 -0
- package/dist/esm/Devices/Insteon/InsteonDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js +86 -102
- package/dist/esm/Devices/Insteon/InsteonDeviceFactory.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonLockDevice.js +4 -5
- package/dist/esm/Devices/Insteon/InsteonLockDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js +4 -5
- package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonRelayDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js +2 -24
- package/dist/esm/Devices/Insteon/InsteonThermostatDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/index.js +3 -0
- package/dist/esm/Devices/Insteon/index.js.map +1 -1
- package/dist/esm/Devices/MapsTo.js +0 -11
- package/dist/esm/Devices/MapsTo.js.map +1 -1
- package/dist/esm/Devices/NodeFactory.js +1 -1
- package/dist/esm/Devices/NodeFactory.js.map +1 -1
- package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js +2 -2
- package/dist/esm/Devices/ZWave/ZWaveBaseDevice.js.map +1 -1
- package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js +2 -2
- package/dist/esm/Devices/ZWave/ZWaveDimmerSwitchDevice.js.map +1 -1
- package/dist/esm/Devices/ZWave/ZWaveLockDevice.js +5 -5
- package/dist/esm/Devices/ZWave/ZWaveLockDevice.js.map +1 -1
- package/dist/esm/ISY.js +3 -3
- package/dist/esm/ISY.js.map +1 -1
- package/dist/esm/ISYConstants.js +0 -5
- package/dist/esm/ISYConstants.js.map +1 -1
- package/dist/esm/ISYNode.js +12 -7
- package/dist/esm/ISYNode.js.map +1 -1
- package/dist/esm/ISYScene.js +3 -3
- package/dist/esm/ISYScene.js.map +1 -1
- package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js +1 -1
- package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js.map +1 -1
- package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js +1 -0
- package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
- package/dist/esm/Matter/Mappings/Insteon.js +3 -5
- package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
- package/dist/esm/Matter/Mappings/MappingRegistry.js +26 -9
- package/dist/esm/Matter/Mappings/MappingRegistry.js.map +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/types/CodeGeneration/EnumFactory.d.ts +2 -2
- package/dist/esm/types/CodeGeneration/EnumFactory.d.ts.map +1 -1
- package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts +11 -9
- package/dist/esm/types/CodeGeneration/NodeClassFactory.d.ts.map +1 -1
- package/dist/esm/types/Converters.d.ts +25 -16
- package/dist/esm/types/Converters.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
- package/dist/esm/types/Devices/DynamicNode.d.ts +11 -0
- package/dist/esm/types/Devices/DynamicNode.d.ts.map +1 -0
- package/dist/esm/types/Devices/EndpointFor.d.ts +3 -3
- package/dist/esm/types/Devices/GenericNode.d.ts +9 -0
- package/dist/esm/types/Devices/GenericNode.d.ts.map +1 -0
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +10 -10
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts +3 -4
- package/dist/esm/types/Devices/Insteon/InsteonDeviceFactory.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonMotionSensorDevice.d.ts +3 -3
- package/dist/esm/types/Devices/Insteon/InsteonMotionSensorDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonRelayDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/InsteonThermostatDevice.d.ts +2 -9
- package/dist/esm/types/Devices/Insteon/InsteonThermostatDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/Insteon/index.d.ts +3 -0
- package/dist/esm/types/Devices/Insteon/index.d.ts.map +1 -1
- package/dist/esm/types/Devices/MapsTo.d.ts +1 -3
- package/dist/esm/types/Devices/MapsTo.d.ts.map +1 -1
- package/dist/esm/types/Devices/ZWave/ZWaveBaseDevice.d.ts +2 -2
- package/dist/esm/types/Devices/ZWave/ZWaveBaseDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/ZWave/ZWaveDimmerSwitchDevice.d.ts +2 -2
- package/dist/esm/types/Devices/ZWave/ZWaveDimmerSwitchDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/ZWave/ZWaveLockDevice.d.ts +2 -1
- package/dist/esm/types/Devices/ZWave/ZWaveLockDevice.d.ts.map +1 -1
- package/dist/esm/types/ISY.d.ts.map +1 -1
- package/dist/esm/types/ISYConstants.d.ts +0 -263
- package/dist/esm/types/ISYConstants.d.ts.map +1 -1
- package/dist/esm/types/ISYNode.d.ts +5 -5
- package/dist/esm/types/ISYNode.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +4 -4
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +2 -2
- package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Mappings/Insteon.d.ts.map +1 -1
- package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts +35 -21
- package/dist/esm/types/Matter/Mappings/MappingRegistry.d.ts.map +1 -1
- package/dist/esm/types/Model/EnumDefinition.d.ts +1 -1
- package/dist/esm/types/Utils.d.ts +5 -5
- package/dist/esm/types/Utils.d.ts.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/CodeGeneration/EnumFactory.ts +1 -1
- package/src/CodeGeneration/NodeClassFactory.ts +7 -4
- package/src/Converters.ts +7 -4
- package/src/Definitions/Global/Drivers.ts +8 -6
- package/src/Devices/DynamicNode.ts +37 -0
- package/src/Devices/GenericNode.ts +31 -0
- package/src/Devices/Insteon/InsteonDevice.ts +0 -3
- package/src/Devices/Insteon/InsteonDeviceFactory.ts +93 -104
- package/src/Devices/Insteon/InsteonFanDevice.ts +1 -1
- package/src/Devices/Insteon/InsteonLockDevice.ts +5 -5
- package/src/Devices/Insteon/InsteonMotionSensorDevice.ts +8 -5
- package/src/Devices/Insteon/InsteonRelayDevice.ts +1 -8
- package/src/Devices/Insteon/InsteonThermostatDevice.ts +3 -20
- package/src/Devices/Insteon/index.ts +6 -0
- package/src/Devices/MapsTo.ts +0 -25
- package/src/Devices/NCD/Generated/Relay.ts +17 -14
- package/src/Devices/NodeFactory.ts +1 -1
- package/src/Devices/ZWave/ZWaveBaseDevice.ts +2 -1
- package/src/Devices/ZWave/ZWaveDimmerSwitchDevice.ts +2 -1
- package/src/Devices/ZWave/ZWaveLockDevice.ts +7 -6
- package/src/Devices/ZigBeeLegacy/Generated/Relay.ts +14 -17
- package/src/Devices/ZigBeeLegacy/Generated/Thermostat.ts +70 -87
- package/src/ISY.ts +3 -4
- package/src/ISYConstants.ts +0 -10
- package/src/ISYNode.ts +7 -2
- package/src/ISYScene.ts +3 -3
- package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +12 -30
- package/src/Matter/Behaviors/ISYClusterBehavior.ts +8 -7
- package/src/Matter/Mappings/Insteon.ts +7 -7
- package/src/Matter/Mappings/MappingRegistry.ts +93 -35
- 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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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:
|
|
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 ===
|
|
122
|
-
deviceDetails.class =
|
|
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 =
|
|
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?:
|
|
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
|
|
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:
|
|
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:
|
|
188
|
+
retVal = { name: 'SwitchLinc Relay', modelNumber: '2476ST', class: Insteon.RelayLampSwitch.Node };
|
|
200
189
|
break;
|
|
201
190
|
case String.fromCharCode(11):
|
|
202
|
-
retVal.class =
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 ===
|
|
336
|
-
retVal.class =
|
|
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 =
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 ===
|
|
530
|
-
retVal.class =
|
|
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 =
|
|
522
|
+
retVal.class = Insteon.FanLincMotor.Node;
|
|
534
523
|
}
|
|
535
|
-
if (retVal?.class === undefined) { retVal.class =
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 =
|
|
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 =
|
|
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:
|
|
830
|
+
const retVal = { name: '', modelNumber: '', class: Insteon.Lock };
|
|
842
831
|
switch (c) {
|
|
843
832
|
case String.fromCharCode(6):
|
|
844
833
|
retVal.name = 'MorningLinc';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ISY } from '../../ISY.js';
|
|
2
|
-
|
|
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,
|
|
26
|
+
return this.isy.sendNodeCommand(this, 'DON');
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
return this.isy.sendNodeCommand(this,
|
|
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,
|
|
34
|
+
return this.isy.sendNodeCommand(this, 'DON',1);
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
return this.isy.sendNodeCommand(this,
|
|
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
|
-
|
|
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
|
|
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:
|
|
17
|
+
public override handleControlTrigger(controlName: keyof Pir2844OnOff.Commands) {
|
|
15
18
|
|
|
16
|
-
if (controlName ===
|
|
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 ===
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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";
|