@matterbridge/core 3.10.12-dev-20261001-3745ad2 → 3.10.12-dev-20261002-6a30fb3
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/behaviors/activatedCarbonFilterMonitoringServer.d.ts +3 -1
- package/dist/behaviors/activatedCarbonFilterMonitoringServer.js +3 -1
- package/dist/behaviors/bindingServer.d.ts +2 -0
- package/dist/behaviors/booleanStateConfigurationServer.d.ts +2 -0
- package/dist/behaviors/booleanStateConfigurationServer.js +2 -0
- package/dist/behaviors/cameraAvStreamManagementServer.js +4 -3
- package/dist/behaviors/deviceEnergyManagementModeServer.d.ts +2 -0
- package/dist/behaviors/deviceEnergyManagementModeServer.js +3 -1
- package/dist/behaviors/deviceEnergyManagementServer.d.ts +2 -0
- package/dist/behaviors/deviceEnergyManagementServer.js +2 -0
- package/dist/behaviors/doorLockServer.d.ts +2 -0
- package/dist/behaviors/doorLockServer.js +40 -9
- package/dist/behaviors/fanControlServer.d.ts +2 -0
- package/dist/behaviors/fanControlServer.js +1 -0
- package/dist/behaviors/hepaFilterMonitoringServer.d.ts +3 -1
- package/dist/behaviors/hepaFilterMonitoringServer.js +3 -1
- package/dist/behaviors/identifyServer.d.ts +3 -1
- package/dist/behaviors/identifyServer.js +3 -0
- package/dist/behaviors/modeSelectServer.d.ts +3 -1
- package/dist/behaviors/modeSelectServer.js +2 -0
- package/dist/behaviors/occupancySensingServer.d.ts +2 -0
- package/dist/behaviors/operationalStateServer.d.ts +2 -0
- package/dist/behaviors/operationalStateServer.js +4 -0
- package/dist/behaviors/powerSourceServer.d.ts +2 -0
- package/dist/behaviors/pumpConfigurationAndControlServer.d.ts +2 -0
- package/dist/behaviors/serviceAreaServer.d.ts +3 -1
- package/dist/behaviors/serviceAreaServer.js +5 -1
- package/dist/behaviors/smokeCoAlarmServer.d.ts +2 -0
- package/dist/behaviors/smokeCoAlarmServer.js +2 -1
- package/dist/behaviors/switchServer.d.ts +2 -0
- package/dist/behaviors/temperatureAlarmServer.d.ts +2 -0
- package/dist/behaviors/temperatureAlarmServer.js +2 -0
- package/dist/behaviors/thermostatServer.d.ts +2 -0
- package/dist/behaviors/thermostatServer.js +5 -0
- package/dist/behaviors/valveConfigurationAndControlServer.d.ts +2 -0
- package/dist/behaviors/valveConfigurationAndControlServer.js +2 -0
- package/dist/behaviors/waterTankLevelMonitoringServer.d.ts +3 -1
- package/dist/behaviors/waterTankLevelMonitoringServer.js +3 -1
- package/dist/behaviors/webRtcTransportProviderServer.js +1 -1
- package/dist/behaviors/windowCoveringServer.d.ts +2 -0
- package/dist/behaviors/windowCoveringServer.js +5 -0
- package/dist/devices/closure.d.ts +1 -0
- package/dist/devices/closure.js +17 -11
- package/dist/devices/closurePanel.d.ts +1 -0
- package/dist/devices/closurePanel.js +17 -13
- package/dist/devices/dishwasher.d.ts +3 -0
- package/dist/devices/dishwasher.js +17 -12
- package/dist/devices/electricalUtilityMeter.d.ts +4 -1
- package/dist/devices/electricalUtilityMeter.js +13 -3
- package/dist/devices/evse.d.ts +2 -0
- package/dist/devices/evse.js +12 -3
- package/dist/devices/laundryDryer.d.ts +7 -1
- package/dist/devices/laundryDryer.js +12 -1
- package/dist/devices/laundryWasher.d.ts +2 -0
- package/dist/devices/laundryWasher.js +13 -8
- package/dist/devices/mediaHelpers.d.ts +5 -0
- package/dist/devices/mediaHelpers.js +38 -16
- package/dist/devices/microwaveOven.d.ts +1 -0
- package/dist/devices/microwaveOven.js +40 -21
- package/dist/devices/oven.d.ts +8 -5
- package/dist/devices/oven.js +55 -25
- package/dist/devices/refrigerator.d.ts +3 -1
- package/dist/devices/refrigerator.js +19 -10
- package/dist/devices/roboticVacuumCleaner.d.ts +3 -0
- package/dist/devices/roboticVacuumCleaner.js +29 -19
- package/dist/devices/temperatureControl.d.ts +2 -0
- package/dist/devices/temperatureControl.js +24 -14
- package/dist/devices/waterHeater.d.ts +2 -0
- package/dist/devices/waterHeater.js +6 -0
- package/dist/matterbridge.js +1 -1
- package/dist/matterbridgeEndpoint.js +2 -3
- package/dist/matterbridgeEndpointCommandHandler.d.ts +31 -0
- package/package.json +6 -6
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { ActivatedCarbonFilterMonitoringServer } from '@matter/node/behaviors/activated-carbon-filter-monitoring';
|
|
2
|
-
import
|
|
2
|
+
import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
|
|
3
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
4
|
declare const MatterbridgeActivatedCarbonFilterMonitoringServer_base: import("@matter/node").ClusterBehavior.Type<typeof ActivatedCarbonFilterMonitoringServer, import("@matter/types").ClusterType.WithSupportedFeatures<ActivatedCarbonFilterMonitoring, {
|
|
4
5
|
condition: true;
|
|
5
6
|
replacementProductList: true;
|
|
6
7
|
warning: true;
|
|
7
8
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "activatedCarbonFilterMonitoring">;
|
|
8
9
|
export declare class MatterbridgeActivatedCarbonFilterMonitoringServer extends MatterbridgeActivatedCarbonFilterMonitoringServer_base {
|
|
10
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
9
11
|
resetCondition(): Promise<void>;
|
|
10
12
|
}
|
|
11
13
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ActivatedCarbonFilterMonitoringServer } from '@matter/node/behaviors/activated-carbon-filter-monitoring';
|
|
2
|
+
import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
|
|
2
3
|
import { ResourceMonitoring } from '@matter/types/clusters/resource-monitoring';
|
|
3
4
|
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
4
5
|
export class MatterbridgeActivatedCarbonFilterMonitoringServer extends ActivatedCarbonFilterMonitoringServer.with(ResourceMonitoring.Feature.Condition, ResourceMonitoring.Feature.Warning, ResourceMonitoring.Feature.ReplacementProductList) {
|
|
@@ -13,9 +14,10 @@ export class MatterbridgeActivatedCarbonFilterMonitoringServer extends Activated
|
|
|
13
14
|
endpoint: this.endpoint,
|
|
14
15
|
context: this.context,
|
|
15
16
|
});
|
|
16
|
-
this.state.condition = 100;
|
|
17
|
+
this.state.condition = this.state.degradationDirection === ResourceMonitoring.DegradationDirection.Up ? 0 : 100;
|
|
17
18
|
this.state.changeIndication = ResourceMonitoring.ChangeIndication.Ok;
|
|
18
19
|
this.state.lastChangedTime = Math.floor(new Date().getTime() / 1000);
|
|
19
20
|
device.log.debug(`MatterbridgeActivatedCarbonFilterMonitoringServer: resetCondition called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
21
|
+
this.endpoint.emitCommand(ActivatedCarbonFilterMonitoring, 'resetCondition', {}, this.context);
|
|
20
22
|
}
|
|
21
23
|
}
|
|
@@ -2,7 +2,9 @@ import type { Endpoint } from '@matter/main/node';
|
|
|
2
2
|
import { BindingBehavior, BindingServer } from '@matter/node/behaviors/binding';
|
|
3
3
|
import type { ClusterId } from '@matter/types';
|
|
4
4
|
import type { Binding } from '@matter/types/clusters/binding';
|
|
5
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
5
6
|
export declare class MatterbridgeBindingServer extends BindingServer {
|
|
7
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
6
8
|
protected internal: MatterbridgeBindingServer.Internal;
|
|
7
9
|
state: MatterbridgeBindingServer.State;
|
|
8
10
|
initialize(): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MaybePromise } from '@matter/general';
|
|
2
2
|
import { BooleanStateConfigurationServer } from '@matter/node/behaviors/boolean-state-configuration';
|
|
3
3
|
import { BooleanStateConfiguration } from '@matter/types/clusters/boolean-state-configuration';
|
|
4
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
5
|
declare const MatterbridgeBooleanStateConfigurationServer_base: import("@matter/node").ClusterBehavior.Type<typeof BooleanStateConfigurationServer, import("@matter/types").ClusterType.WithSupportedFeatures<BooleanStateConfiguration, {
|
|
5
6
|
alarmSuppress: true;
|
|
6
7
|
audible: true;
|
|
@@ -10,6 +11,7 @@ declare const MatterbridgeBooleanStateConfigurationServer_base: import("@matter/
|
|
|
10
11
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "booleanStateConfiguration">;
|
|
11
12
|
export declare class MatterbridgeBooleanStateConfigurationServer extends MatterbridgeBooleanStateConfigurationServer_base {
|
|
12
13
|
#private;
|
|
14
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
13
15
|
initialize(): MaybePromise;
|
|
14
16
|
suppressAlarm(request: BooleanStateConfiguration.SuppressAlarmRequest): Promise<void>;
|
|
15
17
|
enableDisableAlarm(request: BooleanStateConfiguration.EnableDisableAlarmRequest): Promise<void>;
|
|
@@ -70,6 +70,7 @@ export class MatterbridgeBooleanStateConfigurationServer extends BooleanStateCon
|
|
|
70
70
|
this.#assertSuppressAlarmAllowed(request.alarmsToSuppress);
|
|
71
71
|
this.state.alarmsSuppressed = this.#mergeAlarmsSuppressed(request.alarmsToSuppress);
|
|
72
72
|
device.log.debug(`MatterbridgeBooleanStateConfigurationServer: suppressAlarm called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
73
|
+
this.endpoint.emitCommand(BooleanStateConfiguration, 'suppressAlarm', request, this.context);
|
|
73
74
|
}
|
|
74
75
|
async enableDisableAlarm(request) {
|
|
75
76
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -85,5 +86,6 @@ export class MatterbridgeBooleanStateConfigurationServer extends BooleanStateCon
|
|
|
85
86
|
this.#assertAlarmModesSupported(request.alarmsToEnableDisable);
|
|
86
87
|
this.#applyAlarmsEnabled(request.alarmsToEnableDisable);
|
|
87
88
|
device.log.debug(`MatterbridgeBooleanStateConfigurationServer: enableDisableAlarm called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
89
|
+
this.endpoint.emitCommand(BooleanStateConfiguration, 'enableDisableAlarm', request, this.context);
|
|
88
90
|
}
|
|
89
91
|
}
|
|
@@ -331,10 +331,11 @@ export class MatterbridgeCameraAvStreamManagementServer extends MatterbridgeCame
|
|
|
331
331
|
this.endpoint.emitCommand(CameraAvStreamManagement, 'snapshotStreamDeallocate', request, this.context);
|
|
332
332
|
}
|
|
333
333
|
#resolveSnapshotSource() {
|
|
334
|
-
const endpoint = `(endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`;
|
|
335
334
|
const fail = (reason) => {
|
|
336
|
-
this.endpoint
|
|
337
|
-
|
|
335
|
+
this.endpoint
|
|
336
|
+
.stateOf(MatterbridgeServer)
|
|
337
|
+
.log.error(`MatterbridgeCameraAvStreamManagementServer: cannot capture snapshot: ${reason} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
338
|
+
return new StatusResponseError(`MatterbridgeCameraAvStreamManagementServer: cannot capture snapshot: ${reason} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.Failure);
|
|
338
339
|
};
|
|
339
340
|
const sourceFor = (source, device, sourceOption, deviceOption) => {
|
|
340
341
|
if (source === 'test')
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { DeviceEnergyManagementModeServer } from '@matter/node/behaviors/device-energy-management-mode';
|
|
2
2
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
3
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
4
|
export declare class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyManagementModeServer {
|
|
5
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
4
6
|
changeToMode(request: ModeBase.ChangeToModeRequest): Promise<ModeBase.ChangeToModeResponse>;
|
|
5
7
|
}
|
|
@@ -37,6 +37,8 @@ export class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyMa
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
device.log.debug(`MatterbridgeDeviceEnergyManagementModeServer: changeToMode called with newMode ${request.newMode} => ${supported.label} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
40
|
-
|
|
40
|
+
const response = await super.changeToMode(request);
|
|
41
|
+
this.endpoint.emitCommand(DeviceEnergyManagementMode, 'changeToMode', request, this.context);
|
|
42
|
+
return response;
|
|
41
43
|
}
|
|
42
44
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Timer } from '@matter/general';
|
|
2
2
|
import { DeviceEnergyManagementServer } from '@matter/node/behaviors/device-energy-management';
|
|
3
3
|
import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-management';
|
|
4
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
5
|
declare const MatterbridgeDeviceEnergyManagementServer_base: import("@matter/node").ClusterBehavior.Type<typeof DeviceEnergyManagementServer, import("@matter/types").ClusterType.WithSupportedFeatures<DeviceEnergyManagement, {
|
|
5
6
|
constraintBasedAdjustment: false;
|
|
6
7
|
forecastAdjustment: false;
|
|
@@ -12,6 +13,7 @@ declare const MatterbridgeDeviceEnergyManagementServer_base: import("@matter/nod
|
|
|
12
13
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "deviceEnergyManagement">;
|
|
13
14
|
export declare class MatterbridgeDeviceEnergyManagementServer extends MatterbridgeDeviceEnergyManagementServer_base {
|
|
14
15
|
#private;
|
|
16
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
15
17
|
protected internal: MatterbridgeDeviceEnergyManagementServer.Internal;
|
|
16
18
|
initialize(): Promise<void>;
|
|
17
19
|
powerAdjustRequest(request: DeviceEnergyManagement.PowerAdjustRequest): Promise<void>;
|
|
@@ -49,6 +49,7 @@ export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManage
|
|
|
49
49
|
this.events.powerAdjustStart.emit(undefined, this.context);
|
|
50
50
|
}
|
|
51
51
|
this.internal.powerAdjustCompletionTimer = Time.getTimer('DeviceEnergyManagement power adjust completion', Seconds(duration), this.callback(this.#completePowerAdjustmentOnTimeout, { lock: true })).start();
|
|
52
|
+
this.endpoint.emitCommand(DeviceEnergyManagement, 'powerAdjustRequest', request, this.context);
|
|
52
53
|
}
|
|
53
54
|
async cancelPowerAdjustRequest() {
|
|
54
55
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -66,6 +67,7 @@ export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManage
|
|
|
66
67
|
throw new StatusResponseError(`MatterbridgeDeviceEnergyManagementServer: no power adjustment is currently active (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.InvalidInState);
|
|
67
68
|
}
|
|
68
69
|
this.#endPowerAdjustment(DeviceEnergyManagement.Cause.Cancelled);
|
|
70
|
+
this.endpoint.emitCommand(DeviceEnergyManagement, 'cancelPowerAdjustRequest', {}, this.context);
|
|
69
71
|
}
|
|
70
72
|
#handleOptOutStateChanged(optOutState) {
|
|
71
73
|
if (this.state.esaState !== DeviceEnergyManagement.EsaState.PowerAdjustActive)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DoorLockServer } from '@matter/node/behaviors/door-lock';
|
|
2
2
|
import { DoorLock } from '@matter/types/clusters/door-lock';
|
|
3
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
4
|
declare const MatterbridgeDoorLockServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/node").ClusterBehavior.Type<typeof DoorLockServer, import("@matter/types").ClusterType.WithSupportedFeatures<DoorLock, {
|
|
4
5
|
aliroBleuwb: false;
|
|
5
6
|
aliroProvisioning: false;
|
|
@@ -30,6 +31,7 @@ declare const MatterbridgeDoorLockServer_base: import("@matter/node").ClusterBeh
|
|
|
30
31
|
yearDayAccessSchedules: true;
|
|
31
32
|
}>, "doorLockAlarm" | "lockOperation" | "lockOperationError">, never>, import("@matter/types").ClusterType.Concrete, typeof import("@matter/node/behaviors/door-lock").DoorLockBaseServer.Internal, "doorLock">;
|
|
32
33
|
export declare class MatterbridgeDoorLockServer extends MatterbridgeDoorLockServer_base {
|
|
34
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
33
35
|
initialize(): void;
|
|
34
36
|
lockDoor(request: DoorLock.LockDoorRequest): Promise<void>;
|
|
35
37
|
unlockDoor(request: DoorLock.UnlockDoorRequest): Promise<void>;
|
|
@@ -28,6 +28,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
28
28
|
}
|
|
29
29
|
device.log.debug(`MatterbridgeDoorLockServer: lockDoor called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
30
30
|
await super.lockDoor(request);
|
|
31
|
+
this.endpoint.emitCommand(DoorLock, 'lockDoor', request, this.context);
|
|
31
32
|
}
|
|
32
33
|
async unlockDoor(request) {
|
|
33
34
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -46,6 +47,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
46
47
|
}
|
|
47
48
|
device.log.debug(`MatterbridgeDoorLockServer: unlockDoor called ${this.state.autoRelockTime ? 'with ' + this.state.autoRelockTime + ' seconds' : 'without'} autoRelockTime (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
48
49
|
await super.unlockDoor(request);
|
|
50
|
+
this.endpoint.emitCommand(DoorLock, 'unlockDoor', request, this.context);
|
|
49
51
|
}
|
|
50
52
|
async unlockWithTimeout(request) {
|
|
51
53
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -64,6 +66,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
64
66
|
}
|
|
65
67
|
device.log.debug(`MatterbridgeDoorLockServer: unlockWithTimeout called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
66
68
|
await super.unlockWithTimeout(request);
|
|
69
|
+
this.endpoint.emitCommand(DoorLock, 'unlockWithTimeout', request, this.context);
|
|
67
70
|
}
|
|
68
71
|
async setUser(request) {
|
|
69
72
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -78,6 +81,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
78
81
|
});
|
|
79
82
|
device.log.debug(`MatterbridgeDoorLockServer: setUser called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
80
83
|
await super.setUser(request);
|
|
84
|
+
this.endpoint.emitCommand(DoorLock, 'setUser', request, this.context);
|
|
81
85
|
}
|
|
82
86
|
async getUser(request) {
|
|
83
87
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -91,10 +95,13 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
91
95
|
context: this.context,
|
|
92
96
|
});
|
|
93
97
|
if (response !== undefined) {
|
|
98
|
+
this.endpoint.emitCommand(DoorLock, 'getUser', request, this.context);
|
|
94
99
|
return response;
|
|
95
100
|
}
|
|
96
101
|
device.log.debug(`MatterbridgeDoorLockServer: getUser called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
97
|
-
|
|
102
|
+
const result = await super.getUser(request);
|
|
103
|
+
this.endpoint.emitCommand(DoorLock, 'getUser', request, this.context);
|
|
104
|
+
return result;
|
|
98
105
|
}
|
|
99
106
|
async clearUser(request) {
|
|
100
107
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -109,6 +116,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
109
116
|
});
|
|
110
117
|
device.log.debug(`MatterbridgeDoorLockServer: clearUser called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
111
118
|
await super.clearUser(request);
|
|
119
|
+
this.endpoint.emitCommand(DoorLock, 'clearUser', request, this.context);
|
|
112
120
|
}
|
|
113
121
|
async setCredential(request) {
|
|
114
122
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -128,7 +136,9 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
128
136
|
if (request.operationType === DoorLock.DataOperationType.Add && this.auth.findCredential(request.credential.credentialType, request.credential.credentialIndex)) {
|
|
129
137
|
throw new DoorLock.OccupiedError(`MatterbridgeDoorLockServer: add operation targets an occupied credential index (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
130
138
|
}
|
|
131
|
-
|
|
139
|
+
const result = await super.setCredential(request);
|
|
140
|
+
this.endpoint.emitCommand(DoorLock, 'setCredential', request, this.context);
|
|
141
|
+
return result;
|
|
132
142
|
}
|
|
133
143
|
async getCredentialStatus(request) {
|
|
134
144
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -142,7 +152,9 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
142
152
|
context: this.context,
|
|
143
153
|
});
|
|
144
154
|
device.log.debug(`MatterbridgeDoorLockServer: getCredentialStatus called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
145
|
-
|
|
155
|
+
const result = await super.getCredentialStatus(request);
|
|
156
|
+
this.endpoint.emitCommand(DoorLock, 'getCredentialStatus', request, this.context);
|
|
157
|
+
return result;
|
|
146
158
|
}
|
|
147
159
|
async clearCredential(request) {
|
|
148
160
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -157,6 +169,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
157
169
|
});
|
|
158
170
|
device.log.debug(`MatterbridgeDoorLockServer: clearCredential called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
159
171
|
await super.clearCredential(request);
|
|
172
|
+
this.endpoint.emitCommand(DoorLock, 'clearCredential', request, this.context);
|
|
160
173
|
}
|
|
161
174
|
async setWeekDaySchedule(request) {
|
|
162
175
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -171,6 +184,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
171
184
|
});
|
|
172
185
|
device.log.debug(`MatterbridgeDoorLockServer: setWeekDaySchedule called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
173
186
|
await super.setWeekDaySchedule(request);
|
|
187
|
+
this.endpoint.emitCommand(DoorLock, 'setWeekDaySchedule', request, this.context);
|
|
174
188
|
}
|
|
175
189
|
async getWeekDaySchedule(request) {
|
|
176
190
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -183,10 +197,14 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
183
197
|
endpoint: this.endpoint,
|
|
184
198
|
context: this.context,
|
|
185
199
|
});
|
|
186
|
-
if (response !== undefined)
|
|
200
|
+
if (response !== undefined) {
|
|
201
|
+
this.endpoint.emitCommand(DoorLock, 'getWeekDaySchedule', request, this.context);
|
|
187
202
|
return response;
|
|
203
|
+
}
|
|
188
204
|
device.log.debug(`MatterbridgeDoorLockServer: getWeekDaySchedule called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
189
|
-
|
|
205
|
+
const result = await super.getWeekDaySchedule(request);
|
|
206
|
+
this.endpoint.emitCommand(DoorLock, 'getWeekDaySchedule', request, this.context);
|
|
207
|
+
return result;
|
|
190
208
|
}
|
|
191
209
|
async clearWeekDaySchedule(request) {
|
|
192
210
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -201,6 +219,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
201
219
|
});
|
|
202
220
|
device.log.debug(`MatterbridgeDoorLockServer: clearWeekDaySchedule called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
203
221
|
await super.clearWeekDaySchedule(request);
|
|
222
|
+
this.endpoint.emitCommand(DoorLock, 'clearWeekDaySchedule', request, this.context);
|
|
204
223
|
}
|
|
205
224
|
async setYearDaySchedule(request) {
|
|
206
225
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -215,6 +234,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
215
234
|
});
|
|
216
235
|
device.log.debug(`MatterbridgeDoorLockServer: setYearDaySchedule called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
217
236
|
await super.setYearDaySchedule(request);
|
|
237
|
+
this.endpoint.emitCommand(DoorLock, 'setYearDaySchedule', request, this.context);
|
|
218
238
|
}
|
|
219
239
|
async getYearDaySchedule(request) {
|
|
220
240
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -227,10 +247,14 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
227
247
|
endpoint: this.endpoint,
|
|
228
248
|
context: this.context,
|
|
229
249
|
});
|
|
230
|
-
if (response !== undefined)
|
|
250
|
+
if (response !== undefined) {
|
|
251
|
+
this.endpoint.emitCommand(DoorLock, 'getYearDaySchedule', request, this.context);
|
|
231
252
|
return response;
|
|
253
|
+
}
|
|
232
254
|
device.log.debug(`MatterbridgeDoorLockServer: getYearDaySchedule called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
233
|
-
|
|
255
|
+
const result = await super.getYearDaySchedule(request);
|
|
256
|
+
this.endpoint.emitCommand(DoorLock, 'getYearDaySchedule', request, this.context);
|
|
257
|
+
return result;
|
|
234
258
|
}
|
|
235
259
|
async clearYearDaySchedule(request) {
|
|
236
260
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -245,6 +269,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
245
269
|
});
|
|
246
270
|
device.log.debug(`MatterbridgeDoorLockServer: clearYearDaySchedule called for userIndex ${request.userIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
247
271
|
await super.clearYearDaySchedule(request);
|
|
272
|
+
this.endpoint.emitCommand(DoorLock, 'clearYearDaySchedule', request, this.context);
|
|
248
273
|
}
|
|
249
274
|
async setHolidaySchedule(request) {
|
|
250
275
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -259,6 +284,7 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
259
284
|
});
|
|
260
285
|
device.log.debug(`MatterbridgeDoorLockServer: setHolidaySchedule called for holidayIndex ${request.holidayIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
261
286
|
await super.setHolidaySchedule(request);
|
|
287
|
+
this.endpoint.emitCommand(DoorLock, 'setHolidaySchedule', request, this.context);
|
|
262
288
|
}
|
|
263
289
|
async getHolidaySchedule(request) {
|
|
264
290
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -271,10 +297,14 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
271
297
|
endpoint: this.endpoint,
|
|
272
298
|
context: this.context,
|
|
273
299
|
});
|
|
274
|
-
if (response !== undefined)
|
|
300
|
+
if (response !== undefined) {
|
|
301
|
+
this.endpoint.emitCommand(DoorLock, 'getHolidaySchedule', request, this.context);
|
|
275
302
|
return response;
|
|
303
|
+
}
|
|
276
304
|
device.log.debug(`MatterbridgeDoorLockServer: getHolidaySchedule called for holidayIndex ${request.holidayIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
277
|
-
|
|
305
|
+
const result = await super.getHolidaySchedule(request);
|
|
306
|
+
this.endpoint.emitCommand(DoorLock, 'getHolidaySchedule', request, this.context);
|
|
307
|
+
return result;
|
|
278
308
|
}
|
|
279
309
|
async clearHolidaySchedule(request) {
|
|
280
310
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -289,5 +319,6 @@ export class MatterbridgeDoorLockServer extends DoorLockServer.with(DoorLock.Fea
|
|
|
289
319
|
});
|
|
290
320
|
device.log.debug(`MatterbridgeDoorLockServer: clearHolidaySchedule called for holidayIndex ${request.holidayIndex} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
291
321
|
await super.clearHolidaySchedule(request);
|
|
322
|
+
this.endpoint.emitCommand(DoorLock, 'clearHolidaySchedule', request, this.context);
|
|
292
323
|
}
|
|
293
324
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MaybePromise } from '@matter/general';
|
|
2
2
|
import { FanControlServer } from '@matter/node/behaviors/fan-control';
|
|
3
3
|
import { FanControl } from '@matter/types/clusters/fan-control';
|
|
4
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
5
|
declare const MatterbridgeFanControlServer_base: import("@matter/node").ClusterBehavior.Type<typeof FanControlServer, import("@matter/types").ClusterType.WithSupportedFeatures<FanControl, {
|
|
5
6
|
airflowDirection: false;
|
|
6
7
|
auto: true;
|
|
@@ -11,6 +12,7 @@ declare const MatterbridgeFanControlServer_base: import("@matter/node").ClusterB
|
|
|
11
12
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "fanControl">;
|
|
12
13
|
export declare class MatterbridgeFanControlServer extends MatterbridgeFanControlServer_base {
|
|
13
14
|
#private;
|
|
15
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
14
16
|
initialize(): MaybePromise;
|
|
15
17
|
step(request: FanControl.StepRequest): Promise<void>;
|
|
16
18
|
}
|
|
@@ -196,5 +196,6 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
|
|
|
196
196
|
device.log.debug(`MatterbridgeFanControlServer: step applied fanMode ${lookupFanMode[this.state.fanMode]}, percentCurrent ${this.state.percentCurrent}` +
|
|
197
197
|
(this.features.multiSpeed ? `, speedCurrent ${this.state.speedCurrent}` : '') +
|
|
198
198
|
` (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
199
|
+
this.endpoint.emitCommand(FanControl, 'step', request, this.context);
|
|
199
200
|
}
|
|
200
201
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { HepaFilterMonitoringServer } from '@matter/node/behaviors/hepa-filter-monitoring';
|
|
2
|
-
import
|
|
2
|
+
import { HepaFilterMonitoring } from '@matter/types/clusters/hepa-filter-monitoring';
|
|
3
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
4
|
declare const MatterbridgeHepaFilterMonitoringServer_base: import("@matter/node").ClusterBehavior.Type<typeof HepaFilterMonitoringServer, import("@matter/types").ClusterType.WithSupportedFeatures<HepaFilterMonitoring, {
|
|
4
5
|
condition: true;
|
|
5
6
|
replacementProductList: true;
|
|
6
7
|
warning: true;
|
|
7
8
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "hepaFilterMonitoring">;
|
|
8
9
|
export declare class MatterbridgeHepaFilterMonitoringServer extends MatterbridgeHepaFilterMonitoringServer_base {
|
|
10
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
9
11
|
resetCondition(): Promise<void>;
|
|
10
12
|
}
|
|
11
13
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HepaFilterMonitoringServer } from '@matter/node/behaviors/hepa-filter-monitoring';
|
|
2
|
+
import { HepaFilterMonitoring } from '@matter/types/clusters/hepa-filter-monitoring';
|
|
2
3
|
import { ResourceMonitoring } from '@matter/types/clusters/resource-monitoring';
|
|
3
4
|
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
4
5
|
export class MatterbridgeHepaFilterMonitoringServer extends HepaFilterMonitoringServer.with(ResourceMonitoring.Feature.Condition, ResourceMonitoring.Feature.Warning, ResourceMonitoring.Feature.ReplacementProductList) {
|
|
@@ -13,9 +14,10 @@ export class MatterbridgeHepaFilterMonitoringServer extends HepaFilterMonitoring
|
|
|
13
14
|
endpoint: this.endpoint,
|
|
14
15
|
context: this.context,
|
|
15
16
|
});
|
|
16
|
-
this.state.condition = 100;
|
|
17
|
+
this.state.condition = this.state.degradationDirection === ResourceMonitoring.DegradationDirection.Up ? 0 : 100;
|
|
17
18
|
this.state.changeIndication = ResourceMonitoring.ChangeIndication.Ok;
|
|
18
19
|
this.state.lastChangedTime = Math.floor(new Date().getTime() / 1000);
|
|
19
20
|
device.log.debug(`MatterbridgeHepaFilterMonitoringServer: resetCondition called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
21
|
+
this.endpoint.emitCommand(HepaFilterMonitoring, 'resetCondition', {}, this.context);
|
|
20
22
|
}
|
|
21
23
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { IdentifyServer } from '@matter/node/behaviors/identify';
|
|
2
|
-
import
|
|
2
|
+
import { Identify } from '@matter/types/clusters/identify';
|
|
3
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
4
|
export declare class MatterbridgeIdentifyServer extends IdentifyServer {
|
|
5
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
4
6
|
identify(request: Identify.IdentifyRequest): Promise<void>;
|
|
5
7
|
triggerEffect(request: Identify.TriggerEffectRequest): Promise<void>;
|
|
6
8
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IdentifyServer } from '@matter/node/behaviors/identify';
|
|
2
|
+
import { Identify } from '@matter/types/clusters/identify';
|
|
2
3
|
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
3
4
|
export class MatterbridgeIdentifyServer extends IdentifyServer {
|
|
4
5
|
async identify(request) {
|
|
@@ -14,6 +15,7 @@ export class MatterbridgeIdentifyServer extends IdentifyServer {
|
|
|
14
15
|
});
|
|
15
16
|
device.log.debug(`MatterbridgeIdentifyServer: identify called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
16
17
|
await super.identify(request);
|
|
18
|
+
this.endpoint.emitCommand(Identify, 'identify', request, this.context);
|
|
17
19
|
}
|
|
18
20
|
async triggerEffect(request) {
|
|
19
21
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -28,5 +30,6 @@ export class MatterbridgeIdentifyServer extends IdentifyServer {
|
|
|
28
30
|
});
|
|
29
31
|
device.log.debug(`MatterbridgeIdentifyServer: triggerEffect called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
30
32
|
await super.triggerEffect(request);
|
|
33
|
+
this.endpoint.emitCommand(Identify, 'triggerEffect', request, this.context);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ModeSelectServer } from '@matter/node/behaviors/mode-select';
|
|
2
|
-
import
|
|
2
|
+
import { ModeSelect } from '@matter/types/clusters/mode-select';
|
|
3
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
4
|
export declare class MatterbridgeModeSelectServer extends ModeSelectServer {
|
|
5
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
4
6
|
changeToMode(request: ModeSelect.ChangeToModeRequest): Promise<void>;
|
|
5
7
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ModeSelectServer } from '@matter/node/behaviors/mode-select';
|
|
2
|
+
import { ModeSelect } from '@matter/types/clusters/mode-select';
|
|
2
3
|
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
3
4
|
export class MatterbridgeModeSelectServer extends ModeSelectServer {
|
|
4
5
|
async changeToMode(request) {
|
|
@@ -14,5 +15,6 @@ export class MatterbridgeModeSelectServer extends ModeSelectServer {
|
|
|
14
15
|
});
|
|
15
16
|
device.log.debug(`MatterbridgeModeSelectServer: changeToMode called with mode ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
16
17
|
await super.changeToMode(request);
|
|
18
|
+
this.endpoint.emitCommand(ModeSelect, 'changeToMode', request, this.context);
|
|
17
19
|
}
|
|
18
20
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MaybePromise } from '@matter/general';
|
|
2
2
|
import { OccupancySensingServer } from '@matter/node/behaviors/occupancy-sensing';
|
|
3
3
|
import { OccupancySensing } from '@matter/types/clusters/occupancy-sensing';
|
|
4
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
5
|
declare const MatterbridgeOccupancySensingServer_base: import("@matter/node").ClusterBehavior.Type<typeof OccupancySensingServer, import("@matter/types").ClusterType.WithSupportedFeatures<OccupancySensing, {
|
|
5
6
|
activeInfrared: false;
|
|
6
7
|
occupancyEvent: false;
|
|
@@ -14,6 +15,7 @@ declare const MatterbridgeOccupancySensingServer_base: import("@matter/node").Cl
|
|
|
14
15
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "occupancySensing">;
|
|
15
16
|
export declare class MatterbridgeOccupancySensingServer extends MatterbridgeOccupancySensingServer_base {
|
|
16
17
|
#private;
|
|
18
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
17
19
|
initialize(): MaybePromise;
|
|
18
20
|
}
|
|
19
21
|
export {};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { MaybePromise } from '@matter/general';
|
|
2
2
|
import { OperationalStateServer } from '@matter/node/behaviors/operational-state';
|
|
3
3
|
import { OperationalState } from '@matter/types/clusters/operational-state';
|
|
4
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
5
|
declare const MatterbridgeOperationalStateServerBase: import("@matter/node").ClusterBehavior.Type<typeof OperationalStateServer, import("@matter/types").ClusterType.WithEnabledAttributes<import("@matter/types").ClusterType.WithEnabledEvents<OperationalState, "operationCompletion">, never>, import("@matter/types").ClusterType.Concrete, new () => {}, "operationalState">;
|
|
5
6
|
export declare class MatterbridgeOperationalStateServer extends MatterbridgeOperationalStateServerBase {
|
|
7
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
6
8
|
protected internal: MatterbridgeOperationalStateServer.Internal;
|
|
7
9
|
initialize(): MaybePromise;
|
|
8
10
|
pause(): Promise<OperationalState.OperationalCommandResponse>;
|
|
@@ -38,6 +38,7 @@ export class MatterbridgeOperationalStateServer extends MatterbridgeOperationalS
|
|
|
38
38
|
this.internal.pausedSinceMs = Date.now();
|
|
39
39
|
this.state.operationalState = OperationalState.OperationalStateEnum.Paused;
|
|
40
40
|
this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' };
|
|
41
|
+
this.endpoint.emitCommand(OperationalState, 'pause', {}, this.context);
|
|
41
42
|
return {
|
|
42
43
|
commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' },
|
|
43
44
|
};
|
|
@@ -71,6 +72,7 @@ export class MatterbridgeOperationalStateServer extends MatterbridgeOperationalS
|
|
|
71
72
|
this.events.operationCompletion.emit({ completionErrorCode: OperationalState.ErrorState.NoError, totalOperationalTime, pausedTime }, this.context);
|
|
72
73
|
this.state.operationalState = OperationalState.OperationalStateEnum.Stopped;
|
|
73
74
|
this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' };
|
|
75
|
+
this.endpoint.emitCommand(OperationalState, 'stop', {}, this.context);
|
|
74
76
|
return {
|
|
75
77
|
commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' },
|
|
76
78
|
};
|
|
@@ -109,6 +111,7 @@ export class MatterbridgeOperationalStateServer extends MatterbridgeOperationalS
|
|
|
109
111
|
}
|
|
110
112
|
this.state.operationalState = OperationalState.OperationalStateEnum.Running;
|
|
111
113
|
this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' };
|
|
114
|
+
this.endpoint.emitCommand(OperationalState, 'start', {}, this.context);
|
|
112
115
|
return {
|
|
113
116
|
commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' },
|
|
114
117
|
};
|
|
@@ -143,6 +146,7 @@ export class MatterbridgeOperationalStateServer extends MatterbridgeOperationalS
|
|
|
143
146
|
}
|
|
144
147
|
this.state.operationalState = this.internal.operationalStateBeforePause;
|
|
145
148
|
this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' };
|
|
149
|
+
this.endpoint.emitCommand(OperationalState, 'resume', {}, this.context);
|
|
146
150
|
return {
|
|
147
151
|
commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' },
|
|
148
152
|
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { PowerSourceServer } from '@matter/node/behaviors/power-source';
|
|
2
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
2
3
|
export declare class MatterbridgePowerSourceServer extends PowerSourceServer {
|
|
4
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
3
5
|
initialize(): Promise<void>;
|
|
4
6
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MaybePromise } from '@matter/general';
|
|
2
2
|
import { PumpConfigurationAndControlServer } from '@matter/node/behaviors/pump-configuration-and-control';
|
|
3
3
|
import { PumpConfigurationAndControl } from '@matter/types/clusters/pump-configuration-and-control';
|
|
4
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
5
|
declare const MatterbridgePumpConfigurationAndControlServer_base: import("@matter/node").ClusterBehavior.Type<typeof PumpConfigurationAndControlServer, import("@matter/types").ClusterType.WithSupportedFeatures<PumpConfigurationAndControl, {
|
|
5
6
|
automatic: false;
|
|
6
7
|
compensatedPressure: false;
|
|
@@ -12,6 +13,7 @@ declare const MatterbridgePumpConfigurationAndControlServer_base: import("@matte
|
|
|
12
13
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "pumpConfigurationAndControl">;
|
|
13
14
|
export declare class MatterbridgePumpConfigurationAndControlServer extends MatterbridgePumpConfigurationAndControlServer_base {
|
|
14
15
|
#private;
|
|
16
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
15
17
|
protected internal: MatterbridgePumpConfigurationAndControlServer.Internal;
|
|
16
18
|
initialize(): MaybePromise;
|
|
17
19
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ServiceAreaServer } from '@matter/node/behaviors/service-area';
|
|
2
|
-
import
|
|
2
|
+
import { ServiceArea } from '@matter/types/clusters/service-area';
|
|
3
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
4
|
export declare class MatterbridgeServiceAreaServer extends ServiceAreaServer {
|
|
5
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
4
6
|
selectAreas(request: ServiceArea.SelectAreasRequest): Promise<ServiceArea.SelectAreasResponse>;
|
|
5
7
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ServiceAreaServer } from '@matter/node/behaviors/service-area';
|
|
2
|
+
import { ServiceArea } from '@matter/types/clusters/service-area';
|
|
2
3
|
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
3
4
|
export class MatterbridgeServiceAreaServer extends ServiceAreaServer {
|
|
4
5
|
async selectAreas(request) {
|
|
@@ -13,6 +14,9 @@ export class MatterbridgeServiceAreaServer extends ServiceAreaServer {
|
|
|
13
14
|
context: this.context,
|
|
14
15
|
});
|
|
15
16
|
device.log.debug(`MatterbridgeServiceAreaServer: selectAreas called with [${request.newAreas.join(', ')}] (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
16
|
-
|
|
17
|
+
const response = await super.selectAreas(request);
|
|
18
|
+
if (response.status === ServiceArea.SelectAreasStatus.Success)
|
|
19
|
+
this.endpoint.emitCommand(ServiceArea, 'selectAreas', request, this.context);
|
|
20
|
+
return response;
|
|
17
21
|
}
|
|
18
22
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { type Timer } from '@matter/general';
|
|
2
2
|
import { SmokeCoAlarmServer } from '@matter/node/behaviors/smoke-co-alarm';
|
|
3
3
|
import { SmokeCoAlarm } from '@matter/types/clusters/smoke-co-alarm';
|
|
4
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
5
|
declare const MatterbridgeSmokeCoAlarmServer_base: import("@matter/node").ClusterBehavior.Type<typeof SmokeCoAlarmServer, import("@matter/types").ClusterType.WithSupportedFeatures<SmokeCoAlarm, {
|
|
5
6
|
coAlarm: true;
|
|
6
7
|
smokeAlarm: true;
|
|
7
8
|
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "smokeCoAlarm">;
|
|
8
9
|
export declare class MatterbridgeSmokeCoAlarmServer extends MatterbridgeSmokeCoAlarmServer_base {
|
|
9
10
|
#private;
|
|
11
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
10
12
|
protected internal: MatterbridgeSmokeCoAlarmServer.Internal;
|
|
11
13
|
static selfTestDurationSeconds: number;
|
|
12
14
|
selfTestRequest(): Promise<void>;
|
|
@@ -17,12 +17,13 @@ export class MatterbridgeSmokeCoAlarmServer extends SmokeCoAlarmServer.with(Smok
|
|
|
17
17
|
context: this.context,
|
|
18
18
|
});
|
|
19
19
|
if (this.state.expressedState !== SmokeCoAlarm.ExpressedState.Normal || this.state.testInProgress) {
|
|
20
|
-
throw new StatusResponseError(`MatterbridgeSmokeCoAlarmServer:
|
|
20
|
+
throw new StatusResponseError(`MatterbridgeSmokeCoAlarmServer: self-test is busy (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.Busy);
|
|
21
21
|
}
|
|
22
22
|
this.state.testInProgress = true;
|
|
23
23
|
this.state.expressedState = SmokeCoAlarm.ExpressedState.Testing;
|
|
24
24
|
this.#scheduleSelfTestComplete();
|
|
25
25
|
device.log.debug(`MatterbridgeSmokeCoAlarmServer: selfTestRequest called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
26
|
+
this.endpoint.emitCommand(SmokeCoAlarm, 'selfTestRequest', {}, this.context);
|
|
26
27
|
}
|
|
27
28
|
#stopSelfTestTimer() {
|
|
28
29
|
this.internal.selfTestTimer?.stop();
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { SwitchServer } from '@matter/node/behaviors/switch';
|
|
2
|
+
import type { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
2
3
|
export declare class MatterbridgeSwitchServer extends SwitchServer {
|
|
4
|
+
readonly endpoint: MatterbridgeEndpoint;
|
|
3
5
|
initialize(): void;
|
|
4
6
|
}
|