homebridge-sonos-scenes 0.1.43 → 0.1.44

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/README.md CHANGED
@@ -50,6 +50,7 @@ Typical examples:
50
50
  - Scene test runs before saving
51
51
  - Per-room volume overrides
52
52
  - Optional scene volume fade time for configured room volumes
53
+ - Fades cancel cleanly when a newer scene action arrives, so turning a scene off never waits behind a long fade
53
54
  - Virtual rooms for Sonos Amp left and right split-room installs
54
55
  - Per-channel on/off plus virtual room volume control
55
56
  - Virtual room create, edit, and validation flows in the Homebridge UI
@@ -74,7 +75,7 @@ This roadmap is meant to show the direction of the project, not lock every featu
74
75
 
75
76
  - **TV Source General Availability**: move local TV input scenes out of the advanced/experimental toggle after broader validation across TV-capable Sonos devices and common home-theater setups.
76
77
  - **Scene State Reconciliation**: expand the v0.1.31 group-membership reconciliation into a stronger live-state system, including source and playback-state awareness where Sonos reports those states reliably.
77
- - **Volume Ramping / Fade-In-Fade-Out**: initial per-scene volume fade time is available for configured room volumes; continue tuning cancellation, long fades, and real-world Sonos pacing.
78
+ - **Volume Ramping / Fade-In-Fade-Out**: per-scene volume fade time is available and fades now cancel when a newer scene action arrives; continue tuning long fades and real-world Sonos pacing.
78
79
  - **Scene Off = Restore Previous State**: add off behaviors beyond ungrouping, such as pause, stop, restore the prior group topology, or return rooms to a default idle state.
79
80
  - **Crossfade, Sleep Timer, and EQ Per Scene**: add optional per-scene playback settings such as crossfade, sleep timer minutes, bass, treble, and loudness, with safeguards so scenes do not leave speakers in surprising states.
80
81
 
