@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.
- package/dist/cjs/behavior/Behavior.d.ts +2 -2
- package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
- package/dist/cjs/behavior/Behavior.js +1 -1
- package/dist/cjs/behavior/Behavior.js.map +1 -1
- package/dist/cjs/behavior/Events.js.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts +3 -2
- package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehavior.js.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/system/mqtt/MqttInterface.js +1 -1
- package/dist/cjs/behavior/system/mqtt/MqttInterface.js.map +1 -1
- package/dist/cjs/behaviors/basic-information/BasicInformationServer.d.ts +2 -2
- package/dist/cjs/behaviors/basic-information/BasicInformationServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/basic-information/BasicInformationServer.js +0 -3
- package/dist/cjs/behaviors/basic-information/BasicInformationServer.js.map +1 -1
- package/dist/cjs/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts +1 -1
- package/dist/cjs/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts +3 -3
- package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/color-control/ColorControlServer.js +118 -3
- package/dist/cjs/behaviors/color-control/ColorControlServer.js.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.d.ts +1 -1
- package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
- package/dist/cjs/behaviors/groups/GroupsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/groups/GroupsServer.js +9 -1
- package/dist/cjs/behaviors/groups/GroupsServer.js.map +1 -1
- package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts +5 -5
- package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/level-control/LevelControlServer.js +54 -27
- package/dist/cjs/behaviors/level-control/LevelControlServer.js.map +1 -1
- package/dist/cjs/behaviors/on-off/OnOffServer.d.ts +3 -6
- package/dist/cjs/behaviors/on-off/OnOffServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/on-off/OnOffServer.js +59 -7
- package/dist/cjs/behaviors/on-off/OnOffServer.js.map +1 -1
- package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.d.ts +122 -3
- package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.js +909 -1
- package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.js.map +2 -2
- package/dist/cjs/behaviors/switch/SwitchServer.d.ts +1 -1
- package/dist/cjs/behaviors/switch/SwitchServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/switch/SwitchServer.js.map +1 -1
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js +2 -2
- package/dist/cjs/behaviors/thermostat/AtomicWriteHandler.js.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/thermostat/ThermostatServer.js.map +1 -1
- package/dist/cjs/devices/color-temperature-light.d.ts +4 -4
- package/dist/cjs/devices/dimmable-light.d.ts +4 -4
- package/dist/cjs/devices/dimmable-plug-in-unit.d.ts +4 -4
- package/dist/cjs/devices/extended-color-light.d.ts +4 -4
- package/dist/cjs/devices/mounted-dimmable-load-control.d.ts +4 -4
- package/dist/cjs/devices/mounted-on-off-control.d.ts +4 -4
- package/dist/cjs/devices/on-off-light.d.ts +4 -4
- package/dist/cjs/devices/on-off-plug-in-unit.d.ts +4 -4
- package/dist/cjs/endpoint/Agent.d.ts +5 -0
- package/dist/cjs/endpoint/Agent.d.ts.map +1 -1
- package/dist/cjs/endpoint/Agent.js +9 -0
- package/dist/cjs/endpoint/Agent.js.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/cjs/node/integration/ProtocolService.js +1 -1
- package/dist/cjs/node/integration/ProtocolService.js.map +1 -1
- package/dist/esm/behavior/Behavior.d.ts +2 -2
- package/dist/esm/behavior/Behavior.d.ts.map +1 -1
- package/dist/esm/behavior/Behavior.js +1 -1
- package/dist/esm/behavior/Behavior.js.map +1 -1
- package/dist/esm/behavior/Events.js.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehavior.d.ts +3 -2
- package/dist/esm/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehavior.js.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/system/mqtt/MqttInterface.js +1 -1
- package/dist/esm/behavior/system/mqtt/MqttInterface.js.map +1 -1
- package/dist/esm/behaviors/basic-information/BasicInformationServer.d.ts +2 -2
- package/dist/esm/behaviors/basic-information/BasicInformationServer.d.ts.map +1 -1
- package/dist/esm/behaviors/basic-information/BasicInformationServer.js +1 -4
- package/dist/esm/behaviors/basic-information/BasicInformationServer.js.map +1 -1
- package/dist/esm/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts +1 -1
- package/dist/esm/behaviors/bridged-device-basic-information/BridgedDeviceBasicInformationServer.d.ts.map +1 -1
- package/dist/esm/behaviors/color-control/ColorControlServer.d.ts +3 -3
- package/dist/esm/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
- package/dist/esm/behaviors/color-control/ColorControlServer.js +118 -3
- package/dist/esm/behaviors/color-control/ColorControlServer.js.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.d.ts +1 -1
- package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
- package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
- package/dist/esm/behaviors/groups/GroupsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/groups/GroupsServer.js +9 -1
- package/dist/esm/behaviors/groups/GroupsServer.js.map +1 -1
- package/dist/esm/behaviors/level-control/LevelControlServer.d.ts +5 -5
- package/dist/esm/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
- package/dist/esm/behaviors/level-control/LevelControlServer.js +55 -28
- package/dist/esm/behaviors/level-control/LevelControlServer.js.map +1 -1
- package/dist/esm/behaviors/on-off/OnOffServer.d.ts +3 -6
- package/dist/esm/behaviors/on-off/OnOffServer.d.ts.map +1 -1
- package/dist/esm/behaviors/on-off/OnOffServer.js +59 -7
- package/dist/esm/behaviors/on-off/OnOffServer.js.map +1 -1
- package/dist/esm/behaviors/scenes-management/ScenesManagementServer.d.ts +122 -3
- package/dist/esm/behaviors/scenes-management/ScenesManagementServer.d.ts.map +1 -1
- package/dist/esm/behaviors/scenes-management/ScenesManagementServer.js +960 -1
- package/dist/esm/behaviors/scenes-management/ScenesManagementServer.js.map +2 -2
- package/dist/esm/behaviors/switch/SwitchServer.d.ts +1 -1
- package/dist/esm/behaviors/switch/SwitchServer.d.ts.map +1 -1
- package/dist/esm/behaviors/switch/SwitchServer.js.map +1 -1
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js +2 -2
- package/dist/esm/behaviors/thermostat/AtomicWriteHandler.js.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.d.ts.map +1 -1
- package/dist/esm/behaviors/thermostat/ThermostatServer.js.map +1 -1
- package/dist/esm/devices/color-temperature-light.d.ts +4 -4
- package/dist/esm/devices/dimmable-light.d.ts +4 -4
- package/dist/esm/devices/dimmable-plug-in-unit.d.ts +4 -4
- package/dist/esm/devices/extended-color-light.d.ts +4 -4
- package/dist/esm/devices/mounted-dimmable-load-control.d.ts +4 -4
- package/dist/esm/devices/mounted-on-off-control.d.ts +4 -4
- package/dist/esm/devices/on-off-light.d.ts +4 -4
- package/dist/esm/devices/on-off-plug-in-unit.d.ts +4 -4
- package/dist/esm/endpoint/Agent.d.ts +5 -0
- package/dist/esm/endpoint/Agent.d.ts.map +1 -1
- package/dist/esm/endpoint/Agent.js +9 -0
- package/dist/esm/endpoint/Agent.js.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/esm/node/integration/ProtocolService.js +1 -1
- package/dist/esm/node/integration/ProtocolService.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/Behavior.ts +2 -2
- package/src/behavior/Events.ts +1 -1
- package/src/behavior/cluster/ClusterBehavior.ts +4 -2
- package/src/behavior/cluster/ClusterBehaviorUtil.ts +1 -1
- package/src/behavior/internal/BehaviorBacking.ts +1 -1
- package/src/behavior/system/mqtt/MqttInterface.ts +1 -1
- package/src/behaviors/basic-information/BasicInformationServer.ts +3 -7
- package/src/behaviors/color-control/ColorControlServer.ts +132 -3
- package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +1 -1
- package/src/behaviors/group-key-management/GroupKeyManagementServer.ts +2 -2
- package/src/behaviors/groups/GroupsServer.ts +13 -1
- package/src/behaviors/level-control/LevelControlServer.ts +72 -29
- package/src/behaviors/on-off/OnOffServer.ts +78 -9
- package/src/behaviors/scenes-management/ScenesManagementServer.ts +1123 -3
- package/src/behaviors/switch/SwitchServer.ts +1 -1
- package/src/behaviors/thermostat/AtomicWriteHandler.ts +4 -4
- package/src/behaviors/thermostat/ThermostatServer.ts +1 -1
- package/src/endpoint/Agent.ts +10 -0
- package/src/endpoint/properties/Behaviors.ts +1 -1
- 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
|
-
|
|
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
|
-
|
|
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 -
|
|
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
|
-
|
|
352
|
-
|
|
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.
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iCAA2C;AAC3C,IAAAA,8BAAmC;AACnC,oBAAsB;AACtB,qBAAkD;AAClD,wBAA2B;AAC3B,2BAA8B;
|
|
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
|
-
|
|
7
|
-
import {
|
|
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
|
|
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;
|
|
1
|
+
{"version":3,"file":"ScenesManagementServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/scenes-management/ScenesManagementServer.ts"],"names":[],"mappings":"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"}
|