matterbridge 3.1.0 → 3.1.1-dev-20250629-cfe9124

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.
Files changed (194) hide show
  1. package/CHANGELOG.md +25 -4
  2. package/README-DEV.md +17 -3
  3. package/README-DOCKER.md +3 -1
  4. package/README-NGINX.md +30 -22
  5. package/README-PODMAN.md +3 -1
  6. package/README-SERVICE.md +8 -2
  7. package/dist/batteryStorage.js +24 -0
  8. package/dist/cli.js +2 -91
  9. package/dist/clusters/export.js +0 -2
  10. package/dist/defaultConfigSchema.js +0 -24
  11. package/dist/deviceManager.js +1 -94
  12. package/dist/devices/export.js +2 -2
  13. package/dist/evse.js +9 -70
  14. package/dist/frontend.js +16 -413
  15. package/dist/globalMatterbridge.js +0 -47
  16. package/dist/helpers.js +0 -53
  17. package/dist/index.js +3 -32
  18. package/dist/laundryWasher.js +7 -92
  19. package/dist/logger/export.js +0 -1
  20. package/dist/matter/behaviors.js +0 -2
  21. package/dist/matter/clusters.js +0 -2
  22. package/dist/matter/devices.js +0 -2
  23. package/dist/matter/endpoints.js +0 -2
  24. package/dist/matter/export.js +0 -3
  25. package/dist/matter/types.js +0 -3
  26. package/dist/matterbridge.js +50 -797
  27. package/dist/matterbridgeAccessoryPlatform.js +0 -36
  28. package/dist/matterbridgeBehaviors.js +16 -55
  29. package/dist/matterbridgeDeviceTypes.js +15 -579
  30. package/dist/matterbridgeDynamicPlatform.js +0 -36
  31. package/dist/matterbridgeEndpoint.js +66 -1025
  32. package/dist/matterbridgeEndpointHelpers.js +12 -322
  33. package/dist/matterbridgePlatform.js +0 -233
  34. package/dist/matterbridgeTypes.js +0 -25
  35. package/dist/pluginManager.js +3 -269
  36. package/dist/roboticVacuumCleaner.js +6 -83
  37. package/dist/shelly.js +7 -168
  38. package/dist/solarPower.js +20 -0
  39. package/dist/storage/export.js +0 -1
  40. package/dist/update.js +0 -54
  41. package/dist/utils/colorUtils.js +2 -263
  42. package/dist/utils/commandLine.js +0 -54
  43. package/dist/utils/copyDirectory.js +1 -38
  44. package/dist/utils/createDirectory.js +0 -33
  45. package/dist/utils/createZip.js +2 -47
  46. package/dist/utils/deepCopy.js +0 -39
  47. package/dist/utils/deepEqual.js +1 -72
  48. package/dist/utils/export.js +0 -1
  49. package/dist/utils/hex.js +0 -58
  50. package/dist/utils/isvalid.js +0 -101
  51. package/dist/utils/network.js +5 -83
  52. package/dist/utils/spawn.js +0 -18
  53. package/dist/utils/wait.js +9 -62
  54. package/dist/waterHeater.js +2 -77
  55. package/npm-shrinkwrap.json +2 -2
  56. package/package.json +1 -2
  57. package/dist/cli.d.ts +0 -29
  58. package/dist/cli.d.ts.map +0 -1
  59. package/dist/cli.js.map +0 -1
  60. package/dist/clusters/export.d.ts +0 -2
  61. package/dist/clusters/export.d.ts.map +0 -1
  62. package/dist/clusters/export.js.map +0 -1
  63. package/dist/defaultConfigSchema.d.ts +0 -28
  64. package/dist/defaultConfigSchema.d.ts.map +0 -1
  65. package/dist/defaultConfigSchema.js.map +0 -1
  66. package/dist/deviceManager.d.ts +0 -112
  67. package/dist/deviceManager.d.ts.map +0 -1
  68. package/dist/deviceManager.js.map +0 -1
  69. package/dist/devices/export.d.ts +0 -5
  70. package/dist/devices/export.d.ts.map +0 -1
  71. package/dist/devices/export.js.map +0 -1
  72. package/dist/evse.d.ts +0 -72
  73. package/dist/evse.d.ts.map +0 -1
  74. package/dist/evse.js.map +0 -1
  75. package/dist/frontend.d.ts +0 -285
  76. package/dist/frontend.d.ts.map +0 -1
  77. package/dist/frontend.js.map +0 -1
  78. package/dist/globalMatterbridge.d.ts +0 -59
  79. package/dist/globalMatterbridge.d.ts.map +0 -1
  80. package/dist/globalMatterbridge.js.map +0 -1
  81. package/dist/helpers.d.ts +0 -48
  82. package/dist/helpers.d.ts.map +0 -1
  83. package/dist/helpers.js.map +0 -1
  84. package/dist/index.d.ts +0 -38
  85. package/dist/index.d.ts.map +0 -1
  86. package/dist/index.js.map +0 -1
  87. package/dist/laundryWasher.d.ts +0 -243
  88. package/dist/laundryWasher.d.ts.map +0 -1
  89. package/dist/laundryWasher.js.map +0 -1
  90. package/dist/logger/export.d.ts +0 -2
  91. package/dist/logger/export.d.ts.map +0 -1
  92. package/dist/logger/export.js.map +0 -1
  93. package/dist/matter/behaviors.d.ts +0 -2
  94. package/dist/matter/behaviors.d.ts.map +0 -1
  95. package/dist/matter/behaviors.js.map +0 -1
  96. package/dist/matter/clusters.d.ts +0 -2
  97. package/dist/matter/clusters.d.ts.map +0 -1
  98. package/dist/matter/clusters.js.map +0 -1
  99. package/dist/matter/devices.d.ts +0 -2
  100. package/dist/matter/devices.d.ts.map +0 -1
  101. package/dist/matter/devices.js.map +0 -1
  102. package/dist/matter/endpoints.d.ts +0 -2
  103. package/dist/matter/endpoints.d.ts.map +0 -1
  104. package/dist/matter/endpoints.js.map +0 -1
  105. package/dist/matter/export.d.ts +0 -5
  106. package/dist/matter/export.d.ts.map +0 -1
  107. package/dist/matter/export.js.map +0 -1
  108. package/dist/matter/types.d.ts +0 -3
  109. package/dist/matter/types.d.ts.map +0 -1
  110. package/dist/matter/types.js.map +0 -1
  111. package/dist/matterbridge.d.ts +0 -450
  112. package/dist/matterbridge.d.ts.map +0 -1
  113. package/dist/matterbridge.js.map +0 -1
  114. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
  115. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  116. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  117. package/dist/matterbridgeBehaviors.d.ts +0 -1334
  118. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  119. package/dist/matterbridgeBehaviors.js.map +0 -1
  120. package/dist/matterbridgeDeviceTypes.d.ts +0 -709
  121. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  122. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  123. package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
  124. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  125. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  126. package/dist/matterbridgeEndpoint.d.ts +0 -1173
  127. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  128. package/dist/matterbridgeEndpoint.js.map +0 -1
  129. package/dist/matterbridgeEndpointHelpers.d.ts +0 -3198
  130. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  131. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  132. package/dist/matterbridgePlatform.d.ts +0 -310
  133. package/dist/matterbridgePlatform.d.ts.map +0 -1
  134. package/dist/matterbridgePlatform.js.map +0 -1
  135. package/dist/matterbridgeTypes.d.ts +0 -184
  136. package/dist/matterbridgeTypes.d.ts.map +0 -1
  137. package/dist/matterbridgeTypes.js.map +0 -1
  138. package/dist/pluginManager.d.ts +0 -291
  139. package/dist/pluginManager.d.ts.map +0 -1
  140. package/dist/pluginManager.js.map +0 -1
  141. package/dist/roboticVacuumCleaner.d.ts +0 -104
  142. package/dist/roboticVacuumCleaner.d.ts.map +0 -1
  143. package/dist/roboticVacuumCleaner.js.map +0 -1
  144. package/dist/shelly.d.ts +0 -174
  145. package/dist/shelly.d.ts.map +0 -1
  146. package/dist/shelly.js.map +0 -1
  147. package/dist/storage/export.d.ts +0 -2
  148. package/dist/storage/export.d.ts.map +0 -1
  149. package/dist/storage/export.js.map +0 -1
  150. package/dist/update.d.ts +0 -59
  151. package/dist/update.d.ts.map +0 -1
  152. package/dist/update.js.map +0 -1
  153. package/dist/utils/colorUtils.d.ts +0 -117
  154. package/dist/utils/colorUtils.d.ts.map +0 -1
  155. package/dist/utils/colorUtils.js.map +0 -1
  156. package/dist/utils/commandLine.d.ts +0 -59
  157. package/dist/utils/commandLine.d.ts.map +0 -1
  158. package/dist/utils/commandLine.js.map +0 -1
  159. package/dist/utils/copyDirectory.d.ts +0 -33
  160. package/dist/utils/copyDirectory.d.ts.map +0 -1
  161. package/dist/utils/copyDirectory.js.map +0 -1
  162. package/dist/utils/createDirectory.d.ts +0 -34
  163. package/dist/utils/createDirectory.d.ts.map +0 -1
  164. package/dist/utils/createDirectory.js.map +0 -1
  165. package/dist/utils/createZip.d.ts +0 -39
  166. package/dist/utils/createZip.d.ts.map +0 -1
  167. package/dist/utils/createZip.js.map +0 -1
  168. package/dist/utils/deepCopy.d.ts +0 -32
  169. package/dist/utils/deepCopy.d.ts.map +0 -1
  170. package/dist/utils/deepCopy.js.map +0 -1
  171. package/dist/utils/deepEqual.d.ts +0 -54
  172. package/dist/utils/deepEqual.d.ts.map +0 -1
  173. package/dist/utils/deepEqual.js.map +0 -1
  174. package/dist/utils/export.d.ts +0 -12
  175. package/dist/utils/export.d.ts.map +0 -1
  176. package/dist/utils/export.js.map +0 -1
  177. package/dist/utils/hex.d.ts +0 -49
  178. package/dist/utils/hex.d.ts.map +0 -1
  179. package/dist/utils/hex.js.map +0 -1
  180. package/dist/utils/isvalid.d.ts +0 -103
  181. package/dist/utils/isvalid.d.ts.map +0 -1
  182. package/dist/utils/isvalid.js.map +0 -1
  183. package/dist/utils/network.d.ts +0 -76
  184. package/dist/utils/network.d.ts.map +0 -1
  185. package/dist/utils/network.js.map +0 -1
  186. package/dist/utils/spawn.d.ts +0 -14
  187. package/dist/utils/spawn.d.ts.map +0 -1
  188. package/dist/utils/spawn.js.map +0 -1
  189. package/dist/utils/wait.d.ts +0 -56
  190. package/dist/utils/wait.d.ts.map +0 -1
  191. package/dist/utils/wait.js.map +0 -1
  192. package/dist/waterHeater.d.ts +0 -106
  193. package/dist/waterHeater.d.ts.map +0 -1
  194. package/dist/waterHeater.js.map +0 -1
