@matterbridge/core 3.10.9-dev-20260904-cbaddbb → 3.10.9-dev-20260906-2a9dc0e

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.
@@ -6,33 +6,33 @@ export class MatterbridgeBindingServer extends BindingServer {
6
6
  initialize() {
7
7
  super.initialize();
8
8
  const device = this.endpoint.stateOf(MatterbridgeServer);
9
- device.log.info(`Initializing MatterbridgeBindingServer (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber}) with clientList: ${this.state.clientList.join(', ')}`);
9
+ device.log.info(`MatterbridgeBindingServer: initializing with clientList ${this.state.clientList.join(', ')} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
10
10
  const clientList = this.state.clientList;
11
11
  this.endpoint.construction.onSuccess(async () => {
12
12
  const currentClientList = this.endpoint.stateOf(DescriptorServer).clientList;
13
13
  const toAddClientList = clientList.filter((id) => !currentClientList.includes(id));
14
14
  if (toAddClientList.length > 0) {
15
- device.log.info(`Adding client clusters to endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber}: ${toAddClientList.join(', ')}`);
15
+ device.log.info(`MatterbridgeBindingServer: adding client clusters ${toAddClientList.join(', ')} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
16
16
  await this.endpoint.setStateOf(DescriptorServer, { clientList: [...currentClientList, ...toAddClientList] });
17
17
  }
18
18
  const targets = this.endpoint.stateOf(BindingServer).binding;
19
19
  for (const target of targets) {
20
- device.log.info(`Active binding for endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber}: target ${debugStringify(target)}`);
20
+ device.log.info(`MatterbridgeBindingServer: active binding target ${debugStringify(target)} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
21
21
  }
22
22
  });
23
23
  this.reactTo(this.events.binding$Changed, (value) => {
24
24
  this.internal.bound = value.length > 0;
25
- device.log.notice(`MatterbridgeBindingServer (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber}) binding changed: ${debugStringify(value)}${nt}, bound: ${this.internal.bound}`);
25
+ device.log.notice(`MatterbridgeBindingServer: binding changed to ${debugStringify(value)}${nt}, bound ${this.internal.bound} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
26
26
  });
27
27
  this.reactTo(this.events.established, async (resolution) => {
28
- device.log.notice(`MatterbridgeBindingServer (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber}) binding established: kind ${resolution.kind} entry ${debugStringify(resolution.entry)}${nt}`);
28
+ device.log.notice(`MatterbridgeBindingServer: binding established with kind ${resolution.kind} entry ${debugStringify(resolution.entry)}${nt} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
29
29
  this.internal.boundEndpoints.set(resolution.entry, resolution.endpoint);
30
30
  if (resolution.kind !== 'client')
31
31
  return;
32
32
  await resolution.node.set({ network: { autoSubscribe: true } });
33
33
  });
34
34
  this.reactTo(this.events.removed, (resolution) => {
35
- device.log.notice(`MatterbridgeBindingServer (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber}) binding removed: kind ${resolution.kind} entry ${debugStringify(resolution.entry)}${nt}`);
35
+ device.log.notice(`MatterbridgeBindingServer: binding removed with kind ${resolution.kind} entry ${debugStringify(resolution.entry)}${nt} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
36
36
  this.internal.boundEndpoints.delete(resolution.entry);
37
37
  });
38
38
  }
@@ -8,12 +8,12 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
8
8
  return super.initialize();
9
9
  }
