@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.
@@ -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
- export declare class MatterbridgeOnOffServer extends OnOffServer {
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-734583a",
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-734583a",
136
- "@matterbridge/thread": "3.10.4-dev-20260804-734583a",
137
- "@matterbridge/types": "3.10.4-dev-20260804-734583a",
138
- "@matterbridge/utils": "3.10.4-dev-20260804-734583a",
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",