homebridge-sonos-scenes 0.1.43 → 0.1.45
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 +2 -1
- package/dist/src/sceneRunner.d.ts +3 -0
- package/dist/src/sceneRunner.js +57 -15
- package/dist/src/sceneRunner.js.map +1 -1
- package/dist/src/transports/localTransport.d.ts +6 -2
- package/dist/src/transports/localTransport.js +186 -189
- package/dist/src/transports/localTransport.js.map +1 -1
- package/docs/architecture.md +2 -3
- package/package.json +7 -3
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**:
|
|
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>;
|
package/dist/src/sceneRunner.js
CHANGED
|
@@ -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) =>
|
|
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 (
|
|
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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"}
|
|
@@ -44,6 +44,7 @@ export declare class LocalSonosTransport implements SonosTransport {
|
|
|
44
44
|
stopPlayback(householdId: string, coordinatorPlayerId: string): Promise<void>;
|
|
45
45
|
ungroup(householdId: string, coordinatorPlayerId: string, memberPlayerIds?: string[]): Promise<void>;
|
|
46
46
|
private tryLiveDiscovery;
|
|
47
|
+
private fetchParsedDeviceDescription;
|
|
47
48
|
private getLiveGroupRuntimeState;
|
|
48
49
|
private readLiveRuntimeValue;
|
|
49
50
|
private loadFixtureSnapshot;
|
|
@@ -51,6 +52,7 @@ export declare class LocalSonosTransport implements SonosTransport {
|
|
|
51
52
|
private requirePlayer;
|
|
52
53
|
private requireLiveRecord;
|
|
53
54
|
private requireLiveRecordInHousehold;
|
|
55
|
+
private setCoordinatorTransportUri;
|
|
54
56
|
private getLivePlayerVolume;
|
|
55
57
|
private setLivePlayerVolume;
|
|
56
58
|
private getLivePlayerChannelVolume;
|
|
@@ -59,6 +61,10 @@ export declare class LocalSonosTransport implements SonosTransport {
|
|
|
59
61
|
private setLivePlayerMuted;
|
|
60
62
|
private getLivePlayerChannelMuted;
|
|
61
63
|
private setLivePlayerChannelMuted;
|
|
64
|
+
private getLiveChannelVolume;
|
|
65
|
+
private setLiveChannelVolume;
|
|
66
|
+
private getLiveChannelMuted;
|
|
67
|
+
private setLiveChannelMuted;
|
|
62
68
|
private findFavorite;
|
|
63
69
|
private fetchFavorites;
|
|
64
70
|
private setFixtureGroupRuntime;
|
|
@@ -66,7 +72,5 @@ export declare class LocalSonosTransport implements SonosTransport {
|
|
|
66
72
|
private touchFixture;
|
|
67
73
|
private fixtureAudioState;
|
|
68
74
|
private fixtureChannelAudioState;
|
|
69
|
-
private audioDevice;
|
|
70
|
-
private channelAwareDevice;
|
|
71
75
|
private playerLogLabel;
|
|
72
76
|
}
|
|
@@ -8,7 +8,7 @@ exports.buildFavoriteTransportUri = buildFavoriteTransportUri;
|
|
|
8
8
|
exports.parseFavoriteBrowseXml = parseFavoriteBrowseXml;
|
|
9
9
|
const promises_1 = require("node:fs/promises");
|
|
10
10
|
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
-
const sonos_1 = require("sonos");
|
|
11
|
+
const sonos_1 = require("@svrooij/sonos");
|
|
12
12
|
const sampleTopology_1 = require("../sampleTopology");
|
|
13
13
|
function clone(value) {
|
|
14
14
|
return JSON.parse(JSON.stringify(value));
|
|
@@ -106,13 +106,6 @@ function normalizeFavorite(favorite) {
|
|
|
106
106
|
}
|
|
107
107
|
return normalized;
|
|
108
108
|
}
|
|
109
|
-
function fallbackFavoritesFromBrowseResult(result) {
|
|
110
|
-
return (result.items ?? []).map((favorite) => normalizeFavorite({
|
|
111
|
-
id: favorite.id ?? favorite.title ?? favorite.uri ?? randomString(),
|
|
112
|
-
name: favorite.title ?? favorite.id ?? "Favorite",
|
|
113
|
-
uri: favorite.uri,
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
109
|
function parseFavoriteBrowseXml(xml) {
|
|
117
110
|
const items = xml.match(/<item\b[\s\S]*?<\/item>/gi) ?? [];
|
|
118
111
|
return items.map((itemXml) => normalizeFavorite({
|
|
@@ -130,20 +123,6 @@ function formatHouseholdDisplayName(householdIndex, householdCount) {
|
|
|
130
123
|
}
|
|
131
124
|
return `Sonos Household ${householdIndex + 1}`;
|
|
132
125
|
}
|
|
133
|
-
function extractFirstString(input) {
|
|
134
|
-
if (typeof input === "string" && input.trim()) {
|
|
135
|
-
return input.trim();
|
|
136
|
-
}
|
|
137
|
-
if (!input || typeof input !== "object") {
|
|
138
|
-
return undefined;
|
|
139
|
-
}
|
|
140
|
-
for (const value of Object.values(input)) {
|
|
141
|
-
if (typeof value === "string" && value.trim()) {
|
|
142
|
-
return value.trim();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return undefined;
|
|
146
|
-
}
|
|
147
126
|
function normalizeFixtureSnapshot(input) {
|
|
148
127
|
return {
|
|
149
128
|
...clone(input),
|
|
@@ -167,18 +146,13 @@ function unique(values) {
|
|
|
167
146
|
function channelToken(channel) {
|
|
168
147
|
return channel === "right" ? "RF" : "LF";
|
|
169
148
|
}
|
|
170
|
-
function hasService(description, fragment) {
|
|
171
|
-
const services = description?.serviceList?.service;
|
|
172
|
-
const list = Array.isArray(services) ? services : services ? [services] : [];
|
|
173
|
-
return list.some((service) => `${service.serviceType ?? ""} ${service.serviceId ?? ""}`.toLowerCase().includes(fragment.toLowerCase()));
|
|
174
|
-
}
|
|
175
149
|
function modelLooksTvCapable(description) {
|
|
176
150
|
const model = `${description?.modelName ?? ""} ${description?.displayName ?? ""}`.toLowerCase();
|
|
177
151
|
return /(arc|beam|playbar|playbase|ray|amp)/.test(model);
|
|
178
152
|
}
|
|
179
153
|
function detectSourceOptions(description, allowTvSource) {
|
|
180
154
|
const sourceOptions = ["favorite"];
|
|
181
|
-
if (
|
|
155
|
+
if (description?.hasAudioIn) {
|
|
182
156
|
sourceOptions.push("line_in");
|
|
183
157
|
}
|
|
184
158
|
if (allowTvSource && modelLooksTvCapable(description)) {
|
|
@@ -188,18 +162,13 @@ function detectSourceOptions(description, allowTvSource) {
|
|
|
188
162
|
}
|
|
189
163
|
function detectCapabilities(description, allowTvSource) {
|
|
190
164
|
const capabilities = ["PLAYBACK"];
|
|
191
|
-
if (
|
|
165
|
+
if (description?.hasAudioIn) {
|
|
192
166
|
capabilities.push("LINE_IN");
|
|
193
167
|
}
|
|
194
168
|
if (allowTvSource && modelLooksTvCapable(description)) {
|
|
195
169
|
capabilities.push("TV");
|
|
196
170
|
}
|
|
197
|
-
|
|
198
|
-
capabilities.push("AIRPLAY");
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
capabilities.push("AIRPLAY");
|
|
202
|
-
}
|
|
171
|
+
capabilities.push("AIRPLAY");
|
|
203
172
|
return capabilities;
|
|
204
173
|
}
|
|
205
174
|
function resolveFixturePath(fixturePath) {
|
|
@@ -211,21 +180,6 @@ function resolveFixturePath(fixturePath) {
|
|
|
211
180
|
}
|
|
212
181
|
return node_path_1.default.resolve(process.cwd(), fixturePath);
|
|
213
182
|
}
|
|
214
|
-
function maybeHostFromLocation(location) {
|
|
215
|
-
if (!location) {
|
|
216
|
-
return undefined;
|
|
217
|
-
}
|
|
218
|
-
try {
|
|
219
|
-
const url = new URL(location);
|
|
220
|
-
return {
|
|
221
|
-
host: url.hostname,
|
|
222
|
-
port: Number(url.port || 1400),
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
catch {
|
|
226
|
-
return undefined;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
183
|
function emptyChannelState() {
|
|
230
184
|
return {
|
|
231
185
|
volume: 0,
|
|
@@ -364,7 +318,12 @@ class LocalSonosTransport {
|
|
|
364
318
|
}
|
|
365
319
|
this.requirePlayer(household, playerId);
|
|
366
320
|
const playerRecord = this.requireLiveRecord(playerId);
|
|
367
|
-
|
|
321
|
+
// Joining a group is setting the member's transport to the coordinator's RINCON URI.
|
|
322
|
+
await playerRecord.device.AVTransportService.SetAVTransportURI({
|
|
323
|
+
InstanceID: 0,
|
|
324
|
+
CurrentURI: `x-rincon:${coordinatorPlayerId}`,
|
|
325
|
+
CurrentURIMetaData: "",
|
|
326
|
+
});
|
|
368
327
|
}
|
|
369
328
|
for (const playerId of membersToRemove) {
|
|
370
329
|
if (playerId === coordinatorPlayerId) {
|
|
@@ -372,7 +331,7 @@ class LocalSonosTransport {
|
|
|
372
331
|
}
|
|
373
332
|
this.requirePlayer(household, playerId);
|
|
374
333
|
const playerRecord = this.requireLiveRecord(playerId);
|
|
375
|
-
await playerRecord.device.
|
|
334
|
+
await playerRecord.device.AVTransportService.BecomeCoordinatorOfStandaloneGroup();
|
|
376
335
|
}
|
|
377
336
|
this.householdRoots.set(householdId, coordinatorRecord.device);
|
|
378
337
|
this.invalidateTopologyCache();
|
|
@@ -390,11 +349,7 @@ class LocalSonosTransport {
|
|
|
390
349
|
this.requireHousehold(await this.discoverTopology(), householdId);
|
|
391
350
|
const coordinator = this.requireLiveRecord(coordinatorPlayerId);
|
|
392
351
|
this.logger?.info(`Sending Sonos line-in load request: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}, playOnCompletion=${playOnCompletion}.`);
|
|
393
|
-
await
|
|
394
|
-
uri: `x-rincon-stream:${deviceId}`,
|
|
395
|
-
metadata: "",
|
|
396
|
-
onlySetUri: !playOnCompletion,
|
|
397
|
-
});
|
|
352
|
+
await this.setCoordinatorTransportUri(coordinator, `x-rincon-stream:${deviceId}`, "", playOnCompletion);
|
|
398
353
|
this.invalidateTopologyCache();
|
|
399
354
|
this.logger?.info(`Sonos line-in load completed: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}.`);
|
|
400
355
|
}
|
|
@@ -420,10 +375,7 @@ class LocalSonosTransport {
|
|
|
420
375
|
throw new Error(`Favorite "${favorite.name}" does not expose enough metadata to build a playable local URI.`);
|
|
421
376
|
}
|
|
422
377
|
this.logger?.info(`Sending Sonos favorite load request: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, favorite="${favorite.name}" (${favoriteId}), transportUri=${transportUri}.`);
|
|
423
|
-
await coordinator.
|
|
424
|
-
uri: transportUri,
|
|
425
|
-
metadata: favorite.metadata ?? "",
|
|
426
|
-
});
|
|
378
|
+
await this.setCoordinatorTransportUri(coordinator, transportUri, favorite.metadata ?? "", true);
|
|
427
379
|
this.invalidateTopologyCache();
|
|
428
380
|
this.logger?.info(`Sonos favorite load completed: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, favorite="${favorite.name}" (${favoriteId}).`);
|
|
429
381
|
}
|
|
@@ -442,11 +394,7 @@ class LocalSonosTransport {
|
|
|
442
394
|
}
|
|
443
395
|
const coordinator = this.requireLiveRecord(coordinatorPlayerId);
|
|
444
396
|
this.logger?.info(`Sending Sonos TV load request: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}, playOnCompletion=${playOnCompletion}.`);
|
|
445
|
-
await
|
|
446
|
-
uri: `x-sonos-htastream:${deviceId}:spdif`,
|
|
447
|
-
metadata: "",
|
|
448
|
-
onlySetUri: !playOnCompletion,
|
|
449
|
-
});
|
|
397
|
+
await this.setCoordinatorTransportUri(coordinator, `x-sonos-htastream:${deviceId}:spdif`, "", playOnCompletion);
|
|
450
398
|
this.invalidateTopologyCache();
|
|
451
399
|
this.logger?.info(`Sonos TV load completed: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}.`);
|
|
452
400
|
}
|
|
@@ -603,7 +551,7 @@ class LocalSonosTransport {
|
|
|
603
551
|
const snapshot = await this.discoverTopology();
|
|
604
552
|
this.requireHousehold(snapshot, householdId);
|
|
605
553
|
const coordinator = this.requireLiveRecord(coordinatorPlayerId);
|
|
606
|
-
await
|
|
554
|
+
await coordinator.device.AVTransportService.Pause();
|
|
607
555
|
this.invalidateTopologyCache();
|
|
608
556
|
}
|
|
609
557
|
async stopPlayback(householdId, coordinatorPlayerId) {
|
|
@@ -621,7 +569,7 @@ class LocalSonosTransport {
|
|
|
621
569
|
const snapshot = await this.discoverTopology();
|
|
622
570
|
this.requireHousehold(snapshot, householdId);
|
|
623
571
|
const coordinator = this.requireLiveRecord(coordinatorPlayerId);
|
|
624
|
-
await coordinator.device.
|
|
572
|
+
await coordinator.device.AVTransportService.Stop();
|
|
625
573
|
this.invalidateTopologyCache();
|
|
626
574
|
}
|
|
627
575
|
async ungroup(householdId, coordinatorPlayerId, memberPlayerIds) {
|
|
@@ -647,121 +595,136 @@ class LocalSonosTransport {
|
|
|
647
595
|
continue;
|
|
648
596
|
}
|
|
649
597
|
const player = this.requireLiveRecord(playerId);
|
|
650
|
-
await player.device.
|
|
598
|
+
await player.device.AVTransportService.BecomeCoordinatorOfStandaloneGroup();
|
|
651
599
|
}
|
|
652
600
|
this.invalidateTopologyCache();
|
|
653
601
|
}
|
|
654
602
|
async tryLiveDiscovery() {
|
|
655
603
|
try {
|
|
656
|
-
const discovery = new sonos_1.
|
|
657
|
-
const
|
|
658
|
-
|
|
604
|
+
const discovery = new sonos_1.SonosDeviceDiscovery();
|
|
605
|
+
const timeoutSeconds = Math.max(1, Math.ceil(this.config.discoveryTimeoutMs / 1000));
|
|
606
|
+
const foundDevices = await discovery.Search(timeoutSeconds);
|
|
607
|
+
if (!foundDevices.length) {
|
|
659
608
|
return undefined;
|
|
660
609
|
}
|
|
661
|
-
const
|
|
662
|
-
const
|
|
663
|
-
const
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
device.devicePropertiesService().GetHouseholdID({}),
|
|
668
|
-
]);
|
|
610
|
+
const uniqueHosts = Array.from(new Map(foundDevices.map((found) => [found.host, found])).values());
|
|
611
|
+
const hostRecords = await Promise.all(uniqueHosts.map(async (found) => {
|
|
612
|
+
const device = new sonos_1.SonosDevice(found.host, found.port);
|
|
613
|
+
const householdId = await device.DevicePropertiesService.GetHouseholdID()
|
|
614
|
+
.then((response) => normalizedString(response.CurrentHouseholdID))
|
|
615
|
+
.catch(() => undefined);
|
|
669
616
|
return {
|
|
617
|
+
host: found.host,
|
|
618
|
+
port: found.port,
|
|
670
619
|
device,
|
|
671
|
-
|
|
672
|
-
port: device.port,
|
|
673
|
-
householdId: extractFirstString(householdResponse.status === "fulfilled" ? householdResponse.value : undefined)
|
|
674
|
-
?? "local-household",
|
|
675
|
-
zoneAttrs: zoneAttrs.status === "fulfilled" ? zoneAttrs.value : undefined,
|
|
676
|
-
zoneInfo: zoneInfo.status === "fulfilled" ? zoneInfo.value : undefined,
|
|
677
|
-
description: description.status === "fulfilled" ? description.value : undefined,
|
|
620
|
+
householdId: householdId ?? "local-household",
|
|
678
621
|
};
|
|
679
622
|
}));
|
|
680
623
|
const rootsByHousehold = new Map();
|
|
681
|
-
for (const
|
|
682
|
-
if (!rootsByHousehold.has(
|
|
683
|
-
rootsByHousehold.set(
|
|
624
|
+
for (const hostRecord of hostRecords) {
|
|
625
|
+
if (!rootsByHousehold.has(hostRecord.householdId)) {
|
|
626
|
+
rootsByHousehold.set(hostRecord.householdId, hostRecord);
|
|
684
627
|
}
|
|
685
628
|
}
|
|
686
629
|
const households = [];
|
|
687
630
|
const livePlayers = new Map();
|
|
688
|
-
for (const [householdId,
|
|
689
|
-
const
|
|
690
|
-
const
|
|
691
|
-
const householdByHost = new Map(householdRecords.map((record) => [record.host, record]));
|
|
631
|
+
for (const [householdId, rootRecord] of rootsByHousehold) {
|
|
632
|
+
const root = rootRecord.device;
|
|
633
|
+
const zoneGroups = await root.ZoneGroupTopologyService.GetParsedZoneGroupState().catch(() => []);
|
|
692
634
|
const players = [];
|
|
693
635
|
const groups = [];
|
|
694
|
-
|
|
695
|
-
|
|
636
|
+
const memberHosts = new Map();
|
|
637
|
+
for (const zoneGroup of zoneGroups) {
|
|
638
|
+
for (const member of zoneGroup.members) {
|
|
639
|
+
memberHosts.set(member.host, member.port);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
const descriptionsByHost = new Map(await Promise.all(Array.from(memberHosts).map(async ([host, port]) => [host, await this.fetchParsedDeviceDescription(host, port)])));
|
|
643
|
+
for (const zoneGroup of zoneGroups) {
|
|
644
|
+
const groupId = zoneGroup.groupId || `group-${zoneGroup.coordinator.uuid}`;
|
|
696
645
|
const playerIds = [];
|
|
697
|
-
const
|
|
698
|
-
|
|
699
|
-
const location = maybeHostFromLocation(member.Location);
|
|
700
|
-
const record = location ? householdByHost.get(location.host) : undefined;
|
|
701
|
-
const playerId = member.UUID ?? record?.zoneInfo?.SerialNumber ?? record?.host ?? `player-${players.length}`;
|
|
646
|
+
for (const member of zoneGroup.members) {
|
|
647
|
+
const playerId = member.uuid;
|
|
702
648
|
playerIds.push(playerId);
|
|
649
|
+
const description = descriptionsByHost.get(member.host);
|
|
703
650
|
if (!players.some((player) => player.id === playerId)) {
|
|
704
|
-
|
|
705
|
-
const player = {
|
|
651
|
+
players.push({
|
|
706
652
|
id: playerId,
|
|
707
|
-
name: member.
|
|
708
|
-
model:
|
|
709
|
-
capabilities: detectCapabilities(
|
|
653
|
+
name: member.name,
|
|
654
|
+
model: description?.modelName ?? description?.displayName,
|
|
655
|
+
capabilities: detectCapabilities(description, this.config.allowTvSource),
|
|
710
656
|
deviceIds: unique([playerId]),
|
|
711
657
|
groupId,
|
|
712
|
-
isCoordinator:
|
|
658
|
+
isCoordinator: zoneGroup.coordinator.uuid === playerId,
|
|
713
659
|
fixedVolume: false,
|
|
714
|
-
sourceOptions,
|
|
715
|
-
};
|
|
716
|
-
players.push(player);
|
|
717
|
-
}
|
|
718
|
-
else {
|
|
719
|
-
const existing = players.find((player) => player.id === playerId);
|
|
720
|
-
if (existing) {
|
|
721
|
-
existing.groupId = groupId;
|
|
722
|
-
existing.isCoordinator = rawGroup.Coordinator === playerId;
|
|
723
|
-
}
|
|
660
|
+
sourceOptions: detectSourceOptions(description, this.config.allowTvSource),
|
|
661
|
+
});
|
|
724
662
|
}
|
|
725
|
-
if (
|
|
726
|
-
livePlayers.set(playerId,
|
|
663
|
+
if (!livePlayers.has(playerId)) {
|
|
664
|
+
livePlayers.set(playerId, {
|
|
665
|
+
device: new sonos_1.SonosDevice(member.host, member.port, member.uuid),
|
|
666
|
+
host: member.host,
|
|
667
|
+
port: member.port,
|
|
668
|
+
householdId,
|
|
669
|
+
zoneName: member.name,
|
|
670
|
+
description,
|
|
671
|
+
});
|
|
727
672
|
}
|
|
728
673
|
}
|
|
729
|
-
const runtimeState = await this.getLiveGroupRuntimeState(
|
|
674
|
+
const runtimeState = await this.getLiveGroupRuntimeState(livePlayers.get(zoneGroup.coordinator.uuid));
|
|
730
675
|
groups.push({
|
|
731
676
|
id: groupId,
|
|
732
|
-
name:
|
|
733
|
-
coordinatorId:
|
|
677
|
+
name: zoneGroup.name || zoneGroup.coordinator.name || groupId,
|
|
678
|
+
coordinatorId: zoneGroup.coordinator.uuid,
|
|
734
679
|
playerIds,
|
|
735
680
|
...runtimeState,
|
|
736
681
|
});
|
|
737
682
|
}
|
|
738
|
-
for
|
|
739
|
-
|
|
740
|
-
|
|
683
|
+
// Devices found over SSDP for this household but missing from its zone
|
|
684
|
+
// group state still get a standalone entry, like the previous transport.
|
|
685
|
+
for (const hostRecord of hostRecords) {
|
|
686
|
+
if (hostRecord.householdId !== householdId || memberHosts.has(hostRecord.host)) {
|
|
741
687
|
continue;
|
|
742
688
|
}
|
|
743
|
-
const
|
|
744
|
-
|
|
689
|
+
const [zoneAttrs, zoneInfo] = await Promise.allSettled([
|
|
690
|
+
hostRecord.device.DevicePropertiesService.GetZoneAttributes(),
|
|
691
|
+
hostRecord.device.DevicePropertiesService.GetZoneInfo(),
|
|
692
|
+
]);
|
|
693
|
+
const zoneName = zoneAttrs.status === "fulfilled" ? normalizedString(zoneAttrs.value.CurrentZoneName) : undefined;
|
|
694
|
+
const serialNumber = zoneInfo.status === "fulfilled" ? normalizedString(zoneInfo.value.SerialNumber) : undefined;
|
|
695
|
+
const fallbackId = serialNumber ?? `${hostRecord.host}:${hostRecord.port}`;
|
|
696
|
+
if (players.some((player) => player.id === fallbackId || (zoneName !== undefined && player.name === zoneName))) {
|
|
697
|
+
continue;
|
|
698
|
+
}
|
|
699
|
+
const description = await this.fetchParsedDeviceDescription(hostRecord.host, hostRecord.port);
|
|
745
700
|
players.push({
|
|
746
701
|
id: fallbackId,
|
|
747
|
-
name:
|
|
748
|
-
model:
|
|
749
|
-
capabilities: detectCapabilities(
|
|
702
|
+
name: zoneName ?? hostRecord.host,
|
|
703
|
+
model: description?.modelName ?? description?.displayName,
|
|
704
|
+
capabilities: detectCapabilities(description, this.config.allowTvSource),
|
|
750
705
|
deviceIds: [fallbackId],
|
|
751
706
|
groupId: `standalone-${fallbackId}`,
|
|
752
707
|
isCoordinator: true,
|
|
753
708
|
fixedVolume: false,
|
|
754
|
-
sourceOptions,
|
|
709
|
+
sourceOptions: detectSourceOptions(description, this.config.allowTvSource),
|
|
755
710
|
});
|
|
756
|
-
const
|
|
711
|
+
const standaloneRecord = {
|
|
712
|
+
device: hostRecord.device,
|
|
713
|
+
host: hostRecord.host,
|
|
714
|
+
port: hostRecord.port,
|
|
715
|
+
householdId,
|
|
716
|
+
zoneName,
|
|
717
|
+
description,
|
|
718
|
+
};
|
|
719
|
+
const runtimeState = await this.getLiveGroupRuntimeState(standaloneRecord);
|
|
757
720
|
groups.push({
|
|
758
721
|
id: `standalone-${fallbackId}`,
|
|
759
|
-
name:
|
|
722
|
+
name: zoneName ?? hostRecord.host,
|
|
760
723
|
coordinatorId: fallbackId,
|
|
761
724
|
playerIds: [fallbackId],
|
|
762
725
|
...runtimeState,
|
|
763
726
|
});
|
|
764
|
-
livePlayers.set(fallbackId,
|
|
727
|
+
livePlayers.set(fallbackId, standaloneRecord);
|
|
765
728
|
}
|
|
766
729
|
const favorites = await this.fetchFavorites(root);
|
|
767
730
|
households.push({
|
|
@@ -787,20 +750,38 @@ class LocalSonosTransport {
|
|
|
787
750
|
return undefined;
|
|
788
751
|
}
|
|
789
752
|
}
|
|
753
|
+
async fetchParsedDeviceDescription(host, port) {
|
|
754
|
+
try {
|
|
755
|
+
const response = await fetch(`http://${host}:${port}/xml/device_description.xml`, {
|
|
756
|
+
signal: AbortSignal.timeout(Math.max(1_000, this.config.requestTimeoutMs)),
|
|
757
|
+
});
|
|
758
|
+
if (!response.ok) {
|
|
759
|
+
return undefined;
|
|
760
|
+
}
|
|
761
|
+
const xml = await response.text();
|
|
762
|
+
return {
|
|
763
|
+
modelName: extractTagValue(xml, "modelName"),
|
|
764
|
+
displayName: extractTagValue(xml, "displayName"),
|
|
765
|
+
hasAudioIn: /service(?:Id)?:AudioIn/i.test(xml),
|
|
766
|
+
};
|
|
767
|
+
}
|
|
768
|
+
catch {
|
|
769
|
+
return undefined;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
790
772
|
async getLiveGroupRuntimeState(coordinatorRecord) {
|
|
791
773
|
if (!coordinatorRecord) {
|
|
792
774
|
return {
|
|
793
775
|
playbackState: "PLAYBACK_STATE_UNKNOWN",
|
|
794
776
|
};
|
|
795
777
|
}
|
|
796
|
-
const
|
|
797
|
-
const
|
|
798
|
-
|
|
799
|
-
this.readLiveRuntimeValue(`${playerLabel}
|
|
800
|
-
this.readLiveRuntimeValue(`${playerLabel} media info`, () => device.avTransportService?.().GetMediaInfo?.()),
|
|
778
|
+
const playerLabel = coordinatorRecord.zoneName ?? coordinatorRecord.host;
|
|
779
|
+
const [transportInfo, mediaInfo] = await Promise.all([
|
|
780
|
+
this.readLiveRuntimeValue(`${playerLabel} playback state`, () => coordinatorRecord.device.AVTransportService.GetTransportInfo()),
|
|
781
|
+
this.readLiveRuntimeValue(`${playerLabel} media info`, () => coordinatorRecord.device.AVTransportService.GetMediaInfo()),
|
|
801
782
|
]);
|
|
802
783
|
return {
|
|
803
|
-
playbackState: normalizeSonosPlaybackState(
|
|
784
|
+
playbackState: normalizeSonosPlaybackState(transportInfo?.CurrentTransportState),
|
|
804
785
|
currentSourceUri: normalizedString(mediaInfo?.CurrentURI),
|
|
805
786
|
};
|
|
806
787
|
}
|
|
@@ -882,55 +863,74 @@ class LocalSonosTransport {
|
|
|
882
863
|
}
|
|
883
864
|
return record;
|
|
884
865
|
}
|
|
866
|
+
async setCoordinatorTransportUri(coordinator, uri, metadata, playOnCompletion) {
|
|
867
|
+
await coordinator.device.AVTransportService.SetAVTransportURI({
|
|
868
|
+
InstanceID: 0,
|
|
869
|
+
CurrentURI: uri,
|
|
870
|
+
CurrentURIMetaData: metadata,
|
|
871
|
+
});
|
|
872
|
+
if (playOnCompletion) {
|
|
873
|
+
await coordinator.device.AVTransportService.Play({ InstanceID: 0, Speed: "1" });
|
|
874
|
+
}
|
|
875
|
+
}
|
|
885
876
|
async getLivePlayerVolume(playerId) {
|
|
886
|
-
|
|
887
|
-
const volume = Math.max(0, Math.min(100, Math.round(await this.audioDevice(player.device).getVolume())));
|
|
888
|
-
this.logger?.debug(`Sonos get volume returned: player=${this.playerLogLabel(playerId)}, volume=${volume}.`);
|
|
889
|
-
return volume;
|
|
877
|
+
return this.getLiveChannelVolume(playerId, "Master");
|
|
890
878
|
}
|
|
891
879
|
async setLivePlayerVolume(playerId, volume) {
|
|
892
|
-
|
|
893
|
-
const normalizedVolume = Math.max(0, Math.min(100, Math.round(volume)));
|
|
894
|
-
this.logger?.info(`Sending Sonos set volume request: player=${this.playerLogLabel(playerId)}, volume=${normalizedVolume}.`);
|
|
895
|
-
await player.device.setVolume(normalizedVolume);
|
|
896
|
-
this.logger?.info(`Sonos set volume completed: player=${this.playerLogLabel(playerId)}, volume=${normalizedVolume}.`);
|
|
880
|
+
await this.setLiveChannelVolume(playerId, "Master", volume);
|
|
897
881
|
}
|
|
898
882
|
async getLivePlayerChannelVolume(playerId, channel) {
|
|
899
|
-
|
|
900
|
-
const volume = Math.max(0, Math.min(100, Math.round(await this.channelAwareDevice(player.device).renderingControlService().GetVolume(channelToken(channel)))));
|
|
901
|
-
this.logger?.debug(`Sonos get channel volume returned: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${volume}.`);
|
|
902
|
-
return volume;
|
|
883
|
+
return this.getLiveChannelVolume(playerId, channelToken(channel));
|
|
903
884
|
}
|
|
904
885
|
async setLivePlayerChannelVolume(playerId, channel, volume) {
|
|
905
|
-
|
|
906
|
-
const normalizedVolume = Math.max(0, Math.min(100, Math.round(volume)));
|
|
907
|
-
this.logger?.info(`Sending Sonos set channel volume request: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
|
|
908
|
-
await this.audioDevice(player.device).setVolume(normalizedVolume, channelToken(channel));
|
|
909
|
-
this.logger?.info(`Sonos set channel volume completed: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
|
|
886
|
+
await this.setLiveChannelVolume(playerId, channelToken(channel), volume);
|
|
910
887
|
}
|
|
911
888
|
async getLivePlayerMuted(playerId) {
|
|
912
|
-
|
|
913
|
-
const muted = await this.audioDevice(player.device).getMuted();
|
|
914
|
-
this.logger?.debug(`Sonos get mute returned: player=${this.playerLogLabel(playerId)}, muted=${muted}.`);
|
|
915
|
-
return muted;
|
|
889
|
+
return this.getLiveChannelMuted(playerId, "Master");
|
|
916
890
|
}
|
|
917
891
|
async setLivePlayerMuted(playerId, muted) {
|
|
918
|
-
|
|
919
|
-
this.logger?.info(`Sending Sonos set mute request: player=${this.playerLogLabel(playerId)}, muted=${muted}.`);
|
|
920
|
-
await this.audioDevice(player.device).setMuted(muted);
|
|
921
|
-
this.logger?.info(`Sonos set mute completed: player=${this.playerLogLabel(playerId)}, muted=${muted}.`);
|
|
892
|
+
await this.setLiveChannelMuted(playerId, "Master", muted);
|
|
922
893
|
}
|
|
923
894
|
async getLivePlayerChannelMuted(playerId, channel) {
|
|
895
|
+
return this.getLiveChannelMuted(playerId, channelToken(channel));
|
|
896
|
+
}
|
|
897
|
+
async setLivePlayerChannelMuted(playerId, channel, muted) {
|
|
898
|
+
await this.setLiveChannelMuted(playerId, channelToken(channel), muted);
|
|
899
|
+
}
|
|
900
|
+
async getLiveChannelVolume(playerId, channel) {
|
|
924
901
|
const player = this.requireLiveRecord(playerId);
|
|
925
|
-
const
|
|
926
|
-
|
|
902
|
+
const response = await player.device.RenderingControlService.GetVolume({ InstanceID: 0, Channel: channel });
|
|
903
|
+
const volume = Math.max(0, Math.min(100, Math.round(response.CurrentVolume)));
|
|
904
|
+
this.logger?.debug(`Sonos get volume returned: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${volume}.`);
|
|
905
|
+
return volume;
|
|
906
|
+
}
|
|
907
|
+
async setLiveChannelVolume(playerId, channel, volume) {
|
|
908
|
+
const player = this.requireLiveRecord(playerId);
|
|
909
|
+
const normalizedVolume = Math.max(0, Math.min(100, Math.round(volume)));
|
|
910
|
+
this.logger?.info(`Sending Sonos set volume request: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
|
|
911
|
+
await player.device.RenderingControlService.SetVolume({
|
|
912
|
+
InstanceID: 0,
|
|
913
|
+
Channel: channel,
|
|
914
|
+
DesiredVolume: normalizedVolume,
|
|
915
|
+
});
|
|
916
|
+
this.logger?.info(`Sonos set volume completed: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
|
|
917
|
+
}
|
|
918
|
+
async getLiveChannelMuted(playerId, channel) {
|
|
919
|
+
const player = this.requireLiveRecord(playerId);
|
|
920
|
+
const response = await player.device.RenderingControlService.GetMute({ InstanceID: 0, Channel: channel });
|
|
921
|
+
const muted = response.CurrentMute === true;
|
|
922
|
+
this.logger?.debug(`Sonos get mute returned: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
|
|
927
923
|
return muted;
|
|
928
924
|
}
|
|
929
|
-
async
|
|
925
|
+
async setLiveChannelMuted(playerId, channel, muted) {
|
|
930
926
|
const player = this.requireLiveRecord(playerId);
|
|
931
|
-
this.logger?.info(`Sending Sonos set
|
|
932
|
-
await
|
|
933
|
-
|
|
927
|
+
this.logger?.info(`Sending Sonos set mute request: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
|
|
928
|
+
await player.device.RenderingControlService.SetMute({
|
|
929
|
+
InstanceID: 0,
|
|
930
|
+
Channel: channel,
|
|
931
|
+
DesiredMute: muted,
|
|
932
|
+
});
|
|
933
|
+
this.logger?.info(`Sonos set mute completed: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
|
|
934
934
|
}
|
|
935
935
|
async findFavorite(householdId, favoriteId) {
|
|
936
936
|
const root = this.householdRoots.get(householdId);
|
|
@@ -945,25 +945,28 @@ class LocalSonosTransport {
|
|
|
945
945
|
return favorite;
|
|
946
946
|
}
|
|
947
947
|
async fetchFavorites(root) {
|
|
948
|
-
|
|
948
|
+
// The raw Browse call (not BrowseParsed) returns the favorite DIDL-Lite XML
|
|
949
|
+
// untouched, which is required to keep r:resMD/r:description/r:type metadata
|
|
950
|
+
// for container favorites; sonos-ts's parsed Track model drops those fields.
|
|
951
|
+
const browseResponse = await root.ContentDirectoryService.Browse({
|
|
952
|
+
ObjectID: "FV:2",
|
|
949
953
|
BrowseFlag: "BrowseDirectChildren",
|
|
950
954
|
Filter: "*",
|
|
951
|
-
StartingIndex:
|
|
952
|
-
RequestedCount:
|
|
955
|
+
StartingIndex: 0,
|
|
956
|
+
RequestedCount: 100,
|
|
953
957
|
SortCriteria: "",
|
|
954
|
-
ObjectID: "FV:2",
|
|
955
958
|
}).catch(() => undefined);
|
|
956
959
|
const browseFavorites = typeof browseResponse?.Result === "string" ? parseFavoriteBrowseXml(browseResponse.Result) : [];
|
|
957
960
|
if (browseFavorites.length > 0) {
|
|
958
961
|
return browseFavorites;
|
|
959
962
|
}
|
|
960
|
-
const
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
963
|
+
const fallbackResponse = await root.GetFavorites().catch(() => undefined);
|
|
964
|
+
const fallbackTracks = Array.isArray(fallbackResponse?.Result) ? fallbackResponse.Result : [];
|
|
965
|
+
return fallbackTracks.map((track) => normalizeFavorite({
|
|
966
|
+
id: track.ItemId ?? track.Title ?? track.TrackUri ?? randomString(),
|
|
967
|
+
name: track.Title ?? track.ItemId ?? "Favorite",
|
|
968
|
+
uri: track.TrackUri,
|
|
965
969
|
}));
|
|
966
|
-
return fallbackFavoritesFromBrowseResult(fallbackResult);
|
|
967
970
|
}
|
|
968
971
|
setFixtureGroupRuntime(householdId, coordinatorPlayerId, runtime) {
|
|
969
972
|
const household = this.requireHousehold(this.fixtureState, householdId);
|
|
@@ -1044,15 +1047,9 @@ class LocalSonosTransport {
|
|
|
1044
1047
|
const state = this.fixtureAudioState(playerId);
|
|
1045
1048
|
return channel === "right" ? state.right : state.left;
|
|
1046
1049
|
}
|
|
1047
|
-
audioDevice(device) {
|
|
1048
|
-
return device;
|
|
1049
|
-
}
|
|
1050
|
-
channelAwareDevice(device) {
|
|
1051
|
-
return device;
|
|
1052
|
-
}
|
|
1053
1050
|
playerLogLabel(playerId) {
|
|
1054
1051
|
const record = this.livePlayers.get(playerId);
|
|
1055
|
-
const playerName = record?.
|
|
1052
|
+
const playerName = record?.zoneName?.trim();
|
|
1056
1053
|
return playerName ? `${playerName} (${playerId})` : playerId;
|
|
1057
1054
|
}
|
|
1058
1055
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localTransport.js","sourceRoot":"","sources":["../../../src/transports/localTransport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"localTransport.js","sourceRoot":"","sources":["../../../src/transports/localTransport.ts"],"names":[],"mappings":"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"}
|
package/docs/architecture.md
CHANGED
|
@@ -7,7 +7,7 @@ This page keeps the more technical project details out of the main README.
|
|
|
7
7
|
- Homebridge dynamic platform plugin
|
|
8
8
|
- One switch accessory per scene
|
|
9
9
|
- One companion volume control accessory per scene
|
|
10
|
-
- Local-first transport built on
|
|
10
|
+
- Local-first transport built on `@svrooij/sonos` (sonos-ts), pinned to an exact version because fixes for that library currently ship on its beta dist-tag
|
|
11
11
|
- Custom Homebridge UI for discovery, validation, testing, and scene editing
|
|
12
12
|
|
|
13
13
|
## Scene Model
|
|
@@ -83,8 +83,7 @@ This repo uses GitHub Actions trusted publishing to publish to npm from a GitHub
|
|
|
83
83
|
- Some complex favorites are still unreliable over the local-only path
|
|
84
84
|
- `TV` support is still transport-gated and conservative
|
|
85
85
|
- `local_plus_cloud` is not yet wired into runtime playback
|
|
86
|
-
- subscription-driven live refresh is not
|
|
87
|
-
- `npm audit` reports a high-severity advisory ([GHSA-2p57-rm9w-gvfp](https://github.com/advisories/GHSA-2p57-rm9w-gvfp)) in the transitive `ip` dependency pulled in by `sonos`. No patched `ip` release exists. The flagged code is only reachable through the `sonos` package's UPnP event listener, which this plugin does not start, so the advisory is not exploitable through this plugin today. The longer-term fix under evaluation is moving the local transport to a maintained Sonos library that does not depend on `ip`.
|
|
86
|
+
- subscription-driven live refresh (UPnP eventing via sonos-ts) is planned but intentionally not enabled yet; the event listener requires a configurable port and a polling fallback before it is safe inside a shared Homebridge process
|
|
88
87
|
|
|
89
88
|
## References
|
|
90
89
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-sonos-scenes",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.45",
|
|
4
4
|
"description": "Homebridge plugin for Sonos workflow scenes and orchestration.",
|
|
5
|
-
"author":
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Joshua Appleman",
|
|
7
|
+
"email": "joshua@appleman.us",
|
|
8
|
+
"url": "https://github.com/applemanj"
|
|
9
|
+
},
|
|
6
10
|
"homepage": "https://github.com/applemanj/homebridge-sonos-scenes#readme",
|
|
7
11
|
"bugs": {
|
|
8
12
|
"url": "https://github.com/applemanj/homebridge-sonos-scenes/issues"
|
|
@@ -43,7 +47,7 @@
|
|
|
43
47
|
},
|
|
44
48
|
"dependencies": {
|
|
45
49
|
"@homebridge/plugin-ui-utils": "^2.2.3",
|
|
46
|
-
"sonos": "
|
|
50
|
+
"@svrooij/sonos": "2.6.0-beta.13"
|
|
47
51
|
},
|
|
48
52
|
"peerDependencies": {
|
|
49
53
|
"homebridge": "^1.8.0 || ^2.0.0-beta.0 || ^2.1.1-beta.1"
|