@matterbridge/core 3.10.4-dev-20260804-734583a → 3.10.4-dev-20260804-4e99208
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/colorControlServer.d.ts +11 -0
- package/dist/behaviors/colorControlServer.js +154 -0
- package/dist/behaviors/levelControlServer.d.ts +6 -0
- package/dist/behaviors/levelControlServer.js +84 -0
- package/dist/behaviors/onOffServer.d.ts +19 -1
- package/dist/behaviors/onOffServer.js +44 -1
- package/dist/devices/basicVideoPlayer.js +4 -4
- package/dist/devices/dishwasher.js +2 -1
- package/dist/devices/laundryWasher.js +2 -1
- package/dist/matterbridgeEndpointCommandHandler.d.ts +77 -0
- package/package.json +5 -5
|
@@ -9,11 +9,22 @@ declare const MatterbridgeColorControlServer_base: import("@matter/node").Cluste
|
|
|
9
9
|
}>, import("@matter/types").ClusterType.Concrete, typeof import("@matter/node/behaviors/color-control").ColorControlBaseServer.Internal, "colorControl">;
|
|
10
10
|
export declare class MatterbridgeColorControlServer extends MatterbridgeColorControlServer_base {
|
|
11
11
|
moveToHue(request: ColorControl.MoveToHueRequest): Promise<void>;
|
|
12
|
+
moveHue(request: ColorControl.MoveHueRequest): Promise<void>;
|
|
13
|
+
stepHue(request: ColorControl.StepHueRequest): Promise<void>;
|
|
12
14
|
enhancedMoveToHue(request: ColorControl.EnhancedMoveToHueRequest): Promise<void>;
|
|
15
|
+
enhancedMoveHue(request: ColorControl.EnhancedMoveHueRequest): Promise<void>;
|
|
16
|
+
enhancedStepHue(request: ColorControl.EnhancedStepHueRequest): Promise<void>;
|
|
13
17
|
moveToSaturation(request: ColorControl.MoveToSaturationRequest): Promise<void>;
|
|
18
|
+
moveSaturation(request: ColorControl.MoveSaturationRequest): Promise<void>;
|
|
19
|
+
stepSaturation(request: ColorControl.StepSaturationRequest): Promise<void>;
|
|
14
20
|
moveToHueAndSaturation(request: ColorControl.MoveToHueAndSaturationRequest): Promise<void>;
|
|
15
21
|
enhancedMoveToHueAndSaturation(request: ColorControl.EnhancedMoveToHueAndSaturationRequest): Promise<void>;
|
|
16
22
|
moveToColor(request: ColorControl.MoveToColorRequest): Promise<void>;
|
|
23
|
+
moveColor(request: ColorControl.MoveColorRequest): Promise<void>;
|
|
24
|
+
stepColor(request: ColorControl.StepColorRequest): Promise<void>;
|
|
17
25
|
moveToColorTemperature(request: ColorControl.MoveToColorTemperatureRequest): Promise<void>;
|
|
26
|
+
moveColorTemperature(request: ColorControl.MoveColorTemperatureRequest): Promise<void>;
|
|
27
|
+
stepColorTemperature(request: ColorControl.StepColorTemperatureRequest): Promise<void>;
|
|
28
|
+
stopMoveStep(request: ColorControl.StopMoveStepRequest): Promise<void>;
|
|
18
29
|
}
|
|
19
30
|
export {};
|
|
@@ -16,6 +16,34 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
|
|
|
16
16
|
device.log.debug(`MatterbridgeColorControlServer: moveToHue called`);
|
|
17
17
|
await super.moveToHue(request);
|
|
18
18
|
}
|
|
19
|
+
async moveHue(request) {
|
|
20
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
21
|
+
device.log.info(`Moving hue with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
22
|
+
await device.commandHandler.executeHandler('ColorControl.moveHue', {
|
|
23
|
+
command: 'moveHue',
|
|
24
|
+
request,
|
|
25
|
+
cluster: ColorControlServer.id,
|
|
26
|
+
attributes: this.state,
|
|
27
|
+
endpoint: this.endpoint,
|
|
28
|
+
context: this.context,
|
|
29
|
+
});
|
|
30
|
+
device.log.debug(`MatterbridgeColorControlServer: moveHue called`);
|
|
31
|
+
await super.moveHue(request);
|
|
32
|
+
}
|
|
33
|
+
async stepHue(request) {
|
|
34
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
35
|
+
device.log.info(`Stepping hue with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
36
|
+
await device.commandHandler.executeHandler('ColorControl.stepHue', {
|
|
37
|
+
command: 'stepHue',
|
|
38
|
+
request,
|
|
39
|
+
cluster: ColorControlServer.id,
|
|
40
|
+
attributes: this.state,
|
|
41
|
+
endpoint: this.endpoint,
|
|
42
|
+
context: this.context,
|
|
43
|
+
});
|
|
44
|
+
device.log.debug(`MatterbridgeColorControlServer: stepHue called`);
|
|
45
|
+
await super.stepHue(request);
|
|
46
|
+
}
|
|
19
47
|
async enhancedMoveToHue(request) {
|
|
20
48
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
21
49
|
device.log.info(`Setting enhanced hue to ${request.enhancedHue} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
@@ -30,6 +58,34 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
|
|
|
30
58
|
device.log.debug(`MatterbridgeColorControlServer: enhancedMoveToHue called`);
|
|
31
59
|
await super.enhancedMoveToHue(request);
|
|
32
60
|
}
|
|
61
|
+
async enhancedMoveHue(request) {
|
|
62
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
63
|
+
device.log.info(`Moving enhanced hue with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
64
|
+
await device.commandHandler.executeHandler('ColorControl.enhancedMoveHue', {
|
|
65
|
+
command: 'enhancedMoveHue',
|
|
66
|
+
request,
|
|
67
|
+
cluster: ColorControlServer.id,
|
|
68
|
+
attributes: this.state,
|
|
69
|
+
endpoint: this.endpoint,
|
|
70
|
+
context: this.context,
|
|
71
|
+
});
|
|
72
|
+
device.log.debug(`MatterbridgeColorControlServer: enhancedMoveHue called`);
|
|
73
|
+
await super.enhancedMoveHue(request);
|
|
74
|
+
}
|
|
75
|
+
async enhancedStepHue(request) {
|
|
76
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
77
|
+
device.log.info(`Stepping enhanced hue with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
78
|
+
await device.commandHandler.executeHandler('ColorControl.enhancedStepHue', {
|
|
79
|
+
command: 'enhancedStepHue',
|
|
80
|
+
request,
|
|
81
|
+
cluster: ColorControlServer.id,
|
|
82
|
+
attributes: this.state,
|
|
83
|
+
endpoint: this.endpoint,
|
|
84
|
+
context: this.context,
|
|
85
|
+
});
|
|
86
|
+
device.log.debug(`MatterbridgeColorControlServer: enhancedStepHue called`);
|
|
87
|
+
await super.enhancedStepHue(request);
|
|
88
|
+
}
|
|
33
89
|
async moveToSaturation(request) {
|
|
34
90
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
35
91
|
device.log.info(`Setting saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
@@ -44,6 +100,34 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
|
|
|
44
100
|
device.log.debug(`MatterbridgeColorControlServer: moveToSaturation called`);
|
|
45
101
|
await super.moveToSaturation(request);
|
|
46
102
|
}
|
|
103
|
+
async moveSaturation(request) {
|
|
104
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
105
|
+
device.log.info(`Moving saturation with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
106
|
+
await device.commandHandler.executeHandler('ColorControl.moveSaturation', {
|
|
107
|
+
command: 'moveSaturation',
|
|
108
|
+
request,
|
|
109
|
+
cluster: ColorControlServer.id,
|
|
110
|
+
attributes: this.state,
|
|
111
|
+
endpoint: this.endpoint,
|
|
112
|
+
context: this.context,
|
|
113
|
+
});
|
|
114
|
+
device.log.debug(`MatterbridgeColorControlServer: moveSaturation called`);
|
|
115
|
+
await super.moveSaturation(request);
|
|
116
|
+
}
|
|
117
|
+
async stepSaturation(request) {
|
|
118
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
119
|
+
device.log.info(`Stepping saturation with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
120
|
+
await device.commandHandler.executeHandler('ColorControl.stepSaturation', {
|
|
121
|
+
command: 'stepSaturation',
|
|
122
|
+
request,
|
|
123
|
+
cluster: ColorControlServer.id,
|
|
124
|
+
attributes: this.state,
|
|
125
|
+
endpoint: this.endpoint,
|
|
126
|
+
context: this.context,
|
|
127
|
+
});
|
|
128
|
+
device.log.debug(`MatterbridgeColorControlServer: stepSaturation called`);
|
|
129
|
+
await super.stepSaturation(request);
|
|
130
|
+
}
|
|
47
131
|
async moveToHueAndSaturation(request) {
|
|
48
132
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
49
133
|
device.log.info(`Setting hue to ${request.hue} and saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
@@ -86,6 +170,34 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
|
|
|
86
170
|
device.log.debug(`MatterbridgeColorControlServer: moveToColor called`);
|
|
87
171
|
await super.moveToColor(request);
|
|
88
172
|
}
|
|
173
|
+
async moveColor(request) {
|
|
174
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
175
|
+
device.log.info(`Moving color with rateX ${request.rateX} and rateY ${request.rateY} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
176
|
+
await device.commandHandler.executeHandler('ColorControl.moveColor', {
|
|
177
|
+
command: 'moveColor',
|
|
178
|
+
request,
|
|
179
|
+
cluster: ColorControlServer.id,
|
|
180
|
+
attributes: this.state,
|
|
181
|
+
endpoint: this.endpoint,
|
|
182
|
+
context: this.context,
|
|
183
|
+
});
|
|
184
|
+
device.log.debug(`MatterbridgeColorControlServer: moveColor called`);
|
|
185
|
+
await super.moveColor(request);
|
|
186
|
+
}
|
|
187
|
+
async stepColor(request) {
|
|
188
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
189
|
+
device.log.info(`Stepping color with stepX ${request.stepX} and stepY ${request.stepY} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
190
|
+
await device.commandHandler.executeHandler('ColorControl.stepColor', {
|
|
191
|
+
command: 'stepColor',
|
|
192
|
+
request,
|
|
193
|
+
cluster: ColorControlServer.id,
|
|
194
|
+
attributes: this.state,
|
|
195
|
+
endpoint: this.endpoint,
|
|
196
|
+
context: this.context,
|
|
197
|
+
});
|
|
198
|
+
device.log.debug(`MatterbridgeColorControlServer: stepColor called`);
|
|
199
|
+
await super.stepColor(request);
|
|
200
|
+
}
|
|
89
201
|
async moveToColorTemperature(request) {
|
|
90
202
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
91
203
|
device.log.info(`Setting color temperature to ${request.colorTemperatureMireds} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
@@ -100,4 +212,46 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
|
|
|
100
212
|
device.log.debug(`MatterbridgeColorControlServer: moveToColorTemperature called`);
|
|
101
213
|
await super.moveToColorTemperature(request);
|
|
102
214
|
}
|
|
215
|
+
async moveColorTemperature(request) {
|
|
216
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
217
|
+
device.log.info(`Moving color temperature with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
218
|
+
await device.commandHandler.executeHandler('ColorControl.moveColorTemperature', {
|
|
219
|
+
command: 'moveColorTemperature',
|
|
220
|
+
request,
|
|
221
|
+
cluster: ColorControlServer.id,
|
|
222
|
+
attributes: this.state,
|
|
223
|
+
endpoint: this.endpoint,
|
|
224
|
+
context: this.context,
|
|
225
|
+
});
|
|
226
|
+
device.log.debug(`MatterbridgeColorControlServer: moveColorTemperature called`);
|
|
227
|
+
await super.moveColorTemperature(request);
|
|
228
|
+
}
|
|
229
|
+
async stepColorTemperature(request) {
|
|
230
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
231
|
+
device.log.info(`Stepping color temperature with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
232
|
+
await device.commandHandler.executeHandler('ColorControl.stepColorTemperature', {
|
|
233
|
+
command: 'stepColorTemperature',
|
|
234
|
+
request,
|
|
235
|
+
cluster: ColorControlServer.id,
|
|
236
|
+
attributes: this.state,
|
|
237
|
+
endpoint: this.endpoint,
|
|
238
|
+
context: this.context,
|
|
239
|
+
});
|
|
240
|
+
device.log.debug(`MatterbridgeColorControlServer: stepColorTemperature called`);
|
|
241
|
+
await super.stepColorTemperature(request);
|
|
242
|
+
}
|
|
243
|
+
async stopMoveStep(request) {
|
|
244
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
245
|
+
device.log.info(`Stopping color move/step (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
246
|
+
await device.commandHandler.executeHandler('ColorControl.stopMoveStep', {
|
|
247
|
+
command: 'stopMoveStep',
|
|
248
|
+
request,
|
|
249
|
+
cluster: ColorControlServer.id,
|
|
250
|
+
attributes: this.state,
|
|
251
|
+
endpoint: this.endpoint,
|
|
252
|
+
context: this.context,
|
|
253
|
+
});
|
|
254
|
+
device.log.debug(`MatterbridgeColorControlServer: stopMoveStep called`);
|
|
255
|
+
await super.stopMoveStep(request);
|
|
256
|
+
}
|
|
103
257
|
}
|
|
@@ -3,4 +3,10 @@ import type { LevelControl } from '@matter/types/clusters/level-control';
|
|
|
3
3
|
export declare class MatterbridgeLevelControlServer extends LevelControlServer {
|
|
4
4
|
moveToLevel(request: LevelControl.MoveToLevelRequest): Promise<void>;
|
|
5
5
|
moveToLevelWithOnOff(request: LevelControl.MoveToLevelRequest): Promise<void>;
|
|
6
|
+
move(request: LevelControl.MoveRequest): Promise<void>;
|
|
7
|
+
moveWithOnOff(request: LevelControl.MoveRequest): Promise<void>;
|
|
8
|
+
step(request: LevelControl.StepRequest): Promise<void>;
|
|
9
|
+
stepWithOnOff(request: LevelControl.StepRequest): Promise<void>;
|
|
10
|
+
stop(request: LevelControl.StopRequest): Promise<void>;
|
|
11
|
+
stopWithOnOff(request: LevelControl.StopRequest): Promise<void>;
|
|
6
12
|
}
|
|
@@ -29,4 +29,88 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
|
|
|
29
29
|
device.log.debug(`MatterbridgeLevelControlServer: moveToLevelWithOnOff called`);
|
|
30
30
|
await super.moveToLevelWithOnOff(request);
|
|
31
31
|
}
|
|
32
|
+
async move(request) {
|
|
33
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
34
|
+
device.log.info(`Moving level with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
35
|
+
await device.commandHandler.executeHandler('LevelControl.move', {
|
|
36
|
+
command: 'move',
|
|
37
|
+
request,
|
|
38
|
+
cluster: LevelControlServer.id,
|
|
39
|
+
attributes: this.state,
|
|
40
|
+
endpoint: this.endpoint,
|
|
41
|
+
context: this.context,
|
|
42
|
+
});
|
|
43
|
+
device.log.debug(`MatterbridgeLevelControlServer: move called`);
|
|
44
|
+
await super.move(request);
|
|
45
|
+
}
|
|
46
|
+
async moveWithOnOff(request) {
|
|
47
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
48
|
+
device.log.info(`Moving level with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
49
|
+
await device.commandHandler.executeHandler('LevelControl.moveWithOnOff', {
|
|
50
|
+
command: 'moveWithOnOff',
|
|
51
|
+
request,
|
|
52
|
+
cluster: LevelControlServer.id,
|
|
53
|
+
attributes: this.state,
|
|
54
|
+
endpoint: this.endpoint,
|
|
55
|
+
context: this.context,
|
|
56
|
+
});
|
|
57
|
+
device.log.debug(`MatterbridgeLevelControlServer: moveWithOnOff called`);
|
|
58
|
+
await super.moveWithOnOff(request);
|
|
59
|
+
}
|
|
60
|
+
async step(request) {
|
|
61
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
62
|
+
device.log.info(`Stepping level with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
63
|
+
await device.commandHandler.executeHandler('LevelControl.step', {
|
|
64
|
+
command: 'step',
|
|
65
|
+
request,
|
|
66
|
+
cluster: LevelControlServer.id,
|
|
67
|
+
attributes: this.state,
|
|
68
|
+
endpoint: this.endpoint,
|
|
69
|
+
context: this.context,
|
|
70
|
+
});
|
|
71
|
+
device.log.debug(`MatterbridgeLevelControlServer: step called`);
|
|
72
|
+
await super.step(request);
|
|
73
|
+
}
|
|
74
|
+
async stepWithOnOff(request) {
|
|
75
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
76
|
+
device.log.info(`Stepping level with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
77
|
+
await device.commandHandler.executeHandler('LevelControl.stepWithOnOff', {
|
|
78
|
+
command: 'stepWithOnOff',
|
|
79
|
+
request,
|
|
80
|
+
cluster: LevelControlServer.id,
|
|
81
|
+
attributes: this.state,
|
|
82
|
+
endpoint: this.endpoint,
|
|
83
|
+
context: this.context,
|
|
84
|
+
});
|
|
85
|
+
device.log.debug(`MatterbridgeLevelControlServer: stepWithOnOff called`);
|
|
86
|
+
await super.stepWithOnOff(request);
|
|
87
|
+
}
|
|
88
|
+
async stop(request) {
|
|
89
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
90
|
+
device.log.info(`Stopping level change (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
91
|
+
await device.commandHandler.executeHandler('LevelControl.stop', {
|
|
92
|
+
command: 'stop',
|
|
93
|
+
request,
|
|
94
|
+
cluster: LevelControlServer.id,
|
|
95
|
+
attributes: this.state,
|
|
96
|
+
endpoint: this.endpoint,
|
|
97
|
+
context: this.context,
|
|
98
|
+
});
|
|
99
|
+
device.log.debug(`MatterbridgeLevelControlServer: stop called`);
|
|
100
|
+
await super.stop(request);
|
|
101
|
+
}
|
|
102
|
+
async stopWithOnOff(request) {
|
|
103
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
104
|
+
device.log.info(`Stopping level change (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
105
|
+
await device.commandHandler.executeHandler('LevelControl.stopWithOnOff', {
|
|
106
|
+
command: 'stopWithOnOff',
|
|
107
|
+
request,
|
|
108
|
+
cluster: LevelControlServer.id,
|
|
109
|
+
attributes: this.state,
|
|
110
|
+
endpoint: this.endpoint,
|
|
111
|
+
context: this.context,
|
|
112
|
+
});
|
|
113
|
+
device.log.debug(`MatterbridgeLevelControlServer: stopWithOnOff called`);
|
|
114
|
+
await super.stopWithOnOff(request);
|
|
115
|
+
}
|
|
32
116
|
}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { OnOffServer } from '@matter/node/behaviors/on-off';
|
|
2
|
-
|
|
2
|
+
import { OnOff } from '@matter/types/clusters/on-off';
|
|
3
|
+
declare const MatterbridgeOnOffServer_base: import("@matter/node").ClusterBehavior.Type<typeof OnOffServer, import("@matter/types").ClusterType.WithSupportedFeatures<import("@matter/types").ClusterType.WithSupportedFeatures<import("@matter/types").ClusterType.WithSupportedFeatures<OnOff, {
|
|
4
|
+
deadFrontBehavior: false;
|
|
5
|
+
lighting: true;
|
|
6
|
+
offOnly: false;
|
|
7
|
+
}>, {
|
|
8
|
+
deadFrontBehavior: false;
|
|
9
|
+
lighting: false;
|
|
10
|
+
offOnly: false;
|
|
11
|
+
}>, {
|
|
12
|
+
deadFrontBehavior: false;
|
|
13
|
+
lighting: true;
|
|
14
|
+
offOnly: false;
|
|
15
|
+
}>, import("@matter/types").ClusterType.Concrete, typeof import("@matter/node/behaviors/on-off").OnOffBaseServer.Internal, "onOff">;
|
|
16
|
+
export declare class MatterbridgeOnOffServer extends MatterbridgeOnOffServer_base {
|
|
3
17
|
on(): Promise<void>;
|
|
4
18
|
off(): Promise<void>;
|
|
5
19
|
toggle(): Promise<void>;
|
|
20
|
+
offWithEffect(request: OnOff.OffWithEffectRequest): Promise<void>;
|
|
21
|
+
onWithRecallGlobalScene(): Promise<void>;
|
|
22
|
+
onWithTimedOff(request: OnOff.OnWithTimedOffRequest): Promise<void>;
|
|
6
23
|
}
|
|
24
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OnOffServer } from '@matter/node/behaviors/on-off';
|
|
2
|
+
import { OnOff } from '@matter/types/clusters/on-off';
|
|
2
3
|
import { MatterbridgeServer } from './matterbridgeServer.js';
|
|
3
|
-
export class MatterbridgeOnOffServer extends OnOffServer {
|
|
4
|
+
export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Lighting) {
|
|
4
5
|
async on() {
|
|
5
6
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
6
7
|
device.log.info(`Switching device on (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
@@ -43,4 +44,46 @@ export class MatterbridgeOnOffServer extends OnOffServer {
|
|
|
43
44
|
device.log.debug(`MatterbridgeOnOffServer: toggle called`);
|
|
44
45
|
await super.toggle();
|
|
45
46
|
}
|
|
47
|
+
async offWithEffect(request) {
|
|
48
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
49
|
+
device.log.info(`Switching device off with effect ${request.effectIdentifier} and variant ${request.effectVariant} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
50
|
+
await device.commandHandler.executeHandler('OnOff.offWithEffect', {
|
|
51
|
+
command: 'offWithEffect',
|
|
52
|
+
request,
|
|
53
|
+
cluster: OnOffServer.id,
|
|
54
|
+
attributes: this.state,
|
|
55
|
+
endpoint: this.endpoint,
|
|
56
|
+
context: this.context,
|
|
57
|
+
});
|
|
58
|
+
device.log.debug(`MatterbridgeOnOffServer: offWithEffect called`);
|
|
59
|
+
await super.offWithEffect(request);
|
|
60
|
+
}
|
|
61
|
+
async onWithRecallGlobalScene() {
|
|
62
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
63
|
+
device.log.info(`Switching device on with recall global scene (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
64
|
+
await device.commandHandler.executeHandler('OnOff.onWithRecallGlobalScene', {
|
|
65
|
+
command: 'onWithRecallGlobalScene',
|
|
66
|
+
request: {},
|
|
67
|
+
cluster: OnOffServer.id,
|
|
68
|
+
attributes: this.state,
|
|
69
|
+
endpoint: this.endpoint,
|
|
70
|
+
context: this.context,
|
|
71
|
+
});
|
|
72
|
+
device.log.debug(`MatterbridgeOnOffServer: onWithRecallGlobalScene called`);
|
|
73
|
+
await super.onWithRecallGlobalScene();
|
|
74
|
+
}
|
|
75
|
+
async onWithTimedOff(request) {
|
|
76
|
+
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
77
|
+
device.log.info(`Switching device on with timed off control ${JSON.stringify(request.onOffControl)}, offWaitTime ${request.offWaitTime} and onTime ${request.onTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
78
|
+
await device.commandHandler.executeHandler('OnOff.onWithTimedOff', {
|
|
79
|
+
command: 'onWithTimedOff',
|
|
80
|
+
request,
|
|
81
|
+
cluster: OnOffServer.id,
|
|
82
|
+
attributes: this.state,
|
|
83
|
+
endpoint: this.endpoint,
|
|
84
|
+
context: this.context,
|
|
85
|
+
});
|
|
86
|
+
device.log.debug(`MatterbridgeOnOffServer: onWithTimedOff called`);
|
|
87
|
+
await super.onWithTimedOff(request);
|
|
88
|
+
}
|
|
46
89
|
}
|
|
@@ -33,7 +33,7 @@ export class MatterbridgeMediaPlaybackServer extends MediaPlaybackServer {
|
|
|
33
33
|
initialize() {
|
|
34
34
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
35
35
|
device.log.info(`MatterbridgeMediaPlaybackServer initialized: currentState is ${this.state.currentState}`);
|
|
36
|
-
this.reactTo(this.agent.get(MatterbridgeOnOffServer).events.onOff$Changed, this.handleOnOffChange);
|
|
36
|
+
this.reactTo(this.agent.get(MatterbridgeOnOffServer.with()).events.onOff$Changed, this.handleOnOffChange);
|
|
37
37
|
}
|
|
38
38
|
handleOnOffChange(_onOff) {
|
|
39
39
|
this.state.currentState = MediaPlayback.PlaybackState.NotPlaying;
|
|
@@ -48,7 +48,7 @@ export class MatterbridgeMediaPlaybackServer extends MediaPlaybackServer {
|
|
|
48
48
|
attributes: this.state,
|
|
49
49
|
endpoint: this.endpoint,
|
|
50
50
|
});
|
|
51
|
-
if (this.endpoint.stateOf(MatterbridgeOnOffServer).onOff)
|
|
51
|
+
if (this.endpoint.stateOf(MatterbridgeOnOffServer.with()).onOff)
|
|
52
52
|
this.state.currentState = MediaPlayback.PlaybackState.Playing;
|
|
53
53
|
return { status: MediaPlayback.Status.Success };
|
|
54
54
|
}
|
|
@@ -62,7 +62,7 @@ export class MatterbridgeMediaPlaybackServer extends MediaPlaybackServer {
|
|
|
62
62
|
attributes: this.state,
|
|
63
63
|
endpoint: this.endpoint,
|
|
64
64
|
});
|
|
65
|
-
if (this.endpoint.stateOf(MatterbridgeOnOffServer).onOff)
|
|
65
|
+
if (this.endpoint.stateOf(MatterbridgeOnOffServer.with()).onOff)
|
|
66
66
|
this.state.currentState = MediaPlayback.PlaybackState.Paused;
|
|
67
67
|
return { status: MediaPlayback.Status.Success };
|
|
68
68
|
}
|
|
@@ -76,7 +76,7 @@ export class MatterbridgeMediaPlaybackServer extends MediaPlaybackServer {
|
|
|
76
76
|
attributes: this.state,
|
|
77
77
|
endpoint: this.endpoint,
|
|
78
78
|
});
|
|
79
|
-
if (this.endpoint.stateOf(MatterbridgeOnOffServer).onOff)
|
|
79
|
+
if (this.endpoint.stateOf(MatterbridgeOnOffServer.with()).onOff)
|
|
80
80
|
this.state.currentState = MediaPlayback.PlaybackState.NotPlaying;
|
|
81
81
|
return { status: MediaPlayback.Status.Success };
|
|
82
82
|
}
|
|
@@ -2,6 +2,7 @@ import { DishwasherAlarmServer } from '@matter/node/behaviors/dishwasher-alarm';
|
|
|
2
2
|
import { DishwasherModeServer } from '@matter/node/behaviors/dishwasher-mode';
|
|
3
3
|
import { DishwasherMode } from '@matter/types/clusters/dishwasher-mode';
|
|
4
4
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
5
|
+
import { OnOff } from '@matter/types/clusters/on-off';
|
|
5
6
|
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
6
7
|
import { MatterbridgeOnOffServer } from '../behaviors/onOffServer.js';
|
|
7
8
|
import { dishwasher, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
@@ -47,7 +48,7 @@ export class MatterbridgeDishwasherModeServer extends DishwasherModeServer {
|
|
|
47
48
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
48
49
|
device.log.info(`MatterbridgeDishwasherModeServer initialized: currentMode is ${this.state.currentMode}`);
|
|
49
50
|
this.state.currentMode = 2;
|
|
50
|
-
this.reactTo(this.agent.get(MatterbridgeOnOffServer).events.onOff$Changed, this.handleOnOffChange);
|
|
51
|
+
this.reactTo(this.agent.get(MatterbridgeOnOffServer.with(OnOff.Feature.DeadFrontBehavior)).events.onOff$Changed, this.handleOnOffChange);
|
|
51
52
|
}
|
|
52
53
|
handleOnOffChange(onOff) {
|
|
53
54
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -3,6 +3,7 @@ import { LaundryWasherModeServer } from '@matter/node/behaviors/laundry-washer-m
|
|
|
3
3
|
import { LaundryWasherControls } from '@matter/types/clusters/laundry-washer-controls';
|
|
4
4
|
import { LaundryWasherMode } from '@matter/types/clusters/laundry-washer-mode';
|
|
5
5
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
6
|
+
import { OnOff } from '@matter/types/clusters/on-off';
|
|
6
7
|
import { MatterbridgeServer } from '../behaviors/matterbridgeServer.js';
|
|
7
8
|
import { MatterbridgeOnOffServer } from '../behaviors/onOffServer.js';
|
|
8
9
|
import { laundryWasher, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
@@ -54,7 +55,7 @@ export class MatterbridgeLaundryWasherModeServer extends LaundryWasherModeServer
|
|
|
54
55
|
initialize() {
|
|
55
56
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
56
57
|
device.log.info(`MatterbridgeLaundryWasherModeServer initialized: currentMode is ${this.state.currentMode}`);
|
|
57
|
-
this.reactTo(this.agent.get(MatterbridgeOnOffServer).events.onOff$Changed, this.handleOnOffChange);
|
|
58
|
+
this.reactTo(this.agent.get(MatterbridgeOnOffServer.with(OnOff.Feature.DeadFrontBehavior)).events.onOff$Changed, this.handleOnOffChange);
|
|
58
59
|
}
|
|
59
60
|
handleOnOffChange(onOff) {
|
|
60
61
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
@@ -107,6 +107,20 @@ export type CommandHandlerDataMap = {
|
|
|
107
107
|
attributes: ClusterAttributeValues<(typeof OnOff)['attributes']>;
|
|
108
108
|
endpoint: MatterbridgeEndpoint;
|
|
109
109
|
};
|
|
110
|
+
'OnOff.onWithRecallGlobalScene': {
|
|
111
|
+
command: 'onWithRecallGlobalScene';
|
|
112
|
+
request: {};
|
|
113
|
+
cluster: 'onOff';
|
|
114
|
+
attributes: ClusterAttributeValues<(typeof OnOff)['attributes']>;
|
|
115
|
+
endpoint: MatterbridgeEndpoint;
|
|
116
|
+
};
|
|
117
|
+
'OnOff.onWithTimedOff': {
|
|
118
|
+
command: 'onWithTimedOff';
|
|
119
|
+
request: OnOff.OnWithTimedOffRequest;
|
|
120
|
+
cluster: 'onOff';
|
|
121
|
+
attributes: ClusterAttributeValues<(typeof OnOff)['attributes']>;
|
|
122
|
+
endpoint: MatterbridgeEndpoint;
|
|
123
|
+
};
|
|
110
124
|
'moveToLevel': CommandHandlerData<'LevelControl.moveToLevel'>;
|
|
111
125
|
'moveToLevelWithOnOff': CommandHandlerData<'LevelControl.moveToLevelWithOnOff'>;
|
|
112
126
|
'LevelControl.moveToLevel': {
|
|
@@ -123,6 +137,48 @@ export type CommandHandlerDataMap = {
|
|
|
123
137
|
attributes: ClusterAttributeValues<(typeof LevelControl)['attributes']>;
|
|
124
138
|
endpoint: MatterbridgeEndpoint;
|
|
125
139
|
};
|
|
140
|
+
'LevelControl.move': {
|
|
141
|
+
command: 'move';
|
|
142
|
+
request: LevelControl.MoveRequest;
|
|
143
|
+
cluster: 'levelControl';
|
|
144
|
+
attributes: ClusterAttributeValues<(typeof LevelControl)['attributes']>;
|
|
145
|
+
endpoint: MatterbridgeEndpoint;
|
|
146
|
+
};
|
|
147
|
+
'LevelControl.moveWithOnOff': {
|
|
148
|
+
command: 'moveWithOnOff';
|
|
149
|
+
request: LevelControl.MoveRequest;
|
|
150
|
+
cluster: 'levelControl';
|
|
151
|
+
attributes: ClusterAttributeValues<(typeof LevelControl)['attributes']>;
|
|
152
|
+
endpoint: MatterbridgeEndpoint;
|
|
153
|
+
};
|
|
154
|
+
'LevelControl.step': {
|
|
155
|
+
command: 'step';
|
|
156
|
+
request: LevelControl.StepRequest;
|
|
157
|
+
cluster: 'levelControl';
|
|
158
|
+
attributes: ClusterAttributeValues<(typeof LevelControl)['attributes']>;
|
|
159
|
+
endpoint: MatterbridgeEndpoint;
|
|
160
|
+
};
|
|
161
|
+
'LevelControl.stepWithOnOff': {
|
|
162
|
+
command: 'stepWithOnOff';
|
|
163
|
+
request: LevelControl.StepRequest;
|
|
164
|
+
cluster: 'levelControl';
|
|
165
|
+
attributes: ClusterAttributeValues<(typeof LevelControl)['attributes']>;
|
|
166
|
+
endpoint: MatterbridgeEndpoint;
|
|
167
|
+
};
|
|
168
|
+
'LevelControl.stop': {
|
|
169
|
+
command: 'stop';
|
|
170
|
+
request: LevelControl.StopRequest;
|
|
171
|
+
cluster: 'levelControl';
|
|
172
|
+
attributes: ClusterAttributeValues<(typeof LevelControl)['attributes']>;
|
|
173
|
+
endpoint: MatterbridgeEndpoint;
|
|
174
|
+
};
|
|
175
|
+
'LevelControl.stopWithOnOff': {
|
|
176
|
+
command: 'stopWithOnOff';
|
|
177
|
+
request: LevelControl.StopRequest;
|
|
178
|
+
cluster: 'levelControl';
|
|
179
|
+
attributes: ClusterAttributeValues<(typeof LevelControl)['attributes']>;
|
|
180
|
+
endpoint: MatterbridgeEndpoint;
|
|
181
|
+
};
|
|
126
182
|
'moveToColor': CommandHandlerData<'ColorControl.moveToColor'>;
|
|
127
183
|
'moveColor': CommandHandlerData<'ColorControl.moveColor'>;
|
|
128
184
|
'stepColor': CommandHandlerData<'ColorControl.stepColor'>;
|
|
@@ -243,6 +299,27 @@ export type CommandHandlerDataMap = {
|
|
|
243
299
|
attributes: ClusterAttributeValues<(typeof ColorControl)['attributes']>;
|
|
244
300
|
endpoint: MatterbridgeEndpoint;
|
|
245
301
|
};
|
|
302
|
+
'ColorControl.moveColorTemperature': {
|
|
303
|
+
command: 'moveColorTemperature';
|
|
304
|
+
request: ColorControl.MoveColorTemperatureRequest;
|
|
305
|
+
cluster: 'colorControl';
|
|
306
|
+
attributes: ClusterAttributeValues<(typeof ColorControl)['attributes']>;
|
|
307
|
+
endpoint: MatterbridgeEndpoint;
|
|
308
|
+
};
|
|
309
|
+
'ColorControl.stepColorTemperature': {
|
|
310
|
+
command: 'stepColorTemperature';
|
|
311
|
+
request: ColorControl.StepColorTemperatureRequest;
|
|
312
|
+
cluster: 'colorControl';
|
|
313
|
+
attributes: ClusterAttributeValues<(typeof ColorControl)['attributes']>;
|
|
314
|
+
endpoint: MatterbridgeEndpoint;
|
|
315
|
+
};
|
|
316
|
+
'ColorControl.stopMoveStep': {
|
|
317
|
+
command: 'stopMoveStep';
|
|
318
|
+
request: ColorControl.StopMoveStepRequest;
|
|
319
|
+
cluster: 'colorControl';
|
|
320
|
+
attributes: ClusterAttributeValues<(typeof ColorControl)['attributes']>;
|
|
321
|
+
endpoint: MatterbridgeEndpoint;
|
|
322
|
+
};
|
|
246
323
|
'upOrOpen': CommandHandlerData<'WindowCovering.upOrOpen'>;
|
|
247
324
|
'downOrClose': CommandHandlerData<'WindowCovering.downOrClose'>;
|
|
248
325
|
'stopMotion': CommandHandlerData<'WindowCovering.stopMotion'>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matterbridge/core",
|
|
3
|
-
"version": "3.10.4-dev-20260804-
|
|
3
|
+
"version": "3.10.4-dev-20260804-4e99208",
|
|
4
4
|
"description": "Matterbridge core library",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"homepage": "https://matterbridge.io/",
|
|
@@ -132,10 +132,10 @@
|
|
|
132
132
|
},
|
|
133
133
|
"dependencies": {
|
|
134
134
|
"@matter/main": "0.17.8",
|
|
135
|
-
"@matterbridge/dgram": "3.10.4-dev-20260804-
|
|
136
|
-
"@matterbridge/thread": "3.10.4-dev-20260804-
|
|
137
|
-
"@matterbridge/types": "3.10.4-dev-20260804-
|
|
138
|
-
"@matterbridge/utils": "3.10.4-dev-20260804-
|
|
135
|
+
"@matterbridge/dgram": "3.10.4-dev-20260804-4e99208",
|
|
136
|
+
"@matterbridge/thread": "3.10.4-dev-20260804-4e99208",
|
|
137
|
+
"@matterbridge/types": "3.10.4-dev-20260804-4e99208",
|
|
138
|
+
"@matterbridge/utils": "3.10.4-dev-20260804-4e99208",
|
|
139
139
|
"escape-html": "1.0.3",
|
|
140
140
|
"express": "5.2.1",
|
|
141
141
|
"express-rate-limit": "8.6.1",
|