@@ -1,40 +1,5 @@
1
- /**
2
- * This file contains the class MatterbridgeAccessoryPlatform.
3
- *
4
- * @file matterbridgeAccessoryPlatform.ts
5
- * @author Luca Liguori
6
- * @created 2023-12-29
7
- * @version 1.0.5
8
- * @license Apache-2.0
9
- *
10
- * Copyright 2023, 2024, 2025 Luca Liguori.
11
- *
12
- * Licensed under the Apache License, Version 2.0 (the "License");
13
- * you may not use this file except in compliance with the License.
14
- * You may obtain a copy of the License at
15
- *
16
- * http://www.apache.org/licenses/LICENSE-2.0
17
- *
18
- * Unless required by applicable law or agreed to in writing, software
19
- * distributed under the License is distributed on an "AS IS" BASIS,
20
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- * See the License for the specific language governing permissions and
22
- * limitations under the License.
23
- */
24
1
  import { MatterbridgePlatform } from './matterbridgePlatform.js';
25
- /**
26
- * Represents a Matterbridge accessory platform.
27
- *
28
- * This class extends the MatterbridgePlatform class.
29
- */
30
2
  export class MatterbridgeAccessoryPlatform extends MatterbridgePlatform {
31
- /**
32
- * Creates an instance of MatterbridgeAccessoryPlatform.
33
- *
34
- * @param {Matterbridge} matterbridge - The Matterbridge instance.
35
- * @param {AnsiLogger} log - The logger instance.
36
- * @param {PlatformConfig} config - The platform configuration.
37
- */
38
3
  constructor(matterbridge, log, config) {
39
4
  super(matterbridge, log, config);
40
5
  this.type = 'AccessoryPlatform';
@@ -42,4 +7,3 @@ export class MatterbridgeAccessoryPlatform extends MatterbridgePlatform {
42
7
  this.log.debug(`Matterbridge${this.type} loaded`);
43
8
  }
44
9
  }
45
- //# sourceMappingURL=matterbridgeAccessoryPlatform.js.map
@@ -1,31 +1,4 @@
1
- /**
2
- * This file contains the behavior classes of Matterbridge.
3
- *
4
- * @file matterbridgeBehaviors.ts
5
- * @author Luca Liguori
6
- * @created 2024-11-07
7
- * @version 1.3.0
8
- * @license Apache-2.0
9
- *
10
- * Copyright 2024, 2025, 2026 Luca Liguori.
11
- *
12
- * Licensed under the Apache License, Version 2.0 (the "License");
13
- * you may not use this file except in compliance with the License.
14
- * You may obtain a copy of the License at
15
- *
16
- * http://www.apache.org/licenses/LICENSE-2.0
17
- *
18
- * Unless required by applicable law or agreed to in writing, software
19
- * distributed under the License is distributed on an "AS IS" BASIS,
20
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- * See the License for the specific language governing permissions and
22
- * limitations under the License.
23
- */
24
- /* eslint-disable @typescript-eslint/no-namespace */
25
- /* eslint-disable @typescript-eslint/no-unused-vars */
26
- // @matter
27
1
  import { Behavior } from '@matter/main';
28
- // @matter clusters
29
2
  import { BooleanStateConfiguration } from '@matter/main/clusters/boolean-state-configuration';
30
3
  import { ColorControl } from '@matter/main/clusters/color-control';
31
4
  import { FanControl } from '@matter/main/clusters/fan-control';
@@ -37,7 +10,6 @@ import { BooleanStateConfigurationServer } from '@matter/main/behaviors/boolean-
37
10
  import { OperationalState } from '@matter/main/clusters/operational-state';
38
11
  import { ModeBase } from '@matter/main/clusters/mode-base';
39
12
  import { ServiceArea } from '@matter/main/clusters/service-area';
40
- // @matter behaviors
41
13
  import { IdentifyServer } from '@matter/main/behaviors/identify';
42
14
  import { OnOffServer } from '@matter/main/behaviors/on-off';
43
15
  import { LevelControlServer } from '@matter/main/behaviors/level-control';
@@ -52,6 +24,7 @@ import { SmokeCoAlarmServer } from '@matter/main/behaviors/smoke-co-alarm';
52
24
  import { SwitchServer } from '@matter/main/behaviors/switch';
53
25
  import { OperationalStateServer } from '@matter/main/behaviors/operational-state';
54
26
  import { ServiceAreaServer } from '@matter/main/behaviors/service-area';
27
+ import { DeviceEnergyManagementServer } from '@matter/main/behaviors/device-energy-management';
55
28
  import { DeviceEnergyManagementModeServer } from '@matter/main/behaviors/device-energy-management-mode';
56
29
  export class MatterbridgeServer extends Behavior {
57
30
  static id = 'matterbridge';
@@ -189,7 +162,6 @@ export class MatterbridgeLiftWindowCoveringServer extends WindowCoveringServer.w
189
162
  super.goToLiftPercentage(request);
190
163
  }
191
164
  async handleMovement(type, reversed, direction, targetPercent100ths) {
192
- // Do nothing here, as the device will handle the movement
193
165
  }
194
166
  }
