isy-nodejs 1.0.1-alpha.6 → 1.0.1-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Converters.js +66 -30
- package/dist/cjs/Converters.js.map +1 -1
- package/dist/cjs/Definitions/Global/Drivers.js +10 -3
- package/dist/cjs/Definitions/Global/Drivers.js.map +1 -1
- package/dist/cjs/Definitions/Global/Events.js +1 -2
- package/dist/cjs/Definitions/Global/Events.js.map +1 -1
- package/dist/cjs/Devices/Elk/ElkAlarmPanelDevice.js +3 -3
- package/dist/cjs/Devices/Elk/ElkAlarmSensorDevice.js +9 -6
- package/dist/cjs/Devices/Elk/ElkAlarmSensorDevice.js.map +1 -1
- package/dist/cjs/Devices/Insteon/InsteonBaseDevice.js +1 -1
- package/dist/cjs/Devices/Insteon/InsteonBaseDevice.js.map +1 -1
- package/dist/cjs/Devices/Insteon/InsteonFanDevice.js +4 -2
- package/dist/cjs/Devices/Insteon/InsteonFanDevice.js.map +1 -1
- package/dist/cjs/Devices/Insteon/InsteonMotionSensorDevice.js +5 -5
- package/dist/cjs/ISY.js +29 -20
- package/dist/cjs/ISY.js.map +1 -1
- package/dist/cjs/ISYNode.js +11 -8
- package/dist/cjs/ISYNode.js.map +1 -1
- package/dist/cjs/ISYScene.js +2 -2
- package/dist/cjs/Matter/Behaviors/ISYBridgedDeviceBehavior.js +11 -4
- package/dist/cjs/Matter/Behaviors/ISYBridgedDeviceBehavior.js.map +1 -1
- package/dist/cjs/Matter/Behaviors/ISYClusterBehavior.js +26 -7
- package/dist/cjs/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
- package/dist/cjs/Matter/Behaviors/ISYOnOffBehavior.js +9 -7
- package/dist/cjs/Matter/Behaviors/ISYOnOffBehavior.js.map +1 -1
- package/dist/cjs/Matter/{Server → Bridge}/Server.js +31 -45
- package/dist/cjs/Matter/Bridge/Server.js.map +1 -0
- package/dist/cjs/Matter/Mappings/Insteon.js +19 -15
- package/dist/cjs/Matter/Mappings/Insteon.js.map +1 -1
- package/dist/cjs/Matter/Mappings/register.js +1 -0
- package/dist/cjs/Matter/Mappings/register.js.map +1 -0
- package/dist/cjs/Model/ClusterMap.js +12 -9
- package/dist/cjs/Model/ClusterMap.js.map +1 -1
- package/dist/cjs/Utils.js +0 -9
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/types/Converters.d.ts +28 -8
- package/dist/cjs/types/Converters.d.ts.map +1 -1
- package/dist/cjs/types/Definitions/Global/Drivers.d.ts +4 -3
- package/dist/cjs/types/Definitions/Global/Drivers.d.ts.map +1 -1
- package/dist/cjs/types/Definitions/Global/Events.d.ts.map +1 -1
- package/dist/cjs/types/Devices/Elk/ElkAlarmSensorDevice.d.ts.map +1 -1
- package/dist/cjs/types/Devices/EndpointFor.d.ts +2 -2
- package/dist/cjs/types/Devices/Insteon/InsteonDevice.d.ts +4 -4
- package/dist/cjs/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
- package/dist/cjs/types/ISY.d.ts +21 -18
- package/dist/cjs/types/ISY.d.ts.map +1 -1
- package/dist/cjs/types/ISYNode.d.ts +4 -4
- package/dist/cjs/types/ISYNode.d.ts.map +1 -1
- package/dist/cjs/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts +16 -6
- package/dist/cjs/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
- package/dist/cjs/types/Matter/Behaviors/ISYClusterBehavior.d.ts +13 -11
- package/dist/cjs/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
- package/dist/cjs/types/Matter/Behaviors/ISYOnOffBehavior.d.ts +4 -4
- package/dist/cjs/types/Matter/Behaviors/ISYOnOffBehavior.d.ts.map +1 -1
- package/dist/cjs/types/Matter/Bridge/Server.d.ts +17 -0
- package/dist/cjs/types/Matter/Bridge/Server.d.ts.map +1 -0
- package/dist/cjs/types/Matter/Mappings/register.d.ts +1 -0
- package/dist/cjs/types/Matter/Mappings/register.d.ts.map +1 -0
- package/dist/cjs/types/Model/ClusterMap.d.ts +19 -11
- package/dist/cjs/types/Model/ClusterMap.d.ts.map +1 -1
- package/dist/cjs/types/Utils.d.ts +0 -5
- package/dist/cjs/types/Utils.d.ts.map +1 -1
- package/dist/esm/Converters.js +63 -28
- package/dist/esm/Converters.js.map +1 -1
- package/dist/esm/Definitions/Global/Drivers.js +10 -3
- package/dist/esm/Definitions/Global/Drivers.js.map +1 -1
- package/dist/esm/Definitions/Global/Events.js +1 -2
- package/dist/esm/Definitions/Global/Events.js.map +1 -1
- package/dist/esm/Devices/Elk/ElkAlarmPanelDevice.js +3 -3
- package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js +9 -6
- package/dist/esm/Devices/Elk/ElkAlarmSensorDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js +2 -2
- package/dist/esm/Devices/Insteon/InsteonBaseDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js +4 -2
- package/dist/esm/Devices/Insteon/InsteonFanDevice.js.map +1 -1
- package/dist/esm/Devices/Insteon/InsteonMotionSensorDevice.js +5 -5
- package/dist/esm/ISY.js +28 -19
- package/dist/esm/ISY.js.map +1 -1
- package/dist/esm/ISYNode.js +12 -9
- package/dist/esm/ISYNode.js.map +1 -1
- package/dist/esm/ISYScene.js +2 -2
- package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js +11 -4
- package/dist/esm/Matter/Behaviors/ISYBridgedDeviceBehavior.js.map +1 -1
- package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js +26 -7
- package/dist/esm/Matter/Behaviors/ISYClusterBehavior.js.map +1 -1
- package/dist/esm/Matter/Behaviors/ISYOnOffBehavior.js +10 -8
- package/dist/esm/Matter/Behaviors/ISYOnOffBehavior.js.map +1 -1
- package/dist/esm/Matter/{Server → Bridge}/Server.js +29 -44
- package/dist/esm/Matter/Bridge/Server.js.map +1 -0
- package/dist/esm/Matter/Mappings/Insteon.js +22 -18
- package/dist/esm/Matter/Mappings/Insteon.js.map +1 -1
- package/dist/esm/Matter/Mappings/register.js +2 -0
- package/dist/esm/Matter/Mappings/register.js.map +1 -0
- package/dist/esm/Model/ClusterMap.js +12 -9
- package/dist/esm/Model/ClusterMap.js.map +1 -1
- package/dist/esm/Utils.js +0 -8
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/types/Converters.d.ts +28 -8
- package/dist/esm/types/Converters.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Drivers.d.ts +4 -3
- package/dist/esm/types/Definitions/Global/Drivers.d.ts.map +1 -1
- package/dist/esm/types/Definitions/Global/Events.d.ts.map +1 -1
- package/dist/esm/types/Devices/Elk/ElkAlarmSensorDevice.d.ts.map +1 -1
- package/dist/esm/types/Devices/EndpointFor.d.ts +3 -3
- package/dist/esm/types/Devices/Insteon/InsteonDevice.d.ts +6 -6
- package/dist/esm/types/Devices/Insteon/InsteonFanDevice.d.ts.map +1 -1
- package/dist/esm/types/ISY.d.ts +21 -18
- package/dist/esm/types/ISY.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 +16 -6
- package/dist/esm/types/Matter/Behaviors/ISYBridgedDeviceBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts +13 -11
- package/dist/esm/types/Matter/Behaviors/ISYClusterBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Behaviors/ISYOnOffBehavior.d.ts +4 -4
- package/dist/esm/types/Matter/Behaviors/ISYOnOffBehavior.d.ts.map +1 -1
- package/dist/esm/types/Matter/Bridge/Server.d.ts +17 -0
- package/dist/esm/types/Matter/Bridge/Server.d.ts.map +1 -0
- package/dist/esm/types/Matter/Mappings/register.d.ts +2 -0
- package/dist/esm/types/Matter/Mappings/register.d.ts.map +1 -0
- package/dist/esm/types/Model/ClusterMap.d.ts +19 -11
- package/dist/esm/types/Model/ClusterMap.d.ts.map +1 -1
- package/dist/esm/types/Utils.d.ts +0 -5
- package/dist/esm/types/Utils.d.ts.map +1 -1
- package/package.json +2 -7
- package/src/Converters.ts +137 -69
- package/src/Definitions/Global/Drivers.ts +16 -7
- package/src/Definitions/Global/Events.ts +4 -3
- package/src/Devices/Elk/ElkAlarmPanelDevice.ts +3 -3
- package/src/Devices/Elk/ElkAlarmSensorDevice.ts +15 -21
- package/src/Devices/Insteon/Generated/RelayLamp.ts +8 -7
- package/src/Devices/Insteon/InsteonBaseDevice.ts +2 -2
- package/src/Devices/Insteon/InsteonFanDevice.ts +11 -9
- package/src/Devices/Insteon/InsteonMotionSensorDevice.ts +5 -5
- package/src/ISY.ts +53 -38
- package/src/ISYNode.ts +13 -10
- package/src/ISYScene.ts +2 -2
- package/src/Matter/Behaviors/ISYBridgedDeviceBehavior.ts +28 -10
- package/src/Matter/Behaviors/ISYClusterBehavior.ts +46 -28
- package/src/Matter/Behaviors/ISYOnOffBehavior.ts +49 -60
- package/src/Matter/{Server → Bridge}/Server.ts +49 -53
- package/src/Matter/Mappings/Insteon.ts +53 -60
- package/src/Matter/Mappings/register.ts +0 -0
- package/src/Model/ClusterMap.ts +31 -22
- package/src/Utils.ts +1 -19
- package/LICENSE +0 -22
- package/dist/cjs/Matter/Server/Server.js.map +0 -1
- package/dist/cjs/types/Matter/Server/Server.d.ts +0 -4
- package/dist/cjs/types/Matter/Server/Server.d.ts.map +0 -1
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js +0 -68
- package/dist/esm/Devices/Insteon/Generated/RelayLampSwitch.js.map +0 -1
- package/dist/esm/Matter/Server/Server.js.map +0 -1
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts +0 -93
- package/dist/esm/types/Devices/Insteon/Generated/RelayLampSwitch.d.ts.map +0 -1
- package/dist/esm/types/Matter/Server/Server.d.ts +0 -4
- package/dist/esm/types/Matter/Server/Server.d.ts.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import '@project-chip/matter-node.js';
|
|
1
2
|
import { NodeJsEnvironment } from '@project-chip/matter-node.js/environment';
|
|
2
3
|
import { StorageBackendDisk } from '@project-chip/matter-node.js/storage';
|
|
3
4
|
import { CommissioningOptions } from '@project-chip/matter.js/behavior/system/commissioning';
|
|
@@ -9,42 +10,47 @@ import { DimmableLightDevice, OnOffLightDevice } from '@project-chip/matter.js/e
|
|
|
9
10
|
import type { SupportedBehaviors } from '@project-chip/matter.js/endpoint/properties';
|
|
10
11
|
import { EndpointType, MutableEndpoint } from '@project-chip/matter.js/endpoint/type';
|
|
11
12
|
import { AggregatorEndpoint } from '@project-chip/matter.js/endpoints/AggregatorEndpoint';
|
|
12
|
-
import {
|
|
13
|
+
import { StorageService } from '@project-chip/matter.js/environment';
|
|
13
14
|
import { Level, levelFromString, Logger as MatterLogger } from '@project-chip/matter.js/log';
|
|
14
15
|
import { ServerNode } from '@project-chip/matter.js/node';
|
|
15
|
-
import {
|
|
16
|
+
import { QrCode } from '@project-chip/matter.js/schema';
|
|
16
17
|
import { resolve } from 'path';
|
|
17
|
-
import { config } from 'winston';
|
|
18
18
|
import { InsteonDimmableDevice, InsteonKeypadButtonDevice, InsteonRelayDevice, ISY } from '../../ISY.js';
|
|
19
19
|
import { ISYBridgedDeviceBehavior } from '../Behaviors/ISYBridgedDeviceBehavior.js';
|
|
20
20
|
import { ISYDimmableBehavior, ISYOnOffBehavior } from '../Behaviors/ISYOnOffBehavior.js';
|
|
21
|
+
import '../Mappings/Insteon.js';
|
|
22
|
+
import type { ISYDeviceNode } from '../../Devices/ISYDeviceNode.js';
|
|
21
23
|
|
|
22
|
-
// #region
|
|
24
|
+
// #region Interfaces (1)
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
//
|
|
26
|
+
export interface Config {
|
|
27
|
+
// #region Properties (8)
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
discriminator: number;
|
|
30
|
+
passcode: number;
|
|
31
|
+
port: number;
|
|
32
|
+
productId: number;
|
|
33
|
+
productName?: string;
|
|
34
|
+
uniqueId: string;
|
|
35
|
+
vendorId: number;
|
|
36
|
+
vendorName?: string;
|
|
29
37
|
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
//
|
|
34
|
-
// strong: producer => creator.text(`*${producer()}*`),
|
|
35
|
-
// weak: producer => creator.text(producer()),
|
|
36
|
-
// status: (status, producer) => `${creator.text(statusIcon(status))}${producer()}`,
|
|
37
|
-
// via: text => creator.text(text),
|
|
38
|
-
// });
|
|
38
|
+
// #endregion Properties (8)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// #endregion Interfaces (1)
|
|
39
42
|
|
|
40
|
-
//
|
|
41
|
-
//
|
|
43
|
+
// #region Functions (3)
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
export function create(isy?: ISY, config?: Config): Promise<ServerNode> {
|
|
46
|
+
return createMatterServer(isy, config);
|
|
47
|
+
}
|
|
44
48
|
|
|
45
|
-
|
|
46
|
-
export async function createServerNode(isy: ISY = ISY.instance): Promise<ServerNode> {
|
|
49
|
+
export async function createMatterServer(isy?: ISY, config?: Config): Promise<ServerNode> {
|
|
47
50
|
var logger = isy.logger;
|
|
51
|
+
if (isy === undefined) {
|
|
52
|
+
isy = ISY.instance;
|
|
53
|
+
}
|
|
48
54
|
|
|
49
55
|
try {
|
|
50
56
|
MatterLogger.addLogger(
|
|
@@ -59,7 +65,7 @@ export async function createServerNode(isy: ISY = ISY.instance): Promise<ServerN
|
|
|
59
65
|
MatterLogger.defaultLogLevel = levelFromString(logger.level);
|
|
60
66
|
}
|
|
61
67
|
|
|
62
|
-
|
|
68
|
+
config = await initializeConfiguration(isy, config);
|
|
63
69
|
|
|
64
70
|
logger.info(`Matter config read: ${JSON.stringify(config)}`);
|
|
65
71
|
|
|
@@ -75,8 +81,6 @@ export async function createServerNode(isy: ISY = ISY.instance): Promise<ServerN
|
|
|
75
81
|
//ipv4: false,
|
|
76
82
|
discoveryCapabilities: {
|
|
77
83
|
onIpNetwork: true
|
|
78
|
-
|
|
79
|
-
|
|
80
84
|
}
|
|
81
85
|
},
|
|
82
86
|
|
|
@@ -128,7 +132,8 @@ export async function createServerNode(isy: ISY = ISY.instance): Promise<ServerN
|
|
|
128
132
|
|
|
129
133
|
const endpoints: { 0: Endpoint; 1: InsteonRelayDevice }[] = [];
|
|
130
134
|
|
|
131
|
-
for (const
|
|
135
|
+
for (const node of isy.nodeMap.values()) {
|
|
136
|
+
let device = node as ISYDeviceNode<any, any, any>;
|
|
132
137
|
let serialNumber = `${device.address.replaceAll(' ', '_').replaceAll('.', '_')}`;
|
|
133
138
|
if (device.enabled && !(device instanceof InsteonKeypadButtonDevice)) {
|
|
134
139
|
//const name = `OnOff ${isASocket ? "Socket" : "Light"} ${i}`;
|
|
@@ -151,6 +156,7 @@ export async function createServerNode(isy: ISY = ISY.instance): Promise<ServerN
|
|
|
151
156
|
}
|
|
152
157
|
|
|
153
158
|
if (baseBehavior !== undefined) {
|
|
159
|
+
//@ts-ignore
|
|
154
160
|
const endpoint = new Endpoint(baseBehavior, {
|
|
155
161
|
id: serialNumber,
|
|
156
162
|
isyNode: {
|
|
@@ -194,9 +200,13 @@ export async function createServerNode(isy: ISY = ISY.instance): Promise<ServerN
|
|
|
194
200
|
* offline again because we do not need anything more here. See the Full example for other starting options.
|
|
195
201
|
* The QR Code is printed automatically.
|
|
196
202
|
*/
|
|
203
|
+
process.on('SIGINT', async () => {
|
|
204
|
+
logger.info('Bringing server offline');
|
|
205
|
+
server.close();
|
|
206
|
+
});
|
|
197
207
|
|
|
198
208
|
logger.info('Bringing server online');
|
|
199
|
-
await server.
|
|
209
|
+
await server.start();
|
|
200
210
|
|
|
201
211
|
logger.info('Matter Server is online');
|
|
202
212
|
/**
|
|
@@ -220,34 +230,20 @@ export async function createServerNode(isy: ISY = ISY.instance): Promise<ServerN
|
|
|
220
230
|
logger.info(`Manual pairing code: ${manualPairingCode}`);
|
|
221
231
|
}
|
|
222
232
|
/*for(let e of endpoints)
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
233
|
+
{
|
|
234
|
+
e[1].initialize(e[0] as any);
|
|
235
|
+
}*/
|
|
226
236
|
|
|
227
237
|
return server;
|
|
228
|
-
|
|
229
|
-
function createBaseBehavior(): any {
|
|
230
|
-
let baseBehavior: any;
|
|
231
|
-
return baseBehavior;
|
|
232
|
-
}
|
|
233
238
|
}
|
|
234
239
|
|
|
235
|
-
async function
|
|
240
|
+
async function initializeConfiguration(isy: ISY, config?: Config): Promise<Config> {
|
|
236
241
|
var logger = isy.logger;
|
|
237
|
-
/**
|
|
238
|
-
* Collect all needed data
|
|
239
|
-
*
|
|
240
|
-
* This block collects all needed data from cli, environment or storage. Replace this with where ever your data come from.
|
|
241
|
-
*
|
|
242
|
-
* Note: This example uses the matter.js process storage system to store the device parameter data for convenience
|
|
243
|
-
* and easy reuse. When you also do that be careful to not overlap with Matter-Server own storage contexts
|
|
244
|
-
* (so maybe better not do it ;-)).
|
|
245
|
-
*/
|
|
246
242
|
|
|
247
243
|
const environment = NodeJsEnvironment();
|
|
248
244
|
|
|
249
245
|
const storageService = environment.get(StorageService);
|
|
250
|
-
environment.vars.set('storage.path', ISY.instance.storagePath
|
|
246
|
+
environment.vars.set('storage.path', `${ISY.instance.storagePath}matter`);
|
|
251
247
|
environment.vars.use(() => {
|
|
252
248
|
const location = environment.vars.get('storage.path', environment.vars.get('path.root', '.'));
|
|
253
249
|
storageService.location = location;
|
|
@@ -258,15 +254,15 @@ async function getConfiguration(isy: ISY) {
|
|
|
258
254
|
const deviceStorage = (await storageService.open('device')).createContext('data');
|
|
259
255
|
|
|
260
256
|
const vendorName = isy.vendorName;
|
|
261
|
-
const passcode = environment.vars.number('passcode') ?? (await deviceStorage.get('passcode', 20202021));
|
|
262
|
-
const discriminator = environment.vars.number('discriminator') ?? (await deviceStorage.get('discriminator', 3840));
|
|
257
|
+
const passcode = config.passcode ?? environment.vars.number('passcode') ?? (await deviceStorage.get('passcode', 20202021));
|
|
258
|
+
const discriminator = config.discriminator ?? environment.vars.number('discriminator') ?? (await deviceStorage.get('discriminator', 3840));
|
|
263
259
|
// product name / id and vendor id should match what is in the device certificate
|
|
264
|
-
const vendorId = environment.vars.number('vendorid') ?? (await deviceStorage.get('vendorid', 0xfff1));
|
|
265
|
-
const productId = environment.vars.number('productid') ?? (await deviceStorage.get('productid', 0x8000));
|
|
260
|
+
const vendorId = config.vendorId ?? environment.vars.number('vendorid') ?? (await deviceStorage.get('vendorid', 0xfff1));
|
|
261
|
+
const productId = config.productId ?? environment.vars.number('productid') ?? (await deviceStorage.get('productid', 0x8000));
|
|
266
262
|
const productName = isy.productName;
|
|
267
|
-
const port = environment.vars.number('port') ?? 5540;
|
|
263
|
+
const port = config.port ?? environment.vars.number('port') ?? 5540;
|
|
268
264
|
|
|
269
|
-
const uniqueId = isy.id;
|
|
265
|
+
const uniqueId = isy.id.replaceAll(':', '_');
|
|
270
266
|
//environment.vars.string("uniqueid") ?? (await deviceStorage.get("uniqueid", Time.nowMs().toString()));
|
|
271
267
|
|
|
272
268
|
// Persist basic data to keep them also on restart
|
|
@@ -291,4 +287,4 @@ async function getConfiguration(isy: ISY) {
|
|
|
291
287
|
};
|
|
292
288
|
}
|
|
293
289
|
|
|
294
|
-
// #endregion Functions (
|
|
290
|
+
// #endregion Functions (3)
|
|
@@ -1,68 +1,61 @@
|
|
|
1
|
-
import { OnOffCluster } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
type DeviceToClusterMap,
|
|
10
|
-
type EndpointMapping
|
|
11
|
-
} from "../../Model/ClusterMap.js";
|
|
12
|
-
import { DeviceTypeDefinition, DeviceTypes, OnOffBaseDevice } from "@project-chip/matter.js/device";
|
|
13
|
-
import { OnOffLightDevice } from "@project-chip/matter.js/devices/OnOffLightDevice";
|
|
1
|
+
import { OnOffCluster } from '@project-chip/matter.js/cluster';
|
|
2
|
+
import { DeviceTypeDefinition, DeviceTypes, OnOffBaseDevice } from '@project-chip/matter.js/device';
|
|
3
|
+
import { OnOffLightDevice } from '@project-chip/matter.js/devices/OnOffLightDevice';
|
|
4
|
+
import { DriverType } from '../../Definitions/Global/Drivers.js';
|
|
5
|
+
import { Family, type t } from '../../Definitions/Global/Families.js';
|
|
6
|
+
import { Insteon } from '../../Devices/Insteon/index.js';
|
|
7
|
+
import { Devices } from '../../Devices/index.js';
|
|
8
|
+
import { MappingRegistry, type DeviceToClusterMap, type EndpointMapping, type FamilyToClusterMap } from '../../Model/ClusterMap.js';
|
|
14
9
|
|
|
15
10
|
//import InsteonMap from "./Insteon.json";
|
|
16
|
-
import { DimmableLightDevice } from
|
|
17
|
-
import {
|
|
11
|
+
import { DimmableLightDevice } from '@project-chip/matter.js/devices/DimmableLightDevice';
|
|
12
|
+
import { Converter } from '../../Converters.js';
|
|
18
13
|
import type { InsteonRelaySwitchDevice } from '../../Devices/Insteon/InsteonRelaySwitchDevice.js';
|
|
19
14
|
|
|
20
|
-
|
|
21
|
-
|
|
22
15
|
const map: FamilyToClusterMap<Family.Insteon> = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
},
|
|
16
|
+
Family: Family.Insteon,
|
|
17
|
+
Relay: {
|
|
18
|
+
deviceType: OnOffLightDevice,
|
|
19
|
+
mapping: {
|
|
20
|
+
OnOff: {
|
|
21
|
+
attributes: {
|
|
22
|
+
onOff: { driver: 'ST', converter: 'Percent.Boolean' }
|
|
23
|
+
},
|
|
24
|
+
commands: { on: 'DON' }
|
|
25
|
+
}
|
|
26
|
+
} as EndpointMapping<OnOffLightDevice, Insteon.Relay>
|
|
27
|
+
},
|
|
28
|
+
RelaySwitch: {
|
|
29
|
+
deviceType: OnOffLightDevice,
|
|
30
|
+
mapping: {
|
|
31
|
+
OnOff: {
|
|
32
|
+
attributes: {
|
|
33
|
+
onOff: 'ST'
|
|
34
|
+
},
|
|
35
|
+
commands: { on: 'DON' }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
Dimmer: {
|
|
40
|
+
deviceType: DimmableLightDevice,
|
|
41
|
+
mapping: {
|
|
42
|
+
OnOff: {
|
|
43
|
+
attributes: {
|
|
44
|
+
onOff: { driver: 'ST', converter: 'LevelFrom0To255.Boolean' }
|
|
45
|
+
},
|
|
46
|
+
commands: { on: 'DON' }
|
|
47
|
+
},
|
|
48
|
+
LevelControl: {
|
|
49
|
+
attributes: {
|
|
50
|
+
currentLevel: { driver: DriverType.Status, converter: 'LevelFrom0To255.LightingLevel' }
|
|
51
|
+
},
|
|
52
|
+
commands: { moveToLevel: { command: 'DON' } }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
66
56
|
};
|
|
67
57
|
|
|
58
|
+
map.KeypadDimmer = map.Dimmer;
|
|
59
|
+
map.DimmerSwitch = map.Dimmer;
|
|
60
|
+
|
|
68
61
|
MappingRegistry.register(map);
|
|
File without changes
|
package/src/Model/ClusterMap.ts
CHANGED
|
@@ -1,25 +1,34 @@
|
|
|
1
|
-
import * as Clusters from '@project-chip/matter.js/cluster';
|
|
2
|
-
import { Driver, DriverType } from '../Definitions/Global/Drivers.js';
|
|
3
1
|
import { Behavior } from '@project-chip/matter.js/behavior';
|
|
4
2
|
import { ClusterBehavior } from '@project-chip/matter.js/behavior/cluster';
|
|
5
3
|
import type { OnOffBehavior } from '@project-chip/matter.js/behaviors/on-off';
|
|
4
|
+
import * as Clusters from '@project-chip/matter.js/cluster';
|
|
6
5
|
import { type Device, type DeviceTypeDefinition, type OnOffBaseDevice } from '@project-chip/matter.js/device';
|
|
7
6
|
import { OnOffLightDevice } from '@project-chip/matter.js/devices/OnOffLightDevice';
|
|
7
|
+
import * as DeviceTypes from '@project-chip/matter.js/endpoint/definitions';
|
|
8
8
|
import { SupportedBehaviors } from '@project-chip/matter.js/endpoint/properties';
|
|
9
9
|
import type { MutableEndpoint } from '@project-chip/matter.js/endpoint/type';
|
|
10
10
|
import type { Identity } from '@project-chip/matter.js/util';
|
|
11
11
|
import test from 'node:test';
|
|
12
|
+
import type { Converter } from '../Converters.js';
|
|
13
|
+
import { Driver, DriverType } from '../Definitions/Global/Drivers.js';
|
|
12
14
|
import { Devices, type ToDevice } from '../Devices/index.js';
|
|
15
|
+
import { Insteon } from '../Devices/Insteon/index.js';
|
|
13
16
|
import { Family, InsteonRelayDevice } from '../ISY.js';
|
|
14
17
|
import type { ISYDevice } from '../ISYDevice.js';
|
|
15
18
|
import type { CommandsOf, DriversOf, ISYNode } from '../ISYNode.js';
|
|
16
19
|
import type { ClusterForBehavior } from '../Matter/Behaviors/ISYClusterBehavior.js';
|
|
17
20
|
import { ClusterType } from './ClusterType.js';
|
|
18
21
|
|
|
22
|
+
// #region Type aliases (16)
|
|
23
|
+
|
|
19
24
|
export type AttributeMapping<B, D> =
|
|
20
25
|
B extends { cluster: { attributes: infer E extends { [K in string]: Clusters.ClusterType.Attribute } } } ?
|
|
21
|
-
Partial<Record<keyof E, keyof DriversOf<D> | { driver: keyof DriversOf<D>; converter?:
|
|
26
|
+
Partial<Record<keyof E, keyof DriversOf<D> | { driver: keyof DriversOf<D>; converter?: Converter.KnownConverters }>>
|
|
22
27
|
: never;
|
|
28
|
+
export type BehaviorMapping<B extends { cluster? }, T extends ISYNode<any, any, any, any>> = {
|
|
29
|
+
attributes?: AttributeMapping<B, T>;
|
|
30
|
+
commands?: CommandMapping<B, T>;
|
|
31
|
+
};
|
|
23
32
|
export type ClusterAttributeMapping<A, K> = {
|
|
24
33
|
[key in keyof Clusters.ClusterType.AttributesOf<A>]?: { driver: Extract<keyof DriversOf<K>, string>; converter?: (value: any) => any } | Extract<keyof DriversOf<K>, string>;
|
|
25
34
|
};
|
|
@@ -82,18 +91,18 @@ export type CommandMapping<B, D> =
|
|
|
82
91
|
// behavior?: typeof ClusterBehavior;
|
|
83
92
|
|
|
84
93
|
// }
|
|
85
|
-
export type DeviceToClusterMap<T extends ISYNode<Family, any, any, any>, D> =
|
|
94
|
+
export type DeviceToClusterMap<T extends ISYNode<Family, any, any, any>, D extends { behaviors: SupportedBehaviors; deviceType: string }> =
|
|
86
95
|
D extends { behaviors: SupportedBehaviors; deviceType: string } ?
|
|
87
96
|
{
|
|
88
97
|
deviceType: D;
|
|
89
98
|
mapping: EndpointMapping<D, T>;
|
|
90
99
|
}
|
|
91
100
|
: never;
|
|
92
|
-
export type EndpointMapping<A extends { behaviors: any }, D
|
|
93
|
-
[K in Capitalize<StringKeys<A['behaviors']>>]?: {
|
|
94
|
-
|
|
95
|
-
commands?: CommandMapping<A['behaviors'][Uncapitalize<K>], D
|
|
96
|
-
};
|
|
101
|
+
export type EndpointMapping<A extends { behaviors: any }, D extends ISYNode<Family, any, any, any>> = {
|
|
102
|
+
[K in Capitalize<StringKeys<A['behaviors']>>]?: BehaviorMapping<A['behaviors'][Uncapitalize<K>], D>; //{
|
|
103
|
+
/*attributes?: AttributeMapping<A['behaviors'][Uncapitalize<K>], D>;
|
|
104
|
+
commands?: CommandMapping<A['behaviors'][Uncapitalize<K>], D>;*/
|
|
105
|
+
//};
|
|
97
106
|
};
|
|
98
107
|
////const ClusterIdentifier = Object.values(Clusters).filter(p=> p instanceof Clusters.MutableCluster && typeof p == "object" && p.constructor.name.endsWith(".Cluster"));
|
|
99
108
|
//type clusterList = keyof typeof ClusterIdentifier;
|
|
@@ -113,7 +122,7 @@ export type EndpointMapping1<A extends MutableEndpoint, K> = {
|
|
|
113
122
|
attributes?: SBAttributeMapping<A['behaviors'], K>;
|
|
114
123
|
commands?: SBCommandMapping<A['behaviors'], K>;
|
|
115
124
|
};
|
|
116
|
-
export type FamilyToClusterMap<T extends Family.Insteon | Family.ZWave | Family.ZigBee> = {
|
|
125
|
+
export type FamilyToClusterMap<T extends Family.Insteon | Family.ZWave | Family.ZigBee> = { Family: T } & {
|
|
117
126
|
[Type in keyof Devices.Insteon]?: DeviceToClusterMap<InstanceType<Devices.Insteon[Type]>, any>;
|
|
118
127
|
};
|
|
119
128
|
export type SBAttributeMapping<SB extends SupportedBehaviors, D> = {
|
|
@@ -130,7 +139,7 @@ export type parameterMapping = {
|
|
|
130
139
|
[key: string]: { parameter: string; converter?: string };
|
|
131
140
|
};
|
|
132
141
|
|
|
133
|
-
// #endregion Type aliases (
|
|
142
|
+
// #endregion Type aliases (16)
|
|
134
143
|
|
|
135
144
|
// #region Classes (1)
|
|
136
145
|
|
|
@@ -143,25 +152,25 @@ export class MappingRegistry {
|
|
|
143
152
|
|
|
144
153
|
// #region Public Static Methods (3)
|
|
145
154
|
|
|
146
|
-
public static getMapping<T extends
|
|
155
|
+
public static getMapping<T extends ISYNode<any, any, any, any>>(device: T) {
|
|
147
156
|
return MappingRegistry.map.get(device.constructor.name);
|
|
148
157
|
}
|
|
149
158
|
|
|
150
|
-
public static getMappingForBehavior<T extends
|
|
151
|
-
var m = MappingRegistry.getMapping(device);
|
|
159
|
+
public static getMappingForBehavior<T extends ISYNode<any, any, any, any>, B extends ClusterBehavior>(device: T, behavior: B): BehaviorMapping<B, T> {
|
|
160
|
+
//var m = MappingRegistry.getMapping(device);
|
|
152
161
|
|
|
153
|
-
return m[behavior.cluster.name];
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
// return MappingRegistry.getMapping(device).mapping[m];
|
|
158
|
-
|
|
159
|
-
// }
|
|
162
|
+
//return m[behavior.cluster.name];
|
|
163
|
+
for (var m in MappingRegistry.getMapping(device).mapping) {
|
|
164
|
+
if (behavior.cluster.name === m) return MappingRegistry.getMapping(device).mapping[m] as unknown as BehaviorMapping<B, T>;
|
|
165
|
+
}
|
|
160
166
|
}
|
|
161
167
|
|
|
162
168
|
public static register(map: Partial<FamilyToClusterMap<any>>) {
|
|
163
169
|
for (var key in map) {
|
|
164
|
-
|
|
170
|
+
if (key !== 'Family') {
|
|
171
|
+
MappingRegistry.map.set(key, map[key]);
|
|
172
|
+
MappingRegistry.map.set(Insteon[key].name, map[key]);
|
|
173
|
+
}
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
176
|
|
package/src/Utils.ts
CHANGED
|
@@ -10,18 +10,9 @@ import { Category } from './Definitions/Global/Categories.js';
|
|
|
10
10
|
//import { get } from 'http';
|
|
11
11
|
import type { Identity } from '@project-chip/matter.js/util';
|
|
12
12
|
import { isBoxedPrimitive } from 'util/types';
|
|
13
|
-
import {
|
|
13
|
+
import { Family, type Driver, type DriverType, type EnumLiteral } from './Definitions/index.js';
|
|
14
14
|
import { EventType } from './Events/EventType.js';
|
|
15
15
|
|
|
16
|
-
export interface Converter<F, T> {
|
|
17
|
-
// #region Properties (2)
|
|
18
|
-
|
|
19
|
-
from: (value: F) => T;
|
|
20
|
-
to: (value: T) => F;
|
|
21
|
-
|
|
22
|
-
// #endregion Properties (2)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
16
|
export type StringKeys<T> = Extract<keyof T, string>;
|
|
26
17
|
|
|
27
18
|
export function getEnumValueByEnumKey<E extends { [index: string]: number }, T extends keyof E>(enumType: E, enumKey: T): E[T] {
|
|
@@ -42,15 +33,6 @@ export type IdentityOf<T> = T extends (...args: any[]) => infer R ? R : T;
|
|
|
42
33
|
export type LabelsOf<TEnum> = keyof IdentityOf<TEnum>;
|
|
43
34
|
type d = LabelsOf<Family>;
|
|
44
35
|
|
|
45
|
-
//onst D: d = 'ST';
|
|
46
|
-
//type DriverLabel = Values<IdentityOf<DriverType>>;
|
|
47
|
-
export function invert<F, T>(converter: Converter<F, T>): Converter<T, F> {
|
|
48
|
-
return {
|
|
49
|
-
from: converter.to,
|
|
50
|
-
to: converter.from
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
36
|
export type MaybeArray<T> = T | T[];
|
|
55
37
|
|
|
56
38
|
export type ObjectToUnion<T> = T[keyof T];
|
package/LICENSE
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2015 Rod Toll
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
22
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Matter/Server/Server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../../../../../src/Matter/Server/Server.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI1D,OAAO,EAAwE,GAAG,EAAE,MAAM,cAAc,CAAC;AA4BzG,wBAAsB,gBAAgB,CAAC,GAAG,GAAE,GAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2LnF"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */
|
|
2
|
-
import { UnitOfMeasure } from "../../../Definitions/Global/UOM.js";
|
|
3
|
-
import { Base } from "../index.js";
|
|
4
|
-
import { Driver } from "../../../Definitions/Global/Drivers.js";
|
|
5
|
-
import { NodeFactory } from "../../NodeFactory.js";
|
|
6
|
-
export const nodeDefId = "RelayLampSwitch";
|
|
7
|
-
export class RelayLampSwitchNode extends Base {
|
|
8
|
-
commands = {
|
|
9
|
-
DON: this.on,
|
|
10
|
-
DOF: this.off,
|
|
11
|
-
DFOF: this.fastOff,
|
|
12
|
-
DFON: this.fastOn,
|
|
13
|
-
QUERY: this.query,
|
|
14
|
-
BEEP: this.beep,
|
|
15
|
-
BL: this.backlight,
|
|
16
|
-
WDU: this.writeChanges
|
|
17
|
-
};
|
|
18
|
-
static nodeDefId = "RelayLampSwitch";
|
|
19
|
-
constructor(isy, nodeInfo) {
|
|
20
|
-
super(isy, nodeInfo);
|
|
21
|
-
this.drivers.ST = Driver.create("ST", this, nodeInfo.property, { uom: UnitOfMeasure.Percent, label: "Status", name: "status" });
|
|
22
|
-
this.drivers.ERR = Driver.create("ERR", this, nodeInfo.property, { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" });
|
|
23
|
-
}
|
|
24
|
-
async on(value) {
|
|
25
|
-
return this.sendCommand("DON", { value: value });
|
|
26
|
-
}
|
|
27
|
-
async off() {
|
|
28
|
-
return this.sendCommand("DOF");
|
|
29
|
-
}
|
|
30
|
-
async fastOff() {
|
|
31
|
-
return this.sendCommand("DFOF");
|
|
32
|
-
}
|
|
33
|
-
async fastOn() {
|
|
34
|
-
return this.sendCommand("DFON");
|
|
35
|
-
}
|
|
36
|
-
async query() {
|
|
37
|
-
return this.sendCommand("QUERY");
|
|
38
|
-
}
|
|
39
|
-
async beep(value) {
|
|
40
|
-
return this.sendCommand("BEEP", { value: value });
|
|
41
|
-
}
|
|
42
|
-
async backlight(value) {
|
|
43
|
-
return this.sendCommand("BL", { value: value });
|
|
44
|
-
}
|
|
45
|
-
async writeChanges() {
|
|
46
|
-
return this.sendCommand("WDU");
|
|
47
|
-
}
|
|
48
|
-
get status() {
|
|
49
|
-
return this.drivers.ST?.value;
|
|
50
|
-
}
|
|
51
|
-
get responding() {
|
|
52
|
-
return this.drivers.ERR?.value;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
NodeFactory.register(RelayLampSwitchNode);
|
|
56
|
-
export var RelayLampSwitch;
|
|
57
|
-
(function (RelayLampSwitch) {
|
|
58
|
-
function is(node) {
|
|
59
|
-
return node.nodeDefId === nodeDefId;
|
|
60
|
-
}
|
|
61
|
-
RelayLampSwitch.is = is;
|
|
62
|
-
function create(isy, nodeInfo) {
|
|
63
|
-
return new RelayLampSwitchNode(isy, nodeInfo);
|
|
64
|
-
}
|
|
65
|
-
RelayLampSwitch.create = create;
|
|
66
|
-
RelayLampSwitch.Node = RelayLampSwitchNode;
|
|
67
|
-
})(RelayLampSwitch || (RelayLampSwitch = {}));
|
|
68
|
-
//# sourceMappingURL=RelayLampSwitch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RelayLampSwitch.js","sourceRoot":"","sources":["../../../../../src/Devices/Insteon/Generated/RelayLampSwitch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Matter/Server/Server.ts"],"names":[],"mappings":"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"}
|