matterbridge 1.2.19 → 1.2.21

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterbridgeDeviceV8.d.ts","sourceRoot":"","sources":["../src/matterbridgeDeviceV8.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAkB,MAAM,kCAAkC,CAAC;AAG5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAG5F,OAAO,EAAE,oBAAoB,EAAe,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAGzG,OAAO,EAAE,UAAU,EAA+B,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAGlE,qBAAa,oBAAoB;IAC/B,OAAc,UAAU,SAAM;IAC9B,GAAG,EAAE,UAAU,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAa;IAC7C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC3C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IAEzC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAEpC;;;;;OAKG;gBACS,UAAU,EAAE,oBAAoB,EAAE,OAAO,GAAE,eAAoB;IAK3E;;;;;OAKG;WACU,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe;IAIpF;;;;;OAKG;IACH,aAAa,CAAC,UAAU,EAAE,oBAAoB;IAM9C;;;;;OAKG;IACH,8BAA8B,CAAC,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE;IAe5G,wBAAwB;CAOzB"}
@@ -0,0 +1,75 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ // New API imports
3
+ import { Endpoint } from '@project-chip/matter.js/endpoint';
4
+ import { OnOffLightDevice } from '@project-chip/matter.js/devices/OnOffLightDevice';
5
+ import { BridgedNodeEndpoint } from '@project-chip/matter.js/endpoints/BridgedNodeEndpoint';
6
+ // Matterbridge imports
7
+ import { AnsiLogger, db, hk, zb } from 'node-ansi-logger';
8
+ import { getClusterNameById } from '@project-chip/matter-node.js/cluster';
9
+ export class MatterbridgeDeviceV8 {
10
+ static bridgeMode = '';
11
+ log;
12
+ serialNumber = undefined;
13
+ deviceName = undefined;
14
+ uniqueId = undefined;
15
+ deviceTypes;
16
+ /**
17
+ * Represents a Matterbridge device.
18
+ * @constructor
19
+ * @param {DeviceTypeDefinition} definition - The definition of the device.
20
+ * @param {EndpointOptions} [options={}] - The options for the device.
21
+ */
22
+ constructor(definition, options = {}) {
23
+ this.log = new AnsiLogger({ logName: 'MatterbridgeDevice', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logDebug: true });
24
+ this.deviceTypes = [definition];
25
+ }
26
+ /**
27
+ * Loads an instance of the MatterbridgeDevice class.
28
+ *
29
+ * @param {DeviceTypeDefinition} definition - The DeviceTypeDefinition of the device.
30
+ * @returns MatterbridgeDevice instance.
31
+ */
32
+ static async loadInstance(definition, options) {
33
+ return new MatterbridgeDeviceV8(definition, options);
34
+ }
35
+ /**
36
+ * Adds a device type to the list of device types.
37
+ * If the device type is not already present in the list, it will be added.
38
+ *
39
+ * @param {DeviceTypeDefinition} deviceType - The device type to add.
40
+ */
41
+ addDeviceType(deviceType) {
42
+ if (!this.deviceTypes.includes(deviceType)) {
43
+ this.deviceTypes.push(deviceType);
44
+ }
45
+ }
46
+ /**
47
+ * Adds one or more device types with the required cluster servers and the specified cluster servers.
48
+ *
49
+ * @param {AtLeastOne<DeviceTypeDefinition>} deviceTypes - The device types to add.
50
+ * @param {ClusterId[]} includeServerList - The list of cluster IDs to include.
51
+ */
52
+ addDeviceTypeWithClusterServer(deviceTypes, includeServerList) {
53
+ this.log.debug('addDeviceTypeWithClusterServer:');
54
+ deviceTypes.forEach((deviceType) => {
55
+ this.addDeviceType(deviceType);
56
+ this.log.debug(`- with deviceType: ${zb}${deviceType.code}${db}-${zb}${deviceType.name}${db}`);
57
+ deviceType.requiredServerClusters.forEach((clusterId) => {
58
+ if (!includeServerList.includes(clusterId))
59
+ includeServerList.push(clusterId);
60
+ });
61
+ });
62
+ includeServerList.forEach((clusterId) => {
63
+ this.log.debug(`- with cluster: ${hk}${clusterId}${db}-${hk}${getClusterNameById(clusterId)}${db}`);
64
+ });
65
+ // this.addClusterServerFromList(this, includeServerList);
66
+ }
67
+ getBridgedNodeEndpointV8() {
68
+ // New API
69
+ const endpoint = new Endpoint(BridgedNodeEndpoint, { id: 'MatterbridgeDevice' });
70
+ const child = new Endpoint(OnOffLightDevice, { id: 'onoff' });
71
+ endpoint.add(child);
72
+ return endpoint;
73
+ }
74
+ }
75
+ //# sourceMappingURL=matterbridgeDeviceV8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterbridgeDeviceV8.js","sourceRoot":"","sources":["../src/matterbridgeDeviceV8.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,kBAAkB;AAClB,OAAO,EAAE,QAAQ,EAAkB,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAK5F,uBAAuB;AACvB,OAAO,EAAE,UAAU,EAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,MAAM,OAAO,oBAAoB;IACxB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IAC9B,GAAG,CAAa;IAChB,YAAY,GAAuB,SAAS,CAAC;IAC7C,UAAU,GAAuB,SAAS,CAAC;IAC3C,QAAQ,GAAuB,SAAS,CAAC;IAEzC,WAAW,CAAyB;IAEpC;;;;;OAKG;IACH,YAAY,UAAgC,EAAE,UAA2B,EAAE;QACzE,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,qCAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9H,IAAI,CAAC,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAgC,EAAE,OAAwB;QAClF,OAAO,IAAI,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,UAAgC;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,8BAA8B,CAAC,WAA6C,EAAE,iBAA8B;QAC1G,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAClD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,UAAU,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/F,UAAU,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACtD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,SAAS,GAAG,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;QACH,0DAA0D;IAC5D,CAAC;IAED,wBAAwB;QACtB,UAAU;QACV,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,QAAQ,CAAC;IAClB,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * This file contains the class NewMatterbridge. Test of new matter.js api
3
+ *
4
+ * @file matterbridgeNewApi.ts
5
+ * @author Luca Liguori
6
+ * @date 2024-06-01
7
+ * @version 1.0.0
8
+ *
9
+ * Copyright 2024 Luca Liguori.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License. *
22
+ */
23
+ /// <reference types="node" resolution-mode="require"/>
24
+ /**
25
+ * Import needed modules from @project-chip/matter-node.js
26
+ */
27
+ import '@project-chip/matter-node.js';
28
+ import { Logger } from '@project-chip/matter-node.js/log';
29
+ import { StorageContext, StorageManager } from '@project-chip/matter-node.js/storage';
30
+ import { StorageService } from '@project-chip/matter.js/environment';
31
+ import { ServerNode } from '@project-chip/matter.js/node';
32
+ import EventEmitter from 'events';
33
+ /**
34
+ * Represents the Matterbridge application.
35
+ */
36
+ export declare class MatterbridgeV8 extends EventEmitter {
37
+ private environment;
38
+ matterbridgeVersion: string;
39
+ osVersion: string;
40
+ matterbridgeDirectory: string;
41
+ matterbridgePluginDirectory: string;
42
+ globalModulesDirectory: string;
43
+ matterStorageService?: StorageService;
44
+ matterStorageManager?: StorageManager;
45
+ matterStorageContext?: StorageContext;
46
+ matterServerNode?: ServerNode<ServerNode.RootEndpoint>;
47
+ matterLogger?: Logger;
48
+ private constructor();
49
+ static create(): Promise<MatterbridgeV8>;
50
+ initialize(): Promise<void>;
51
+ private setupMatterVars;
52
+ private setupMatterStorage;
53
+ private deleteMatterLogfile;
54
+ private setupMatterFileLogger;
55
+ /**
56
+ * Creates a commissioning server storage context.
57
+ *
58
+ * @param pluginName - The name of the plugin.
59
+ * @param deviceName - The name of the device.
60
+ * @param deviceType - The type of the device.
61
+ * @param vendorId - The vendor ID.
62
+ * @param vendorName - The vendor name.
63
+ * @param productId - The product ID.
64
+ * @param productName - The product name.
65
+ * @param serialNumber - The serial number of the device (optional).
66
+ * @param uniqueId - The unique ID of the device (optional).
67
+ * @param softwareVersion - The software version of the device (optional).
68
+ * @param softwareVersionString - The software version string of the device (optional).
69
+ * @param hardwareVersion - The hardware version of the device (optional).
70
+ * @param hardwareVersionString - The hardware version string of the device (optional).
71
+ * @returns The storage context for the commissioning server.
72
+ */
73
+ private createServerNodeContext;
74
+ startServerNode(port?: number, passcode?: number, discriminator?: number): Promise<void>;
75
+ showServerNodeQR(): void;
76
+ stopServerNode(): Promise<void>;
77
+ }
78
+ //# sourceMappingURL=matterbridgeV8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterbridgeV8.d.ts","sourceRoot":"","sources":["../src/matterbridgeV8.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;;AAEH;;GAEG;AAEH,OAAO,8BAA8B,CAAC;AAGtC,OAAO,EAAiB,MAAM,EAAoB,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAe,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAY1D,OAAO,YAAY,MAAM,QAAQ,CAAC;AAMlC;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,WAAW,CAAuB;IAEnC,mBAAmB,SAAW;IAC9B,SAAS,SAAgB;IACzB,qBAAqB,SAAM;IAC3B,2BAA2B,SAAM;IACjC,sBAAsB,SAAM;IAE5B,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,oBAAoB,CAAC,EAAE,cAAc,CAAC;IAEtC,gBAAgB,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAEvD,YAAY,CAAC,EAAE,MAAM,CAAC;IAE7B,OAAO;WAIM,MAAM;IAMb,UAAU;IAehB,OAAO,CAAC,eAAe;YAMT,kBAAkB;YAWlB,mBAAmB;YAOnB,qBAAqB;IAOnC;;;;;;;;;;;;;;;;;OAiBG;YACW,uBAAuB;IAmC/B,eAAe,CAAC,IAAI,SAAO,EAAE,QAAQ,SAAW,EAAE,aAAa,SAAO;IAmK5E,gBAAgB;IAkBV,cAAc;CAIrB"}
@@ -0,0 +1,327 @@
1
+ /* eslint-disable no-console */
2
+ /* eslint-disable @typescript-eslint/no-unused-vars */
3
+ /**
4
+ * This file contains the class NewMatterbridge. Test of new matter.js api
5
+ *
6
+ * @file matterbridgeNewApi.ts
7
+ * @author Luca Liguori
8
+ * @date 2024-06-01
9
+ * @version 1.0.0
10
+ *
11
+ * Copyright 2024 Luca Liguori.
12
+ *
13
+ * Licensed under the Apache License, Version 2.0 (the "License");
14
+ * you may not use this file except in compliance with the License.
15
+ * You may obtain a copy of the License at
16
+ *
17
+ * http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software
20
+ * distributed under the License is distributed on an "AS IS" BASIS,
21
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ * See the License for the specific language governing permissions and
23
+ * limitations under the License. *
24
+ */
25
+ /**
26
+ * Import needed modules from @project-chip/matter-node.js
27
+ */
28
+ // Include this first to auto-register Crypto, Network and Time Node.js implementations
29
+ import '@project-chip/matter-node.js';
30
+ import { CryptoNode } from '@project-chip/matter-node.js/crypto';
31
+ import { DeviceTypeId, FabricIndex, VendorId } from '@project-chip/matter-node.js/datatype';
32
+ import { Format, Level, Logger, createFileLogger } from '@project-chip/matter-node.js/log';
33
+ import { Environment, StorageService } from '@project-chip/matter.js/environment';
34
+ import { ServerNode } from '@project-chip/matter.js/node';
35
+ import { OnOffLightDevice } from '@project-chip/matter.js/devices/OnOffLightDevice';
36
+ import { Endpoint, EndpointServer } from '@project-chip/matter.js/endpoint';
37
+ import { logEndpoint } from '@project-chip/matter-node.js/device';
38
+ import { QrCode } from '@project-chip/matter-node.js/schema';
39
+ import { FabricAction } from '@project-chip/matter-node.js/fabric';
40
+ import { AggregatorEndpoint } from '@project-chip/matter.js/endpoints/AggregatorEndpoint';
41
+ import { BridgedDeviceBasicInformationServer } from '@project-chip/matter.js/behavior/definitions/bridged-device-basic-information';
42
+ import EventEmitter from 'events';
43
+ import path from 'path';
44
+ import { promises as fs } from 'fs';
45
+ /**
46
+ * Represents the Matterbridge application.
47
+ */
48
+ export class MatterbridgeV8 extends EventEmitter {
49
+ environment = Environment.default;
50
+ matterbridgeVersion = '2.0.0';
51
+ osVersion = '10.0.22631';
52
+ matterbridgeDirectory = '';
53
+ matterbridgePluginDirectory = '';
54
+ globalModulesDirectory = '';
55
+ matterStorageService;
56
+ matterStorageManager;
57
+ matterStorageContext;
58
+ matterServerNode;
59
+ matterLogger;
60
+ constructor() {
61
+ super();
62
+ }
63
+ static async create() {
64
+ const matterbridge = new MatterbridgeV8();
65
+ await matterbridge.initialize();
66
+ return matterbridge;
67
+ }
68
+ async initialize() {
69
+ this.matterLogger = Logger.get('Matterbridge');
70
+ this.matterbridgeDirectory = 'C:\\Users\\lligu\\.matterbridge';
71
+ this.matterbridgePluginDirectory = 'C:\\Users\\lligu\\Matterbridge';
72
+ await this.deleteMatterLogfile('matterbridge.log');
73
+ this.setupMatterVars(Level.DEBUG, Format.ANSI);
74
+ await this.setupMatterStorage();
75
+ await this.setupMatterFileLogger('matterbridge.log');
76
+ }
77
+ setupMatterVars(level, format) {
78
+ this.environment.vars.set('log.level', level);
79
+ this.environment.vars.set('log.format', format);
80
+ this.environment.vars.set('path.root', path.join(this.matterbridgeDirectory, 'matterstorage'));
81
+ }
82
+ async setupMatterStorage() {
83
+ this.matterStorageService = this.environment.get(StorageService);
84
+ this.matterLogger?.notice(`Storage service created: ${this.matterStorageService.location}`);
85
+ this.matterStorageManager = await this.matterStorageService.open('Matterbridge');
86
+ this.matterLogger?.notice('Storage manager created');
87
+ this.matterStorageContext = this.matterStorageManager.createContext('persist');
88
+ this.matterLogger?.notice('Storage context created');
89
+ }
90
+ async deleteMatterLogfile(filename) {
91
+ try {
92
+ await fs.unlink(path.join(this.matterbridgeDirectory, filename));
93
+ }
94
+ catch (err) {
95
+ console.error(`Error deleting old log file: ${err}`);
96
+ }
97
+ }
98
+ async setupMatterFileLogger(filename) {
99
+ Logger.addLogger('filelogger', await createFileLogger(path.join(this.matterbridgeDirectory, filename)), {
100
+ defaultLogLevel: Level.DEBUG,
101
+ });
102
+ this.matterLogger?.notice('File logger created: ' + path.join(this.matterbridgeDirectory, filename));
103
+ }
104
+ /**
105
+ * Creates a commissioning server storage context.
106
+ *
107
+ * @param pluginName - The name of the plugin.
108
+ * @param deviceName - The name of the device.
109
+ * @param deviceType - The type of the device.
110
+ * @param vendorId - The vendor ID.
111
+ * @param vendorName - The vendor name.
112
+ * @param productId - The product ID.
113
+ * @param productName - The product name.
114
+ * @param serialNumber - The serial number of the device (optional).
115
+ * @param uniqueId - The unique ID of the device (optional).
116
+ * @param softwareVersion - The software version of the device (optional).
117
+ * @param softwareVersionString - The software version string of the device (optional).
118
+ * @param hardwareVersion - The hardware version of the device (optional).
119
+ * @param hardwareVersionString - The hardware version string of the device (optional).
120
+ * @returns The storage context for the commissioning server.
121
+ */
122
+ async createServerNodeContext(pluginName, deviceName, deviceType, vendorId, vendorName, productId, productName) {
123
+ if (!this.matterLogger)
124
+ return;
125
+ const log = this.matterLogger;
126
+ if (!this.matterStorageService || !this.matterStorageManager) {
127
+ log.error('No storage manager initialized');
128
+ return;
129
+ }
130
+ log.debug(`Creating commissioning server storage context for ${pluginName}...`);
131
+ const storageContext = this.matterStorageManager.createContext('persist');
132
+ const random = 'AG' + CryptoNode.getRandomData(8).toHex();
133
+ await storageContext.set('storeId', pluginName);
134
+ await storageContext.set('deviceName', deviceName);
135
+ await storageContext.set('deviceType', deviceType);
136
+ await storageContext.set('vendorId', vendorId);
137
+ await storageContext.set('vendorName', vendorName.slice(0, 32));
138
+ await storageContext.set('productId', productId);
139
+ await storageContext.set('productName', productName.slice(0, 32));
140
+ await storageContext.set('nodeLabel', productName.slice(0, 32));
141
+ await storageContext.set('productLabel', productName.slice(0, 32));
142
+ await storageContext.set('serialNumber', await storageContext.get('serialNumber', random));
143
+ await storageContext.set('uniqueId', await storageContext.get('uniqueId', random));
144
+ await storageContext.set('softwareVersion', this.matterbridgeVersion && this.matterbridgeVersion.includes('.') ? parseInt(this.matterbridgeVersion.split('.')[0], 10) : 1);
145
+ await storageContext.set('softwareVersionString', this.matterbridgeVersion ?? '1.0.0');
146
+ await storageContext.set('hardwareVersion', this.osVersion && this.osVersion.includes('.') ? parseInt(this.osVersion.split('.')[0], 10) : 1);
147
+ await storageContext.set('hardwareVersionString', this.osVersion ?? '1.0.0');
148
+ log.debug(`Created commissioning server storage context for ${pluginName}:`);
149
+ log.debug(`- deviceName: ${await storageContext.get('deviceName')} deviceType: ${await storageContext.get('deviceType')}(0x${(await storageContext.get('deviceType'))?.toString(16).padStart(4, '0')})`);
150
+ log.debug(`- serialNumber: ${await storageContext.get('serialNumber')} uniqueId: ${await storageContext.get('uniqueId')}`);
151
+ log.debug(`- softwareVersion: ${await storageContext.get('softwareVersion')} softwareVersionString: ${await storageContext.get('softwareVersionString')}`);
152
+ log.debug(`- hardwareVersion: ${await storageContext.get('hardwareVersion')} hardwareVersionString: ${await storageContext.get('hardwareVersionString')}`);
153
+ log.notice(`Created commissioning server storage context for ${pluginName}`);
154
+ return storageContext;
155
+ }
156
+ async startServerNode(port = 5080, passcode = 20202021, discriminator = 3840) {
157
+ if (!this.matterLogger)
158
+ return;
159
+ const log = this.matterLogger;
160
+ log.notice('Starting Matterbridge');
161
+ this.matterStorageContext = await this.createServerNodeContext('Matterbridge', 'Matterbridge', AggregatorEndpoint.deviceType, 0xfff1, 'Matterbridge', 0x8000, 'Matterbridge Aggregator');
162
+ if (!this.matterStorageContext) {
163
+ log.error('Error creating storage context for Matterbridge');
164
+ return;
165
+ }
166
+ /**
167
+ * Create a Matter ServerNode, which contains the Root Endpoint and all relevant data and configuration
168
+ */
169
+ this.matterServerNode = await ServerNode.create({
170
+ // Required: Give the Node a unique ID which is used to store the state of this node
171
+ id: await this.matterStorageContext.get('storeId'),
172
+ // Provide Network relevant configuration like the port
173
+ // Optional when operating only one device on a host, Default port is 5540
174
+ network: {
175
+ port,
176
+ },
177
+ // Provide Commissioning relevant settings
178
+ // Optional for development/testing purposes
179
+ commissioning: {
180
+ passcode,
181
+ discriminator,
182
+ },
183
+ // Provide Node announcement settings
184
+ // Optional: If Ommitted some development defaults are used
185
+ productDescription: {
186
+ name: await this.matterStorageContext.get('deviceName'),
187
+ deviceType: DeviceTypeId(await this.matterStorageContext.get('deviceType')),
188
+ },
189
+ // Provide defaults for the BasicInformation cluster on the Root endpoint
190
+ // Optional: If Omitted some development defaults are used
191
+ basicInformation: {
192
+ vendorId: VendorId(await this.matterStorageContext.get('vendorId')),
193
+ vendorName: await this.matterStorageContext.get('vendorName'),
194
+ productId: await this.matterStorageContext.get('productId'),
195
+ productName: await this.matterStorageContext.get('productName'),
196
+ productLabel: await this.matterStorageContext.get('productName'),
197
+ nodeLabel: await this.matterStorageContext.get('productName'),
198
+ serialNumber: await this.matterStorageContext.get('serialNumber'),
199
+ uniqueId: await this.matterStorageContext.get('uniqueId'),
200
+ softwareVersion: await this.matterStorageContext.get('softwareVersion'),
201
+ softwareVersionString: await this.matterStorageContext.get('softwareVersionString'),
202
+ hardwareVersion: await this.matterStorageContext.get('hardwareVersion'),
203
+ hardwareVersionString: await this.matterStorageContext.get('hardwareVersionString'),
204
+ },
205
+ });
206
+ /**
207
+ * Matter Nodes are a composition of endpoints. Create and add a single endpoint to the node. This example uses the
208
+ * OnOffLightDevice or OnOffPlugInUnitDevice depending on the value of the type parameter. It also assigns this Part a
209
+ * unique ID to store the endpoint number for it in the storage to restore the device on restart.
210
+ * In this case we directly use the default command implementation from matter.js. Check out the DeviceNodeFull example
211
+ * to see how to customize the command handlers.
212
+ */
213
+ const endpoint = new Endpoint(OnOffLightDevice.with(BridgedDeviceBasicInformationServer), {
214
+ id: 'OnOffLight',
215
+ bridgedDeviceBasicInformation: {
216
+ vendorId: VendorId(await this.matterStorageContext.get('vendorId')),
217
+ vendorName: await this.matterStorageContext.get('vendorName'),
218
+ productName: 'Light',
219
+ productLabel: 'Light',
220
+ nodeLabel: 'Light',
221
+ serialNumber: '0x123456789',
222
+ uniqueId: '0x123456789',
223
+ reachable: true,
224
+ },
225
+ });
226
+ /**
227
+ * Register state change handlers and events of the node for identify and onoff states to react to the commands.
228
+ * If the code in these change handlers fail then the change is also rolled back and not executed and an error is
229
+ * reported back to the controller.
230
+ */
231
+ endpoint.events.identify.startIdentifying.on(() => log.notice('Run identify logic, ideally blink a light every 0.5s ...'));
232
+ endpoint.events.identify.stopIdentifying.on(() => log.notice('Stop identify logic ...'));
233
+ endpoint.events.onOff.onOff$Changed.on((value) => log.notice(`OnOff is now ${value ? 'ON' : 'OFF'}`));
234
+ // await this.matterServerNode.add(endpoint);
235
+ // const mbV8 = new MatterbridgeDeviceV8(DeviceTypes.OnOffLight);
236
+ // const endpoint = mbV8.getBridgedNodeEndpointV8();
237
+ const aggregator = new Endpoint(AggregatorEndpoint, { id: 'aggregator' });
238
+ await this.matterServerNode.add(aggregator);
239
+ await aggregator.add(endpoint);
240
+ /**
241
+ * Log the endpoint structure for debugging reasons and to allow to verify anything is correct
242
+ */
243
+ logEndpoint(EndpointServer.forEndpoint(this.matterServerNode));
244
+ /**
245
+ * This event is triggered when the device is initially commissioned successfully.
246
+ * This means: It is added to the first fabric.
247
+ */
248
+ this.matterServerNode.lifecycle.commissioned.on(() => log.notice('Server was initially commissioned successfully!'));
249
+ /** This event is triggered when all fabrics are removed from the device, usually it also does a factory reset then. */
250
+ this.matterServerNode.lifecycle.decommissioned.on(() => log.notice('Server was fully decommissioned successfully!'));
251
+ /** This event is triggered when the device went online. This means that it is discoverable in the network. */
252
+ this.matterServerNode.lifecycle.online.on(() => log.notice('Server is online'));
253
+ /** This event is triggered when the device went offline. it is not longer discoverable or connectable in the network. */
254
+ this.matterServerNode.lifecycle.offline.on(() => log.notice('Server is offline'));
255
+ /**
256
+ * This event is triggered when a fabric is added, removed or updated on the device. Use this if more granular
257
+ * information is needed.
258
+ */
259
+ this.matterServerNode.events.commissioning.fabricsChanged.on((fabricIndex, fabricAction) => {
260
+ let action = '';
261
+ switch (fabricAction) {
262
+ case FabricAction.Added:
263
+ action = 'added';
264
+ break;
265
+ case FabricAction.Removed:
266
+ action = 'removed';
267
+ break;
268
+ case FabricAction.Updated:
269
+ action = 'updated';
270
+ break;
271
+ }
272
+ log.notice(`Commissioned Fabrics changed event (${action}) for ${fabricIndex} triggered`);
273
+ log.notice(this.matterServerNode?.state.commissioning.fabrics[fabricIndex]);
274
+ });
275
+ /**
276
+ * This event is triggered when an operative new session was opened by a Controller.
277
+ * It is not triggered for the initial commissioning process, just afterwards for real connections.
278
+ */
279
+ this.matterServerNode.events.sessions.opened.on((session) => log.notice('Session opened', session));
280
+ /**
281
+ * This event is triggered when an operative session is closed by a Controller or because the Device goes offline.
282
+ */
283
+ this.matterServerNode.events.sessions.closed.on((session) => log.notice('Session closed', session));
284
+ /** This event is triggered when a subscription gets added or removed on an operative session. */
285
+ this.matterServerNode.events.sessions.subscriptionsChanged.on((session) => {
286
+ log.notice('Session subscriptions changed', session);
287
+ log.notice('Status of all sessions', this.matterServerNode?.state.sessions.sessions);
288
+ });
289
+ await this.matterServerNode.bringOnline();
290
+ }
291
+ showServerNodeQR() {
292
+ if (!this.matterServerNode || !this.matterLogger)
293
+ return;
294
+ const log = this.matterLogger;
295
+ if (!this.matterServerNode.lifecycle.isCommissioned) {
296
+ const { qrPairingCode, manualPairingCode } = this.matterServerNode.state.commissioning.pairingCodes;
297
+ console.log(QrCode.get(qrPairingCode));
298
+ log.notice(`QR Code URL: https://project-chip.github.io/connectedhomeip/qrcode.html?data=${qrPairingCode}`);
299
+ log.notice(`Manual pairing code: ${manualPairingCode}`);
300
+ }
301
+ else {
302
+ log.notice('Device is already commissioned. Waiting for controllers to connect ...');
303
+ log.notice('Fabrics:', this.matterServerNode.state.commissioning.fabrics);
304
+ for (const key in this.matterServerNode.state.commissioning.fabrics) {
305
+ const fabric = this.matterServerNode.state.commissioning.fabrics[FabricIndex(Number(key))];
306
+ log.notice(`- index ${fabric.fabricIndex} id ${fabric.fabricId} nodeId ${fabric.nodeId} rootVendor ${fabric.rootVendorId} rootNodeId ${fabric.rootNodeId}`);
307
+ }
308
+ }
309
+ }
310
+ async stopServerNode() {
311
+ if (!this.matterServerNode)
312
+ return;
313
+ await this.matterServerNode.close();
314
+ }
315
+ }
316
+ // node dist/matterbridgeV8.js MatterbridgeV8
317
+ if (process.argv.includes('MatterbridgeV8')) {
318
+ const matterbridge = await MatterbridgeV8.create();
319
+ await matterbridge.startServerNode(5070, 20242025, 3950);
320
+ matterbridge.showServerNodeQR();
321
+ process.on('SIGINT', async function () {
322
+ console.log('Caught interrupt signal');
323
+ await matterbridge.stopServerNode();
324
+ // process.exit();
325
+ });
326
+ }
327
+ //# sourceMappingURL=matterbridgeV8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matterbridgeV8.js","sourceRoot":"","sources":["../src/matterbridgeV8.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * @file utils.ts
5
5
  * @author Luca Liguori
