@matterbridge/core 3.7.2-dev-20260328-c77b608 → 3.7.2-dev-20260330-bb55c39
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 +8 -0
- package/dist/behaviors/activatedCarbonFilterMonitoringServer.js +20 -0
- package/dist/{matterbridgeBehaviorsClient.js → behaviors/bindingServer.js} +1 -1
- package/dist/behaviors/booleanStateConfigurationServer.d.ts +7 -0
- package/dist/behaviors/booleanStateConfigurationServer.js +18 -0
- package/dist/behaviors/colorControlServer.d.ts +788 -0
- package/dist/behaviors/colorControlServer.js +105 -0
- package/dist/behaviors/deviceEnergyManagementModeServer.d.ts +5 -0
- package/dist/behaviors/deviceEnergyManagementModeServer.js +42 -0
- package/dist/behaviors/deviceEnergyManagementServer.d.ts +306 -0
- package/dist/behaviors/deviceEnergyManagementServer.js +31 -0
- package/dist/behaviors/doorLockServer.d.ts +28 -0
- package/dist/behaviors/doorLockServer.js +97 -0
- package/dist/behaviors/export.d.ts +24 -1
- package/dist/behaviors/export.js +24 -1
- package/dist/behaviors/fanControlServer.d.ts +7 -0
- package/dist/behaviors/fanControlServer.js +35 -0
- package/dist/behaviors/hepaFilterMonitoringServer.d.ts +8 -0
- package/dist/behaviors/hepaFilterMonitoringServer.js +20 -0
- package/dist/behaviors/identifyServer.d.ts +6 -0
- package/dist/behaviors/identifyServer.js +32 -0
- package/dist/behaviors/levelControlServer.d.ts +6 -0
- package/dist/behaviors/levelControlServer.js +32 -0
- package/dist/behaviors/matterbridgeServer.d.ts +14 -0
- package/dist/behaviors/matterbridgeServer.js +15 -0
- package/dist/behaviors/modeSelectServer.d.ts +5 -0
- package/dist/behaviors/modeSelectServer.js +18 -0
- package/dist/behaviors/onOffServer.d.ts +6 -0
- package/dist/behaviors/onOffServer.js +46 -0
- package/dist/behaviors/operationalStateServer.d.ts +10 -0
- package/dist/behaviors/operationalStateServer.js +84 -0
- package/dist/behaviors/pinDoorLockServer.d.ts +32 -0
- package/dist/behaviors/pinDoorLockServer.js +168 -0
- package/dist/behaviors/powerSourceServer.d.ts +4 -0
- package/dist/behaviors/powerSourceServer.js +21 -0
- package/dist/behaviors/serviceAreaServer.d.ts +5 -0
- package/dist/behaviors/serviceAreaServer.js +18 -0
- package/dist/behaviors/smokeCoAlarmServer.d.ts +83 -0
- package/dist/behaviors/smokeCoAlarmServer.js +18 -0
- package/dist/behaviors/switchServer.d.ts +4 -0
- package/dist/behaviors/switchServer.js +8 -0
- package/dist/behaviors/thermostatServer.d.ts +732 -0
- package/dist/behaviors/thermostatServer.js +50 -0
- package/dist/behaviors/userPinDoorLockServer.d.ts +57 -0
- package/dist/behaviors/userPinDoorLockServer.js +348 -0
- package/dist/behaviors/valveConfigurationAndControlServer.d.ts +8 -0
- package/dist/behaviors/valveConfigurationAndControlServer.js +44 -0
- package/dist/behaviors/windowCoveringServer.d.ts +583 -0
- package/dist/behaviors/windowCoveringServer.js +96 -0
- package/dist/devices/basicVideoPlayer.js +2 -1
- package/dist/devices/castingVideoPlayer.js +1 -1
- package/dist/devices/closure.js +1 -1
- package/dist/devices/closurePanel.js +1 -1
- package/dist/devices/dishwasher.js +2 -1
- package/dist/devices/evse.js +1 -1
- package/dist/devices/laundryWasher.js +2 -1
- package/dist/devices/microwaveOven.js +2 -1
- package/dist/devices/oven.js +1 -1
- package/dist/devices/refrigerator.js +1 -1
- package/dist/devices/roboticVacuumCleaner.js +2 -1
- package/dist/devices/temperatureControl.js +1 -1
- package/dist/devices/waterHeater.js +1 -1
- package/dist/export.d.ts +24 -1
- package/dist/export.js +24 -1
- package/dist/frontend.js +2 -0
- package/dist/matterbridge.d.ts +1 -0
- package/dist/matterbridge.js +11 -0
- package/dist/matterbridgeEndpoint.d.ts +12 -1
- package/dist/matterbridgeEndpoint.js +22 -1
- package/dist/matterbridgeEndpointCommandHandler.d.ts +5 -1
- package/dist/matterbridgeEndpointHelpers.d.ts +5 -1
- package/dist/matterbridgeEndpointHelpers.js +24 -1
- package/package.json +9 -5
- package/dist/matterbridgeBehaviorsServer.d.ts +0 -2687
- package/dist/matterbridgeBehaviorsServer.js +0 -1222
- /package/dist/{matterbridgeBehaviorsClient.d.ts → behaviors/bindingServer.d.ts} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { ColorControlServer } from '@matter/node/behaviors/color-control';
|
|
2
|
+
import { ColorControl } from '@matter/types/clusters/color-control';
|
|
3
|
+
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
4
|
+
export class MatterbridgeColorControlServer extends ColorControlServer.with(ColorControl.Feature.HueSaturation, ColorControl.Feature.Xy, ColorControl.Feature.ColorTemperature, ColorControl.Feature.EnhancedHue) {
|
|
5
|
+
async moveToHue(request) {
|
|
6
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
7
|
+
device.log.info(`Setting hue to ${request.hue} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
8
|
+
await device.commandHandler.executeHandler('ColorControl.moveToHue', {
|
|
9
|
+
command: 'moveToHue',
|
|
10
|
+
request,
|
|
11
|
+
cluster: ColorControlServer.id,
|
|
12
|
+
attributes: this.state,
|
|
13
|
+
endpoint: this.endpoint,
|
|
14
|
+
context: this.context,
|
|
15
|
+
});
|
|
16
|
+
device.log.debug(`MatterbridgeColorControlServer: moveToHue called`);
|
|
17
|
+
await super.moveToHue(request);
|
|
18
|
+
}
|
|
19
|
+
async enhancedMoveToHue(request) {
|
|
20
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
21
|
+
device.log.info(`Setting enhanced hue to ${request.enhancedHue} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
22
|
+
await device.commandHandler.executeHandler('ColorControl.enhancedMoveToHue', {
|
|
23
|
+
command: 'enhancedMoveToHue',
|
|
24
|
+
request,
|
|
25
|
+
cluster: ColorControlServer.id,
|
|
26
|
+
attributes: this.state,
|
|
27
|
+
endpoint: this.endpoint,
|
|
28
|
+
context: this.context,
|
|
29
|
+
});
|
|
30
|
+
device.log.debug(`MatterbridgeColorControlServer: enhancedMoveToHue called`);
|
|
31
|
+
await super.enhancedMoveToHue(request);
|
|
32
|
+
}
|
|
33
|
+
async moveToSaturation(request) {
|
|
34
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
35
|
+
device.log.info(`Setting saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
36
|
+
await device.commandHandler.executeHandler('ColorControl.moveToSaturation', {
|
|
37
|
+
command: 'moveToSaturation',
|
|
38
|
+
request,
|
|
39
|
+
cluster: ColorControlServer.id,
|
|
40
|
+
attributes: this.state,
|
|
41
|
+
endpoint: this.endpoint,
|
|
42
|
+
context: this.context,
|
|
43
|
+
});
|
|
44
|
+
device.log.debug(`MatterbridgeColorControlServer: moveToSaturation called`);
|
|
45
|
+
await super.moveToSaturation(request);
|
|
46
|
+
}
|
|
47
|
+
async moveToHueAndSaturation(request) {
|
|
48
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
49
|
+
device.log.info(`Setting hue to ${request.hue} and saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
50
|
+
await device.commandHandler.executeHandler('ColorControl.moveToHueAndSaturation', {
|
|
51
|
+
command: 'moveToHueAndSaturation',
|
|
52
|
+
request,
|
|
53
|
+
cluster: ColorControlServer.id,
|
|
54
|
+
attributes: this.state,
|
|
55
|
+
endpoint: this.endpoint,
|
|
56
|
+
context: this.context,
|
|
57
|
+
});
|
|
58
|
+
device.log.debug(`MatterbridgeColorControlServer: moveToHueAndSaturation called`);
|
|
59
|
+
await super.moveToHueAndSaturation(request);
|
|
60
|
+
}
|
|
61
|
+
async enhancedMoveToHueAndSaturation(request) {
|
|
62
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
63
|
+
device.log.info(`Setting enhanced hue to ${request.enhancedHue} and saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
64
|
+
await device.commandHandler.executeHandler('ColorControl.enhancedMoveToHueAndSaturation', {
|
|
65
|
+
command: 'enhancedMoveToHueAndSaturation',
|
|
66
|
+
request,
|
|
67
|
+
cluster: ColorControlServer.id,
|
|
68
|
+
attributes: this.state,
|
|
69
|
+
endpoint: this.endpoint,
|
|
70
|
+
context: this.context,
|
|
71
|
+
});
|
|
72
|
+
device.log.debug(`MatterbridgeColorControlServer: enhancedMoveToHueAndSaturation called`);
|
|
73
|
+
await super.enhancedMoveToHueAndSaturation(request);
|
|
74
|
+
}
|
|
75
|
+
async moveToColor(request) {
|
|
76
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
77
|
+
device.log.info(`Setting color to ${request.colorX}, ${request.colorY} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
78
|
+
await device.commandHandler.executeHandler('ColorControl.moveToColor', {
|
|
79
|
+
command: 'moveToColor',
|
|
80
|
+
request,
|
|
81
|
+
cluster: ColorControlServer.id,
|
|
82
|
+
attributes: this.state,
|
|
83
|
+
endpoint: this.endpoint,
|
|
84
|
+
context: this.context,
|
|
85
|
+
});
|
|
86
|
+
device.log.debug(`MatterbridgeColorControlServer: moveToColor called`);
|
|
87
|
+
await super.moveToColor(request);
|
|
88
|
+
}
|
|
89
|
+
async moveToColorTemperature(request) {
|
|
90
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
91
|
+
device.log.info(`Setting color temperature to ${request.colorTemperatureMireds} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
92
|
+
await device.commandHandler.executeHandler('ColorControl.moveToColorTemperature', {
|
|
93
|
+
command: 'moveToColorTemperature',
|
|
94
|
+
request,
|
|
95
|
+
cluster: ColorControlServer.id,
|
|
96
|
+
attributes: this.state,
|
|
97
|
+
endpoint: this.endpoint,
|
|
98
|
+
context: this.context,
|
|
99
|
+
});
|
|
100
|
+
device.log.debug(`MatterbridgeColorControlServer: moveToColorTemperature called`);
|
|
101
|
+
await super.moveToColorTemperature(request);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export class MatterbridgeEnhancedColorControlServer extends MatterbridgeColorControlServer.with(ColorControl.Feature.HueSaturation, ColorControl.Feature.EnhancedHue, ColorControl.Feature.Xy, ColorControl.Feature.ColorTemperature) {
|
|
105
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DeviceEnergyManagementModeServer } from '@matter/node/behaviors/device-energy-management-mode';
|
|
2
|
+
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
3
|
+
export declare class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyManagementModeServer {
|
|
4
|
+
changeToMode(request: ModeBase.ChangeToModeRequest): Promise<ModeBase.ChangeToModeResponse>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { DeviceEnergyManagementServer } from '@matter/node/behaviors/device-energy-management';
|
|
2
|
+
import { DeviceEnergyManagementModeServer } from '@matter/node/behaviors/device-energy-management-mode';
|
|
3
|
+
import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-management';
|
|
4
|
+
import { DeviceEnergyManagementMode } from '@matter/types/clusters/device-energy-management-mode';
|
|
5
|
+
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
6
|
+
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
7
|
+
export class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyManagementModeServer {
|
|
8
|
+
async changeToMode(request) {
|
|
9
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
10
|
+
device.log.info(`Changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
11
|
+
await device.commandHandler.executeHandler('DeviceEnergyManagementMode.changeToMode', {
|
|
12
|
+
command: 'changeToMode',
|
|
13
|
+
request,
|
|
14
|
+
cluster: DeviceEnergyManagementModeServer.id,
|
|
15
|
+
attributes: this.state,
|
|
16
|
+
endpoint: this.endpoint,
|
|
17
|
+
context: this.context,
|
|
18
|
+
});
|
|
19
|
+
const supported = this.state.supportedModes.find((mode) => mode.mode === request.newMode);
|
|
20
|
+
if (!supported) {
|
|
21
|
+
device.log.error(`MatterbridgeDeviceEnergyManagementModeServer changeToMode called with unsupported newMode: ${request.newMode}`);
|
|
22
|
+
return { status: ModeBase.ModeChangeStatus.UnsupportedMode, statusText: 'Unsupported mode' };
|
|
23
|
+
}
|
|
24
|
+
this.state.currentMode = request.newMode;
|
|
25
|
+
if (supported.modeTags.find((tag) => tag.value === DeviceEnergyManagementMode.ModeTag.NoOptimization)) {
|
|
26
|
+
if (this.endpoint.behaviors.has(DeviceEnergyManagementServer)) {
|
|
27
|
+
await this.endpoint.setStateOf(DeviceEnergyManagementServer.with(DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.PowerAdjustment), {
|
|
28
|
+
optOutState: DeviceEnergyManagement.OptOutState.OptOut,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
if (this.endpoint.behaviors.has(DeviceEnergyManagementServer)) {
|
|
34
|
+
await this.endpoint.setStateOf(DeviceEnergyManagementServer.with(DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.PowerAdjustment), {
|
|
35
|
+
optOutState: DeviceEnergyManagement.OptOutState.NoOptOut,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
device.log.debug(`MatterbridgeDeviceEnergyManagementModeServer changeToMode called with newMode ${request.newMode} => ${supported.label}`);
|
|
40
|
+
return await super.changeToMode(request);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { DeviceEnergyManagementServer } from '@matter/node/behaviors/device-energy-management';
|
|
2
|
+
import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-management';
|
|
3
|
+
declare const MatterbridgeDeviceEnergyManagementServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{
|
|
4
|
+
readonly id: 152;
|
|
5
|
+
readonly name: "DeviceEnergyManagement";
|
|
6
|
+
readonly revision: 4;
|
|
7
|
+
readonly features: {
|
|
8
|
+
readonly powerAdjustment: import("@matter/types").BitFlag;
|
|
9
|
+
readonly powerForecastReporting: import("@matter/types").BitFlag;
|
|
10
|
+
readonly stateForecastReporting: import("@matter/types").BitFlag;
|
|
11
|
+
readonly startTimeAdjustment: import("@matter/types").BitFlag;
|
|
12
|
+
readonly pausable: import("@matter/types").BitFlag;
|
|
13
|
+
readonly forecastAdjustment: import("@matter/types").BitFlag;
|
|
14
|
+
readonly constraintBasedAdjustment: import("@matter/types").BitFlag;
|
|
15
|
+
};
|
|
16
|
+
readonly attributes: {
|
|
17
|
+
readonly esaType: import("@matter/types").FixedAttribute<DeviceEnergyManagement.EsaType, any>;
|
|
18
|
+
readonly esaCanGenerate: import("@matter/types").FixedAttribute<boolean, any>;
|
|
19
|
+
readonly esaState: import("@matter/types").Attribute<DeviceEnergyManagement.EsaState, any>;
|
|
20
|
+
readonly absMinPower: import("@matter/types").Attribute<number | bigint, any>;
|
|
21
|
+
readonly absMaxPower: import("@matter/types").Attribute<number | bigint, any>;
|
|
22
|
+
};
|
|
23
|
+
readonly extensions: readonly [{
|
|
24
|
+
readonly flags: {
|
|
25
|
+
readonly powerAdjustment: true;
|
|
26
|
+
};
|
|
27
|
+
readonly component: {
|
|
28
|
+
readonly attributes: {
|
|
29
|
+
readonly powerAdjustmentCapability: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
|
|
30
|
+
powerAdjustCapability: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
31
|
+
minPower: import("@matter/types").FieldType<number | bigint>;
|
|
32
|
+
maxPower: import("@matter/types").FieldType<number | bigint>;
|
|
33
|
+
minDuration: import("@matter/types").FieldType<number>;
|
|
34
|
+
maxDuration: import("@matter/types").FieldType<number>;
|
|
35
|
+
}>[] | null>;
|
|
36
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.PowerAdjustReason>;
|
|
37
|
+
}> | null, any>;
|
|
38
|
+
};
|
|
39
|
+
readonly commands: {
|
|
40
|
+
readonly powerAdjustRequest: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
41
|
+
power: import("@matter/types").FieldType<number | bigint>;
|
|
42
|
+
duration: import("@matter/types").FieldType<number>;
|
|
43
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
|
|
44
|
+
}>, void, any>;
|
|
45
|
+
readonly cancelPowerAdjustRequest: import("@matter/types").Command<void, void, any>;
|
|
46
|
+
};
|
|
47
|
+
readonly events: {
|
|
48
|
+
readonly powerAdjustStart: import("@matter/types").Event<void, any>;
|
|
49
|
+
readonly powerAdjustEnd: import("@matter/types").Event<import("@matter/types").TypeFromFields<{
|
|
50
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.Cause>;
|
|
51
|
+
duration: import("@matter/types").FieldType<number>;
|
|
52
|
+
energyUse: import("@matter/types").FieldType<number | bigint>;
|
|
53
|
+
}>, any>;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}, {
|
|
57
|
+
readonly flags: {
|
|
58
|
+
readonly powerForecastReporting: true;
|
|
59
|
+
};
|
|
60
|
+
readonly component: {
|
|
61
|
+
readonly attributes: {
|
|
62
|
+
readonly forecast: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
|
|
63
|
+
forecastId: import("@matter/types").FieldType<number>;
|
|
64
|
+
activeSlotNumber: import("@matter/types").FieldType<number | null>;
|
|
65
|
+
startTime: import("@matter/types").FieldType<number>;
|
|
66
|
+
endTime: import("@matter/types").FieldType<number>;
|
|
67
|
+
earliestStartTime: import("@matter/types").OptionalFieldType<number | null>;
|
|
68
|
+
latestEndTime: import("@matter/types").OptionalFieldType<number>;
|
|
69
|
+
isPausable: import("@matter/types").FieldType<boolean>;
|
|
70
|
+
slots: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
71
|
+
minDuration: import("@matter/types").FieldType<number>;
|
|
72
|
+
maxDuration: import("@matter/types").FieldType<number>;
|
|
73
|
+
defaultDuration: import("@matter/types").FieldType<number>;
|
|
74
|
+
elapsedSlotTime: import("@matter/types").FieldType<number>;
|
|
75
|
+
remainingSlotTime: import("@matter/types").FieldType<number>;
|
|
76
|
+
slotIsPausable: import("@matter/types").OptionalFieldType<boolean>;
|
|
77
|
+
minPauseDuration: import("@matter/types").OptionalFieldType<number>;
|
|
78
|
+
maxPauseDuration: import("@matter/types").OptionalFieldType<number>;
|
|
79
|
+
manufacturerEsaState: import("@matter/types").OptionalFieldType<number>;
|
|
80
|
+
nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
81
|
+
minPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
82
|
+
maxPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
83
|
+
nominalEnergy: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
84
|
+
costs: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
|
|
85
|
+
costType: import("@matter/types").FieldType<DeviceEnergyManagement.CostType>;
|
|
86
|
+
value: import("@matter/types").FieldType<number>;
|
|
87
|
+
decimalPoints: import("@matter/types").FieldType<number>;
|
|
88
|
+
currency: import("@matter/types").OptionalFieldType<number>;
|
|
89
|
+
}>[]>;
|
|
90
|
+
minPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
91
|
+
maxPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
92
|
+
minDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
|
|
93
|
+
maxDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
|
|
94
|
+
}>[]>;
|
|
95
|
+
forecastUpdateReason: import("@matter/types").FieldType<DeviceEnergyManagement.ForecastUpdateReason>;
|
|
96
|
+
}> | null, any>;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
}, {
|
|
100
|
+
readonly flags: {
|
|
101
|
+
readonly stateForecastReporting: true;
|
|
102
|
+
};
|
|
103
|
+
readonly component: {
|
|
104
|
+
readonly attributes: {
|
|
105
|
+
readonly forecast: import("@matter/types").Attribute<import("@matter/types").TypeFromFields<{
|
|
106
|
+
forecastId: import("@matter/types").FieldType<number>;
|
|
107
|
+
activeSlotNumber: import("@matter/types").FieldType<number | null>;
|
|
108
|
+
startTime: import("@matter/types").FieldType<number>;
|
|
109
|
+
endTime: import("@matter/types").FieldType<number>;
|
|
110
|
+
earliestStartTime: import("@matter/types").OptionalFieldType<number | null>;
|
|
111
|
+
latestEndTime: import("@matter/types").OptionalFieldType<number>;
|
|
112
|
+
isPausable: import("@matter/types").FieldType<boolean>;
|
|
113
|
+
slots: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
114
|
+
minDuration: import("@matter/types").FieldType<number>;
|
|
115
|
+
maxDuration: import("@matter/types").FieldType<number>;
|
|
116
|
+
defaultDuration: import("@matter/types").FieldType<number>;
|
|
117
|
+
elapsedSlotTime: import("@matter/types").FieldType<number>;
|
|
118
|
+
remainingSlotTime: import("@matter/types").FieldType<number>;
|
|
119
|
+
slotIsPausable: import("@matter/types").OptionalFieldType<boolean>;
|
|
120
|
+
minPauseDuration: import("@matter/types").OptionalFieldType<number>;
|
|
121
|
+
maxPauseDuration: import("@matter/types").OptionalFieldType<number>;
|
|
122
|
+
manufacturerEsaState: import("@matter/types").OptionalFieldType<number>;
|
|
123
|
+
nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
124
|
+
minPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
125
|
+
maxPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
126
|
+
nominalEnergy: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
127
|
+
costs: import("@matter/types").OptionalFieldType<import("@matter/types").TypeFromFields<{
|
|
128
|
+
costType: import("@matter/types").FieldType<DeviceEnergyManagement.CostType>;
|
|
129
|
+
value: import("@matter/types").FieldType<number>;
|
|
130
|
+
decimalPoints: import("@matter/types").FieldType<number>;
|
|
131
|
+
currency: import("@matter/types").OptionalFieldType<number>;
|
|
132
|
+
}>[]>;
|
|
133
|
+
minPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
134
|
+
maxPowerAdjustment: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
135
|
+
minDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
|
|
136
|
+
maxDurationAdjustment: import("@matter/types").OptionalFieldType<number>;
|
|
137
|
+
}>[]>;
|
|
138
|
+
forecastUpdateReason: import("@matter/types").FieldType<DeviceEnergyManagement.ForecastUpdateReason>;
|
|
139
|
+
}> | null, any>;
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
}, {
|
|
143
|
+
readonly flags: {
|
|
144
|
+
readonly powerAdjustment: true;
|
|
145
|
+
};
|
|
146
|
+
readonly component: {
|
|
147
|
+
readonly attributes: {
|
|
148
|
+
readonly optOutState: import("@matter/types").Attribute<DeviceEnergyManagement.OptOutState, any>;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
}, {
|
|
152
|
+
readonly flags: {
|
|
153
|
+
readonly startTimeAdjustment: true;
|
|
154
|
+
};
|
|
155
|
+
readonly component: {
|
|
156
|
+
readonly attributes: {
|
|
157
|
+
readonly optOutState: import("@matter/types").Attribute<DeviceEnergyManagement.OptOutState, any>;
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
}, {
|
|
161
|
+
readonly flags: {
|
|
162
|
+
readonly pausable: true;
|
|
163
|
+
};
|
|
164
|
+
readonly component: {
|
|
165
|
+
readonly attributes: {
|
|
166
|
+
readonly optOutState: import("@matter/types").Attribute<DeviceEnergyManagement.OptOutState, any>;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
}, {
|
|
170
|
+
readonly flags: {
|
|
171
|
+
readonly forecastAdjustment: true;
|
|
172
|
+
};
|
|
173
|
+
readonly component: {
|
|
174
|
+
readonly attributes: {
|
|
175
|
+
readonly optOutState: import("@matter/types").Attribute<DeviceEnergyManagement.OptOutState, any>;
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
}, {
|
|
179
|
+
readonly flags: {
|
|
180
|
+
readonly constraintBasedAdjustment: true;
|
|
181
|
+
};
|
|
182
|
+
readonly component: {
|
|
183
|
+
readonly attributes: {
|
|
184
|
+
readonly optOutState: import("@matter/types").Attribute<DeviceEnergyManagement.OptOutState, any>;
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
}, {
|
|
188
|
+
readonly flags: {
|
|
189
|
+
readonly pausable: true;
|
|
190
|
+
};
|
|
191
|
+
readonly component: {
|
|
192
|
+
readonly commands: {
|
|
193
|
+
readonly pauseRequest: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
194
|
+
duration: import("@matter/types").FieldType<number>;
|
|
195
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
|
|
196
|
+
}>, void, any>;
|
|
197
|
+
readonly resumeRequest: import("@matter/types").Command<void, void, any>;
|
|
198
|
+
};
|
|
199
|
+
readonly events: {
|
|
200
|
+
readonly paused: import("@matter/types").Event<void, any>;
|
|
201
|
+
readonly resumed: import("@matter/types").Event<import("@matter/types").TypeFromFields<{
|
|
202
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.Cause>;
|
|
203
|
+
}>, any>;
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
}, {
|
|
207
|
+
readonly flags: {
|
|
208
|
+
readonly startTimeAdjustment: true;
|
|
209
|
+
};
|
|
210
|
+
readonly component: {
|
|
211
|
+
readonly commands: {
|
|
212
|
+
readonly startTimeAdjustRequest: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
213
|
+
requestedStartTime: import("@matter/types").FieldType<number>;
|
|
214
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
|
|
215
|
+
}>, void, any>;
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
}, {
|
|
219
|
+
readonly flags: {
|
|
220
|
+
readonly forecastAdjustment: true;
|
|
221
|
+
};
|
|
222
|
+
readonly component: {
|
|
223
|
+
readonly commands: {
|
|
224
|
+
readonly modifyForecastRequest: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
225
|
+
forecastId: import("@matter/types").FieldType<number>;
|
|
226
|
+
slotAdjustments: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
227
|
+
slotIndex: import("@matter/types").FieldType<number>;
|
|
228
|
+
nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
229
|
+
duration: import("@matter/types").FieldType<number>;
|
|
230
|
+
}>[]>;
|
|
231
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
|
|
232
|
+
}>, void, any>;
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
}, {
|
|
236
|
+
readonly flags: {
|
|
237
|
+
readonly constraintBasedAdjustment: true;
|
|
238
|
+
};
|
|
239
|
+
readonly component: {
|
|
240
|
+
readonly commands: {
|
|
241
|
+
readonly requestConstraintBasedForecast: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
242
|
+
constraints: import("@matter/types").FieldType<import("@matter/types").TypeFromFields<{
|
|
243
|
+
startTime: import("@matter/types").FieldType<number>;
|
|
244
|
+
duration: import("@matter/types").FieldType<number>;
|
|
245
|
+
nominalPower: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
246
|
+
maximumEnergy: import("@matter/types").OptionalFieldType<number | bigint>;
|
|
247
|
+
loadControl: import("@matter/types").OptionalFieldType<number>;
|
|
248
|
+
}>[]>;
|
|
249
|
+
cause: import("@matter/types").FieldType<DeviceEnergyManagement.AdjustmentCause>;
|
|
250
|
+
}>, void, any>;
|
|
251
|
+
};
|
|
252
|
+
};
|
|
253
|
+
}, {
|
|
254
|
+
readonly flags: {
|
|
255
|
+
readonly startTimeAdjustment: true;
|
|
256
|
+
};
|
|
257
|
+
readonly component: {
|
|
258
|
+
readonly commands: {
|
|
259
|
+
readonly cancelRequest: import("@matter/types").Command<void, void, any>;
|
|
260
|
+
};
|
|
261
|
+
};
|
|
262
|
+
}, {
|
|
263
|
+
readonly flags: {
|
|
264
|
+
readonly forecastAdjustment: true;
|
|
265
|
+
};
|
|
266
|
+
readonly component: {
|
|
267
|
+
readonly commands: {
|
|
268
|
+
readonly cancelRequest: import("@matter/types").Command<void, void, any>;
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
}, {
|
|
272
|
+
readonly flags: {
|
|
273
|
+
readonly constraintBasedAdjustment: true;
|
|
274
|
+
};
|
|
275
|
+
readonly component: {
|
|
276
|
+
readonly commands: {
|
|
277
|
+
readonly cancelRequest: import("@matter/types").Command<void, void, any>;
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
}, {
|
|
281
|
+
readonly flags: {
|
|
282
|
+
readonly staTrue: true;
|
|
283
|
+
readonly pauTrue: false;
|
|
284
|
+
readonly faTrue: false;
|
|
285
|
+
readonly conTrue: false;
|
|
286
|
+
};
|
|
287
|
+
readonly component: false;
|
|
288
|
+
}, {
|
|
289
|
+
readonly flags: {
|
|
290
|
+
readonly powerForecastReporting: true;
|
|
291
|
+
readonly stateForecastReporting: true;
|
|
292
|
+
};
|
|
293
|
+
readonly component: false;
|
|
294
|
+
}, {
|
|
295
|
+
readonly flags: {
|
|
296
|
+
readonly powerForecastReporting: false;
|
|
297
|
+
readonly stateForecastReporting: false;
|
|
298
|
+
};
|
|
299
|
+
readonly component: false;
|
|
300
|
+
}];
|
|
301
|
+
}>, readonly [DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.PowerAdjustment]>, typeof DeviceEnergyManagementServer, import("@matter/node/behaviors/device-energy-management").DeviceEnergyManagementInterface>;
|
|
302
|
+
export declare class MatterbridgeDeviceEnergyManagementServer extends MatterbridgeDeviceEnergyManagementServer_base {
|
|
303
|
+
powerAdjustRequest(request: DeviceEnergyManagement.PowerAdjustRequest): Promise<void>;
|
|
304
|
+
cancelPowerAdjustRequest(): Promise<void>;
|
|
305
|
+
}
|
|
306
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { DeviceEnergyManagementServer } from '@matter/node/behaviors/device-energy-management';
|
|
2
|
+
import { DeviceEnergyManagement } from '@matter/types/clusters/device-energy-management';
|
|
3
|
+
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
4
|
+
export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManagementServer.with(DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.PowerAdjustment) {
|
|
5
|
+
async powerAdjustRequest(request) {
|
|
6
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
7
|
+
device.log.info(`Adjusting power to ${request.power} duration ${request.duration} cause ${request.cause} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
8
|
+
await device.commandHandler.executeHandler('DeviceEnergyManagement.powerAdjustRequest', {
|
|
9
|
+
command: 'powerAdjustRequest',
|
|
10
|
+
request,
|
|
11
|
+
cluster: DeviceEnergyManagementServer.id,
|
|
12
|
+
attributes: this.state,
|
|
13
|
+
endpoint: this.endpoint,
|
|
14
|
+
context: this.context,
|
|
15
|
+
});
|
|
16
|
+
device.log.debug(`MatterbridgeDeviceEnergyManagementServer powerAdjustRequest called with power ${request.power} duration ${request.duration} cause ${request.cause}`);
|
|
17
|
+
}
|
|
18
|
+
async cancelPowerAdjustRequest() {
|
|
19
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
20
|
+
device.log.info(`Cancelling power adjustment (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
21
|
+
await device.commandHandler.executeHandler('DeviceEnergyManagement.cancelPowerAdjustRequest', {
|
|
22
|
+
command: 'cancelPowerAdjustRequest',
|
|
23
|
+
request: {},
|
|
24
|
+
cluster: DeviceEnergyManagementServer.id,
|
|
25
|
+
attributes: this.state,
|
|
26
|
+
endpoint: this.endpoint,
|
|
27
|
+
context: this.context,
|
|
28
|
+
});
|
|
29
|
+
device.log.debug(`MatterbridgeDeviceEnergyManagementServer cancelPowerAdjustRequest called`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DoorLockServer } from '@matter/node/behaviors/door-lock';
|
|
2
|
+
import { DoorLock } from '@matter/types/clusters/door-lock';
|
|
3
|
+
declare const MatterbridgeDoorLockServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").ClusterTypeModifier.WithAlterations<DoorLock.Cluster, import("@matter/types").ClusterTypeModifier.ElementFlagAlterations<{
|
|
4
|
+
readonly events: {
|
|
5
|
+
readonly doorLockAlarm: true;
|
|
6
|
+
readonly lockOperation: true;
|
|
7
|
+
readonly lockOperationError: true;
|
|
8
|
+
};
|
|
9
|
+
readonly commands: {
|
|
10
|
+
readonly lockDoor: true;
|
|
11
|
+
readonly unlockDoor: true;
|
|
12
|
+
readonly unlockWithTimeout: true;
|
|
13
|
+
};
|
|
14
|
+
}>>, typeof DoorLockServer, import("@matter/node/behaviors/door-lock").DoorLockInterface>;
|
|
15
|
+
export declare class MatterbridgeDoorLockServer extends MatterbridgeDoorLockServer_base {
|
|
16
|
+
protected internal: MatterbridgeDoorLockServer.Internal;
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
lockDoor(request: DoorLock.LockDoorRequest): Promise<void>;
|
|
19
|
+
unlockDoor(request: DoorLock.UnlockDoorRequest): Promise<void>;
|
|
20
|
+
unlockWithTimeout(request: DoorLock.UnlockWithTimeoutRequest): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare namespace MatterbridgeDoorLockServer {
|
|
23
|
+
class Internal {
|
|
24
|
+
enableTimeout: boolean;
|
|
25
|
+
unlockTimeout: NodeJS.Timeout | undefined;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { DoorLockServer } from '@matter/node/behaviors/door-lock';
|
|
2
|
+
import { DoorLock } from '@matter/types/clusters/door-lock';
|
|
3
|
+
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
4
|
+
export class MatterbridgeDoorLockServer extends DoorLockServer.enable({
|
|
5
|
+
events: { doorLockAlarm: true, lockOperation: true, lockOperationError: true },
|
|
6
|
+
commands: { lockDoor: true, unlockDoor: true, unlockWithTimeout: true },
|
|
7
|
+
}) {
|
|
8
|
+
async initialize() {
|
|
9
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
10
|
+
device.log.info(`Initializing MatterbridgeDoorLockServer (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
11
|
+
await super.initialize();
|
|
12
|
+
}
|
|
13
|
+
async lockDoor(request) {
|
|
14
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
15
|
+
if (!this.state.actuatorEnabled) {
|
|
16
|
+
device.log.warn(`Actuator disabled, cannot lock door (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
device.log.info(`Locking door (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
20
|
+
await device.commandHandler.executeHandler('DoorLock.lockDoor', {
|
|
21
|
+
command: 'lockDoor',
|
|
22
|
+
request,
|
|
23
|
+
cluster: DoorLockServer.id,
|
|
24
|
+
attributes: this.state,
|
|
25
|
+
endpoint: this.endpoint,
|
|
26
|
+
context: this.context,
|
|
27
|
+
});
|
|
28
|
+
device.log.debug(`MatterbridgeDoorLockServer: lockDoor called`);
|
|
29
|
+
await super.lockDoor(request);
|
|
30
|
+
}
|
|
31
|
+
async unlockDoor(request) {
|
|
32
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
33
|
+
if (!this.state.actuatorEnabled) {
|
|
34
|
+
device.log.warn(`Actuator disabled, cannot unlock door (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
device.log.info(`Unlocking door (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
38
|
+
await device.commandHandler.executeHandler('DoorLock.unlockDoor', {
|
|
39
|
+
command: 'unlockDoor',
|
|
40
|
+
request,
|
|
41
|
+
cluster: DoorLockServer.id,
|
|
42
|
+
attributes: this.state,
|
|
43
|
+
endpoint: this.endpoint,
|
|
44
|
+
context: this.context,
|
|
45
|
+
});
|
|
46
|
+
device.log.debug(`MatterbridgeDoorLockServer: unlockDoor called`);
|
|
47
|
+
await super.unlockDoor(request);
|
|
48
|
+
if (!this.internal.enableTimeout)
|
|
49
|
+
return;
|
|
50
|
+
if (this.state.autoRelockTime) {
|
|
51
|
+
clearTimeout(this.internal.unlockTimeout);
|
|
52
|
+
this.internal.unlockTimeout = setTimeout(async () => {
|
|
53
|
+
this.internal.unlockTimeout = undefined;
|
|
54
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
55
|
+
const state = this.endpoint.stateOf(MatterbridgeDoorLockServer);
|
|
56
|
+
device.log.info(`Auto-relocking door after ${state.autoRelockTime} seconds (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
57
|
+
await this.endpoint.act((agent) => agent.get(MatterbridgeDoorLockServer).lockDoor({ pinCode: request.pinCode }));
|
|
58
|
+
}, this.state.autoRelockTime * 1000).unref();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async unlockWithTimeout(request) {
|
|
62
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
63
|
+
if (!this.state.actuatorEnabled) {
|
|
64
|
+
device.log.warn(`Actuator disabled, cannot unlock door with timeout (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
device.log.info(`Unlocking door with timeout ${request.timeout} seconds (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
68
|
+
await device.commandHandler.executeHandler('DoorLock.unlockWithTimeout', {
|
|
69
|
+
command: 'unlockWithTimeout',
|
|
70
|
+
request,
|
|
71
|
+
cluster: DoorLockServer.id,
|
|
72
|
+
attributes: this.state,
|
|
73
|
+
endpoint: this.endpoint,
|
|
74
|
+
context: this.context,
|
|
75
|
+
});
|
|
76
|
+
device.log.debug(`MatterbridgeDoorLockServer: unlockWithTimeout called`);
|
|
77
|
+
this.state.lockState = DoorLock.LockState.Unlocked;
|
|
78
|
+
if (!this.internal.enableTimeout)
|
|
79
|
+
return;
|
|
80
|
+
if (request.timeout) {
|
|
81
|
+
clearTimeout(this.internal.unlockTimeout);
|
|
82
|
+
this.internal.unlockTimeout = setTimeout(async () => {
|
|
83
|
+
this.internal.unlockTimeout = undefined;
|
|
84
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
85
|
+
device.log.info(`Locking door after ${request.timeout} seconds (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
86
|
+
await this.endpoint.act((agent) => agent.get(MatterbridgeDoorLockServer).lockDoor({ pinCode: request.pinCode }));
|
|
87
|
+
}, request.timeout * 1000).unref();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
(function (MatterbridgeDoorLockServer) {
|
|
92
|
+
class Internal {
|
|
93
|
+
enableTimeout = true;
|
|
94
|
+
unlockTimeout;
|
|
95
|
+
}
|
|
96
|
+
MatterbridgeDoorLockServer.Internal = Internal;
|
|
97
|
+
})(MatterbridgeDoorLockServer || (MatterbridgeDoorLockServer = {}));
|
|
@@ -1 +1,24 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './activatedCarbonFilterMonitoringServer.js';
|
|
2
|
+
export * from './bindingServer.js';
|
|
3
|
+
export * from './booleanStateConfigurationServer.js';
|
|
4
|
+
export * from './colorControlServer.js';
|
|
5
|
+
export * from './deviceEnergyManagementModeServer.js';
|
|
6
|
+
export * from './deviceEnergyManagementServer.js';
|
|
7
|
+
export * from './doorLockServer.js';
|
|
8
|
+
export * from './fanControlServer.js';
|
|
9
|
+
export * from './hepaFilterMonitoringServer.js';
|
|
10
|
+
export * from './identifyServer.js';
|
|
11
|
+
export * from './levelControlServer.js';
|
|
12
|
+
export * from './matterbridgeServer.js';
|
|
13
|
+
export * from './modeSelectServer.js';
|
|
14
|
+
export * from './onOffServer.js';
|
|
15
|
+
export * from './operationalStateServer.js';
|
|
16
|
+
export * from './pinDoorLockServer.js';
|
|
17
|
+
export * from './powerSourceServer.js';
|
|
18
|
+
export * from './serviceAreaServer.js';
|
|
19
|
+
export * from './smokeCoAlarmServer.js';
|
|
20
|
+
export * from './switchServer.js';
|
|
21
|
+
export * from './thermostatServer.js';
|
|
22
|
+
export * from './userPinDoorLockServer.js';
|
|
23
|
+
export * from './valveConfigurationAndControlServer.js';
|
|
24
|
+
export * from './windowCoveringServer.js';
|