matterbridge-test 1.0.2 → 1.0.4
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/CHANGELOG.md +22 -0
- package/dist/index.js +0 -11
- package/dist/platform.js +7 -15
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -2
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/platform.d.ts +0 -28
- package/dist/platform.d.ts.map +0 -1
- package/dist/platform.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
If you like this project and find it useful, please consider giving it a star on GitHub at https://github.com/Luligu/matterbridge-example-dynamic-platform and sponsoring it.
|
|
6
6
|
|
|
7
|
+
## [1.0.4] - 2025-01-20
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- [package]: Updated dependencies.
|
|
12
|
+
- [package]: Updated package for production build.
|
|
13
|
+
|
|
14
|
+
## [1.0.3] - 2024-12-21
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- [platform]: Added call to super.OnConfigure() and super.OnShutDown() to check endpoints numbers.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- [package]: Updated dependencies.
|
|
23
|
+
- [package]: Updated package.
|
|
24
|
+
|
|
25
|
+
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
26
|
+
<img src="./yellow-button.png" alt="Buy me a coffee" width="120">
|
|
27
|
+
</a>
|
|
28
|
+
|
|
7
29
|
## [1.0.2] - 2024-12-12
|
|
8
30
|
|
|
9
31
|
- [package]: Require matterbridge 1.6.6
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
import { TestPlatform } from './platform.js';
|
|
2
|
-
/**
|
|
3
|
-
* This is the standard interface for Matterbridge plugins.
|
|
4
|
-
* Each plugin should export a default function that follows this signature.
|
|
5
|
-
*
|
|
6
|
-
* @param {Matterbridge} matterbridge - An instance of MatterBridge. This is the main interface for interacting with the MatterBridge system.
|
|
7
|
-
* @param {AnsiLogger} log - An instance of AnsiLogger. This is used for logging messages in a format that can be displayed with ANSI color codes.
|
|
8
|
-
* @param {PlatformConfig} config - The platform configuration.
|
|
9
|
-
* @returns {TestPlatform} - An instance of the SomfyTahomaPlatform. This is the main interface for interacting with the Somfy Tahoma system.
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
2
|
export default function initializePlugin(matterbridge, log, config) {
|
|
13
3
|
return new TestPlatform(matterbridge, log, config);
|
|
14
4
|
}
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
package/dist/platform.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { MatterbridgeDevice, MatterbridgeDynamicPlatform, bridgedNode, electricalSensor, onOffSwitch, onOffOutlet, colorTemperatureLight, OnOffCluster, powerSource, ElectricalPowerMeasurementCluster, ElectricalEnergyMeasurementCluster, ModeSelectCluster, PowerSourceCluster, modeSelect, MatterbridgeEndpoint, } from 'matterbridge';
|
|
2
2
|
import { waiter } from 'matterbridge/utils';
|
|
3
3
|
export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
4
|
-
// Config
|
|
5
4
|
noDevices = false;
|
|
6
5
|
delayStart = false;
|
|
7
6
|
loadSwitches = 0;
|
|
@@ -27,9 +26,8 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
27
26
|
}
|
|
28
27
|
constructor(matterbridge, log, config) {
|
|
29
28
|
super(matterbridge, log, config);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
throw new Error(`The test plugin requires Matterbridge version >= "1.6.6". Please update Matterbridge to the latest version in the frontend.`);
|
|
29
|
+
if (this.verifyMatterbridgeVersion === undefined || typeof this.verifyMatterbridgeVersion !== 'function' || !this.verifyMatterbridgeVersion('1.7.3')) {
|
|
30
|
+
throw new Error(`The test plugin requires Matterbridge version >= "1.7.3". Please update Matterbridge to the latest version in the frontend.`);
|
|
33
31
|
}
|
|
34
32
|
this.log.info('Initializing platform:', this.config.name);
|
|
35
33
|
this.log.debug('- with matterbridge version ', matterbridge.matterbridgeVersion);
|
|
@@ -87,6 +85,7 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
87
85
|
await waiter('Delay start', () => false, false, 60000, 1000);
|
|
88
86
|
for (let i = 0; i < this.loadSwitches; i++) {
|
|
89
87
|
const switchDevice = await this.createMutableDevice([onOffSwitch, bridgedNode], { uniqueStorageKey: 'Switch' + i }, this.config.debug);
|
|
88
|
+
switchDevice.log.logName = 'Switch' + i;
|
|
90
89
|
switchDevice.createDefaultBridgedDeviceBasicInformationClusterServer('Switch ' + i, 'serial_switch_' + i, 0xfff1, 'Matterbridge', 'Matterbridge test plugin', parseInt(this.version.replace(/\D/g, '')), this.version, parseInt(this.matterbridge.matterbridgeVersion.replace(/\D/g, '')), this.matterbridge.matterbridgeVersion);
|
|
91
90
|
switchDevice.addDeviceTypeWithClusterServer([onOffSwitch], []);
|
|
92
91
|
switchDevice.addCommandHandler('identify', async (data) => {
|
|
@@ -114,6 +113,7 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
114
113
|
}
|
|
115
114
|
for (let i = 0; i < this.loadOutlets; i++) {
|
|
116
115
|
const outletDevice = await this.createMutableDevice([onOffOutlet, bridgedNode], { uniqueStorageKey: 'Outlet' + i }, this.config.debug);
|
|
116
|
+
outletDevice.log.logName = 'Outlet' + i;
|
|
117
117
|
outletDevice.createDefaultBridgedDeviceBasicInformationClusterServer('Outlet ' + i, 'serial_outlet_' + i, 0xfff1, 'Matterbridge', 'Matterbridge test plugin', parseInt(this.version.replace(/\D/g, '')), this.version, parseInt(this.matterbridge.matterbridgeVersion.replace(/\D/g, '')), this.matterbridge.matterbridgeVersion);
|
|
118
118
|
outletDevice.addDeviceTypeWithClusterServer([onOffOutlet], []);
|
|
119
119
|
outletDevice.addCommandHandler('identify', async (data) => {
|
|
@@ -141,6 +141,7 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
141
141
|
}
|
|
142
142
|
for (let i = 0; i < this.loadLights; i++) {
|
|
143
143
|
const lightDevice = await this.createMutableDevice([colorTemperatureLight, bridgedNode], { uniqueStorageKey: 'Light' + i }, this.config.debug);
|
|
144
|
+
lightDevice.log.logName = 'Light' + i;
|
|
144
145
|
lightDevice.createDefaultBridgedDeviceBasicInformationClusterServer('Light ' + i, 'serial_light_' + i, 0xfff1, 'Matterbridge', 'Matterbridge test plugin', parseInt(this.version.replace(/\D/g, '')), this.version, parseInt(this.matterbridge.matterbridgeVersion.replace(/\D/g, '')), this.matterbridge.matterbridgeVersion);
|
|
145
146
|
lightDevice.addDeviceTypeWithClusterServer([colorTemperatureLight], []);
|
|
146
147
|
lightDevice.addCommandHandler('identify', async (data) => {
|
|
@@ -187,16 +188,6 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
187
188
|
await this.registerDevice(lightDevice);
|
|
188
189
|
this.bridgedDevices.set('Light' + i, lightDevice);
|
|
189
190
|
}
|
|
190
|
-
/*
|
|
191
|
-
const energy = new MatterbridgeDevice([deviceEnergyManagement, bridgedNode], undefined, this.config.debug as boolean);
|
|
192
|
-
energy.createDefaultBridgedDeviceBasicInformationClusterServer('Device Energy Management', 'serial_98745631227', 0xfff1, 'Test plugin', 'deviceEnergyManagement', 2, '2.1.1');
|
|
193
|
-
energy.addDeviceTypeWithClusterServer([deviceEnergyManagement], [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id]);
|
|
194
|
-
energy.addCommandHandler('changeToMode', async ({ request: { newMode }, attributes: { currentMode } }) => {
|
|
195
|
-
this.log.info('Received changeToMode command with mode:', newMode, 'current mode:', currentMode.getLocal());
|
|
196
|
-
energy.setAttribute(DeviceEnergyManagementModeCluster.id, 'currentMode', newMode, energy.log);
|
|
197
|
-
});
|
|
198
|
-
if (!this.noDevices) await this.registerDevice(energy);
|
|
199
|
-
*/
|
|
200
191
|
}
|
|
201
192
|
addElectricalMeasurements(device) {
|
|
202
193
|
device.addDeviceType(electricalSensor);
|
|
@@ -216,6 +207,7 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
216
207
|
device.addClusterServer(device.getDefaultPowerSourceReplaceableBatteryClusterServer(100));
|
|
217
208
|
}
|
|
218
209
|
async onConfigure() {
|
|
210
|
+
await super.onConfigure();
|
|
219
211
|
this.log.info('onConfigure called');
|
|
220
212
|
if (this.throwConfigure)
|
|
221
213
|
throw new Error('Throwing error in configure');
|
|
@@ -295,6 +287,7 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
295
287
|
}, this.setUpdateInterval * 1000);
|
|
296
288
|
}
|
|
297
289
|
async onShutdown(reason) {
|
|
290
|
+
await super.onShutdown(reason);
|
|
298
291
|
this.log.info('onShutdown called with reason:', reason ?? 'none');
|
|
299
292
|
if (this.interval)
|
|
300
293
|
clearInterval(this.interval);
|
|
@@ -303,4 +296,3 @@ export class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
|
303
296
|
throw new Error('Throwing error in shutdown');
|
|
304
297
|
}
|
|
305
298
|
}
|
|
306
|
-
//# sourceMappingURL=platform.js.map
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-test",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge-test",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.4",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"node-ansi-logger": "3.0.0",
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-test",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Matterbridge test plugin",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
|
-
"types": "dist/index.d.ts",
|
|
10
9
|
"repository": {
|
|
11
10
|
"type": "git",
|
|
12
11
|
"url": "git+https://github.com/Luligu/matterbridge-test.git"
|
package/dist/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Matterbridge, PlatformConfig } from 'matterbridge';
|
|
2
|
-
import { AnsiLogger } from 'matterbridge/logger';
|
|
3
|
-
import { TestPlatform } from './platform.js';
|
|
4
|
-
/**
|
|
5
|
-
* This is the standard interface for Matterbridge plugins.
|
|
6
|
-
* Each plugin should export a default function that follows this signature.
|
|
7
|
-
*
|
|
8
|
-
* @param {Matterbridge} matterbridge - An instance of MatterBridge. This is the main interface for interacting with the MatterBridge system.
|
|
9
|
-
* @param {AnsiLogger} log - An instance of AnsiLogger. This is used for logging messages in a format that can be displayed with ANSI color codes.
|
|
10
|
-
* @param {PlatformConfig} config - The platform configuration.
|
|
11
|
-
* @returns {TestPlatform} - An instance of the SomfyTahomaPlatform. This is the main interface for interacting with the Somfy Tahoma system.
|
|
12
|
-
*
|
|
13
|
-
*/
|
|
14
|
-
export default function initializePlugin(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig): TestPlatform;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,YAAY,CAE1H"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,YAA0B,EAAE,GAAe,EAAE,MAAsB;IAC1G,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC"}
|
package/dist/platform.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Matterbridge, MatterbridgeDevice, MatterbridgeDynamicPlatform, PlatformConfig, DeviceTypeDefinition, EndpointOptions, AtLeastOne } from 'matterbridge';
|
|
2
|
-
import { AnsiLogger } from 'matterbridge/logger';
|
|
3
|
-
export declare class TestPlatform extends MatterbridgeDynamicPlatform {
|
|
4
|
-
private noDevices;
|
|
5
|
-
private delayStart;
|
|
6
|
-
private loadSwitches;
|
|
7
|
-
private loadOutlets;
|
|
8
|
-
private loadLights;
|
|
9
|
-
private setUpdateInterval;
|
|
10
|
-
private throwLoad;
|
|
11
|
-
private throwStart;
|
|
12
|
-
private throwConfigure;
|
|
13
|
-
private throwShutdown;
|
|
14
|
-
private enableElectrical;
|
|
15
|
-
private enableModeSelect;
|
|
16
|
-
private enablePowerSource;
|
|
17
|
-
private interval;
|
|
18
|
-
bridgedDevices: Map<string, MatterbridgeDevice>;
|
|
19
|
-
createMutableDevice(definition: DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>, options?: EndpointOptions, debug?: boolean): Promise<MatterbridgeDevice>;
|
|
20
|
-
constructor(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig);
|
|
21
|
-
onStart(reason?: string): Promise<void>;
|
|
22
|
-
addElectricalMeasurements(device: MatterbridgeDevice): void;
|
|
23
|
-
addModeSelect(device: MatterbridgeDevice, description: string): void;
|
|
24
|
-
addPowerSource(device: MatterbridgeDevice): void;
|
|
25
|
-
onConfigure(): Promise<void>;
|
|
26
|
-
onShutdown(reason?: string): Promise<void>;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=platform.d.ts.map
|
package/dist/platform.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,2BAA2B,EAC3B,cAAc,EAMd,oBAAoB,EACpB,eAAe,EACf,UAAU,EASX,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,YAAa,SAAQ,2BAA2B;IAE3D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,cAAc,kCAAyC;IAEjD,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC,EAAE,OAAO,GAAE,eAAoB,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;gBAO7J,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc;IA6ChE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoJtD,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAO3D,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAepE,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAKjC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAgG5B,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM1D"}
|
package/dist/platform.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|