@@ -7,6 +7,9 @@ export declare class SceneRunner {
7
7
  private readonly logger;
8
8
  private queues;
9
9
  private previousSceneStates;
10
+ private latestRunIds;
11
+ private activeRampAborts;
12
+ private runSequence;
10
13
  constructor(discoveryService: DiscoveryService, transport: SonosTransport, logger: StructuredLogger);
11
14
  runOn(scene: SceneDefinition): Promise<SceneRunResult>;
12
15
  runOff(scene: SceneDefinition): Promise<SceneRunResult>;
@@ -3,11 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SceneRunner = void 0;
4
4
  const config_1 = require("./config");
5
5
  const logger_1 = require("./logger");
6
- function sleep(ms) {
7
- if (ms <= 0) {
6
+ function sleep(ms, signal) {
7
+ if (ms <= 0 || signal?.aborted) {
8
8
  return Promise.resolve();
9
9
  }
10
- return new Promise((resolve) => setTimeout(resolve, ms));
10
+ return new Promise((resolve) => {
11
+ const onAbort = () => {
12
+ clearTimeout(timer);
13
+ resolve();
14
+ };
15
+ const timer = setTimeout(() => {
16
+ signal?.removeEventListener("abort", onAbort);
17
+ resolve();
18
+ }, ms);
19
+ signal?.addEventListener("abort", onAbort, { once: true });
20
+ });
11
21
  }
12
22
  const VOLUME_RAMP_STEP_MS = 500;
13
23
  const MAX_VOLUME_RAMP_STEPS = 30;
@@ -17,6 +27,9 @@ class SceneRunner {
17
27
  logger;
18
28
  queues = new Map();
19
29
  previousSceneStates = new Map();
30
+ latestRunIds = new Map();
31
+ activeRampAborts = new Map();
32
+ runSequence = 0;
20
33
  constructor(discoveryService, transport, logger) {
21
34
  this.discoveryService = discoveryService;
22
35
  this.transport = transport;
@@ -33,6 +46,9 @@ class SceneRunner {
33
46
  }
34
47
  enqueue(scene, trigger) {
35
48
  const queueKey = `${scene.householdId}:${scene.coordinatorPlayerId || scene.id}`;
49
+ const runId = ++this.runSequence;
50
+ this.latestRunIds.set(queueKey, runId);
51
+ this.activeRampAborts.get(queueKey)?.abort();
36
52
  const previous = this.queues.get(queueKey) ?? Promise.resolve({
37
53
  ok: true,
38
54
  sceneId: scene.id,
@@ -42,16 +58,19 @@ class SceneRunner {
42
58
  });
43
59
  const next = previous
44
60
  .catch(() => undefined)
45
- .then(() => this.execute(scene, trigger))
61
+ .then(() => this.execute(scene, trigger, queueKey, runId))
46
62
  .finally(() => {
47
63
  if (this.queues.get(queueKey) === next) {
48
64
  this.queues.delete(queueKey);
49
65
  }
66
+ if (this.latestRunIds.get(queueKey) === runId) {
67
+ this.latestRunIds.delete(queueKey);
68
+ }
50
69
  });
51
70
  this.queues.set(queueKey, next);
52
71
  return next;
53
72
  }
54
- async execute(scene, trigger) {
73
+ async execute(scene, trigger, queueKey, runId) {
55
74
  const collector = new logger_1.MemoryLogCollector();
56
75
  const logger = this.logger.child(scene.id);
57
76
  const scopedLogger = new logger_1.StructuredLogger(`scene:${scene.id}`, "debug", undefined, collector);
@@ -60,6 +79,12 @@ class SceneRunner {
60
79
  scopedLogger[level](message);
61
80
  logger[level](message);
62
81
  };
82
+ const rampAbort = new AbortController();
83
+ if (this.latestRunIds.get(queueKey) !== runId) {
84
+ // A newer trigger is already queued behind this run; skip slow fades so it starts sooner.
85
+ rampAbort.abort();
86
+ }
87
+ this.activeRampAborts.set(queueKey, rampAbort);
63
88
  log("info", `Running scene "${scene.name}" (${trigger}).`);
64
89
  try {
65
90
  const snapshot = await this.discoveryService.refresh();
@@ -80,7 +105,7 @@ class SceneRunner {
80
105
  if (trigger === "on" && scene.offBehavior.kind === "restore_previous") {
81
106
  await this.capturePreviousSceneState(scene, snapshot, log);
82
107
  }
83
- await this.executeOn(scene, log);
108
+ await this.executeOn(scene, log, rampAbort.signal);
84
109
  log("info", `Scene "${scene.name}" complete.`);
85
110
  return this.result(true, scene.id, trigger, collector.entries, errors, snapshot);
86
111
  }
@@ -90,6 +115,11 @@ class SceneRunner {
90
115
  log("error", message);
91
116
  return this.result(false, scene.id, trigger, collector.entries, errors);
92
117
  }
118
+ finally {
119
+ if (this.activeRampAborts.get(queueKey) === rampAbort) {
120
+ this.activeRampAborts.delete(queueKey);
121
+ }
122
+ }
93
123
  }
94
124
  result(ok, sceneId, trigger, logs, errors, snapshot) {
95
125
  return {
@@ -101,7 +131,7 @@ class SceneRunner {
101
131
  snapshot,
102
132
  };
103
133
  }
104
- async executeOn(scene, log) {
134
+ async executeOn(scene, log, rampSignal) {
105
135
  log("info", `Resolved coordinator: ${scene.coordinatorPlayerId}`);
106
136
  await this.withRetry(scene, "group members", () => this.transport.setGroupMembers(scene.householdId, scene.coordinatorPlayerId, scene.memberPlayerIds));
107
137
  log("info", `Grouped members: ${scene.memberPlayerIds.join(", ") || "none"}`);
@@ -145,9 +175,12 @@ class SceneRunner {
145
175
  const label = playerId === scene.coordinatorPlayerId && scene.coordinatorVolume !== undefined
146
176
  ? `set coordinator volume ${volume}`
147
177
  : `set room volume ${playerId}=${volume}`;
148
- await this.withRetry(scene, label, () => this.applyPlayerVolume(scene, playerId, volume));
178
+ const rampOutcome = await this.withRetry(scene, label, () => this.applyPlayerVolume(scene, playerId, volume, rampSignal));
149
179
  const rampMs = scene.volumeRampMs ?? 0;
150
- if (playerId === scene.coordinatorPlayerId && scene.coordinatorVolume !== undefined) {
180
+ if (rampOutcome === "cancelled") {
181
+ log("info", `Volume ramp cancelled for ${playerId} because a newer scene action arrived; leaving volume at the last ramp step.`);
182
+ }
183
+ else if (playerId === scene.coordinatorPlayerId && scene.coordinatorVolume !== undefined) {
151
184
  log("info", rampMs > 0
152
185
  ? `Ramped coordinator volume and unmuted over ${rampMs}ms: ${playerId}=${volume}`
153
186
  : `Set coordinator volume and unmuted: ${playerId}=${volume}`);
@@ -159,32 +192,42 @@ class SceneRunner {
159
192
  }
160
193
  }));
161
194
  }
162
- async applyPlayerVolume(scene, playerId, targetVolume) {
195
+ async applyPlayerVolume(scene, playerId, targetVolume, rampSignal) {
163
196
  const rampMs = scene.volumeRampMs ?? 0;
164
197
  if (rampMs <= 0) {
165
198
  await this.transport.setPlayerVolume(scene.householdId, playerId, targetVolume);
166
199
  await this.transport.setPlayerMuted(scene.householdId, playerId, false);
167
- return;
200
+ return "completed";
201
+ }
202
+ if (rampSignal.aborted) {
203
+ await this.transport.setPlayerMuted(scene.householdId, playerId, false);
204
+ return "cancelled";
168
205
  }
169
206
  const currentVolume = await this.transport.getPlayerVolume(scene.householdId, playerId);
170
207
  const steps = this.volumeRampSteps(currentVolume, targetVolume, rampMs);
171
208
  if (steps.length === 0) {
172
209
  await this.transport.setPlayerMuted(scene.householdId, playerId, false);
173
- return;
210
+ return "completed";
174
211
  }
175
212
  if (currentVolume <= targetVolume) {
176
213
  await this.transport.setPlayerMuted(scene.householdId, playerId, false);
177
214
  }
215
+ let cancelled = false;
178
216
  const delayMs = Math.floor(rampMs / steps.length);
179
217
  for (const [index, volume] of steps.entries()) {
218
+ if (rampSignal.aborted) {
219
+ cancelled = true;
220
+ break;
221
+ }
180
222
  await this.transport.setPlayerVolume(scene.householdId, playerId, volume);
181
223
  if (index < steps.length - 1) {
182
- await sleep(delayMs);
224
+ await sleep(delayMs, rampSignal);
183
225
  }
184
226
  }
185
227
  if (currentVolume > targetVolume) {
186
228
  await this.transport.setPlayerMuted(scene.householdId, playerId, false);
187
229
  }
230
+ return cancelled ? "cancelled" : "completed";
188
231
  }
189
232
  volumeRampSteps(currentVolume, targetVolume, rampMs) {
190
233
  const start = Math.max(0, Math.min(100, Math.round(currentVolume)));
@@ -306,8 +349,7 @@ class SceneRunner {
306
349
  let lastError;
307
350
  for (let attempt = 0; attempt <= scene.retryCount; attempt++) {
308
351
  try {
309
- await action();
310
- return;
352
+ return await action();
311
353
  }
312
354
  catch (error) {
313
355
  lastError = error;
@@ -1 +1 @@
1
- {"version":3,"file":"sceneRunner.js","sourceRoot":"","sources":["../../src/sceneRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sceneRunner.js","sourceRoot":"","sources":["../../src/sceneRunner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-sonos-scenes",
3
- "version": "0.1.43",
3
+ "version": "0.1.44",
4
4
  "description": "Homebridge plugin for Sonos workflow scenes and orchestration.",
5
5
  "author": "applemanj",
6
6
  "homepage": "https://github.com/applemanj/homebridge-sonos-scenes#readme",