195
167
  export class MatterbridgeLiftTiltWindowCoveringServer extends WindowCoveringServer.with(WindowCovering.Feature.Lift, WindowCovering.Feature.PositionAwareLift, WindowCovering.Feature.Tilt, WindowCovering.Feature.PositionAwareTilt) {
@@ -229,7 +201,6 @@ export class MatterbridgeLiftTiltWindowCoveringServer extends WindowCoveringServ
229
201
  super.goToTiltPercentage(request);
230
202
  }
231
203
  async handleMovement(type, reversed, direction, targetPercent100ths) {
232
- // Do nothing here, as the device will handle the movement
233
204
  }
234
205
  }
235
206
  export class MatterbridgeDoorLockServer extends DoorLockServer {
@@ -271,8 +242,6 @@ export class MatterbridgeFanControlServer extends FanControlServer.with(FanContr
271
242
  this.state.percentCurrent = Math.max(this.state.percentCurrent - 10, request.lowestOff ? 0 : 10);
272
243
  }
273
244
  device.log.debug('Set percentCurrent to:', this.state.percentCurrent);
274
- // step is not implemented in matter.js
275
- // super.step(request);
276
245
  }
277
246
  }
278
247
  export class MatterbridgeThermostatServer extends ThermostatServer.with(Thermostat.Feature.Cooling, Thermostat.Feature.Heating, Thermostat.Feature.AutoMode) {
@@ -296,8 +265,6 @@ export class MatterbridgeThermostatServer extends ThermostatServer.with(Thermost
296
265
  this.state.occupiedCoolingSetpoint = setpoint * 100;
297
266
  device.log.debug(`Set occupiedCoolingSetpoint to ${setpoint}`);
298
267
  }
299
- // setpointRaiseLower is not implemented in matter.js
300
- // super.setpointRaiseLower(request);
301
268
  }
