@matter/node 0.16.0-alpha.0-20251101-70c8d51d7 → 0.16.0-alpha.0-20251103-b47ffa15b

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 (159) hide show
  1. package/dist/cjs/behavior/Behavior.d.ts +2 -2
  2. package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
  3. package/dist/cjs/behavior/Behavior.js +1 -1
  4. package/dist/cjs/behavior/Behavior.js.map +1 -1
  5. package/dist/cjs/behavior/Events.js.map +1 -1
  6. package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts +3 -2
  7. package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
  8. package/dist/cjs/behavior/cluster/ClusterBehavior.js.map +1 -1
  9. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js +1 -1
  10. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
  11. package/dist/cjs/behavior/internal/BehaviorBacking.js +1 -1
  12. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  13. package/dist/cjs/behavior/system/mqtt/MqttInterface.js +1 -1
  14. package/dist/cjs/behavior/system/mqtt/MqttInterface.js.map +1 -1
  15. package/dist/cjs/behaviors/basic-information/BasicInformationServer.d.ts +2 -2
  16. package/dist/cjs/behaviors/basic-information/BasicInformationServer.d.ts.map +1 -1
  17. package/dist/cjs/behaviors/basic-information/BasicInformationServer.js +0 -3
  18. package/dist/cjs/behaviors/basic-information/BasicInformationServer.js.map +1 -1
  19. package/dist/cjs/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts +1 -1
  20. package/dist/cjs/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts.map +1 -1
  21. package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts +3 -3
  22. package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
  23. package/dist/cjs/behaviors/color-control/ColorControlServer.js +118 -3
  24. package/dist/cjs/behaviors/color-control/ColorControlServer.js.map +1 -1
  25. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +1 -1
  26. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  27. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  28. package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.d.ts +1 -1
  29. package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
  30. package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
  31. package/dist/cjs/behaviors/groups/GroupsServer.d.ts.map +1 -1
  32. package/dist/cjs/behaviors/groups/GroupsServer.js +9 -1
  33. package/dist/cjs/behaviors/groups/GroupsServer.js.map +1 -1
  34. package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts +5 -5
  35. package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
  36. package/dist/cjs/behaviors/level-control/LevelControlServer.js +54 -27
  37. package/dist/cjs/behaviors/level-control/LevelControlServer.js.map +1 -1
  38. package/dist/cjs/behaviors/on-off/OnOffServer.d.ts +3 -6
  39. package/dist/cjs/behaviors/on-off/OnOffServer.d.ts.map +1 -1
  40. package/dist/cjs/behaviors/on-off/OnOffServer.js +59 -7
  41. package/dist/cjs/behaviors/on-off/OnOffServer.js.map +1 -1
  42. package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.d.ts +122 -3
  43. package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.d.ts.map +1 -1
  44. package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.js +909 -1
  45. package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.js.map +2 -2
  46. package/dist/cjs/behaviors/switch/SwitchServer.d.ts +1 -1
  47. package/dist/cjs/behaviors/switch/SwitchServer.d.ts.map +1 -1
  48. package/dist/cjs/behaviors/switch/SwitchServer.js.map +1 -1
  49. package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js +2 -2
  50. package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js.map +1 -1
  51. package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts +1 -1
  52. package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
  53. package/dist/cjs/behaviors/thermostat/ThermostatServer.js.map +1 -1
  54. package/dist/cjs/devices/color-temperature-light.d.ts +4 -4
  55. package/dist/cjs/devices/dimmable-light.d.ts +4 -4
  56. package/dist/cjs/devices/dimmable-plug-in-unit.d.ts +4 -4
  57. package/dist/cjs/devices/extended-color-light.d.ts +4 -4
  58. package/dist/cjs/devices/mounted-dimmable-load-control.d.ts +4 -4
  59. package/dist/cjs/devices/mounted-on-off-control.d.ts +4 -4
  60. package/dist/cjs/devices/on-off-light.d.ts +4 -4
  61. package/dist/cjs/devices/on-off-plug-in-unit.d.ts +4 -4
  62. package/dist/cjs/endpoint/Agent.d.ts +5 -0
  63. package/dist/cjs/endpoint/Agent.d.ts.map +1 -1
  64. package/dist/cjs/endpoint/Agent.js +9 -0
  65. package/dist/cjs/endpoint/Agent.js.map +1 -1
  66. package/dist/cjs/endpoint/properties/Behaviors.js +1 -1
  67. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  68. package/dist/cjs/node/integration/ProtocolService.js +1 -1
  69. package/dist/cjs/node/integration/ProtocolService.js.map +1 -1
  70. package/dist/esm/behavior/Behavior.d.ts +2 -2
  71. package/dist/esm/behavior/Behavior.d.ts.map +1 -1
  72. package/dist/esm/behavior/Behavior.js +1 -1
  73. package/dist/esm/behavior/Behavior.js.map +1 -1
  74. package/dist/esm/behavior/Events.js.map +1 -1
  75. package/dist/esm/behavior/cluster/ClusterBehavior.d.ts +3 -2
  76. package/dist/esm/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
  77. package/dist/esm/behavior/cluster/ClusterBehavior.js.map +1 -1
  78. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js +1 -1
  79. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
  80. package/dist/esm/behavior/internal/BehaviorBacking.js +1 -1
  81. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  82. package/dist/esm/behavior/system/mqtt/MqttInterface.js +1 -1
  83. package/dist/esm/behavior/system/mqtt/MqttInterface.js.map +1 -1
  84. package/dist/esm/behaviors/basic-information/BasicInformationServer.d.ts +2 -2
  85. package/dist/esm/behaviors/basic-information/BasicInformationServer.d.ts.map +1 -1
  86. package/dist/esm/behaviors/basic-information/BasicInformationServer.js +1 -4
  87. package/dist/esm/behaviors/basic-information/BasicInformationServer.js.map +1 -1
  88. package/dist/esm/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts +1 -1
  89. package/dist/esm/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts.map +1 -1
  90. package/dist/esm/behaviors/color-control/ColorControlServer.d.ts +3 -3
  91. package/dist/esm/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
  92. package/dist/esm/behaviors/color-control/ColorControlServer.js +118 -3
  93. package/dist/esm/behaviors/color-control/ColorControlServer.js.map +1 -1
  94. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +1 -1
  95. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  96. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  97. package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.d.ts +1 -1
  98. package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
  99. package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
  100. package/dist/esm/behaviors/groups/GroupsServer.d.ts.map +1 -1
  101. package/dist/esm/behaviors/groups/GroupsServer.js +9 -1
  102. package/dist/esm/behaviors/groups/GroupsServer.js.map +1 -1
  103. package/dist/esm/behaviors/level-control/LevelControlServer.d.ts +5 -5
  104. package/dist/esm/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
  105. package/dist/esm/behaviors/level-control/LevelControlServer.js +55 -28
  106. package/dist/esm/behaviors/level-control/LevelControlServer.js.map +1 -1
  107. package/dist/esm/behaviors/on-off/OnOffServer.d.ts +3 -6
  108. package/dist/esm/behaviors/on-off/OnOffServer.d.ts.map +1 -1
  109. package/dist/esm/behaviors/on-off/OnOffServer.js +59 -7
  110. package/dist/esm/behaviors/on-off/OnOffServer.js.map +1 -1
  111. package/dist/esm/behaviors/scenes-management/ScenesManagementServer.d.ts +122 -3
  112. package/dist/esm/behaviors/scenes-management/ScenesManagementServer.d.ts.map +1 -1
  113. package/dist/esm/behaviors/scenes-management/ScenesManagementServer.js +960 -1
  114. package/dist/esm/behaviors/scenes-management/ScenesManagementServer.js.map +2 -2
  115. package/dist/esm/behaviors/switch/SwitchServer.d.ts +1 -1
  116. package/dist/esm/behaviors/switch/SwitchServer.d.ts.map +1 -1
  117. package/dist/esm/behaviors/switch/SwitchServer.js.map +1 -1
  118. package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js +2 -2
  119. package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js.map +1 -1
  120. package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts +1 -1
  121. package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
  122. package/dist/esm/behaviors/thermostat/ThermostatServer.js.map +1 -1
  123. package/dist/esm/devices/color-temperature-light.d.ts +4 -4
  124. package/dist/esm/devices/dimmable-light.d.ts +4 -4
  125. package/dist/esm/devices/dimmable-plug-in-unit.d.ts +4 -4
  126. package/dist/esm/devices/extended-color-light.d.ts +4 -4
  127. package/dist/esm/devices/mounted-dimmable-load-control.d.ts +4 -4
  128. package/dist/esm/devices/mounted-on-off-control.d.ts +4 -4
  129. package/dist/esm/devices/on-off-light.d.ts +4 -4
  130. package/dist/esm/devices/on-off-plug-in-unit.d.ts +4 -4
  131. package/dist/esm/endpoint/Agent.d.ts +5 -0
  132. package/dist/esm/endpoint/Agent.d.ts.map +1 -1
  133. package/dist/esm/endpoint/Agent.js +9 -0
  134. package/dist/esm/endpoint/Agent.js.map +1 -1
  135. package/dist/esm/endpoint/properties/Behaviors.js +1 -1
  136. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  137. package/dist/esm/node/integration/ProtocolService.js +1 -1
  138. package/dist/esm/node/integration/ProtocolService.js.map +1 -1
  139. package/package.json +7 -7
  140. package/src/behavior/Behavior.ts +2 -2
  141. package/src/behavior/Events.ts +1 -1
  142. package/src/behavior/cluster/ClusterBehavior.ts +4 -2
  143. package/src/behavior/cluster/ClusterBehaviorUtil.ts +1 -1
  144. package/src/behavior/internal/BehaviorBacking.ts +1 -1
  145. package/src/behavior/system/mqtt/MqttInterface.ts +1 -1
  146. package/src/behaviors/basic-information/BasicInformationServer.ts +3 -7
  147. package/src/behaviors/color-control/ColorControlServer.ts +132 -3
  148. package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +1 -1
  149. package/src/behaviors/group-key-management/GroupKeyManagementServer.ts +2 -2
  150. package/src/behaviors/groups/GroupsServer.ts +13 -1
  151. package/src/behaviors/level-control/LevelControlServer.ts +72 -29
  152. package/src/behaviors/on-off/OnOffServer.ts +78 -9
  153. package/src/behaviors/scenes-management/ScenesManagementServer.ts +1123 -3
  154. package/src/behaviors/switch/SwitchServer.ts +1 -1
  155. package/src/behaviors/thermostat/AtomicWriteHandler.ts +4 -4
  156. package/src/behaviors/thermostat/ThermostatServer.ts +1 -1
  157. package/src/endpoint/Agent.ts +10 -0
  158. package/src/endpoint/properties/Behaviors.ts +1 -1
  159. package/src/node/integration/ProtocolService.ts +1 -1
