matterbridge-example-accessory-platform 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/README.md +2 -0
- package/dist/platform.d.ts +2 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +38 -6
- package/dist/platform.js.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
package/dist/platform.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
1
2
|
import { Matterbridge, MatterbridgeDevice, MatterbridgeAccessoryPlatform } from 'matterbridge';
|
|
2
3
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
3
4
|
export declare class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryPlatform {
|
|
4
5
|
cover: MatterbridgeDevice | undefined;
|
|
6
|
+
coverInterval: NodeJS.Timeout | undefined;
|
|
5
7
|
constructor(matterbridge: Matterbridge, log: AnsiLogger);
|
|
6
8
|
onStart(reason?: string): Promise<void>;
|
|
7
9
|
onConfigure(): Promise<void>;
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,oCAAqC,SAAQ,6BAA6B;IACrF,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,oCAAqC,SAAQ,6BAA6B;IACrF,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;gBAE9B,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU;IAIxC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM;IA6CvB,WAAW;IA2BX,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM;CAK1C"}
|
package/dist/platform.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { DeviceTypes, WindowCovering
|
|
1
|
+
import { DeviceTypes, WindowCovering } from 'matterbridge';
|
|
2
2
|
import { MatterbridgeDevice, MatterbridgeAccessoryPlatform } from 'matterbridge';
|
|
3
3
|
export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryPlatform {
|
|
4
4
|
cover;
|
|
5
|
+
coverInterval;
|
|
5
6
|
constructor(matterbridge, log) {
|
|
6
7
|
super(matterbridge, log);
|
|
7
8
|
}
|
|
@@ -16,18 +17,47 @@ export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryP
|
|
|
16
17
|
this.cover.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
17
18
|
this.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
18
19
|
});
|
|
19
|
-
this.cover.addCommandHandler('
|
|
20
|
-
|
|
20
|
+
this.cover.addCommandHandler('stopMotion', async ({ attributes: { currentPositionLiftPercent100ths, targetPositionLiftPercent100ths, operationalStatus } }) => {
|
|
21
|
+
const position = currentPositionLiftPercent100ths?.getLocal();
|
|
22
|
+
if (position !== null && position !== undefined)
|
|
23
|
+
targetPositionLiftPercent100ths?.setLocal(position);
|
|
24
|
+
operationalStatus.setLocal({
|
|
25
|
+
global: WindowCovering.MovementStatus.Stopped,
|
|
26
|
+
lift: WindowCovering.MovementStatus.Stopped,
|
|
27
|
+
tilt: WindowCovering.MovementStatus.Stopped,
|
|
28
|
+
});
|
|
29
|
+
this.log.debug(`Command stopMotion called. Attributes: currentPositionLiftPercent100ths: ${currentPositionLiftPercent100ths?.getLocal()}`);
|
|
30
|
+
this.log.debug(`Command stopMotion called. Attributes: targetPositionLiftPercent100ths: ${targetPositionLiftPercent100ths?.getLocal()}`);
|
|
31
|
+
this.log.debug(`Command stopMotion called. Attributes: operationalStatus: ${operationalStatus?.getLocal().lift}`);
|
|
32
|
+
});
|
|
33
|
+
this.cover.addCommandHandler('goToLiftPercentage', async ({ request: { liftPercent100thsValue }, attributes: { currentPositionLiftPercent100ths, targetPositionLiftPercent100ths, operationalStatus } }) => {
|
|
34
|
+
currentPositionLiftPercent100ths?.setLocal(liftPercent100thsValue);
|
|
35
|
+
targetPositionLiftPercent100ths?.setLocal(liftPercent100thsValue);
|
|
36
|
+
operationalStatus.setLocal({
|
|
37
|
+
global: WindowCovering.MovementStatus.Stopped,
|
|
38
|
+
lift: WindowCovering.MovementStatus.Stopped,
|
|
39
|
+
tilt: WindowCovering.MovementStatus.Stopped,
|
|
40
|
+
});
|
|
41
|
+
this.log.info(`Command goToLiftPercentage called. Request: liftPercent100thsValue: ${liftPercent100thsValue} `);
|
|
42
|
+
this.log.debug(`Command goToLiftPercentage called. Attributes: currentPositionLiftPercent100ths: ${currentPositionLiftPercent100ths?.getLocal()}`);
|
|
43
|
+
this.log.debug(`Command goToLiftPercentage called. Attributes: targetPositionLiftPercent100ths: ${targetPositionLiftPercent100ths?.getLocal()}`);
|
|
44
|
+
this.log.debug(`Command goToLiftPercentage called. Attributes: operationalStatus: ${operationalStatus?.getLocal().lift}`);
|
|
21
45
|
});
|
|
22
46
|
}
|
|
23
47
|
async onConfigure() {
|
|
24
48
|
this.log.info('onConfigure called');
|
|
25
|
-
|
|
49
|
+
// Set cover to target = current position and status to stopped (current position is persisted in the cluster)
|
|
50
|
+
this.cover?.setWindowCoveringTargetAsCurrentAndStopped();
|
|
51
|
+
this.log.debug('Set cover initial targetPositionLiftPercent100ths = currentPositionLiftPercent100ths and operationalStatus to Stopped.');
|
|
52
|
+
this.coverInterval = setInterval(() => {
|
|
26
53
|
if (!this.cover)
|
|
27
54
|
return;
|
|
28
|
-
const coverCluster = this.cover.getClusterServer(
|
|
55
|
+
const coverCluster = this.cover.getClusterServer(WindowCovering.Complete);
|
|
29
56
|
if (coverCluster && coverCluster.getCurrentPositionLiftPercent100thsAttribute) {
|
|
30
|
-
let position = coverCluster.getCurrentPositionLiftPercent100thsAttribute()
|
|
57
|
+
let position = coverCluster.getCurrentPositionLiftPercent100thsAttribute();
|
|
58
|
+
if (position === null || position === undefined)
|
|
59
|
+
return;
|
|
60
|
+
position = position + 1000;
|
|
31
61
|
position = position > 10000 ? 0 : position;
|
|
32
62
|
coverCluster.setTargetPositionLiftPercent100thsAttribute(position);
|
|
33
63
|
coverCluster.setCurrentPositionLiftPercent100thsAttribute(position);
|
|
@@ -42,6 +72,8 @@ export class ExampleMatterbridgeAccessoryPlatform extends MatterbridgeAccessoryP
|
|
|
42
72
|
}
|
|
43
73
|
async onShutdown(reason) {
|
|
44
74
|
this.log.info('onShutdown called with reason:', reason ?? 'none');
|
|
75
|
+
clearInterval(this.coverInterval);
|
|
76
|
+
await this.unregisterAllDevices();
|
|
45
77
|
}
|
|
46
78
|
}
|
|
47
79
|
//# sourceMappingURL=platform.js.map
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-example-accessory-platform",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Matterbridge accessory platform plugin example",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"types": "dist/index.d.js",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/Luligu/matterbridge-example-accessory-platform"
|
|
12
|
+
"url": "git+https://github.com/Luligu/matterbridge-example-accessory-platform.git"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
15
15
|
"url": "https://github.com/Luligu/matterbridge-example-accessory-platform/issues"
|
|
@@ -52,16 +52,16 @@
|
|
|
52
52
|
"install": "node link-matterbridge-script.js && npm run build"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@stylistic/eslint-plugin": "^1.
|
|
55
|
+
"@stylistic/eslint-plugin": "^1.7.0",
|
|
56
56
|
"@tsconfig/node-lts": "^20.1.1",
|
|
57
|
-
"@types/node": "^20.11.
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
59
|
-
"@typescript-eslint/parser": "^7.
|
|
57
|
+
"@types/node": "^20.11.30",
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^7.3.1",
|
|
59
|
+
"@typescript-eslint/parser": "^7.3.1",
|
|
60
60
|
"eslint-config-prettier": "^9.1.0",
|
|
61
61
|
"eslint-plugin-prettier": "^5.1.3",
|
|
62
62
|
"matterbridge": "file:../matterbridge",
|
|
63
63
|
"prettier": "^3.2.5",
|
|
64
|
-
"typescript": "^5.4.
|
|
64
|
+
"typescript": "^5.4.3"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
67
|
"node-ansi-logger": "^1.9.2"
|