homebridge-sonos-scenes 0.1.0 → 0.1.1

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.
@@ -1,4 +1,6 @@
1
- import type { LocalTransportConfig, SceneSourceKind, SonosTransport, TopologySnapshot } from "../types";
1
+ import type { LocalTransportConfig, SceneSourceKind, SonosFavorite, SonosTransport, TopologySnapshot } from "../types";
2
+ export declare function buildFavoriteTransportUri(favorite: Pick<SonosFavorite, "uri" | "metadata">): string | undefined;
3
+ export declare function parseFavoriteBrowseXml(xml: string): SonosFavorite[];
2
4
  export declare class LocalSonosTransport implements SonosTransport {
3
5
  private readonly config;
4
6
  readonly kind = "local";
@@ -28,6 +30,7 @@ export declare class LocalSonosTransport implements SonosTransport {
28
30
  private requirePlayer;
29
31
  private requireLiveRecord;
30
32
  private findFavorite;
33
+ private fetchFavorites;
31
34
  private setFixtureGroupMembers;
32
35
  private touchFixture;
33
36
  }
@@ -4,6 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LocalSonosTransport = void 0;
7
+ exports.buildFavoriteTransportUri = buildFavoriteTransportUri;
8
+ exports.parseFavoriteBrowseXml = parseFavoriteBrowseXml;
7
9
  const promises_1 = require("node:fs/promises");
8
10
  const node_path_1 = __importDefault(require("node:path"));
9
11
  const sonos_1 = require("sonos");
@@ -11,6 +13,95 @@ const sampleTopology_1 = require("../sampleTopology");
11
13
  function clone(value) {
12
14
  return JSON.parse(JSON.stringify(value));
13
15
  }
16
+ function decodeXmlEntities(input) {
17
+ return input
18
+ .replace(/&lt;/g, "<")
19
+ .replace(/&gt;/g, ">")
20
+ .replace(/&quot;/g, "\"")
21
+ .replace(/&apos;/g, "'")
22
+ .replace(/&amp;/g, "&");
23
+ }
24
+ function escapeRegExp(input) {
25
+ return input.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
26
+ }
27
+ function stripNamespacePrefix(input) {
28
+ const separatorIndex = input.indexOf(":");
29
+ return separatorIndex >= 0 ? input.slice(separatorIndex + 1) : input;
30
+ }
31
+ function extractAttributeValue(xml, tagName, attributeName) {
32
+ const pattern = new RegExp(`<${escapeRegExp(tagName)}\\b[^>]*\\b${escapeRegExp(attributeName)}="([^"]+)"`, "i");
33
+ const match = pattern.exec(xml);
34
+ const value = match?.[1] ? decodeXmlEntities(match[1]).trim() : "";
35
+ return value || undefined;
36
+ }
37
+ function extractTagValue(xml, tagName) {
38
+ const pattern = new RegExp(`<${escapeRegExp(tagName)}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/${escapeRegExp(tagName)}>`, "i");
39
+ const match = pattern.exec(xml);
40
+ const value = match?.[1] ? decodeXmlEntities(match[1]).trim() : "";
41
+ return value || undefined;
42
+ }
43
+ function buildFavoriteContainerUri(metadata) {
44
+ const metadataItemId = extractAttributeValue(metadata, "item", "id");
45
+ if (!metadataItemId) {
46
+ return undefined;
47
+ }
48
+ const itemClass = extractTagValue(metadata, "upnp:class")?.toLowerCase();
49
+ if (metadataItemId.startsWith("RINCON_") || itemClass?.includes("linein")) {
50
+ return `x-rincon-stream:${metadataItemId}`;
51
+ }
52
+ return `x-rincon-cpcontainer:${metadataItemId}`;
53
+ }
54
+ function buildFavoriteTransportUri(favorite) {
55
+ if (favorite.uri?.trim()) {
56
+ return decodeXmlEntities(favorite.uri).trim();
57
+ }
58
+ if (!favorite.metadata?.trim()) {
59
+ return undefined;
60
+ }
61
+ return buildFavoriteContainerUri(favorite.metadata);
62
+ }
63
+ function normalizeFavorite(favorite) {
64
+ const normalized = {
65
+ ...favorite,
66
+ id: favorite.id.trim(),
67
+ name: favorite.name.trim() || favorite.id.trim(),
68
+ };
69
+ if (favorite.uri?.trim()) {
70
+ normalized.uri = decodeXmlEntities(favorite.uri).trim();
71
+ }
72
+ if (favorite.metadata?.trim()) {
73
+ normalized.metadata = decodeXmlEntities(favorite.metadata).trim();
74
+ }
75
+ const transportUri = favorite.transportUri?.trim() || buildFavoriteTransportUri(normalized);
76
+ if (transportUri) {
77
+ normalized.transportUri = transportUri;
78
+ }
79
+ return normalized;
80
+ }
81
+ function fallbackFavoritesFromBrowseResult(result) {
82
+ return (result.items ?? []).map((favorite) => normalizeFavorite({
83
+ id: favorite.id ?? favorite.title ?? favorite.uri ?? randomString(),
84
+ name: favorite.title ?? favorite.id ?? "Favorite",
85
+ uri: favorite.uri,
86
+ }));
87
+ }
88
+ function parseFavoriteBrowseXml(xml) {
89
+ const items = xml.match(/<item\b[\s\S]*?<\/item>/gi) ?? [];
90
+ return items.map((itemXml) => normalizeFavorite({
91
+ id: stripNamespacePrefix(extractAttributeValue(itemXml, "item", "id") ?? randomString()),
92
+ name: extractTagValue(itemXml, "dc:title") ?? "Favorite",
93
+ uri: extractTagValue(itemXml, "res"),
94
+ metadata: extractTagValue(itemXml, "r:resMD"),
95
+ description: extractTagValue(itemXml, "r:description"),
96
+ playbackType: extractTagValue(itemXml, "r:type"),
97
+ }));
98
+ }
99
+ function formatHouseholdDisplayName(householdIndex, householdCount) {
100
+ if (householdCount <= 1) {
101
+ return "Sonos Household";
102
+ }
103
+ return `Sonos Household ${householdIndex + 1}`;
104
+ }
14
105
  function extractFirstString(input) {
15
106
  if (typeof input === "string" && input.trim()) {
16
107
  return input.trim();
@@ -206,10 +297,14 @@ class LocalSonosTransport {
206
297
  }
207
298
  const coordinator = this.requireLiveRecord(coordinatorPlayerId);
208
299
  const favorite = await this.findFavorite(householdId, favoriteId);
209
- if (!favorite.uri) {
210
- throw new Error(`Favorite "${favorite.name}" does not expose a playable URI through the local transport.`);
300
+ const transportUri = favorite.transportUri ?? buildFavoriteTransportUri(favorite);
301
+ if (!transportUri) {
302
+ throw new Error(`Favorite "${favorite.name}" does not expose enough metadata to build a playable local URI.`);
211
303
  }
212
- await coordinator.device.setAVTransportURI(favorite.uri);
304
+ await coordinator.device.setAVTransportURI({
305
+ uri: transportUri,
306
+ metadata: favorite.metadata ?? "",
307
+ });
213
308
  }
214
309
  async loadTv(householdId, coordinatorPlayerId, deviceId, playOnCompletion = true) {
215
310
  if (!this.config.allowTvSource) {
@@ -310,12 +405,6 @@ class LocalSonosTransport {
310
405
  const livePlayers = new Map();
311
406
  for (const [householdId, root] of rootsByHousehold) {
312
407
  const rawGroups = await root.getAllGroups().catch(() => []);
313
- const favoriteResult = await root.getFavorites().catch(() => ({
314
- items: [],
315
- returned: "0",
316
- total: "0",
317
- updateID: "0",
318
- }));
319
408
  const householdRecords = records.filter((record) => record.householdId === householdId);
320
409
  const householdByHost = new Map(householdRecords.map((record) => [record.host, record]));
321
410
  const players = [];
@@ -390,14 +479,10 @@ class LocalSonosTransport {
390
479
  });
391
480
  livePlayers.set(fallbackId, record);
392
481
  }
393
- const favorites = (favoriteResult.items ?? []).map((favorite) => ({
394
- id: favorite.id ?? favorite.title ?? favorite.uri ?? randomString(),
395
- name: favorite.title ?? favorite.id ?? "Favorite",
396
- uri: favorite.uri,
397
- }));
482
+ const favorites = await this.fetchFavorites(root);
398
483
  households.push({
399
484
  id: householdId,
400
- displayName: householdRecords[0]?.zoneAttrs?.CurrentZoneName ? `${householdRecords[0].zoneAttrs.CurrentZoneName} household` : `Household ${households.length + 1}`,
485
+ displayName: formatHouseholdDisplayName(households.length, rootsByHousehold.size),
401
486
  players,
402
487
  groups,
403
488
  favorites,
@@ -468,21 +553,33 @@ class LocalSonosTransport {
468
553
  if (!root) {
469
554
  throw new Error(`No discovered Sonos root is available for household "${householdId}".`);
470
555
  }
471
- const favorites = await root.getFavorites().catch(() => ({
556
+ const favorites = await this.fetchFavorites(root);
557
+ const favorite = favorites.find((item) => item.id === favoriteId || item.name === favoriteId);
558
+ if (!favorite) {
559
+ throw new Error(`Favorite "${favoriteId}" was not found.`);
560
+ }
561
+ return favorite;
562
+ }
563
+ async fetchFavorites(root) {
564
+ const browseResponse = await root.contentDirectoryService().Browse({
565
+ BrowseFlag: "BrowseDirectChildren",
566
+ Filter: "*",
567
+ StartingIndex: "0",
568
+ RequestedCount: "100",
569
+ SortCriteria: "",
570
+ ObjectID: "FV:2",
571
+ }).catch(() => undefined);
572
+ const browseFavorites = typeof browseResponse?.Result === "string" ? parseFavoriteBrowseXml(browseResponse.Result) : [];
573
+ if (browseFavorites.length > 0) {
574
+ return browseFavorites;
575
+ }
576
+ const fallbackResult = await root.getFavorites().catch(() => ({
472
577
  items: [],
473
578
  returned: "0",
474
579
  total: "0",
475
580
  updateID: "0",
476
581
  }));
477
- const favorite = favorites.items.find((item) => item.id === favoriteId || item.title === favoriteId);
478
- if (!favorite) {
479
- throw new Error(`Favorite "${favoriteId}" was not found.`);
480
- }
481
- return {
482
- id: favorite.id ?? favoriteId,
483
- name: favorite.title ?? favoriteId,
484
- uri: favorite.uri,
485
- };
582
+ return fallbackFavoritesFromBrowseResult(fallbackResult);
486
583
  }
487
584
  setFixtureGroupMembers(householdId, coordinatorPlayerId, desiredMembers) {
488
585
  const household = this.requireHousehold(this.fixtureState, householdId);
@@ -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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"}
@@ -72,6 +72,10 @@ export interface SonosFavorite {
72
72
  id: string;
73
73
  name: string;
74
74
  uri?: string;
75
+ transportUri?: string;
76
+ metadata?: string;
77
+ description?: string;
78
+ playbackType?: string;
75
79
  }
76
80
  export interface SonosPlayer {
77
81
  id: string;
@@ -42,6 +42,7 @@
42
42
  padding: 0.75rem 0.9rem;
43
43
  border: 1px solid rgba(22, 32, 51, 0.08);
44
44
  background: white;
45
+ color: var(--scene-ink);
45
46
  margin-bottom: 0.5rem;
46
47
  }
47
48
 
@@ -72,6 +73,37 @@
72
73
  border-radius: 0.85rem;
73
74
  padding: 0.55rem 0.75rem;
74
75
  background: white;
76
+ color: var(--scene-ink);
77
+ display: block;
78
+ }
79
+
80
+ .scene-member-row {
81
+ display: flex;
82
+ align-items: flex-start;
83
+ gap: 0.65rem;
84
+ }
85
+
86
+ .scene-member-pill .form-check-input {
87
+ margin-top: 0.2rem;
88
+ flex: 0 0 auto;
89
+ }
90
+
91
+ .scene-member-copy {
92
+ display: grid;
93
+ gap: 0.15rem;
94
+ min-width: 0;
95
+ }
96
+
97
+ .scene-member-title {
98
+ color: var(--scene-ink);
99
+ font-weight: 600;
100
+ line-height: 1.3;
101
+ }
102
+
103
+ .scene-member-meta {
104
+ color: #667085;
105
+ font-size: 0.86rem;
106
+ line-height: 1.35;
75
107
  }
76
108
 
77
109
  .scene-log {
@@ -348,6 +380,20 @@
348
380
  return household?.players.find((player) => player.id === playerId)?.name || playerId;
349
381
  }
350
382
 
383
+ function getPlayerNameForHousehold(householdId, playerId) {
384
+ const household = state.topology?.households?.find((entry) => entry.id === householdId);
385
+ return household?.players.find((player) => player.id === playerId)?.name || playerId;
386
+ }
387
+
388
+ function getHouseholdDisplayName(householdId) {
389
+ if (!householdId) {
390
+ return "No household selected";
391
+ }
392
+
393
+ const household = state.topology?.households?.find((entry) => entry.id === householdId);
394
+ return household?.displayName || householdId;
395
+ }
396
+
351
397
  function serializeDraft() {
352
398
  const draft = clone(state.draft);
353
399
  draft.name = elements.sceneName.value.trim() || "New Scene";
@@ -412,7 +458,10 @@
412
458
  const button = document.createElement("button");
413
459
  button.type = "button";
414
460
  button.className = scene.id === state.activeSceneId ? "active" : "";
415
- button.innerHTML = `<strong>${scene.name}</strong><div class="scene-help">${scene.householdId || "No household selected"}</div>`;
461
+ const coordinatorLabel = scene.coordinatorPlayerId
462
+ ? ` - ${getPlayerNameForHousehold(scene.householdId, scene.coordinatorPlayerId)}`
463
+ : "";
464
+ button.innerHTML = `<strong>${scene.name}</strong><div class="scene-help">${getHouseholdDisplayName(scene.householdId)}${coordinatorLabel}</div>`;
416
465
  button.addEventListener("click", () => {
417
466
  state.activeSceneId = scene.id;
418
467
  state.draft = normalizeScene(scene);
@@ -456,9 +505,13 @@
456
505
  .map(
457
506
  (player) => `
458
507
  <label class="scene-member-pill">
459
- <input class="form-check-input me-2" type="checkbox" value="${player.id}" ${selected.has(player.id) ? "checked" : ""}>
460
- <strong>${player.name}</strong><br>
461
- <span class="scene-help">${(player.sourceOptions || []).join(", ") || "favorite"}</span>
508
+ <span class="scene-member-row">
509
+ <input class="form-check-input" type="checkbox" value="${player.id}" ${selected.has(player.id) ? "checked" : ""}>
510
+ <span class="scene-member-copy">
511
+ <span class="scene-member-title">${player.name}</span>
512
+ <span class="scene-member-meta">${player.model || "Unknown model"} - ${((player.sourceOptions || []).join(", ") || "favorite").replaceAll("_", " ")}</span>
513
+ </span>
514
+ </span>
462
515
  </label>
463
516
  `,
464
517
  )
@@ -488,7 +541,10 @@
488
541
  favoriteName: favorites.find((favorite) => favorite.id === selectedFavorite)?.name || "",
489
542
  };
490
543
  elements.sourceTarget.innerHTML = favorites
491
- .map((favorite) => `<option value="${favorite.id}" ${favorite.id === selectedFavorite ? "selected" : ""}>${favorite.name}</option>`)
544
+ .map((favorite) => {
545
+ const label = favorite.description ? `${favorite.name} (${favorite.description})` : favorite.name;
546
+ return `<option value="${favorite.id}" ${favorite.id === selectedFavorite ? "selected" : ""}>${label}</option>`;
547
+ })
492
548
  .join("");
493
549
  return;
494
550
  }
@@ -517,7 +573,7 @@
517
573
  : selectedMembers
518
574
  .map((playerId) => `
519
575
  <label class="scene-member-pill">
520
- <span class="d-block mb-1"><strong>${getPlayerName(playerId)}</strong></span>
576
+ <span class="scene-member-title d-block mb-1">${getPlayerName(playerId)}</span>
521
577
  <input class="form-control" data-player-id="${playerId}" type="number" min="0" max="100" value="${values.get(playerId) ?? ""}">
522
578
  </label>
523
579
  `)
@@ -603,6 +659,15 @@
603
659
  .join("");
604
660
 
605
661
  const favorites = (household.favorites || []).map((favorite) => `<li>${favorite.name}</li>`).join("");
662
+ const playerRows = household.players
663
+ .map((player) => {
664
+ const sourceOptions = ((player.sourceOptions || []).join(", ") || "favorite").replaceAll("_", " ");
665
+ return `<li><strong>${player.name}</strong> <span class="scene-help">${player.model || "Unknown model"} - ${sourceOptions}</span></li>`;
666
+ })
667
+ .join("");
668
+ const favoriteRows = (household.favorites || [])
669
+ .map((favorite) => `<li>${favorite.name}${favorite.description ? ` <span class="scene-help">(${favorite.description})</span>` : ""}</li>`)
670
+ .join("");
606
671
 
607
672
  return `
608
673
  <div class="card h-100">
@@ -610,11 +675,11 @@
610
675
  <h5 class="card-title">${household.displayName}</h5>
611
676
  <p class="scene-help mb-3">${household.id}</p>
612
677
  <strong>Players</strong>
613
- <ul>${players || "<li>None</li>"}</ul>
678
+ <ul>${playerRows || players || "<li>None</li>"}</ul>
614
679
  <strong>Current Groups</strong>
615
680
  <ul>${groups || "<li>None</li>"}</ul>
616
681
  <strong>Favorites</strong>
617
- <ul>${favorites || "<li>None</li>"}</ul>
682
+ <ul>${favoriteRows || favorites || "<li>None</li>"}</ul>
618
683
  </div>
619
684
  </div>
620
685
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-sonos-scenes",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
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",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "git+https://github.com/applemanj/homebridge-sonos-scenes.git"
12
+ "url": "https://github.com/applemanj/homebridge-sonos-scenes"
13
13
  },
14
14
  "main": "dist/src/index.js",
15
15
  "types": "dist/src/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"",
19
19
  "prepare": "npm run build",
20
20
  "prepack": "npm run clean && npm run build",
21
- "test": "npm run build && node --test dist/test/config.test.js dist/test/sceneRunner.test.js dist/test/validation.test.js"
21
+ "test": "npm run build && node --test dist/test/config.test.js dist/test/localTransport.test.js dist/test/sceneRunner.test.js dist/test/validation.test.js"
22
22
  },
23
23
  "files": [
24
24
  "dist/src",