@@ -26,6 +26,7 @@ var import_Transitions = require("#behavior/Transitions.js");
26
26
  var import_color_control = require("#behaviors/color-control");
27
27
  var import_general_diagnostics = require("#behaviors/general-diagnostics");
28
28
  var import_on_off = require("#behaviors/on-off");
29
+ var import_scenes_management = require("#behaviors/scenes-management");
29
30
  var import_general_diagnostics2 = require("#clusters/general-diagnostics");
30
31
  var import_level_control = require("#clusters/level-control");
31
32
  var import_general = require("#general");
@@ -76,6 +77,7 @@ class LevelControlBaseServer extends LevelControlBase {
76
77
  if (this.features.onOff && this.agent.has(import_on_off.OnOffServer)) {
77
78
  this.initializeOnOff();
78
79
  }
80
+ this.agent.maybeGet(import_scenes_management.ScenesManagementServer)?.implementScenes(this, this.#applySceneValues);
79
81
  }
80
82
  /**
81
83
  * Create transition management instance.
@@ -182,7 +184,8 @@ class LevelControlBaseServer extends LevelControlBase {
182
184
  if (!this.#optionsAllowExecution(effectiveOptions)) {
183
185
  return;
184
186
  }
185
- this.#assertLevelValue(level);
187
+ level = (0, import_general.cropValueRange)(level, this.minLevel, this.maxLevel);
188
+ this.#invalidateScenes();
186
189
  return this.moveToLevelLogic(level, transitionTime, false, effectiveOptions);
187
190
  }
188
191
  /**
@@ -191,7 +194,8 @@ class LevelControlBaseServer extends LevelControlBase {
191
194
  * To replace this logic, override {@link moveToLevelLogic} whicih also implements {@link moveToLevel}.
192
195
  */
193
196
  moveToLevelWithOnOff({ level, transitionTime }) {
194
- this.#assertLevelValue(level);
197
+ level = (0, import_general.cropValueRange)(level, this.minLevel, this.maxLevel);
198
+ this.#invalidateScenes();
195
199
  return this.moveToLevelLogic(level, transitionTime, true);
196
200
  }
197
201
  /**
@@ -221,8 +225,9 @@ class LevelControlBaseServer extends LevelControlBase {
221
225
  const effectiveTransitionTime = transitionTime ?? this.state.onOffTransitionTime ?? null;
222
226
  let effectiveRate;
223
227
  if (effectiveTransitionTime) {
224
- effectiveRate = (level - this.currentLevel) / effectiveTransitionTime * 10;
228
+ effectiveRate = (currentLevel) => (level - currentLevel) / effectiveTransitionTime * 10;
225
229
  }
230
+ this.#invalidateScenes();
226
231
  return this.transition(level, effectiveRate, withOnOff, options);
227
232
  }
228
233
  /**
@@ -238,6 +243,7 @@ class LevelControlBaseServer extends LevelControlBase {
238
243
  if (!this.#optionsAllowExecution(effectiveOptions)) {
239
244
  return;
240
245
  }
246
+ this.#invalidateScenes();
241
247
  return this.moveLogic(moveMode, rate, false, effectiveOptions);
242
248
  }
243
249
  /**
@@ -249,6 +255,7 @@ class LevelControlBaseServer extends LevelControlBase {
249
255
  */
250
256
  moveWithOnOff({ moveMode, rate }) {
251
257
  rate = this.#assertRateValue(rate);
258
+ this.#invalidateScenes();
252
259
  return this.moveLogic(moveMode, rate, true);
253
260
  }
254
261
  /**
@@ -292,6 +299,7 @@ class LevelControlBaseServer extends LevelControlBase {
292
299
  if (!this.#optionsAllowExecution(effectiveOptions)) {
293
300
  return;
294
301
  }
302
+ this.#invalidateScenes();
295
303
  return this.stepLogic(stepMode, stepSize, transitionTime, false, effectiveOptions);
296
304
  }
297
305
  /**
@@ -300,6 +308,7 @@ class LevelControlBaseServer extends LevelControlBase {
300
308
  * To replace default beahavior, override {@link stepLogic} which also implements {@link step}.
301
309
  */
302
310
  stepWithOnOff({ stepMode, stepSize, transitionTime }) {
311
+ this.#invalidateScenes();
303
312
  return this.stepLogic(stepMode, stepSize, transitionTime, true);
304
313
  }
305
314
  /**
@@ -327,6 +336,7 @@ class LevelControlBaseServer extends LevelControlBase {
327
336
  if (!this.#optionsAllowExecution(effectiveOptions)) {
328
337
  return;
329
338
  }
339
+ this.#invalidateScenes();
330
340
  return this.stopLogic(effectiveOptions);
331
341
  }
332
342
  stopWithOnOff(request) {
@@ -342,14 +352,16 @@ class LevelControlBaseServer extends LevelControlBase {
342
352
  * Change to a designated level.
343
353
  *
344
354
  * @param targetLevel the new level once transition completes; if omitted transition will stop at min or max value
345
- * @param changePerS the move rate; 0 or nullish means transition instantly
355
+ * @param changePerS the move rate; 0 or nullish means transition instantly; use function to calculate rate based on current level after coupling logics
346
356
  * @param withOnOff if true follows rules for On/Off command variants
347
357
  * @param options additional options supplied by the client
348
358
  */
349
359
  transition(targetLevel, changePerS, withOnOff = false, options = {}) {
350
- return import_general.MaybePromise.then(
351
- this.couple(withOnOff, options, targetLevel),
352
- () => this.internal.transitions?.start({
360
+ return import_general.MaybePromise.then(this.couple(withOnOff, options, targetLevel), () => {
361
+ if (typeof changePerS === "function") {
362
+ changePerS = changePerS(this.currentLevel);
363
+ }
364
+ this.internal.transitions?.start({
353
365
  name: "currentLevel",
354
366
  owner: this,
355
367
  changePerS,
@@ -357,8 +369,8 @@ class LevelControlBaseServer extends LevelControlBase {
357
369
  onStep() {
358
370
  this.couple(withOnOff, options, targetLevel);
359
371
  }
360
- })
361
- );
372
+ });
373
+ });
362
374
  }
363
375
  /**
364
376
  * Configure the current transaction to synchronize state with other clusters.
@@ -366,6 +378,7 @@ class LevelControlBaseServer extends LevelControlBase {
366
378
  * This handles of on/off state in the On/Off cluster and color temperature in the Color Control cluster.
367
379
  */
368
380
  couple(withOnOff, options = {}, targetLevel) {
381
+ let result = void 0;
369
382
  if (this.features.onOff && withOnOff && this.agent.has(import_on_off.OnOffServer)) {
370
383
  if (targetLevel === void 0) {
371
384
  targetLevel = this.currentLevel;
@@ -387,7 +400,17 @@ class LevelControlBaseServer extends LevelControlBase {
387
400
  const onOff = this.agent.get(import_on_off.OnOffServer);
388
401
  if (!onOff.state.onOff) {
389
402
  onOff.state.onOff = true;
390
- this.handleOnOffChange(true);
403
+ if (this.state.onLevel !== null) {
404
+ result = this.handleOnOffChange(true);
405
+ this.internal.blockOnOffCouplingOnce = true;
406
+ this.context.transaction.addParticipants({
407
+ postCommit: () => {
408
+ if (this.internal.blockOnOffCouplingOnce) {
409
+ this.internal.blockOnOffCouplingOnce = false;
410
+ }
411
+ }
412
+ });
413
+ }
391
414
  }
392
415
  }
393
416
  }
@@ -404,6 +427,7 @@ class LevelControlBaseServer extends LevelControlBase {
404
427
  }
405
428
  });
406
429
  }
430
+ return result;
407
431
  }