10
10
  async moveToHue(request) {
11
- const device = this.endpoint.stateOf(MatterbridgeServer);
12
- device.log.info(`Setting hue to ${request.hue} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
13
11
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
14
12
  await super.moveToHue(request);
15
13
  return;
16
14
  }
15
+ const device = this.endpoint.stateOf(MatterbridgeServer);
16
+ device.log.info(`MatterbridgeColorControlServer: setting hue to ${request.hue} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
17
17
  await device.commandHandler.executeHandler('ColorControl.moveToHue', {
18
18
  command: 'moveToHue',
19
19
  request,
@@ -22,16 +22,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
22
22
  endpoint: this.endpoint,
23
23
  context: this.context,
24
24
  });
25
- device.log.debug(`MatterbridgeColorControlServer: moveToHue called`);
25
+ device.log.debug(`MatterbridgeColorControlServer: moveToHue called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
26
26
  await super.moveToHue(request);
27
27
  }
28
28
  async moveHue(request) {
29
- const device = this.endpoint.stateOf(MatterbridgeServer);
30
- device.log.info(`Moving hue with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
31
29
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
32
30
  await super.moveHue(request);
33
31
  return;
34
32
  }
33
+ const device = this.endpoint.stateOf(MatterbridgeServer);
34
+ device.log.info(`MatterbridgeColorControlServer: moving hue with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
35
35
  await device.commandHandler.executeHandler('ColorControl.moveHue', {
36
36
  command: 'moveHue',
37
37
  request,
@@ -40,16 +40,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
40
40
  endpoint: this.endpoint,
41
41
  context: this.context,
42
42
  });
43
- device.log.debug(`MatterbridgeColorControlServer: moveHue called`);
43
+ device.log.debug(`MatterbridgeColorControlServer: moveHue called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
44
44
  await super.moveHue(request);
45
45
  }
46
46
  async stepHue(request) {
47
- const device = this.endpoint.stateOf(MatterbridgeServer);
48
- device.log.info(`Stepping hue with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
49
47
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
50
48
  await super.stepHue(request);
51
49
  return;
52
50
  }
51
+ const device = this.endpoint.stateOf(MatterbridgeServer);
52
+ device.log.info(`MatterbridgeColorControlServer: stepping hue with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
53
53
  await device.commandHandler.executeHandler('ColorControl.stepHue', {
54
54
  command: 'stepHue',
55
55
  request,
@@ -58,16 +58,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
58
58
  endpoint: this.endpoint,
59
59
  context: this.context,
60
60
  });
61
- device.log.debug(`MatterbridgeColorControlServer: stepHue called`);
61
+ device.log.debug(`MatterbridgeColorControlServer: stepHue called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
62
62
  await super.stepHue(request);
63
63
  }
64
64
  async enhancedMoveToHue(request) {
65
- const device = this.endpoint.stateOf(MatterbridgeServer);
66
- device.log.info(`Setting enhanced hue to ${request.enhancedHue} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
67
65
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
68
66
  await super.enhancedMoveToHue(request);
69
67
  return;
70
68
  }
69
+ const device = this.endpoint.stateOf(MatterbridgeServer);
70
+ device.log.info(`MatterbridgeColorControlServer: setting enhanced hue to ${request.enhancedHue} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
71
71
  await device.commandHandler.executeHandler('ColorControl.enhancedMoveToHue', {
72
72
  command: 'enhancedMoveToHue',
73
73
  request,
@@ -76,16 +76,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
76
76
  endpoint: this.endpoint,
77
77
  context: this.context,
78
78
  });
79
- device.log.debug(`MatterbridgeColorControlServer: enhancedMoveToHue called`);
79
+ device.log.debug(`MatterbridgeColorControlServer: enhancedMoveToHue called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
80
80
  await super.enhancedMoveToHue(request);
81
81
  }
82
82
  async enhancedMoveHue(request) {
83
- const device = this.endpoint.stateOf(MatterbridgeServer);
84
- device.log.info(`Moving enhanced hue with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
85
83
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
86
84
  await super.enhancedMoveHue(request);
87
85
  return;
88
86
  }
87
+ const device = this.endpoint.stateOf(MatterbridgeServer);
88
+ device.log.info(`MatterbridgeColorControlServer: moving enhanced hue with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
89
89
  await device.commandHandler.executeHandler('ColorControl.enhancedMoveHue', {
90
90
  command: 'enhancedMoveHue',
91
91
  request,
@@ -94,16 +94,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
94
94
  endpoint: this.endpoint,
95
95
  context: this.context,
96
96
  });
97
- device.log.debug(`MatterbridgeColorControlServer: enhancedMoveHue called`);
97
+ device.log.debug(`MatterbridgeColorControlServer: enhancedMoveHue called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
98
98
  await super.enhancedMoveHue(request);
99
99
  }
100
100
  async enhancedStepHue(request) {
101
- const device = this.endpoint.stateOf(MatterbridgeServer);
102
- device.log.info(`Stepping enhanced hue with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
103
101
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
104
102
  await super.enhancedStepHue(request);
105
103
  return;
106
104
  }
105
+ const device = this.endpoint.stateOf(MatterbridgeServer);
106
+ device.log.info(`MatterbridgeColorControlServer: stepping enhanced hue with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
107
107
  await device.commandHandler.executeHandler('ColorControl.enhancedStepHue', {
108
108
  command: 'enhancedStepHue',
109
109
  request,
@@ -112,16 +112,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
112
112
  endpoint: this.endpoint,
113
113
  context: this.context,
114
114
  });
115
- device.log.debug(`MatterbridgeColorControlServer: enhancedStepHue called`);
115
+ device.log.debug(`MatterbridgeColorControlServer: enhancedStepHue called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
116
116
  await super.enhancedStepHue(request);
117
117
  }
118
118
  async moveToSaturation(request) {
119
- const device = this.endpoint.stateOf(MatterbridgeServer);
120
- device.log.info(`Setting saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
121
119
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
122
120
  await super.moveToSaturation(request);
123
121
  return;
124
122
  }
123
+ const device = this.endpoint.stateOf(MatterbridgeServer);
124
+ device.log.info(`MatterbridgeColorControlServer: setting saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
125
125
  await device.commandHandler.executeHandler('ColorControl.moveToSaturation', {
126
126
  command: 'moveToSaturation',
127
127
  request,
@@ -130,16 +130,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
130
130
  endpoint: this.endpoint,
131
131
  context: this.context,
132
132
  });
133
- device.log.debug(`MatterbridgeColorControlServer: moveToSaturation called`);
133
+ device.log.debug(`MatterbridgeColorControlServer: moveToSaturation called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
134
134
  await super.moveToSaturation(request);
135
135
  }
136
136
  async moveSaturation(request) {
137
- const device = this.endpoint.stateOf(MatterbridgeServer);
138
- device.log.info(`Moving saturation with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
139
137
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
140
138
  await super.moveSaturation(request);
141
139
  return;
142
140
  }
141
+ const device = this.endpoint.stateOf(MatterbridgeServer);
142
+ device.log.info(`MatterbridgeColorControlServer: moving saturation with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
143
143
  await device.commandHandler.executeHandler('ColorControl.moveSaturation', {
144
144
  command: 'moveSaturation',
145
145
  request,
@@ -148,16 +148,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
148
148
  endpoint: this.endpoint,
149
149
  context: this.context,
150
150
  });
151
- device.log.debug(`MatterbridgeColorControlServer: moveSaturation called`);
151
+ device.log.debug(`MatterbridgeColorControlServer: moveSaturation called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
152
152
  await super.moveSaturation(request);
153
153
  }
154
154
  async stepSaturation(request) {
155
- const device = this.endpoint.stateOf(MatterbridgeServer);
156
- device.log.info(`Stepping saturation with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
157
155
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
158
156
  await super.stepSaturation(request);
159
157
  return;
160
158
  }
159
+ const device = this.endpoint.stateOf(MatterbridgeServer);
160
+ device.log.info(`MatterbridgeColorControlServer: stepping saturation with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
161
161
  await device.commandHandler.executeHandler('ColorControl.stepSaturation', {
162
162
  command: 'stepSaturation',
163
163
  request,
@@ -166,16 +166,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
166
166
  endpoint: this.endpoint,
167
167
  context: this.context,
168
168
  });
169
- device.log.debug(`MatterbridgeColorControlServer: stepSaturation called`);
169
+ device.log.debug(`MatterbridgeColorControlServer: stepSaturation called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
170
170
  await super.stepSaturation(request);
171
171
  }
172
172
  async moveToHueAndSaturation(request) {
173
- const device = this.endpoint.stateOf(MatterbridgeServer);
174
- device.log.info(`Setting hue to ${request.hue} and saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
175
173
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
176
174
  await super.moveToHueAndSaturation(request);
177
175
  return;
178
176
  }
177
+ const device = this.endpoint.stateOf(MatterbridgeServer);
178
+ device.log.info(`MatterbridgeColorControlServer: setting hue to ${request.hue} and saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
179
179
  await device.commandHandler.executeHandler('ColorControl.moveToHueAndSaturation', {
180
180
  command: 'moveToHueAndSaturation',
181
181
  request,
@@ -184,16 +184,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
184
184
  endpoint: this.endpoint,
185
185
  context: this.context,
186
186
  });
187
- device.log.debug(`MatterbridgeColorControlServer: moveToHueAndSaturation called`);
187
+ device.log.debug(`MatterbridgeColorControlServer: moveToHueAndSaturation called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
188
188
  await super.moveToHueAndSaturation(request);
189
189
  }
190
190
  async enhancedMoveToHueAndSaturation(request) {
191
- const device = this.endpoint.stateOf(MatterbridgeServer);
192
- 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})`);
193
191
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
194
192
  await super.enhancedMoveToHueAndSaturation(request);
195
193
  return;
196
194
  }
195
+ const device = this.endpoint.stateOf(MatterbridgeServer);
196
+ device.log.info(`MatterbridgeColorControlServer: setting enhanced hue to ${request.enhancedHue} and saturation to ${request.saturation} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
197
197
  await device.commandHandler.executeHandler('ColorControl.enhancedMoveToHueAndSaturation', {
198
198
  command: 'enhancedMoveToHueAndSaturation',
199
199
  request,
@@ -202,16 +202,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
202
202
  endpoint: this.endpoint,
203
203
  context: this.context,
204
204
  });
205
- device.log.debug(`MatterbridgeColorControlServer: enhancedMoveToHueAndSaturation called`);
205
+ device.log.debug(`MatterbridgeColorControlServer: enhancedMoveToHueAndSaturation called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
206
206
  await super.enhancedMoveToHueAndSaturation(request);
207
207
  }
208
208
  async moveToColor(request) {
209
- const device = this.endpoint.stateOf(MatterbridgeServer);
210
- device.log.info(`Setting color to ${request.colorX}, ${request.colorY} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
211
209
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
212
210
  await super.moveToColor(request);
213
211
  return;
214
212
  }
213
+ const device = this.endpoint.stateOf(MatterbridgeServer);
214
+ device.log.info(`MatterbridgeColorControlServer: setting color to ${request.colorX}, ${request.colorY} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
215
215
  await device.commandHandler.executeHandler('ColorControl.moveToColor', {
216
216
  command: 'moveToColor',
217
217
  request,
@@ -220,16 +220,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
220
220
  endpoint: this.endpoint,
221
221
  context: this.context,
222
222
  });
223
- device.log.debug(`MatterbridgeColorControlServer: moveToColor called`);
223
+ device.log.debug(`MatterbridgeColorControlServer: moveToColor called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
224
224
  await super.moveToColor(request);
225
225
  }
226
226
  async moveColor(request) {
227
- const device = this.endpoint.stateOf(MatterbridgeServer);
228
- device.log.info(`Moving color with rateX ${request.rateX} and rateY ${request.rateY} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
229
227
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
230
228
  await super.moveColor(request);
231
229
  return;
232
230
  }
231
+ const device = this.endpoint.stateOf(MatterbridgeServer);
232
+ device.log.info(`MatterbridgeColorControlServer: moving color with rateX ${request.rateX} and rateY ${request.rateY} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
233
233
  await device.commandHandler.executeHandler('ColorControl.moveColor', {
234
234
  command: 'moveColor',
235
235
  request,
@@ -238,16 +238,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
238
238
  endpoint: this.endpoint,
239
239
  context: this.context,
240
240
  });
241
- device.log.debug(`MatterbridgeColorControlServer: moveColor called`);
241
+ device.log.debug(`MatterbridgeColorControlServer: moveColor called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
242
242
  await super.moveColor(request);
243
243
  }
244
244
  async stepColor(request) {
245
- const device = this.endpoint.stateOf(MatterbridgeServer);
246
- device.log.info(`Stepping color with stepX ${request.stepX} and stepY ${request.stepY} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
247
245
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
248
246
  await super.stepColor(request);
249
247
  return;
250
248
  }
249
+ const device = this.endpoint.stateOf(MatterbridgeServer);
250
+ device.log.info(`MatterbridgeColorControlServer: stepping color with stepX ${request.stepX} and stepY ${request.stepY} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
251
251
  await device.commandHandler.executeHandler('ColorControl.stepColor', {
252
252
  command: 'stepColor',
253
253
  request,
@@ -256,16 +256,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
256
256
  endpoint: this.endpoint,
257
257
  context: this.context,
258
258
  });
259
- device.log.debug(`MatterbridgeColorControlServer: stepColor called`);
259
+ device.log.debug(`MatterbridgeColorControlServer: stepColor called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
260
260
  await super.stepColor(request);
261
261
  }
262
262
  async moveToColorTemperature(request) {
263
- const device = this.endpoint.stateOf(MatterbridgeServer);
264
- device.log.info(`Setting color temperature to ${request.colorTemperatureMireds} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
265
263
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
266
264
  await super.moveToColorTemperature(request);
267
265
  return;
268
266
  }
267
+ const device = this.endpoint.stateOf(MatterbridgeServer);
268
+ device.log.info(`MatterbridgeColorControlServer: setting color temperature to ${request.colorTemperatureMireds} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
269
269
  await device.commandHandler.executeHandler('ColorControl.moveToColorTemperature', {
270
270
  command: 'moveToColorTemperature',
271
271
  request,
@@ -274,16 +274,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
274
274
  endpoint: this.endpoint,
275
275
  context: this.context,
276
276
  });
277
- device.log.debug(`MatterbridgeColorControlServer: moveToColorTemperature called`);
277
+ device.log.debug(`MatterbridgeColorControlServer: moveToColorTemperature called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
278
278
  await super.moveToColorTemperature(request);
279
279
  }
280
280
  async moveColorTemperature(request) {
281
- const device = this.endpoint.stateOf(MatterbridgeServer);
282
- device.log.info(`Moving color temperature with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
283
281
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
284
282
  await super.moveColorTemperature(request);
285
283
  return;
286
284
  }
285
+ const device = this.endpoint.stateOf(MatterbridgeServer);
286
+ device.log.info(`MatterbridgeColorControlServer: moving color temperature with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
287
287
  await device.commandHandler.executeHandler('ColorControl.moveColorTemperature', {
288
288
  command: 'moveColorTemperature',
289
289
  request,
@@ -292,16 +292,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
292
292
  endpoint: this.endpoint,
293
293
  context: this.context,
294
294
  });
295
- device.log.debug(`MatterbridgeColorControlServer: moveColorTemperature called`);
295
+ device.log.debug(`MatterbridgeColorControlServer: moveColorTemperature called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
296
296
  await super.moveColorTemperature(request);
297
297
  }
298
298
  async stepColorTemperature(request) {
299
- const device = this.endpoint.stateOf(MatterbridgeServer);
300
- device.log.info(`Stepping color temperature with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
301
299
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
302
300
  await super.stepColorTemperature(request);
303
301
  return;
304
302
  }
303
+ const device = this.endpoint.stateOf(MatterbridgeServer);
304
+ device.log.info(`MatterbridgeColorControlServer: stepping color temperature with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
305
305
  await device.commandHandler.executeHandler('ColorControl.stepColorTemperature', {
306
306
  command: 'stepColorTemperature',
307
307
  request,
@@ -310,16 +310,16 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
310
310
  endpoint: this.endpoint,
311
311
  context: this.context,
312
312
  });
313
- device.log.debug(`MatterbridgeColorControlServer: stepColorTemperature called`);
313
+ device.log.debug(`MatterbridgeColorControlServer: stepColorTemperature called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
314
314
  await super.stepColorTemperature(request);
315
315
  }
316
316
  async stopMoveStep(request) {
317
- const device = this.endpoint.stateOf(MatterbridgeServer);
318
- device.log.info(`Stopping color move/step (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
319
317
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
320
318
  await super.stopMoveStep(request);
321
319
  return;
322
320
  }
321
+ const device = this.endpoint.stateOf(MatterbridgeServer);
322
+ device.log.info(`MatterbridgeColorControlServer: stopping color move/step (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
323
323
  await device.commandHandler.executeHandler('ColorControl.stopMoveStep', {
324
324
  command: 'stopMoveStep',
325
325
  request,
@@ -328,7 +328,7 @@ export class MatterbridgeColorControlServer extends ColorControlServer.with(Colo
328
328
  endpoint: this.endpoint,
329
329
  context: this.context,
330
330
  });
331
- device.log.debug(`MatterbridgeColorControlServer: stopMoveStep called`);
331
+ device.log.debug(`MatterbridgeColorControlServer: stopMoveStep called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
332
332
  await super.stopMoveStep(request);
333
333
  }
334
334
  }
@@ -7,7 +7,7 @@ import { MatterbridgeServer } from './matterbridgeServer.js';
7
7
  export class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyManagementModeServer {
8
8
  async changeToMode(request) {
9
9
  const device = this.endpoint.stateOf(MatterbridgeServer);
10
- device.log.info(`Changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
10
+ device.log.info(`MatterbridgeDeviceEnergyManagementModeServer: changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
11
11
  await device.commandHandler.executeHandler('DeviceEnergyManagementMode.changeToMode', {
12
12
  command: 'changeToMode',
13
13
  request,
@@ -18,7 +18,7 @@ export class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyMa
18
18
  });
19
19
  const supported = this.state.supportedModes.find((mode) => mode.mode === request.newMode);
20
20
  if (!supported) {
21
- device.log.error(`MatterbridgeDeviceEnergyManagementModeServer changeToMode called with unsupported newMode: ${request.newMode}`);
21
+ device.log.error(`MatterbridgeDeviceEnergyManagementModeServer: changeToMode called with unsupported newMode ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
22
22
  return { status: ModeBase.ModeChangeStatus.UnsupportedMode, statusText: 'Unsupported mode' };
23
23
  }
24
24
  this.state.currentMode = request.newMode;
@@ -36,7 +36,7 @@ export class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyMa
36
36
  });
37
37
  }
38
38
  }
39
- device.log.debug(`MatterbridgeDeviceEnergyManagementModeServer changeToMode called with newMode ${request.newMode} => ${supported.label}`);
39
+ device.log.debug(`MatterbridgeDeviceEnergyManagementModeServer: changeToMode called with newMode ${request.newMode} => ${supported.label} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
40
40
  return await super.changeToMode(request);
41
41
  }
42
42
  }
@@ -22,7 +22,6 @@ export declare namespace MatterbridgeDeviceEnergyManagementServer {
22
22
  powerAdjustActivationTimeMs: number | undefined;
23
23
  powerAdjustPowerMw: number | undefined;
24
24
  powerAdjustCompletionTimer: Timer | undefined;
25
- powerAdjustCompletionCallback: (() => void) | undefined;
26
25
  }
27
26
  }
28
27
  export {};
@@ -6,13 +6,12 @@ import { MatterbridgeServer } from './matterbridgeServer.js';
6
6
  export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManagementServer.with(DeviceEnergyManagement.Feature.PowerForecastReporting, DeviceEnergyManagement.Feature.PowerAdjustment) {
7
7
  async initialize() {
8
8
  await super.initialize();
9
- this.internal.powerAdjustCompletionCallback = this.callback(this.#completePowerAdjustmentOnTimeout, { lock: true });
10
9
  this.reactTo(this.events.optOutState$Changed, this.#handleOptOutStateChanged);
11
10
  }
12
11
  async powerAdjustRequest(request) {
13
12
  const { power, duration, cause } = request;
14
13
  const device = this.endpoint.stateOf(MatterbridgeServer);
15
- device.log.info(`Adjusting power to ${power} duration ${duration} cause ${cause} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
14
+ device.log.info(`MatterbridgeDeviceEnergyManagementServer: adjusting power to ${power} duration ${duration} cause ${cause} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
16
15
  await device.commandHandler.executeHandler('DeviceEnergyManagement.powerAdjustRequest', {
17
16
  command: 'powerAdjustRequest',
18
17
  request,
@@ -21,21 +20,21 @@ export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManage
21
20
  endpoint: this.endpoint,
22
21
  context: this.context,
23
22
  });
24
- device.log.debug(`MatterbridgeDeviceEnergyManagementServer powerAdjustRequest called with power ${power} duration ${duration} cause ${cause}`);
23
+ device.log.debug(`MatterbridgeDeviceEnergyManagementServer: powerAdjustRequest called with power ${power} duration ${duration} cause ${cause} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
25
24
  const entries = (this.state.powerAdjustmentCapability?.powerAdjustCapability ?? []);
26
25
  if (entries.length === 0) {
27
- throw new StatusResponseError('No power adjustment capability available', Status.ConstraintError);
26
+ throw new StatusResponseError(`MatterbridgeDeviceEnergyManagementServer: no power adjustment capability available (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.ConstraintError);
28
27
  }
29
28
  const minPower = Math.min(...entries.map((entry) => entry.minPower));
30
29
  const maxPower = Math.max(...entries.map((entry) => entry.maxPower));
31
30
  const minDuration = Math.min(...entries.map((entry) => entry.minDuration));
32
31
  const maxDuration = Math.max(...entries.map((entry) => entry.maxDuration));
33
32
  if (power < minPower || power > maxPower || duration < minDuration || duration > maxDuration) {
34
- throw new StatusResponseError('Power or duration out of range', Status.ConstraintError);
33
+ throw new StatusResponseError(`MatterbridgeDeviceEnergyManagementServer: power or duration out of range (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.ConstraintError);
35
34
  }
36
35
  const optOutBit = cause === DeviceEnergyManagement.AdjustmentCause.LocalOptimization ? DeviceEnergyManagement.OptOutState.LocalOptOut : DeviceEnergyManagement.OptOutState.GridOptOut;
37
36
  if ((this.state.optOutState & optOutBit) !== 0) {
38
- throw new StatusResponseError('User has opted out of this adjustment cause', Status.ConstraintError);
37
+ throw new StatusResponseError(`MatterbridgeDeviceEnergyManagementServer: user has opted out of this adjustment cause (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.ConstraintError);
39
38
  }
40
39
  const wasActive = this.state.esaState === DeviceEnergyManagement.EsaState.PowerAdjustActive;
41
40
  const adjustReason = cause === DeviceEnergyManagement.AdjustmentCause.LocalOptimization
@@ -49,13 +48,11 @@ export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManage
49
48
  this.internal.powerAdjustActivationTimeMs = Time.nowMs;
50
49
  this.events.powerAdjustStart.emit(undefined, this.context);
51
50
  }
52
- if (this.internal.powerAdjustCompletionCallback) {
53
- this.internal.powerAdjustCompletionTimer = Time.getTimer('DeviceEnergyManagement power adjust completion', Seconds(duration), this.internal.powerAdjustCompletionCallback).start();
54
- }
51
+ this.internal.powerAdjustCompletionTimer = Time.getTimer('DeviceEnergyManagement power adjust completion', Seconds(duration), this.callback(this.#completePowerAdjustmentOnTimeout, { lock: true })).start();
55
52
  }
56
53
  async cancelPowerAdjustRequest() {
57
54
  const device = this.endpoint.stateOf(MatterbridgeServer);
58
- device.log.info(`Cancelling power adjustment (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
55
+ device.log.info(`MatterbridgeDeviceEnergyManagementServer: cancelling power adjustment (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
59
56
  await device.commandHandler.executeHandler('DeviceEnergyManagement.cancelPowerAdjustRequest', {
60
57
  command: 'cancelPowerAdjustRequest',
61
58
  request: {},
@@ -64,9 +61,9 @@ export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManage
64
61
  endpoint: this.endpoint,
65
62
  context: this.context,
66
63
  });
67
- device.log.debug(`MatterbridgeDeviceEnergyManagementServer cancelPowerAdjustRequest called`);
64
+ device.log.debug(`MatterbridgeDeviceEnergyManagementServer: cancelPowerAdjustRequest called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
68
65
  if (this.state.esaState !== DeviceEnergyManagement.EsaState.PowerAdjustActive) {
69
- throw new StatusResponseError('No power adjustment is currently active', Status.InvalidInState);
66
+ throw new StatusResponseError(`MatterbridgeDeviceEnergyManagementServer: no power adjustment is currently active (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.InvalidInState);
70
67
  }
71
68
  this.#endPowerAdjustment(DeviceEnergyManagement.Cause.Cancelled);
72
69
  }
@@ -104,7 +101,6 @@ export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManage
104
101
  powerAdjustActivationTimeMs;
105
102
  powerAdjustPowerMw;
106
103
  powerAdjustCompletionTimer;
107
- powerAdjustCompletionCallback;
108
104
  }
109
105
  MatterbridgeDeviceEnergyManagementServer.Internal = Internal;
110
106
  })(MatterbridgeDeviceEnergyManagementServer || (MatterbridgeDeviceEnergyManagementServer = {}));
@@ -72,16 +72,16 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
72
72
  const device = this.endpoint.stateOf(MatterbridgeServer);
73
73
  if (fanMode === FanControl.FanMode.On) {
74
74
  this.state.fanMode = FanControl.FanMode.High;
75
- device.log.debug(`handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> fanMode ${lookupFanMode[this.state.fanMode]} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
75
+ device.log.debug(`MatterbridgeFanControlServer: handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> fanMode ${lookupFanMode[this.state.fanMode]} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
76
76
  return;
77
77
  }
78
78
  if (fanMode === FanControl.FanMode.Smart) {
79
79
  this.state.fanMode = this.features.auto ? FanControl.FanMode.Auto : FanControl.FanMode.High;
80
- device.log.debug(`handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> fanMode ${lookupFanMode[this.state.fanMode]} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
80
+ device.log.debug(`MatterbridgeFanControlServer: handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> fanMode ${lookupFanMode[this.state.fanMode]} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
81
81
  return;
82
82
  }
83
83
  if (!supportedFanModesBySequence[this.state.fanModeSequence].has(fanMode)) {
84
- throw new StatusResponseError(`FanMode ${getEnumDescription(FanControl.FanMode, fanMode)} is not supported by FanModeSequence ${getEnumDescription(FanControl.FanModeSequence, this.state.fanModeSequence)}`, Status.ConstraintError);
84
+ throw new StatusResponseError(`MatterbridgeFanControlServer: fanMode ${getEnumDescription(FanControl.FanMode, fanMode)} is not supported by fanModeSequence ${getEnumDescription(FanControl.FanModeSequence, this.state.fanModeSequence)} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.ConstraintError);
85
85
  }
86
86
  if (fanMode === FanControl.FanMode.Off) {
87
87
  this.state.percentSetting = 0;
@@ -94,24 +94,24 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
94
94
  this.state.speedCurrent = 0;
95
95
  }
96
96
  });
97
- device.log.debug(`handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> percentSetting ${this.state.percentSetting} percentCurrent ${this.state.percentCurrent} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
97
+ device.log.debug(`MatterbridgeFanControlServer: handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> percentSetting ${this.state.percentSetting} percentCurrent ${this.state.percentCurrent} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
98
98
  if (this.features.multiSpeed) {
99
- device.log.debug(`handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> speedSetting ${this.state.speedSetting} speedCurrent ${this.state.speedCurrent} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
99
+ device.log.debug(`MatterbridgeFanControlServer: handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> speedSetting ${this.state.speedSetting} speedCurrent ${this.state.speedCurrent} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
100
100
  }
101
101
  }
102
102
  else if (fanMode === FanControl.FanMode.Auto) {
103
103
  this.state.percentSetting = null;
104
104
  if (this.features.multiSpeed) {
105
105
  this.state.speedSetting = null;
106
- device.log.debug(`handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> speedSetting ${this.state.speedSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
106
+ device.log.debug(`MatterbridgeFanControlServer: handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> speedSetting ${this.state.speedSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
107
107
  }
108
- device.log.debug(`handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
108
+ device.log.debug(`MatterbridgeFanControlServer: handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
109
109
  }
110
110
  else {
111
111
  const resolved = resolvePercentSettingForFanMode(fanMode, this.state.percentSetting, this.state.fanModeSequence);
112
112
  if (resolved !== this.state.percentSetting)
113
113
  this.state.percentSetting = resolved;
114
- device.log.debug(`handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
114
+ device.log.debug(`MatterbridgeFanControlServer: handleFanModeChanging fanMode changed to ${lookupFanMode[fanMode]} >>> percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
115
115
  }
116
116
  }
117
117
  #handlePercentSettingChanging(percentSetting, oldPercentSetting) {
@@ -120,7 +120,7 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
120
120
  if (this.state.fanMode === FanControl.FanMode.Auto)
121
121
  return;
122
122
  this.state.percentSetting = oldPercentSetting;
123
- device.log.debug(`handlePercentSettingChanging percentSetting changed to ${percentSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
123
+ device.log.debug(`MatterbridgeFanControlServer: handlePercentSettingChanging percentSetting changed to ${percentSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
124
124
  return;
125
125
  }
126
126
  const fanMode = percentSetting === 0 ? FanControl.FanMode.Off : percentToFanMode(percentSetting, this.state.fanModeSequence);
@@ -130,7 +130,7 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
130
130
  const state = this.state;
131
131
  state.speedSetting = speedSettingForPercent(state.speedMax, percentSetting);
132
132
  }
133
- device.log.debug(`handlePercentSettingChanging percentSetting changed to ${percentSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
133
+ device.log.debug(`MatterbridgeFanControlServer: handlePercentSettingChanging percentSetting changed to ${percentSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
134
134
  }
135
135
  #handleSpeedSettingChanging(speedSetting, oldSpeedSetting) {
136
136
  const device = this.endpoint.stateOf(MatterbridgeServer);
@@ -139,7 +139,7 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
139
139
  if (this.state.fanMode === FanControl.FanMode.Auto)
140
140
  return;
141
141
  state.speedSetting = oldSpeedSetting;
142
- device.log.debug(`handleSpeedSettingChanging speedSetting changed to ${speedSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} speedSetting ${state.speedSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
142
+ device.log.debug(`MatterbridgeFanControlServer: handleSpeedSettingChanging speedSetting changed to ${speedSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} speedSetting ${state.speedSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
143
143
  return;
144
144
  }
145
145
  const { percentSetting } = this.state;
@@ -151,11 +151,11 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
151
151
  this.state.fanMode = fanMode;
152
152
  if (percent !== this.state.percentSetting)
153
153
  this.state.percentSetting = percent;
154
- device.log.debug(`handleSpeedSettingChanging speedSetting changed to ${speedSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
154
+ device.log.debug(`MatterbridgeFanControlServer: handleSpeedSettingChanging speedSetting changed to ${speedSetting} >>> fanMode ${lookupFanMode[this.state.fanMode]} percentSetting ${this.state.percentSetting} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
155
155
  }
156
156
  async step(request) {
157
157
  const device = this.endpoint.stateOf(MatterbridgeServer);
158
- device.log.info(`Stepping fan with direction ${lookupStepDirection[request.direction]} wrap: ${request.wrap} lowestOff: ${request.lowestOff} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
158
+ device.log.info(`MatterbridgeFanControlServer: stepping fan with direction ${lookupStepDirection[request.direction]} wrap: ${request.wrap} lowestOff: ${request.lowestOff} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
159
159
  await device.commandHandler.executeHandler('FanControl.step', {
160
160
  command: 'step',
161
161
  request,
@@ -194,6 +194,7 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
194
194
  state.speedCurrent = speedSettingForPercent(state.speedMax, resolvedPercentSetting);
195
195
  }
196
196
  device.log.debug(`MatterbridgeFanControlServer: step applied fanMode ${lookupFanMode[this.state.fanMode]}, percentCurrent ${this.state.percentCurrent}` +
197
- (this.features.multiSpeed ? `, speedCurrent ${this.state.speedCurrent}` : ''));
197
+ (this.features.multiSpeed ? `, speedCurrent ${this.state.speedCurrent}` : '') +
198
+ ` (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
198
199
  }
199
200
  }
@@ -3,7 +3,7 @@ import { MatterbridgeServer } from './matterbridgeServer.js';
3
3
  export class MatterbridgeIdentifyServer extends IdentifyServer {
4
4
  async identify(request) {
5
5
  const device = this.endpoint.stateOf(MatterbridgeServer);
6
- device.log.info(`Identifying device for ${request.identifyTime} seconds (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
6
+ device.log.info(`MatterbridgeIdentifyServer: identifying device for ${request.identifyTime} seconds (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
7
7
  await device.commandHandler.executeHandler('Identify.identify', {
8
8
  command: 'identify',
9
9
  request,
@@ -12,12 +12,12 @@ export class MatterbridgeIdentifyServer extends IdentifyServer {
12
12
  endpoint: this.endpoint,
13
13
  context: this.context,
14
14
  });
15
- device.log.debug(`MatterbridgeIdentifyServer: identify called`);
15
+ device.log.debug(`MatterbridgeIdentifyServer: identify called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
16
16
  await super.identify(request);
17
17
  }
18
18
  async triggerEffect(request) {
19
19
  const device = this.endpoint.stateOf(MatterbridgeServer);
20
- device.log.info(`Triggering effect ${request.effectIdentifier} variant ${request.effectVariant} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
20
+ device.log.info(`MatterbridgeIdentifyServer: triggering effect ${request.effectIdentifier} variant ${request.effectVariant} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
21
21
  await device.commandHandler.executeHandler('Identify.triggerEffect', {
22
22
  command: 'triggerEffect',
23
23
  request,
@@ -26,7 +26,7 @@ export class MatterbridgeIdentifyServer extends IdentifyServer {
26
26
  endpoint: this.endpoint,
27
27
  context: this.context,
28
28
  });
29
- device.log.debug(`MatterbridgeIdentifyServer: triggerEffect called`);
29
+ device.log.debug(`MatterbridgeIdentifyServer: triggerEffect called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
30
30
  await super.triggerEffect(request);
31
31
  }
32
32
  }
@@ -7,12 +7,12 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
7
7
  return super.initialize();
8
8
  }
9
9
  async moveToLevel(request) {
10
- const device = this.endpoint.stateOf(MatterbridgeServer);
11
- device.log.info(`Setting level to ${request.level} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
12
10
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
13
11
  await super.moveToLevel(request);
14
12
  return;
15
13
  }
14
+ const device = this.endpoint.stateOf(MatterbridgeServer);
15
+ device.log.info(`MatterbridgeLevelControlServer: setting level to ${request.level} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
16
16
  await device.commandHandler.executeHandler('LevelControl.moveToLevel', {
17
17
  command: 'moveToLevel',
18
18
  request,
@@ -21,16 +21,16 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
21
21
  endpoint: this.endpoint,
22
22
  context: this.context,
23
23
  });
24
- device.log.debug(`MatterbridgeLevelControlServer: moveToLevel called`);
24
+ device.log.debug(`MatterbridgeLevelControlServer: moveToLevel called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
25
25
  await super.moveToLevel(request);
26
26
  }
27
27
  async moveToLevelWithOnOff(request) {
28
- const device = this.endpoint.stateOf(MatterbridgeServer);
29
- device.log.info(`Setting level to ${request.level} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
30
28
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
31
29
  await super.moveToLevelWithOnOff(request);
32
30
  return;
33
31
  }
32
+ const device = this.endpoint.stateOf(MatterbridgeServer);
33
+ device.log.info(`MatterbridgeLevelControlServer: setting level with on/off to ${request.level} with transitionTime ${request.transitionTime} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
34
34
  await device.commandHandler.executeHandler('LevelControl.moveToLevelWithOnOff', {
35
35
  command: 'moveToLevelWithOnOff',
36
36
  request,
@@ -39,16 +39,16 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
39
39
  endpoint: this.endpoint,
40
40
  context: this.context,
41
41
  });
42
- device.log.debug(`MatterbridgeLevelControlServer: moveToLevelWithOnOff called`);
42
+ device.log.debug(`MatterbridgeLevelControlServer: moveToLevelWithOnOff called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
43
43
  await super.moveToLevelWithOnOff(request);
44
44
  }
45
45
  async move(request) {
46
- const device = this.endpoint.stateOf(MatterbridgeServer);
47
- device.log.info(`Moving level with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
48
46
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
49
47
  await super.move(request);
50
48
  return;
51
49
  }
50
+ const device = this.endpoint.stateOf(MatterbridgeServer);
51
+ device.log.info(`MatterbridgeLevelControlServer: moving level with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
52
52
  await device.commandHandler.executeHandler('LevelControl.move', {
53
53
  command: 'move',
54
54
  request,
@@ -57,16 +57,16 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
57
57
  endpoint: this.endpoint,
58
58
  context: this.context,
59
59
  });
60
- device.log.debug(`MatterbridgeLevelControlServer: move called`);
60
+ device.log.debug(`MatterbridgeLevelControlServer: move called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
61
61
  await super.move(request);
62
62
  }
63
63
  async moveWithOnOff(request) {
64
- const device = this.endpoint.stateOf(MatterbridgeServer);
65
- device.log.info(`Moving level with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
66
64
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
67
65
  await super.moveWithOnOff(request);
68
66
  return;
69
67
  }
68
+ const device = this.endpoint.stateOf(MatterbridgeServer);
69
+ device.log.info(`MatterbridgeLevelControlServer: moving level with on/off with mode ${request.moveMode} and rate ${request.rate} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
70
70
  await device.commandHandler.executeHandler('LevelControl.moveWithOnOff', {
71
71
  command: 'moveWithOnOff',
72
72
  request,
@@ -75,16 +75,16 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
75
75
  endpoint: this.endpoint,
76
76
  context: this.context,
77
77
  });
78
- device.log.debug(`MatterbridgeLevelControlServer: moveWithOnOff called`);
78
+ device.log.debug(`MatterbridgeLevelControlServer: moveWithOnOff called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
79
79
  await super.moveWithOnOff(request);
80
80
  }
81
81
  async step(request) {
82
- const device = this.endpoint.stateOf(MatterbridgeServer);
83
- device.log.info(`Stepping level with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
84
82
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
85
83
  await super.step(request);
86
84
  return;
87
85
  }
86
+ const device = this.endpoint.stateOf(MatterbridgeServer);
87
+ device.log.info(`MatterbridgeLevelControlServer: stepping level with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
88
88
  await device.commandHandler.executeHandler('LevelControl.step', {
89
89
  command: 'step',
90
90
  request,
@@ -93,16 +93,16 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
93
93
  endpoint: this.endpoint,
94
94
  context: this.context,
95
95
  });
96
- device.log.debug(`MatterbridgeLevelControlServer: step called`);
96
+ device.log.debug(`MatterbridgeLevelControlServer: step called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
97
97
  await super.step(request);
98
98
  }
99
99
  async stepWithOnOff(request) {
100
- const device = this.endpoint.stateOf(MatterbridgeServer);
101
- device.log.info(`Stepping level with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
102
100
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
103
101
  await super.stepWithOnOff(request);
104
102
  return;
105
103
  }
104
+ const device = this.endpoint.stateOf(MatterbridgeServer);
105
+ device.log.info(`MatterbridgeLevelControlServer: stepping level with on/off with mode ${request.stepMode} and size ${request.stepSize} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
106
106
  await device.commandHandler.executeHandler('LevelControl.stepWithOnOff', {
107
107
  command: 'stepWithOnOff',
108
108
  request,
@@ -111,16 +111,16 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
111
111
  endpoint: this.endpoint,
112
112
  context: this.context,
113
113
  });
114
- device.log.debug(`MatterbridgeLevelControlServer: stepWithOnOff called`);
114
+ device.log.debug(`MatterbridgeLevelControlServer: stepWithOnOff called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
115
115
  await super.stepWithOnOff(request);
116
116
  }
117
117
  async stop(request) {
118
- const device = this.endpoint.stateOf(MatterbridgeServer);
119
- device.log.info(`Stopping level change (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
120
118
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
121
119
  await super.stop(request);
122
120
  return;
123
121
  }
122
+ const device = this.endpoint.stateOf(MatterbridgeServer);
123
+ device.log.info(`MatterbridgeLevelControlServer: stopping level change (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
124
124
  await device.commandHandler.executeHandler('LevelControl.stop', {
125
125
  command: 'stop',
126
126
  request,
@@ -129,16 +129,16 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
129
129
  endpoint: this.endpoint,
130
130
  context: this.context,
131
131
  });
132
- device.log.debug(`MatterbridgeLevelControlServer: stop called`);
132
+ device.log.debug(`MatterbridgeLevelControlServer: stop called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
133
133
  await super.stop(request);
134
134
  }
135
135
  async stopWithOnOff(request) {
136
- const device = this.endpoint.stateOf(MatterbridgeServer);
137
- device.log.info(`Stopping level change (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
138
136
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
139
137
  await super.stopWithOnOff(request);
140
138
  return;
141
139
  }
140
+ const device = this.endpoint.stateOf(MatterbridgeServer);
141
+ device.log.info(`MatterbridgeLevelControlServer: stopping level change with on/off (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
142
142
  await device.commandHandler.executeHandler('LevelControl.stopWithOnOff', {
143
143
  command: 'stopWithOnOff',
144
144
  request,
@@ -147,7 +147,7 @@ export class MatterbridgeLevelControlServer extends LevelControlServer {
147
147
  endpoint: this.endpoint,
148
148
  context: this.context,
149
149
  });
150
- device.log.debug(`MatterbridgeLevelControlServer: stopWithOnOff called`);
150
+ device.log.debug(`MatterbridgeLevelControlServer: stopWithOnOff called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
151
151
  await super.stopWithOnOff(request);
152
152
  }
153
153
  }
@@ -2,7 +2,7 @@ import { Behavior } from '@matter/node';
2
2
  export class MatterbridgeServer extends Behavior {
3
3
  static id = 'matterbridge';
4
4
  initialize() {
5
- this.state.log.debug(`MatterbridgeServer initialized (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
5
+ this.state.log.debug(`MatterbridgeServer: initialized (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
6
6
  super.initialize();
7
7
  }
8
8
  }
@@ -3,7 +3,7 @@ import { MatterbridgeServer } from './matterbridgeServer.js';
3
3
  export class MatterbridgeModeSelectServer extends ModeSelectServer {
4
4
  async changeToMode(request) {
5
5
  const device = this.endpoint.stateOf(MatterbridgeServer);
6
- device.log.info(`Changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
6
+ device.log.info(`MatterbridgeModeSelectServer: changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
7
7
  await device.commandHandler.executeHandler('ModeSelect.changeToMode', {
8
8
  command: 'changeToMode',
9
9
  request,
@@ -12,7 +12,7 @@ export class MatterbridgeModeSelectServer extends ModeSelectServer {
12
12
  endpoint: this.endpoint,
13
13
  context: this.context,
14
14
  });
15
- device.log.debug(`MatterbridgeModeSelectServer: changeToMode called with mode: ${request.newMode}`);
15
+ device.log.debug(`MatterbridgeModeSelectServer: changeToMode called with mode ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
16
16
  await super.changeToMode(request);
17
17
  }
18
18
  }
@@ -1,9 +1,12 @@
1
1
  import { OccupancySensingServer } from '@matter/node/behaviors/occupancy-sensing';
2
2
  import { OccupancySensing } from '@matter/types/clusters/occupancy-sensing';
3
+ import { MatterbridgeServer } from './matterbridgeServer.js';
3
4
  export class MatterbridgeOccupancySensingServer extends OccupancySensingServer.with(OccupancySensing.Feature.PassiveInfrared) {
4
5
  #syncingHoldTime = false;
5
6
  initialize() {
6
7
  const result = super.initialize();
8
+ const device = this.endpoint.stateOf(MatterbridgeServer);
9
+ device.log.info(`MatterbridgeOccupancySensingServer: initializing (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
7
10
  if (this.events.holdTime$Changing)
8
11
  this.reactTo(this.events.holdTime$Changing, this.#syncPirOccupiedToUnoccupiedDelay);
9
12
  if (this.events.pirOccupiedToUnoccupiedDelay$Changing)
@@ -3,12 +3,12 @@ import { OnOff } from '@matter/types/clusters/on-off';
3
3
  import { MatterbridgeServer } from './matterbridgeServer.js';
4
4
  export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Lighting) {
5
5
  async on() {
6
- const device = this.endpoint.stateOf(MatterbridgeServer);
7
- device.log.info(`Switching device on (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
8
6
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
9
7
  await super.on();
10
8
  return;
11
9
  }
10
+ const device = this.endpoint.stateOf(MatterbridgeServer);
11
+ device.log.info(`MatterbridgeOnOffServer: switching device on (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
12
12
  await device.commandHandler.executeHandler('OnOff.on', {
13
13
  command: 'on',
14
14
  request: {},
@@ -17,16 +17,16 @@ export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Ligh
17
17
  endpoint: this.endpoint,
18
18
  context: this.context,
19
19
  });
20
- device.log.debug(`MatterbridgeOnOffServer: on called`);
20
+ device.log.debug(`MatterbridgeOnOffServer: on called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
21
21
  await super.on();
22
22
  }
23
23
  async off() {
24
- const device = this.endpoint.stateOf(MatterbridgeServer);
25
- device.log.info(`Switching device off (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
26
24
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
27
25
  await super.off();
28
26
  return;
29
27
  }
28
+ const device = this.endpoint.stateOf(MatterbridgeServer);
29
+ device.log.info(`MatterbridgeOnOffServer: switching device off (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
30
30
  await device.commandHandler.executeHandler('OnOff.off', {
31
31
  command: 'off',
32
32
  request: {},
@@ -35,16 +35,16 @@ export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Ligh
35
35
  endpoint: this.endpoint,
36
36
  context: this.context,
37
37
  });
38
- device.log.debug(`MatterbridgeOnOffServer: off called`);
38
+ device.log.debug(`MatterbridgeOnOffServer: off called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
39
39
  await super.off();
40
40
  }
41
41
  async toggle() {
42
- const device = this.endpoint.stateOf(MatterbridgeServer);
43
- device.log.info(`Toggle device on/off (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
44
42
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
45
43
  await super.toggle();
46
44
  return;
47
45
  }
46
+ const device = this.endpoint.stateOf(MatterbridgeServer);
47
+ device.log.info(`MatterbridgeOnOffServer: toggling device on/off (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
48
48
  await device.commandHandler.executeHandler('OnOff.toggle', {
49
49
  command: 'toggle',
50
50
  request: {},
@@ -53,16 +53,16 @@ export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Ligh
53
53
  endpoint: this.endpoint,
54
54
  context: this.context,
55
55
  });
56
- device.log.debug(`MatterbridgeOnOffServer: toggle called`);
56
+ device.log.debug(`MatterbridgeOnOffServer: toggle called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
57
57
  await super.toggle();
58
58
  }
59
59
  async offWithEffect(request) {
60
- const device = this.endpoint.stateOf(MatterbridgeServer);
61
- device.log.info(`Switching device off with effect ${request.effectIdentifier} and variant ${request.effectVariant} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
62
60
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
63
61
  await super.offWithEffect(request);
64
62
  return;
65
63
  }
64
+ const device = this.endpoint.stateOf(MatterbridgeServer);
65
+ device.log.info(`MatterbridgeOnOffServer: switching device off with effect ${request.effectIdentifier} and variant ${request.effectVariant} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
66
66
  await device.commandHandler.executeHandler('OnOff.offWithEffect', {
67
67
  command: 'offWithEffect',
68
68
  request,
@@ -71,16 +71,16 @@ export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Ligh
71
71
  endpoint: this.endpoint,
72
72
  context: this.context,
73
73
  });
74
- device.log.debug(`MatterbridgeOnOffServer: offWithEffect called`);
74
+ device.log.debug(`MatterbridgeOnOffServer: offWithEffect called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
75
75
  await super.offWithEffect(request);
76
76
  }
77
77
  async onWithRecallGlobalScene() {
78
- const device = this.endpoint.stateOf(MatterbridgeServer);
79
- device.log.info(`Switching device on with recall global scene (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
80
78
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
81
79
  await super.onWithRecallGlobalScene();
82
80
  return;
83
81
  }
82
+ const device = this.endpoint.stateOf(MatterbridgeServer);
83
+ device.log.info(`MatterbridgeOnOffServer: switching device on with recall global scene (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
84
84
  await device.commandHandler.executeHandler('OnOff.onWithRecallGlobalScene', {
85
85
  command: 'onWithRecallGlobalScene',
86
86
  request: {},
@@ -89,16 +89,16 @@ export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Ligh
89
89
  endpoint: this.endpoint,
90
90
  context: this.context,
91
91
  });
92
- device.log.debug(`MatterbridgeOnOffServer: onWithRecallGlobalScene called`);
92
+ device.log.debug(`MatterbridgeOnOffServer: onWithRecallGlobalScene called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
93
93
  await super.onWithRecallGlobalScene();
94
94
  }
95
95
  async onWithTimedOff(request) {
96
- const device = this.endpoint.stateOf(MatterbridgeServer);
97
- 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})`);
98
96
  if (process.env.MATTERBRIDGE_CHIP_TEST) {
99
97
  await super.onWithTimedOff(request);
100
98
  return;
101
99
  }
100
+ const device = this.endpoint.stateOf(MatterbridgeServer);
101
+ device.log.info(`MatterbridgeOnOffServer: 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})`);
102
102
  await device.commandHandler.executeHandler('OnOff.onWithTimedOff', {
103
103
  command: 'onWithTimedOff',
104
104
  request,
@@ -107,7 +107,7 @@ export class MatterbridgeOnOffServer extends OnOffServer.with(OnOff.Feature.Ligh
107
107
  endpoint: this.endpoint,
108
108
  context: this.context,
109
109
  });
110
- device.log.debug(`MatterbridgeOnOffServer: onWithTimedOff called`);
110
+ device.log.debug(`MatterbridgeOnOffServer: onWithTimedOff called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
111
111
  await super.onWithTimedOff(request);
112
112
  }
113
113
  }
@@ -66,7 +66,7 @@ export class MatterbridgePumpConfigurationAndControlServer extends PumpConfigura
66
66
  }
67
67
  #handleOperationModeChanging() {
68
68
  if (this.state.pumpStatus?.localOverride) {
69
- throw new StatusResponseError('OperationMode cannot be changed while PumpStatus.LocalOverride is set', Status.Failure);
69
+ throw new StatusResponseError(`MatterbridgePumpConfigurationAndControlServer: operationMode cannot be changed while PumpStatus.LocalOverride is set (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.Failure);
70
70
  }
71
71
  }
72
72
  #handleOperationModeChanged(operationMode, oldOperationMode) {
@@ -3,7 +3,7 @@ import { MatterbridgeServer } from './matterbridgeServer.js';
3
3
  export class MatterbridgeServiceAreaServer extends ServiceAreaServer {
4
4
  async selectAreas(request) {
5
5
  const device = this.endpoint.stateOf(MatterbridgeServer);
6
- device.log.info(`Selecting areas [${request.newAreas.join(', ')}] (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
6
+ device.log.info(`MatterbridgeServiceAreaServer: selecting areas [${request.newAreas.join(', ')}] (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
7
7
  await device.commandHandler.executeHandler('ServiceArea.selectAreas', {
8
8
  command: 'selectAreas',
9
9
  request,
@@ -12,7 +12,7 @@ export class MatterbridgeServiceAreaServer extends ServiceAreaServer {
12
12
  endpoint: this.endpoint,
13
13
  context: this.context,
14
14
  });
15
- device.log.debug(`MatterbridgeServiceAreaServer selectAreas called with: [${request.newAreas.join(', ')}]`);
15
+ device.log.debug(`MatterbridgeServiceAreaServer: selectAreas called with [${request.newAreas.join(', ')}] (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
16
16
  return await super.selectAreas(request);
17
17
  }
18
18
  }
@@ -7,7 +7,7 @@ export class MatterbridgeSmokeCoAlarmServer extends SmokeCoAlarmServer.with(Smok
7
7
  static selfTestDurationSeconds = 5;
8
8
  async selfTestRequest() {
9
9
  const device = this.endpoint.stateOf(MatterbridgeServer);
10
- device.log.info(`Testing SmokeCOAlarm (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
10
+ device.log.info(`MatterbridgeSmokeCoAlarmServer: testing SmokeCOAlarm (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
11
11
  await device.commandHandler.executeHandler('SmokeCoAlarm.selfTestRequest', {
12
12
  command: 'selfTestRequest',
13
13
  request: {},
@@ -17,12 +17,12 @@ export class MatterbridgeSmokeCoAlarmServer extends SmokeCoAlarmServer.with(Smok
17
17
  context: this.context,
18
18
  });
19
19
  if (this.state.expressedState !== SmokeCoAlarm.ExpressedState.Normal || this.state.testInProgress) {
20
- throw new StatusResponseError('SmokeCOAlarm self-test is busy', Status.Busy);
20
+ throw new StatusResponseError(`MatterbridgeSmokeCoAlarmServer: SmokeCOAlarm self-test is busy (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.Busy);
21
21
  }
22
22
  this.state.testInProgress = true;
23
23
  this.state.expressedState = SmokeCoAlarm.ExpressedState.Testing;
24
24
  this.#scheduleSelfTestComplete();
25
- device.log.debug(`MatterbridgeSmokeCoAlarmServer: selfTestRequest called`);
25
+ device.log.debug(`MatterbridgeSmokeCoAlarmServer: selfTestRequest called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
26
26
  }
27
27
  #stopSelfTestTimer() {
28
28
  this.internal.selfTestTimer?.stop();
@@ -3,6 +3,6 @@ import { MatterbridgeServer } from './matterbridgeServer.js';
3
3
  export class MatterbridgeSwitchServer extends SwitchServer {
4
4
  initialize() {
5
5
  const device = this.endpoint.stateOf(MatterbridgeServer);
6
- device.log.info(`Initializing MatterbridgeSwitchServer (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
6
+ device.log.info(`MatterbridgeSwitchServer: initializing (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
7
7
  }
8
8
  }
@@ -14,7 +14,7 @@ export class MatterbridgeValveConfigurationAndControlServer extends Matterbridge
14
14
  }
15
15
  async open(request) {
16
16
  const device = this.endpoint.stateOf(MatterbridgeServer);
17
- device.log.info(`Opening valve to ${request.targetLevel ? request.targetLevel + '%' : 'fully opened'} ${request.openDuration ? 'for ' + request.openDuration + 's' : 'until closed'} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
17
+ device.log.info(`MatterbridgeValveConfigurationAndControlServer: opening valve to ${request.targetLevel ? request.targetLevel + '%' : 'fully opened'} ${request.openDuration ? 'for ' + request.openDuration + 's' : 'until closed'} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
18
18
  await device.commandHandler.executeHandler('ValveConfigurationAndControl.open', {
19
19
  command: 'open',
20
20
  request,
@@ -23,9 +23,9 @@ export class MatterbridgeValveConfigurationAndControlServer extends Matterbridge
23
23
  endpoint: this.endpoint,
24
24
  context: this.context,
25
25
  });
26
- device.log.debug(`MatterbridgeValveConfigurationAndControlServer: open called with openDuration: ${request.openDuration} targetLevel: ${request.targetLevel}`);
26
+ device.log.debug(`MatterbridgeValveConfigurationAndControlServer: open called with openDuration: ${request.openDuration} targetLevel: ${request.targetLevel} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
27
27
  if (this.#hasFault()) {
28
- throw new ValveConfigurationAndControl.FailureDueToFaultError('Open ignored: the valve has a registered fault');
28
+ throw new ValveConfigurationAndControl.FailureDueToFaultError(`MatterbridgeValveConfigurationAndControlServer: open ignored, the valve has a registered fault (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
29
29
  }
30
30
  this.#stopMovementTimer();
31
31
  this.#stopAutoCloseTimer();
@@ -35,7 +35,7 @@ export class MatterbridgeValveConfigurationAndControlServer extends Matterbridge
35
35
  this.state.remainingDuration = this.state.openDuration;
36
36
  if (this.features.level) {
37
37
  if (request.targetLevel !== undefined && request.targetLevel !== 100 && this.state.levelStep !== undefined && request.targetLevel % this.state.levelStep !== 0) {
38
- throw new StatusResponseError(`Open TargetLevel ${request.targetLevel} is not a multiple of LevelStep ${this.state.levelStep}`, Status.ConstraintError);
38
+ throw new StatusResponseError(`MatterbridgeValveConfigurationAndControlServer: open targetLevel ${request.targetLevel} is not a multiple of levelStep ${this.state.levelStep} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`, Status.ConstraintError);
39
39
  }
40
40
  this.state.targetLevel = request.targetLevel ?? this.state.defaultOpenLevel ?? 100;
41
41
  }
@@ -46,7 +46,7 @@ export class MatterbridgeValveConfigurationAndControlServer extends Matterbridge
46
46
  }
47
47
  async close() {
48
48
  const device = this.endpoint.stateOf(MatterbridgeServer);
49
- device.log.info(`Closing valve (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
49
+ device.log.info(`MatterbridgeValveConfigurationAndControlServer: closing valve (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
50
50
  await device.commandHandler.executeHandler('ValveConfigurationAndControl.close', {
51
51
  command: 'close',
52
52
  request: {},
@@ -55,9 +55,9 @@ export class MatterbridgeValveConfigurationAndControlServer extends Matterbridge
55
55
  endpoint: this.endpoint,
56
56
  context: this.context,
57
57
  });
58
- device.log.debug(`MatterbridgeValveConfigurationAndControlServer: close called`);
58
+ device.log.debug(`MatterbridgeValveConfigurationAndControlServer: close called (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
59
59
  if (this.#hasFault()) {
60
- throw new ValveConfigurationAndControl.FailureDueToFaultError('Close ignored: the valve has a registered fault');
60
+ throw new ValveConfigurationAndControl.FailureDueToFaultError(`MatterbridgeValveConfigurationAndControlServer: close ignored, the valve has a registered fault (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
61
61
  }
62
62
  this.#stopMovementTimer();
63
63
  this.#stopAutoCloseTimer();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matterbridge/core",
3
- "version": "3.10.9-dev-20260904-cbaddbb",
3
+ "version": "3.10.9-dev-20260906-2a9dc0e",
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.9",
135
- "@matterbridge/dgram": "3.10.9-dev-20260904-cbaddbb",
136
- "@matterbridge/thread": "3.10.9-dev-20260904-cbaddbb",
137
- "@matterbridge/types": "3.10.9-dev-20260904-cbaddbb",
138
- "@matterbridge/utils": "3.10.9-dev-20260904-cbaddbb",
135
+ "@matterbridge/dgram": "3.10.9-dev-20260906-2a9dc0e",
136
+ "@matterbridge/thread": "3.10.9-dev-20260906-2a9dc0e",
137
+ "@matterbridge/types": "3.10.9-dev-20260906-2a9dc0e",
138
+ "@matterbridge/utils": "3.10.9-dev-20260906-2a9dc0e",
139
139
  "escape-html": "1.0.3",
140
140
  "express": "5.2.1",
141
141
  "express-rate-limit": "8.7.0",