302
269
  }
303
270
  export class MatterbridgeValveConfigurationAndControlServer extends ValveConfigurationAndControlServer.with(ValveConfigurationAndControl.Feature.Level) {
@@ -313,8 +280,6 @@ export class MatterbridgeValveConfigurationAndControlServer extends ValveConfigu
313
280
  this.state.openDuration = request.openDuration ?? this.state.defaultOpenDuration;
314
281
  if (this.state.openDuration === null)
315
282
  this.state.remainingDuration = null;
316
- // open is not implemented in matter.js
317
- // super.open(request);
318
283
  }
319
284
  close() {
320
285
  const device = this.endpoint.stateOf(MatterbridgeServer);
@@ -327,8 +292,6 @@ export class MatterbridgeValveConfigurationAndControlServer extends ValveConfigu
327
292
  this.state.currentLevel = 0;
328
293
  this.state.openDuration = null;
329
294
  this.state.remainingDuration = null;
330
- // close is not implemented in matter.js
331
- // super.close();
332
295
  }
333
296
  }
334
297
  export class MatterbridgeSmokeCoAlarmServer extends SmokeCoAlarmServer.with(SmokeCoAlarm.Feature.SmokeAlarm, SmokeCoAlarm.Feature.CoAlarm) {
@@ -337,8 +300,6 @@ export class MatterbridgeSmokeCoAlarmServer extends SmokeCoAlarmServer.with(Smok
337
300
  device.log.info(`Testing SmokeCOAlarm (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
338
301
  device.commandHandler.executeHandler('selfTestRequest', { request: {}, cluster: SmokeCoAlarmServer.id, attributes: this.state, endpoint: this.endpoint });
339
302
  device.log.debug(`MatterbridgeSmokeCoAlarmServer: selfTestRequest called`);
340
- // selfTestRequest is not implemented in matter.js
341
- // super.selfTestRequest();
342
303
  }
343
304
  }
344
305
  export class MatterbridgeBooleanStateConfigurationServer extends BooleanStateConfigurationServer.with(BooleanStateConfiguration.Feature.Visual, BooleanStateConfiguration.Feature.Audible, BooleanStateConfiguration.Feature.SensitivityLevel) {
@@ -347,13 +308,10 @@ export class MatterbridgeBooleanStateConfigurationServer extends BooleanStateCon
347
308
  device.log.info(`Enabling/disabling alarm ${request.alarmsToEnableDisable} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
348
309
  device.commandHandler.executeHandler('enableDisableAlarm', { request, cluster: BooleanStateConfigurationServer.id, attributes: this.state, endpoint: this.endpoint });
349
310
  device.log.debug(`MatterbridgeBooleanStateConfigurationServer: enableDisableAlarm called`);
350
- // enableDisableAlarm is not implemented in matter.js
351
- // super.enableDisableAlarm(request);
352
311
  }
353
312
  }
354
313
  export class MatterbridgeSwitchServer extends SwitchServer {
355
314
  initialize() {
356
- // Do nothing here, as the device will handle the switch logic: we need to convert something like "single" into the appropriate sequence of state changes and events
357
315
  }
358
316
  }
359
317
  export class MatterbridgeOperationalStateServer extends OperationalStateServer {
@@ -362,7 +320,7 @@ export class MatterbridgeOperationalStateServer extends OperationalStateServer {
362
320
  device.log.debug('MatterbridgeOperationalStateServer initialized: setting operational state to Stopped');
363
321
  this.state.operationalState = OperationalState.OperationalStateEnum.Stopped;
364
322
  this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' };
365
- super.initialize(); // Error handling logic is handled in matter.js
323
+ super.initialize();
366
324
  }
367
325
  pause() {
368
326
  const device = this.endpoint.stateOf(MatterbridgeServer);
@@ -371,8 +329,6 @@ export class MatterbridgeOperationalStateServer extends OperationalStateServer {
371
329
  device.log.debug('MatterbridgeOperationalStateServer: pause called setting operational state to Paused');
372
330
  this.state.operationalState = OperationalState.OperationalStateEnum.Paused;
373
331
  this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' };
374
- // pause is not implemented in matter.js
375
- // return super.pause();
376
332
  return {
377
333
  commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' },
378
334
  };
@@ -384,8 +340,6 @@ export class MatterbridgeOperationalStateServer extends OperationalStateServer {
384
340
  device.log.debug('MatterbridgeOperationalStateServer: stop called setting operational state to Stopped');
385
341
  this.state.operationalState = OperationalState.OperationalStateEnum.Stopped;
386
342
  this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' };
387
- // stop is not implemented in matter.js
388
- // return super.stop();
389
343
  return {
390
344
  commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' },
391
345
  };
@@ -397,8 +351,6 @@ export class MatterbridgeOperationalStateServer extends OperationalStateServer {
397
351
  device.log.debug('MatterbridgeOperationalStateServer: start called setting operational state to Running');
398
352
  this.state.operationalState = OperationalState.OperationalStateEnum.Running;
399
353
  this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' };
400
- // start is not implemented in matter.js
401
- // return super.start();
402
354
  return {
403
355
  commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' },
404
356
  };
@@ -410,8 +362,6 @@ export class MatterbridgeOperationalStateServer extends OperationalStateServer {
410
362
  device.log.debug('MatterbridgeOperationalStateServer: resume called setting operational state to Running');
411
363
  this.state.operationalState = OperationalState.OperationalStateEnum.Running;
412
364
  this.state.operationalError = { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' };
413
- // resume is not implemented in matter.js
414
- // return super.resume();
415
365
  return {
416
366
  commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateLabel: 'No error', errorStateDetails: 'Fully operational' },
417
367
  };
@@ -432,7 +382,6 @@ export class MatterbridgeServiceAreaServer extends ServiceAreaServer {
432
382
  this.state.selectedAreas = request.newAreas;
433
383
  device.log.debug(`MatterbridgeServiceAreaServer selectAreas called with: ${request.newAreas.map((area) => area.toString()).join(', ')}`);
434
384
  return super.selectAreas(request);
435
- // return { status: ServiceArea.SelectAreasStatus.Success, statusText: 'Succesfully selected new areas' };
436
385
  }
437
386
  }
438
387
  export class MatterbridgeModeSelectServer extends ModeSelectServer {
@@ -444,6 +393,20 @@ export class MatterbridgeModeSelectServer extends ModeSelectServer {
444
393
  super.changeToMode(request);
445
394
  }
446
395
  }
396
+ export class MatterbridgeDeviceEnergyManagementServer extends DeviceEnergyManagementServer {
397
+ powerAdjustRequest(request) {
398
+ const device = this.endpoint.stateOf(MatterbridgeServer);
399
+ device.log.info(`Adjusting power to ${request.power} duration ${request.duration} cause ${request.cause} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
400
+ device.commandHandler.executeHandler('powerAdjustRequest', { request, cluster: DeviceEnergyManagementServer.id, attributes: this.state, endpoint: this.endpoint });
401
+ device.log.debug(`MatterbridgeDeviceEnergyManagementServer powerAdjustRequest called with power ${request.power} duration ${request.duration} cause ${request.cause}`);
402
+ }
403
+ cancelPowerAdjustRequest() {
404
+ const device = this.endpoint.stateOf(MatterbridgeServer);
405
+ device.log.info(`Cancelling power adjustment (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
406
+ device.commandHandler.executeHandler('cancelPowerAdjustRequest', { cluster: DeviceEnergyManagementServer.id, attributes: this.state, endpoint: this.endpoint });
407
+ device.log.debug(`MatterbridgeDeviceEnergyManagementServer cancelPowerAdjustRequest called`);
408
+ }
409
+ }
447
410
  export class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyManagementModeServer {
448
411
  changeToMode(request) {
449
412
  const device = this.endpoint.stateOf(MatterbridgeServer);
@@ -457,7 +420,5 @@ export class MatterbridgeDeviceEnergyManagementModeServer extends DeviceEnergyMa
457
420
  this.state.currentMode = request.newMode;
458
421
  device.log.debug(`MatterbridgeDeviceEnergyManagementModeServer changeToMode called with newMode ${request.newMode} => ${supported.label}`);
459
422
  return super.changeToMode(request);
460
- // return { status: ModeBase.ModeChangeStatus.Success, statusText: 'Success' };
461
423
  }
462
424
  }
463
- //# sourceMappingURL=matterbridgeBehaviors.js.map