408
432
  /**
409
433
  * Implement mandatory interaction with the OnOff cluster on the same endpoint when "OnOff" feature is enabled
@@ -416,9 +440,14 @@ class LevelControlBaseServer extends LevelControlBase {
416
440
  * @param onOff The new onOff state
417
441
  */
418
442
  handleOnOffChange(onOff) {
443
+ if (this.internal.blockOnOffCouplingOnce) {
444
+ this.internal.blockOnOffCouplingOnce = false;
445
+ return;
446
+ }
419
447
  if (!onOff || this.state.onLevel === null) {
420
448
  return;
421
449
  }
450
+ logger.debug(`OnOff changed to ON, setting level to onLevel value of ${this.state.onLevel}`);
422
451
  this.state.currentLevel = this.state.onLevel;
423
452
  }
424
453
  #calculateEffectiveOptions(optionsMask, optionsOverride) {
@@ -431,26 +460,24 @@ class LevelControlBaseServer extends LevelControlBase {
431
460
  #optionsAllowExecution(options) {
432
461
  return options.executeIfOff || !this.features.onOff || !this.agent.has(import_on_off.OnOffServer) || this.agent.get(import_on_off.OnOffServer).state.onOff;
433
462
  }
434
- #assertLevelValue(level) {
435
- if (level < this.minLevel) {
436
- throw new import_types.StatusResponseError(
437
- `The level value of ${level} is invalid. It must be greater or equal to ${this.minLevel}.`,
438
- import_types.StatusCode.ConstraintError
439
- );
440
- }
441
- if (level > this.maxLevel) {
442
- throw new import_types.StatusResponseError(
443
- `The level value of ${level} is invalid. It must be less or equal to ${this.maxLevel}.`,
444
- import_types.StatusCode.ConstraintError
445
- );
446
- }
447
- }
448
463
  #getBootReason() {
449
464
  const rootEndpoint = this.env.get(import_ServerNode.ServerNode);
450
465
  if (rootEndpoint.behaviors.has(import_general_diagnostics.GeneralDiagnosticsBehavior)) {
451
466
  return rootEndpoint.stateOf(import_general_diagnostics.GeneralDiagnosticsBehavior).bootReason;
452
467
  }
453
468
  }
