matterbridge-example-accessory-platform 1.1.1 → 1.1.3

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 CHANGED
@@ -4,7 +4,23 @@ 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.1.1] - 2024-12-07
7
+
8
+ ## [1.1.3] - 2024-12-21
9
+
10
+ ### Added
11
+
12
+ - [platform]: Added call to super.OnConfigure() and super.OnShutDown() to check endpoints numbers.
13
+
14
+ ### Changed
15
+
16
+ - [package]: Updated dependencies.
17
+ - [package]: Updated package.
18
+
19
+ <a href="https://www.buymeacoffee.com/luligugithub">
20
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
21
+ </a>
22
+
23
+ ## [1.1.2] - 2024-12-12
8
24
 
9
25
  - [package]: Require matterbridge 1.6.6
10
26
  - [package]: Updated package.
@@ -0,0 +1,14 @@
1
+ import { Matterbridge, PlatformConfig } from 'matterbridge';
2
+ import { AnsiLogger } from 'matterbridge/logger';
3
+ import { ExampleMatterbridgeAccessoryPlatform } 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 - The Matterbridge instance.
9
+ * @param {AnsiLogger} log - The logger instance.
10
+ * @param {PlatformConfig} config - The platform configuration.
11
+ * @returns {ExampleMatterbridgeAccessoryPlatform} The initialized platform.
12
+ */
13
+ export default function initializePlugin(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig): ExampleMatterbridgeAccessoryPlatform;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,oCAAoC,CAElJ"}
package/dist/index.js CHANGED
@@ -1,4 +1,14 @@
1
1
  import { ExampleMatterbridgeAccessoryPlatform } 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 - The Matterbridge instance.
7
+ * @param {AnsiLogger} log - The logger instance.
8
+ * @param {PlatformConfig} config - The platform configuration.
9
+ * @returns {ExampleMatterbridgeAccessoryPlatform} The initialized platform.
10
+ */
2
11
  export default function initializePlugin(matterbridge, log, config) {
3
12
  return new ExampleMatterbridgeAccessoryPlatform(matterbridge, log, config);
4
13
  }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,YAA0B,EAAE,GAAe,EAAE,MAAsB;IAC1G,OAAO,IAAI,oCAAoC,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Matterbridge, MatterbridgeDevice, MatterbridgeAccessoryPlatform, PlatformConfig, DeviceTypeDefinition, AtLeastOne, EndpointOptions } from 'matterbridge';
2
+ import { AnsiLogger } from 'matterbridge/logger';
3
+ export declare class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryPlatform {
4
+ cover: MatterbridgeDevice | undefined;
5
+ coverInterval: NodeJS.Timeout | undefined;
6
+ createMutableDevice(definition: DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>, options?: EndpointOptions, debug?: boolean): Promise<MatterbridgeDevice>;
7
+ constructor(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig);
8
+ onStart(reason?: string): Promise<void>;
9
+ onConfigure(): Promise<void>;
10
+ onShutdown(reason?: string): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EAMd,oBAAoB,EACpB,UAAU,EACV,eAAe,EAGhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,oCAAqC,SAAQ,6BAA6B;IACrF,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAEpC,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;IAahE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM;IA0EvB,WAAW;IAmBX,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM;CAO1C"}
package/dist/platform.js CHANGED
@@ -1,4 +1,4 @@
1
- import { MatterbridgeDevice, MatterbridgeAccessoryPlatform, DeviceTypes, WindowCovering, powerSource, WindowCoveringCluster, MatterbridgeEndpoint, } from 'matterbridge';
1
+ import { MatterbridgeDevice, MatterbridgeAccessoryPlatform, WindowCovering, powerSource, WindowCoveringCluster, MatterbridgeEndpoint, coverDevice, } from 'matterbridge';
2
2
  import { isValidNumber } from 'matterbridge/utils';
3
3
  export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryPlatform {
4
4
  cover;
@@ -13,6 +13,7 @@ export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryP
13
13
  }
14
14
  constructor(matterbridge, log, config) {
15
15
  super(matterbridge, log, config);
16
+ // Verify that Matterbridge is the correct version
16
17
  if (this.verifyMatterbridgeVersion === undefined || typeof this.verifyMatterbridgeVersion !== 'function' || !this.verifyMatterbridgeVersion('1.6.6')) {
17
18
  throw new Error(`This plugin requires Matterbridge version >= "1.6.6". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version in the frontend.`);
18
19
  }
@@ -20,7 +21,8 @@ export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryP
20
21
  }
21
22
  async onStart(reason) {
22
23
  this.log.info('onStart called with reason:', reason ?? 'none');
23
- this.cover = await this.createMutableDevice(DeviceTypes.WINDOW_COVERING, { uniqueStorageKey: 'Cover example device' }, this.config.debug);
24
+ this.cover = await this.createMutableDevice(coverDevice, { uniqueStorageKey: 'Cover example device' }, this.config.debug);
25
+ this.cover.log.logName = 'Cover example device';
24
26
  this.cover.createDefaultIdentifyClusterServer();
25
27
  this.cover.createDefaultBasicInformationClusterServer('Cover example device', `0x59108853594}`, 0xfff1, 'Matterbridge', 0x0001, 'Matterbridge Cover', parseInt(this.version.replace(/\D/g, '')), this.version, parseInt(this.matterbridge.matterbridgeVersion.replace(/\D/g, '')), this.matterbridge.matterbridgeVersion);
26
28
  this.cover.createDefaultWindowCoveringClusterServer(10000);
@@ -51,9 +53,11 @@ export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryP
51
53
  });
52
54
  }
53
55
  async onConfigure() {
56
+ await super.onConfigure();
54
57
  this.log.info('onConfigure called');
55
58
  await this.cover?.setWindowCoveringTargetAsCurrentAndStopped();
56
59
  this.log.info('Set cover initial targetPositionLiftPercent100ths = currentPositionLiftPercent100ths and operationalStatus to Stopped.');
60
+ // Matter: 0 Fully open 10000 fully closed
57
61
  this.coverInterval = setInterval(async () => {
58
62
  if (!this.cover)
59
63
  return;
@@ -67,6 +71,7 @@ export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryP
67
71
  }, 60 * 1000);
68
72
  }
69
73
  async onShutdown(reason) {
74
+ await super.onShutdown(reason);
70
75
  this.log.info('onShutdown called with reason:', reason ?? 'none');
71
76
  clearInterval(this.coverInterval);
72
77
  this.coverInterval = undefined;
@@ -74,3 +79,4 @@ export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryP
74
79
  await this.unregisterAllDevices();
75
80
  }
76
81
  }
82
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "matterbridge-example-accessory-platform",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "matterbridge-example-accessory-platform",
9
- "version": "1.1.1",
9
+ "version": "1.1.3",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "node-ansi-logger": "3.0.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge-example-accessory-platform",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "Matterbridge accessory plugin",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "MIT",
@@ -1,13 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "incremental": false,
5
- "composite": false,
6
- "declaration": false,
7
- "declarationMap": false,
8
- "sourceMap": false,
9
- "removeComments": true
10
- },
11
- "include": ["src/**/*.ts"],
12
- "exclude": ["**/*.spec.ts", "**/*.test.ts", "**/__test__/*"]
13
- }