6
6
  * @date 2024-02-17
7
- * @version 1.2.4
7
+ * @version 1.2.5
8
8
  *
9
9
  * Copyright 2024 Luca Liguori.
10
10
  *
@@ -68,5 +68,6 @@ export declare function getIpv4InterfaceAddress(): string | undefined;
68
68
  * @returns {string | undefined} The IPv4 address of the selected network interface, or undefined if not found.
69
69
  */
70
70
  export declare function getIpv6InterfaceAddress(): string | undefined;
71
+ export declare function logInterfaces(): string | undefined;
71
72
  export declare function waiter(name: string, check: () => boolean, exitWithReject?: boolean, resolveTimeout?: number, resolveInterval?: number, debug?: boolean): Promise<boolean>;
72
73
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,iBAAiB,GAAE,MAAM,EAAO,GAAG,OAAO,CA6EnF;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAuCvC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAmB5D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAmB5D;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,EAAE,cAAc,UAAQ,EAAE,cAAc,SAAO,EAAE,eAAe,SAAM,EAAE,KAAK,UAAQ,oBAuBnJ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,iBAAiB,GAAE,MAAM,EAAO,GAAG,OAAO,CA6EnF;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAuCvC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAmB5D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAmB5D;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAelD;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,EAAE,cAAc,UAAQ,EAAE,cAAc,SAAO,EAAE,eAAe,SAAM,EAAE,KAAK,UAAQ,oBAuBnJ"}
package/dist/utils.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * @file utils.ts
5
5
  * @author Luca Liguori
6
6
  * @date 2024-02-17
7
- * @version 1.2.4
7
+ * @version 1.2.5
8
8
  *
9
9
  * Copyright 2024 Luca Liguori.
10
10
  *
@@ -219,6 +219,22 @@ export function getIpv6InterfaceAddress() {
219
219
  // console.log('Selected Network Interfaces:', ipv6Address);
220
220
  return ipv6Address;
221
221
  }
222
+ export function logInterfaces() {
223
+ let ipv6Address;
224
+ const networkInterfaces = os.networkInterfaces();
225
+ // eslint-disable-next-line no-console
226
+ console.log('Available Network Interfaces:', networkInterfaces);
227
+ for (const interfaceDetails of Object.values(networkInterfaces)) {
228
+ if (!interfaceDetails) {
229
+ break;
230
+ }
231
+ for (const detail of interfaceDetails) {
232
+ // eslint-disable-next-line no-console
233
+ console.log('Details:', detail);
234
+ }
235
+ }
236
+ return ipv6Address;
237
+ }
222
238
  export async function waiter(name, check, exitWithReject = false, resolveTimeout = 5000, resolveInterval = 500, debug = false) {
223
239
  // eslint-disable-next-line no-console
224
240
  if (debug)
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}