469
+ /** Apply Scene values when requested from ScenesManagement cluster */
470
+ #applySceneValues(values, transitionTime) {
471
+ const level = values.currentLevel;
472
+ if (typeof level !== "number" || this.state.currentLevel === level || (0, import_general.cropValueRange)(level, this.minLevel, this.maxLevel) !== level) {
473
+ return;
474
+ }
475
+ return this.moveToLevelLogic(level, transitionTime / 100, false, { executeIfOff: true });
476
+ }
477
+ /** Invalidate all stored scenes manually for this endpoint in the Scenesmanagement cluster because SDK behavior. */
478
+ #invalidateScenes() {
479
+ this.agent.maybeGet(import_scenes_management.ScenesManagementServer)?.makeAllFabricSceneInfoEntriesInvalid();
480
+ }
454
481
  async [Symbol.asyncDispose]() {
455
482
  if (this.internal.transitions) {
456
483
  await this.internal.transitions.close();
@@ -461,10 +488,10 @@ class LevelControlBaseServer extends LevelControlBase {
461
488
  }
462
489
  ((LevelControlBaseServer2) => {
463
490
  class Internal {
464
- /**
465
- * Transition management.
466
- */
491
+ /** Transition management. */
467
492
  transitions;
493
+ /** Internal flag to avoid on/off coupling during transitions */
494
+ blockOnOffCouplingOnce = false;
468
495
  }
469
496
  LevelControlBaseServer2.Internal = Internal;
470
497
  class State extends LevelControlBase.State {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/level-control/LevelControlServer.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,yBAA4B;AAC5B,2BAAmC;AACnC,iCAA2C;AAC3C,oBAA4B;AAC5B,IAAAA,8BAAmC;AACnC,2BAA6B;AAE7B,qBAAwE;AACxE,wBAA2B;AAC3B,sBAAoB;AACpB,mBAAuF;AACvF,kCAAqC;AAnBrC;AAAA;AAAA;AAAA;AAAA;AAqBA,MAAM,SAAS,sBAAO,IAAI,oBAAoB;AAE9C,MAAM,mBAAmB,iDAAqB,KAAK,kCAAa,QAAQ,OAAO,kCAAa,QAAQ,QAAQ;AA+BrG,MAAM,+BAA+B,iBAAiB;AAAA;AAAA,EAMzD,IAAI,WAAW;AACX,WAAO,KAAK,MAAM,aAAa,KAAK,SAAS,WAAW,IAAI;AAAA,EAChE;AAAA;AAAA,EAGA,IAAI,WAAW;AACX,WAAO,KAAK,MAAM,YAAY;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,eAAuB;AACvB,QAAI,KAAK,MAAM,iBAAiB,MAAM;AAClC,YAAM,IAAI;AAAA,QACN;AAAA,QACA,wBAAW;AAAA,MACf;AAAA,IACJ;AACA,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAES,aAA2B;AAKhC,QAAI,KAAK,OAAO,0BAA0B,QAAW;AACjD,WAAK,OAAO,sBAAsB,MAAM,SAAS;AAAA,QAC7C,oBAAoB;AAAA,MACxB;AAAA,IACJ;AAGA,SAAK,SAAS,cAAc,KAAK,uBAAuB;AAGxD,QAAI,KAAK,SAAS,UAAU;AACxB,WAAK,mBAAmB;AAAA,IAC5B;AAGA,QAAI,KAAK,SAAS,SAAS,KAAK,MAAM,IAAI,yBAAW,GAAG;AACpD,WAAK,gBAAgB;AAAA,IACzB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYU,kBAAsC,QAAsC;AAClF,WAAO,IAAI,+BAAY,KAAK,UAAU,MAAM;AAAA,EAChD;AAAA,EAEA,yBAAyB;AACrB,UAAM,EAAE,SAAS,IAAI;AAIrB,UAAM,gBAAiB,SAAS,MAAkC;AAElE,WAAO,KAAK,kBAAkB;AAAA,MAC1B,MAAM;AAAA,MAEN,oBAAoB,KAAK,OAAO;AAAA,MAEhC,IAAI,oBAAoB;AACpB,eAAO,cAAc;AAAA,MACzB;AAAA,MAEA,IAAI,sBAAsB;AACtB,eAAO,cAAc;AAAA,MACzB;AAAA,MAEA,IAAI,eAAe;AACf,eAAO,cAAc;AAAA,MACzB;AAAA,MAEA,YAAY;AAAA,QACR,cAAc;AAAA,UACV,IAAI,MAAM;AACN,mBAAO,cAAc;AAAA,UACzB;AAAA,UAEA,IAAI,MAAM;AACN,mBAAO,cAAc;AAAA,UACzB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,qBAAqB;AAC3B,QAAI,KAAK,MAAM,iBAAiB,GAAG;AAC/B,aAAO;AAAA,QACH,6BAA6B,KAAK,MAAM,YAAY;AAAA,MACxD;AAAA,IACJ;AACA,QAAI,KAAK,aAAa,GAAG;AACrB,aAAO;AAAA,QACH,yBAAyB,KAAK,QAAQ;AAAA,MAC1C;AAAA,IACJ;AACA,QAAI,KAAK,aAAa,KAAM;AACxB,aAAO;AAAA,QACH,yBAAyB,KAAK,QAAQ;AAAA,MAC1C;AAAA,IACJ;AAEA,QAAI,KAAK,eAAe,MAAM,+CAAmB,WAAW,yBAAyB;AACjF,YAAM,oBAAoB,KAAK,MAAM,uBAAuB;AAC5D,YAAM,oBAAoB,KAAK,MAAM;AACrC,UAAI;AAEJ,cAAQ,mBAAmB;AAAA,QACvB,KAAK;AACD,6BAAmB,KAAK;AACxB;AAAA,QACJ,KAAK;AACD,6BAAmB;AACnB;AAAA,QACJ;AACI,6BAAmB;AACnB;AAAA,MACR;AAEA,UAAI,qBAAqB,mBAAmB;AACxC,aAAK,MAAM,eAAe,YAAY,gBAAgB;AAAA,MAC1D;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,kBAAkB;AACxB,SAAK,QAAQ,KAAK,MAAM,IAAI,yBAAW,EAAE,OAAO,eAAe,KAAK,iBAAiB;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQS,YAAY;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAAkD;AAC9C,UAAM,mBAAmB,KAAK,2BAA2B,aAAa,eAAe;AACrF,QAAI,CAAC,KAAK,uBAAuB,gBAAgB,GAAG;AAChD;AAAA,IACJ;AAEA,SAAK,kBAAkB,KAAK;AAE5B,WAAO,KAAK,iBAAiB,OAAO,gBAAgB,OAAO,gBAAgB;AAAA,EAC/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOS,qBAAqB,EAAE,OAAO,eAAe,GAAkD;AACpG,SAAK,kBAAkB,KAAK;AAE5B,WAAO,KAAK,iBAAiB,OAAO,gBAAgB,IAAI;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,MAAqB;AAClC,QAAI,SAAS,GAAG;AACZ,YAAM,IAAI,iCAAoB,0BAA0B,wBAAW,cAAc;AAAA,IACrF;AACA,QAAI,SAAS,MAAM;AACf,aAAO,KAAK,MAAM,mBAAmB;AAAA,IACzC;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaU,iBACN,OACA,gBACA,WACA,UAAiE,CAAC,GACtD;AACZ,UAAM,0BAA0B,kBAAkB,KAAK,MAAM,uBAAuB;AAEpF,QAAI;AACJ,QAAI,yBAAyB;AACzB,uBAAkB,QAAQ,KAAK,gBAAgB,0BAA2B;AAAA,IAC9E;AAEA,WAAO,KAAK,WAAW,OAAO,eAAe,WAAW,OAAO;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASS,KAAK,EAAE,UAAU,MAAM,aAAa,gBAAgB,GAA2C;AACpG,WAAO,KAAK,iBAAiB,IAAI;AAEjC,UAAM,mBAAmB,KAAK,2BAA2B,aAAa,eAAe;AACrF,QAAI,CAAC,KAAK,uBAAuB,gBAAgB,GAAG;AAChD;AAAA,IACJ;AAEA,WAAO,KAAK,UAAU,UAAU,MAAM,OAAO,gBAAgB;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASS,cAAc,EAAE,UAAU,KAAK,GAA2C;AAC/E,WAAO,KAAK,iBAAiB,IAAI;AAEjC,WAAO,KAAK,UAAU,UAAU,MAAM,IAAI;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaU,UACN,UACA,MACA,WACA,UAAiE,CAAC,GACtD;AACZ,QAAI;AACJ,QAAI,aAAa,kCAAa,SAAS,IAAI;AACvC,oBAAc;AAAA,IAClB,OAAO;AACH,oBAAc;AACd,UAAI,MAAM;AACN,gBAAQ;AAAA,MACZ;AAAA,IACJ;AAEA,WAAO,KAAK,WAAW,aAAa,MAAM,WAAW,OAAO;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASS,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAA2C;AACvC,UAAM,mBAAmB,KAAK,2BAA2B,aAAa,eAAe;AACrF,QAAI,CAAC,KAAK,uBAAuB,gBAAgB,GAAG;AAChD;AAAA,IACJ;AACA,WAAO,KAAK,UAAU,UAAU,UAAU,gBAAgB,OAAO,gBAAgB;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOS,cAAc,EAAE,UAAU,UAAU,eAAe,GAA2C;AACnG,WAAO,KAAK,UAAU,UAAU,UAAU,gBAAgB,IAAI;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcU,UACN,UACA,UACA,gBACA,WACA,UAAiE,CAAC,GACtD;AACZ,UAAM,YAAY,aAAa,kCAAa,SAAS,KAAK,IAAI;AAE9D,QAAI;AACJ,QAAI,mBAAmB,MAAM;AACzB,sBAAiB,WAAW,iBAAkB,KAAK;AAAA,IACvD;AAEA,WAAO,KAAK,WAAW,KAAK,eAAe,WAAW,WAAW,eAAe,WAAW,OAAO;AAAA,EACtG;AAAA,EAES,KAAK,EAAE,aAAa,gBAAgB,GAA2C;AACpF,UAAM,mBAAmB,KAAK,2BAA2B,aAAa,eAAe;AACrF,QAAI,CAAC,KAAK,uBAAuB,gBAAgB,GAAG;AAChD;AAAA,IACJ;AAEA,WAAO,KAAK,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAES,cAAc,SAAiD;AACpE,WAAO,KAAK,KAAK,OAAO;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKU,UAAU,WAAkE,CAAC,GAAiB;AACpG,SAAK,SAAS,aAAa,KAAK;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUU,WACN,aACA,YACA,YAAY,OACZ,UAAiE,CAAC,GACtD;AACZ,WAAO,4BAAa;AAAA,MAAK,KAAK,OAAO,WAAW,SAAS,WAAW;AAAA,MAAG,MACnE,KAAK,SAAS,aAAa,MAAM;AAAA,QAC7B,MAAM;AAAA,QACN,OAAO;AAAA,QACP;AAAA,QACA,aAAa;AAAA,QAEb,SAAS;AACL,eAAK,OAAO,WAAW,SAAS,WAAW;AAAA,QAC/C;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OACI,WACA,UAAiE,CAAC,GAClE,aACY;AAEZ,QAAI,KAAK,SAAS,SAAS,aAAa,KAAK,MAAM,IAAI,yBAAW,GAAG;AACjE,UAAI,gBAAgB,QAAW;AAC3B,sBAAc,KAAK;AAAA,MACvB;AAEA,UAAI,gBAAgB,KAAK,UAAU;AAE/B,aAAK,QAAQ,YAAY,gBAAgB;AAAA,UACrC,WAAW,MAAM;AACb,gBAAI,KAAK,iBAAiB,KAAK,UAAU;AACrC,oBAAM,QAAQ,KAAK,MAAM,IAAI,yBAAW;AACxC,kBAAI,MAAM,MAAM,OAAO;AACnB,sBAAM,MAAM,QAAQ;AACpB,uBAAO;AAAA,cACX;AAAA,YACJ;AAEA,mBAAO;AAAA,UACX;AAAA,QACJ,CAAC;AAAA,MACL,OAAO;AAEH,cAAM,QAAQ,KAAK,MAAM,IAAI,yBAAW;AACxC,YAAI,CAAC,MAAM,MAAM,OAAO;AACpB,gBAAM,MAAM,QAAQ;AAGpB,eAAK,kBAAkB,IAAI;AAAA,QAC/B;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,KAAK,SAAS,YAAY,QAAQ,0BAA0B,KAAK,MAAM,IAAI,uCAAkB,GAAG;AAChG,WAAK,QAAQ,YAAY,gBAAgB;AAAA,QACrC,WAAW,MAAM;AACb,gBAAM,eAAe,KAAK,MAAM,IAAI,uCAAkB;AACtD,gBAAM,WAAW,aAAa;AAE9B,gBAAM,UAAU,aAAa,8BAA8B,KAAK,YAAY;AAC5E,cAAI,SAAS;AACT,mBAAO,QAAQ,KAAK,MAAM,aAAa,WAAW,QAAQ;AAAA,UAC9D;AAEA,iBAAO,aAAa,WAAW;AAAA,QACnC;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYU,kBAAkB,OAA8B;AACtD,QAAI,CAAC,SAAS,KAAK,MAAM,YAAY,MAAM;AACvC;AAAA,IACJ;AACA,SAAK,MAAM,eAAe,KAAK,MAAM;AAAA,EACzC;AAAA,EAEA,2BACI,aACA,iBACqD;AACrD,UAAM,UAAU,KAAK,MAAM,WAAW,CAAC;AACvC,WAAO;AAAA,MACH,cAAc,YAAY,eAAe,gBAAgB,eAAe,QAAQ;AAAA,MAChF,wBAAwB,KAAK,SAAS,WAChC,YAAY,yBACR,gBAAgB,yBAChB,QAAQ,yBACZ;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,uBAAuB,SAAgE;AACnF,WACI,QAAQ,gBACR,CAAC,KAAK,SAAS,SACf,CAAC,KAAK,MAAM,IAAI,yBAAW,KAC3B,KAAK,MAAM,IAAI,yBAAW,EAAE,MAAM;AAAA,EAE1C;AAAA,EAEA,kBAAkB,OAAe;AAC7B,QAAI,QAAQ,KAAK,UAAU;AACvB,YAAM,IAAI;AAAA,QACN,sBAAsB,KAAK,+CAA+C,KAAK,QAAQ;AAAA,QACvF,wBAAW;AAAA,MACf;AAAA,IACJ;AACA,QAAI,QAAQ,KAAK,UAAU;AACvB,YAAM,IAAI;AAAA,QACN,sBAAsB,KAAK,4CAA4C,KAAK,QAAQ;AAAA,QACpF,wBAAW;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,iBAAiB;AACb,UAAM,eAAe,KAAK,IAAI,IAAI,4BAAU;AAC5C,QAAI,aAAa,UAAU,IAAI,qDAA0B,GAAG;AACxD,aAAO,aAAa,QAAQ,qDAA0B,EAAE;AAAA,IAC5D;AAAA,EACJ;AAAA,EAEA,OAAgB,OAAO,YAAY,IAAI;AACnC,QAAI,KAAK,SAAS,aAAa;AAC3B,YAAM,KAAK,SAAS,YAAY,MAAM;AACtC,WAAK,SAAS,cAAc;AAAA,IAChC;AACA,UAAM,MAAM,OAAO,YAAY,IAAI;AAAA,EACvC;AACJ;AAAA,CAEO,CAAUC,4BAAV;AAAA,EACI,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA,IAIlB;AAAA,EACJ;AALO,EAAAA,wBAAM;AAAA,EAON,MAAM,cAAc,iBAAiB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQ9C,gCAAgC;AAAA;AAAA;AAAA;AAAA;AAAA,IAMhC,sBAAsB;AAAA;AAAA;AAAA;AAAA,IAKtB,6BAAyB,uBAAO,GAAG;AAAA,IAEnC,CAAC,oBAAI,UAAU,EAAE,UAAoB;AAEjC,UACK,SAAS,UAAU,WAAWA,uBAAsB,GAA+B,kBAChF,UACH,SAAS,UAAU,YAAYA,uBAAsB,GAA+B,kBACjF,QACN;AACE,eAAO,CAAC;AAAA,MACZ;AACA,aAAO;AAAA,QACH,IAAI,cAAc,OAAe;AAC7B,gBAAM,aAAa,SAAS,UAAU,YAAYA,uBAAsB,EAAE;AAC1E,cAAI,YAAY;AACZ,uBAAW,gBAAgB;AAAA,UAC/B;AAAA,QACJ;AAAA,QAEA,IAAI,gBAAgB;AAChB,iBAAO,SAAS,UAAU,YAAYA,uBAAsB,EAAE,aAAa,iBAAiB;AAAA,QAChG;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AA5CO,EAAAA,wBAAM;AAAA,EA8CN,MAAM,eAAe,iBAAiB,OAAO;AAAA,IAChD,gCAA4B,gCAA2E;AAAA,EAC3G;AAFO,EAAAA,wBAAM;AAAA,GAtDA;AAuFV,MAAM,2BAA2B,uBAAuB,QAAI,0BAAY,kCAAa,IAAI,CAAC,EAAE;AAAC;AAEpG,SAAS,YAAY,OAAsB;AACvC,MAAI,UAAU,MAAM;AAChB,WAAO;AAAA,EACX;AAEA,SAAO,KAAK,MAAM,KAAK;AAC3B;",
4
+ "mappings": "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",
5
5
  "names": ["import_general_diagnostics", "LevelControlBaseServer"]
6
6
  }
@@ -33,14 +33,9 @@ export declare class OnOffBaseServer extends OnOffLogicBase {
33
33
  /**
34
34
  * Default implementation notes:
35
35
  * * This implementation ignores the effect and just calls off().
36
- * * Global Scene Control is not supported yet.
37
36
  */
38
37
  offWithEffect(): MaybePromise;
39
- /**
40
- * Default implementation notes:
41
- * * Global Scene Control is not supported yet, so the device is just turned on.
42
- */
43
- onWithRecallGlobalScene(): MaybePromise;
38
+ onWithRecallGlobalScene(): Promise<void>;
44
39
  /**
45
40
  * Default implementation notes:
46
41
  * * This method uses the on/off methods when timed actions should occur. This means that it is enough to override
@@ -54,6 +49,8 @@ export declare namespace OnOffBaseServer {
54
49
  class Internal {
55
50
  timedOnTimer?: Timer;
56
51
  delayedOffTimer?: Timer;
52
+ applySceneDelayTimer?: Timer;
53
+ applyScenePendingOnOff?: boolean;
57
54
  }
58
55
  }
59
56
  declare const OnOffServer_base: import("../../index.js").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterComposer.WithFeatures<OnOff.Cluster, readonly [OnOff.Feature.Lighting]>, readonly []>, typeof OnOffBaseServer, import("./OnOffInterface.js").OnOffInterface>;
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/on-off/OnOffServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAgB,KAAK,EAAE,MAAM,UAAU,CAAC;AAI7D,QAAA,MAAM,cAAc,4PAA6C,CAAC;AAElE;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,cAAc;;IAC/C,UAAkB,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;IAE5C,UAAU,IAAI,YAAY;IAgBpB,CAAC,MAAM,CAAC,YAAY,CAAC;IAM3B,EAAE,IAAI,YAAY;IAalB,GAAG,IAAI,YAAY;IAa5B;;;;OAIG;IACM,MAAM,IAAI,YAAY;IAQ/B;;;;OAIG;IACM,aAAa,IAAI,YAAY;IAQtC;;;OAGG;IACM,uBAAuB,IAAI,YAAY;IAYhD;;;;OAIG;IACM,cAAc,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,qBAAqB,GAAG,YAAY;IAoBzG,SAAS,KAAK,YAAY,UAUzB;IAaD,SAAS,KAAK,eAAe,UAU5B;CAiBJ;AAED,yBAAiB,eAAe,CAAC;IAC7B,MAAa,QAAQ;QACjB,YAAY,CAAC,EAAE,KAAK,CAAC;QACrB,eAAe,CAAC,EAAE,KAAK,CAAC;KAC3B;CACJ;;AAID,qBAAa,WAAY,SAAQ,gBAAsB;CAAG"}
1
+ {"version":3,"file":"OnOffServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/on-off/OnOffServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAgB,KAAK,EAAE,MAAM,UAAU,CAAC;AAK7D,QAAA,MAAM,cAAc,4PAA6C,CAAC;AAElE;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,cAAc;;IAC/C,UAAkB,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;IAE5C,UAAU,IAAI,YAAY;IAqBpB,CAAC,MAAM,CAAC,YAAY,CAAC;IAM3B,EAAE,IAAI,YAAY;IAqBlB,GAAG,IAAI,YAAY;IAgB5B;;;;OAIG;IACM,MAAM,IAAI,YAAY;IAQ/B;;;OAGG;IACM,aAAa,IAAI,YAAY;IAavB,uBAAuB;IAsBtC;;;;OAIG;IACM,cAAc,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,qBAAqB,GAAG,YAAY;IAoBzG,SAAS,KAAK,YAAY,UAUzB;IAaD,SAAS,KAAK,eAAe,UAU5B;CAwDJ;AAED,yBAAiB,eAAe,CAAC;IAC7B,MAAa,QAAQ;QACjB,YAAY,CAAC,EAAE,KAAK,CAAC;QACrB,eAAe,CAAC,EAAE,KAAK,CAAC;QACxB,oBAAoB,CAAC,EAAE,KAAK,CAAC;QAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;KACpC;CACJ;;AAID,qBAAa,WAAY,SAAQ,gBAAsB;CAAG"}
@@ -23,10 +23,12 @@ __export(OnOffServer_exports, {
23
23
  });
24
24
  module.exports = __toCommonJS(OnOffServer_exports);
25
25
  var import_general_diagnostics = require("#behaviors/general-diagnostics");
26
+ var import_scenes_management = require("#behaviors/scenes-management");
26
27
  var import_general_diagnostics2 = require("#clusters/general-diagnostics");
27
28
  var import_on_off = require("#clusters/on-off");
28
29
  var import_general = require("#general");
29
30
  var import_ServerNode = require("#node/ServerNode.js");
31
+ var import_protocol = require("#protocol");
30
32
  var import_OnOffBehavior = require("./OnOffBehavior.js");
31
33
  /**
32
34
  * @license
@@ -46,6 +48,10 @@ class OnOffBaseServer extends OnOffLogicBase {
46
48
  }
47
49
  }
48
50
  }
51
+ if (this.agent.has(import_scenes_management.ScenesManagementServer)) {
52
+ this.agent.get(import_scenes_management.ScenesManagementServer).implementScenes(this, this.#applySceneValues);
53
+ this.reactTo(this.events.onOff$Changed, this.#clearDelayedSceneApplyData);
54
+ }
49
55
  }
50
56
  async [Symbol.asyncDispose]() {
51
57
  this.internal.timedOnTimer?.stop();
@@ -53,6 +59,9 @@ class OnOffBaseServer extends OnOffLogicBase {
53
59
  await super[Symbol.asyncDispose]?.();
54
60
  }
55
61
  on() {
62
+ if (!this.state.onOff) {
63
+ this.#invalidateScenes();
64
+ }
56
65
  this.state.onOff = true;
57
66
  if (this.features.lighting) {
58
67
  this.state.globalSceneControl = true;
@@ -64,7 +73,14 @@ class OnOffBaseServer extends OnOffLogicBase {
64
73
  }
65
74
  }
66
75
  }
76
+ /** Invalidate all stored scenes manually for this endpoint in the Scenesmanagement cluster because SDK behavior. */
77
+ #invalidateScenes() {
78
+ this.agent.maybeGet(import_scenes_management.ScenesManagementServer)?.makeAllFabricSceneInfoEntriesInvalid();
79
+ }
67
80
  off() {
81
+ if (this.state.onOff) {
82
+ this.#invalidateScenes();
83
+ }
68
84
  this.state.onOff = false;
69
85
  if (this.features.lighting) {
70
86
  if (this.timedOnTimer.isRunning) {
@@ -91,27 +107,28 @@ class OnOffBaseServer extends OnOffLogicBase {
91
107
  /**
92
108
  * Default implementation notes:
93
109
  * * This implementation ignores the effect and just calls off().
94
- * * Global Scene Control is not supported yet.
95
110
  */
96
111
  offWithEffect() {
97
112
  if (this.state.globalSceneControl) {
113
+ if ((0, import_protocol.hasRemoteActor)(this.context) && this.context.session.fabric !== void 0) {
114
+ this.endpoint.agentFor(this.context).maybeGet(import_scenes_management.ScenesManagementServer)?.storeGlobalScene(this.context.session.fabric.fabricIndex);
115
+ }
98
116
  this.state.globalSceneControl = false;
99
117
  }
100
118
  return this.off();
101
119
  }
102
- /**
103
- * Default implementation notes:
104
- * * Global Scene Control is not supported yet, so the device is just turned on.
105
- */
106
- onWithRecallGlobalScene() {
120
+ async onWithRecallGlobalScene() {
107
121
  if (this.state.globalSceneControl) {
108
122
  return;
109
123
  }
124
+ if ((0, import_protocol.hasRemoteActor)(this.context) && this.context.session.fabric !== void 0 && this.agent.has(import_scenes_management.ScenesManagementServer)) {
125
+ await this.endpoint.agentFor(this.context).maybeGet(import_scenes_management.ScenesManagementServer)?.recallGlobalScene(this.context.session.fabric.fabricIndex);
126
+ }
110
127
  this.state.globalSceneControl = true;
111
128
  if (this.state.onTime === 0) {
112
129
  this.state.offWaitTime = 0;
113
130
  }
114
- return this.on();
131
+ await this.on();
115
132
  }
116
133
  /**
117
134
  * Default implementation notes:
@@ -165,6 +182,39 @@ class OnOffBaseServer extends OnOffLogicBase {
165
182
  }
166
183
  return timer;
167
184
  }
185
+ /** Apply Scene values when requested from ScenesManagement cluster */
186
+ #applySceneValues(values, transitionTime) {
187
+ this.#clearDelayedSceneApplyData();
188
+ const onOff = values.onOff;
189
+ if (typeof onOff !== "boolean" || this.state.onOff === onOff) {
190
+ return;
191
+ }
192
+ if (transitionTime === 0) {
193
+ this.state.onOff = onOff;
194
+ } else {
195
+ this.internal.applyScenePendingOnOff = onOff;
196
+ this.internal.applySceneDelayTimer = import_general.Time.getPeriodicTimer(
197
+ "delayed scene apply",
198
+ (0, import_general.Millis)(transitionTime),
199
+ this.callback(this.#applyDelayedSceneOnOffValue)
200
+ ).start();
201
+ }
202
+ }
203
+ #clearDelayedSceneApplyData() {
204
+ if (this.internal.applySceneDelayTimer?.isRunning) {
205
+ this.internal.applySceneDelayTimer.stop();
206
+ }
207
+ this.internal.applySceneDelayTimer = void 0;
208
+ this.internal.applyScenePendingOnOff = void 0;
209
+ }
210
+ #applyDelayedSceneOnOffValue() {
211
+ const onOff = this.internal.applyScenePendingOnOff;
212
+ this.#clearDelayedSceneApplyData();
213
+ if (onOff === void 0) {
214
+ return;
215
+ }
216
+ this.state.onOff = onOff;
217
+ }
168
218
  #delayedOffTick() {
169
219
  let time = (this.state.offWaitTime ?? 0) - 1;
170
220
  if (time <= 0) {
@@ -184,6 +234,8 @@ class OnOffBaseServer extends OnOffLogicBase {
184
234
  class Internal {
185
235
  timedOnTimer;
186
236
  delayedOffTimer;
237
+ applySceneDelayTimer;
238
+ applyScenePendingOnOff;
187
239
  }
188
240
  OnOffBaseServer2.Internal = Internal;
189
241
  })(OnOffBaseServer || (OnOffBaseServer = {}));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/on-off/OnOffServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["import_general_diagnostics", "OnOffBaseServer"]
6
6
  }
@@ -3,11 +3,130 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- /*** THIS FILE WILL BE REGENERATED IF YOU DO NOT REMOVE THIS MESSAGE ***/
7
- import { ScenesManagementBehavior } from "./ScenesManagementBehavior.js";
6
+ import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
7
+ import { ScenesManagement } from "#clusters/scenes-management";
8
+ import { BasicSet, ObserverGroup } from "#general";
9
+ import { Val } from "#protocol";
10
+ import { AttributeId, ClusterId, FabricIndex, GroupId, TlvSchema } from "#types";
11
+ import { MaybePromise } from "@matter/general";
12
+ /** Internal meta information for sceneable attributes on the endpoint */
13
+ type AttributeDetails = {
14
+ id: AttributeId;
15
+ name: string;
16
+ schema: TlvSchema<any>;
17
+ type: string;
18
+ mappedType: AttributeValuePairDataFields;
19
+ nullable: boolean;
20
+ };
21
+ /** Enum for the allowed fields in AttributeValuePair */
22
+ declare const enum AttributeValuePairDataFields {
23
+ ValueUnsigned8 = "valueUnsigned8",
24
+ ValueSigned8 = "valueSigned8",
25
+ ValueUnsigned16 = "valueUnsigned16",
26
+ ValueSigned16 = "valueSigned16",
27
+ ValueUnsigned32 = "valueUnsigned32",
28
+ ValueSigned32 = "valueSigned32",
29
+ ValueUnsigned64 = "valueUnsigned64",
30
+ ValueSigned64 = "valueSigned64"
31
+ }
32
+ /** Mapping from Datatypes to the AttributeValuePair field to use and expect */
33
+ export declare const DataTypeToSceneAttributeDataMap: Record<string, AttributeValuePairDataFields | undefined>;
34
+ declare const ScenesManagementBase: ClusterBehavior.Type<import("#types").ClusterComposer.WithFeatures<ScenesManagement.Cluster, readonly [ScenesManagement.Feature]>, import("./ScenesManagementBehavior.js").ScenesManagementBehaviorConstructor, import("./ScenesManagementInterface.js").ScenesManagementInterface>;
8
35
  /**
9
36
  * This is the default server implementation of {@link ScenesManagementBehavior}.
37
+ * We implement the full Scenes Management cluster as specified in the Matter Spec.
38
+ * The SceneName feature is enabled by default.
39
+ *
40
+ * When a scene is applied/recalled then the relevant clusters are informed via the "applySceneValues" event they need
41
+ * to implement. If they do not implement the scene is not applied for that cluster.
10
42
  */
11
- export declare class ScenesManagementServer extends ScenesManagementBehavior {
43
+ export declare class ScenesManagementServer extends ScenesManagementBase {
44
+ #private;
45
+ state: ScenesManagementServer.State;
46
+ protected internal: ScenesManagementServer.Internal;
47
+ initialize(): void;
48
+ /**
49
+ * Handles removal of one group in a fabric.
50
+ * This method is called by the GroupsServer implementation and also internally by this cluster.
51
+ */
52
+ removeScenesForGroupOnFabric(fabricIndex: FabricIndex, groupId: GroupId): void;
53
+ /** Handles removal of all groups in a fabric. This method is called by the GroupsServer implementation. */
54
+ removeScenesForAllGroupsForFabric(fabricIndex: FabricIndex): void;
55
+ /** Implements the AddScene command */
56
+ addScene({ groupId: reqGroupId, sceneId, sceneName, transitionTime, extensionFieldSetStructs, }: ScenesManagement.AddSceneRequest): ScenesManagement.AddSceneResponse;
57
+ /** Implements the ViewScene command */
58
+ viewScene({ groupId: reqGroupId, sceneId, }: ScenesManagement.ViewSceneRequest): ScenesManagement.ViewSceneResponse;
59
+ /** Implements the RemoveScene command */
60
+ removeScene({ groupId: reqGroupId, sceneId, }: ScenesManagement.RemoveSceneRequest): ScenesManagement.RemoveSceneResponse;
61
+ /** Implements the RemoveAllScenes command */
62
+ removeAllScenes({ groupId: reqGroupId, }: ScenesManagement.RemoveAllScenesRequest): ScenesManagement.RemoveAllScenesResponse;
63
+ /** Implements the StoreScene command */
64
+ storeScene({ groupId: reqGroupId, sceneId, }: ScenesManagement.StoreSceneRequest): ScenesManagement.StoreSceneResponse;
65
+ /** Implements the RecallScene command */
66
+ recallScene({ groupId: reqGroupId, sceneId, transitionTime }: ScenesManagement.RecallSceneRequest): Promise<void>;
67
+ /** Implements the GetSceneMembership command */
68
+ getSceneMembership({ groupId: reqGroupId, }: ScenesManagement.GetSceneMembershipRequest): ScenesManagement.GetSceneMembershipResponse;
69
+ /** Implements the CopyScene command */
70
+ copyScene({ mode, groupIdentifierFrom, sceneIdentifierFrom, groupIdentifierTo, sceneIdentifierTo, }: ScenesManagement.CopySceneRequest): ScenesManagement.CopySceneResponse;
71
+ /** Close the observers */
72
+ [Symbol.asyncDispose](): Promise<void>;
73
+ /** Method used by the OnOff cluster to recall the global scene */
74
+ recallGlobalScene(fabricIndex: FabricIndex): Promise<void>;
75
+ /** Method used by the OnOff cluster to store the global scene */
76
+ storeGlobalScene(fabricIndex: FabricIndex): void;
77
+ /**
78
+ * Main method for Clusters to Register themselves with their "Apply Scenes Callback".
79
+ *
80
+ * @param behavior ClusterBehavior implementing a cluster with sceneable attributes
81
+ * @param applyFunc Function that applies scene values for that cluster
82
+ */
83
+ implementScenes<T extends ClusterBehavior>(behavior: T, applyFunc: ScenesManagementServer.ApplySceneValuesFunc<T>): void;
84
+ /**
85
+ * Invalidate all fabric scene info entries.
86
+ * Method will be called by relevant clusters when commands change the state.
87
+ */
88
+ makeAllFabricSceneInfoEntriesInvalid(): void;
89
+ }
90
+ export declare namespace ScenesManagementServer {
91
+ /** Scene Attribute Data format used internally to store scene attribute values */
92
+ type SceneAttributeData = {
93
+ [key: string]: {
94
+ [key: string]: boolean | number | bigint | null;
95
+ };
96
+ };
97
+ /** Scene Table Entry as decorated class for persistence */
98
+ class ScenesTableEntry implements Omit<ScenesManagement.LogicalSceneTable, "extensionFields"> {
99
+ sceneGroupId: GroupId;
100
+ sceneId: number;
101
+ sceneName?: string;
102
+ sceneTransitionTime: number;
103
+ sceneValues: SceneAttributeData;
104
+ fabricIndex: FabricIndex;
105
+ }
106
+ class State extends ScenesManagementBase.State {
107
+ sceneTable: ScenesTableEntry[];
108
+ }
109
+ type ApplySceneValuesFunc<T extends ClusterBehavior> = (this: T, values: Val.Struct, transitionTime: number) => MaybePromise;
110
+ class Internal {
111
+ /** ObserverGroup for all $Changed events of sceneable attributes */
112
+ endpointSceneAttributeObservers: ObserverGroup;
113
+ /** Fabric index where a scene is currently valid, if any */
114
+ monitorSceneAttributesForFabric: FabricIndex | null;
115
+ /** Map of sceneable behaviors/clusters and their sceneable attributes on the endpoint */
116
+ endpointSceneableBehaviors: BasicSet<{
117
+ id: ClusterId;
118
+ name: string;
119
+ attributes: BasicSet<AttributeDetails>;
120
+ clusterBehaviorType: ClusterBehavior.Type;
121
+ applyFunc: ApplySceneValuesFunc<any>;
122
+ }, {
123
+ id: ClusterId;
124
+ name: string;
125
+ attributes: BasicSet<AttributeDetails>;
126
+ clusterBehaviorType: ClusterBehavior.Type;
127
+ applyFunc: ApplySceneValuesFunc<any>;
128
+ }>;
129
+ }
12
130
  }
131
+ export {};
13
132
  //# sourceMappingURL=ScenesManagementServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScenesManagementServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/scenes-management/ScenesManagementServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yEAAyE;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,wBAAwB;CAAG"}
1
+ {"version":3,"file":"ScenesManagementServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/scenes-management/ScenesManagementServer.ts"],"names":[],"mappings":"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"}