homebridge-cync-app 0.5.2 → 0.5.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.5.3
4
+
5
+ **Release Date:** 2026-06-20
6
+
7
+ ### Added
8
+ - Expanded Light Show support to **73** device types using capability data derived from the Cync APK.
9
+ - Expanded Music Show support to the **16** compatible device types identified by the Cync APK.
10
+
11
+ ### Fixed
12
+ - Separated Light Show and Music Show capability checks so light-only devices, including 6-inch recessed fixtures, no longer expose unsupported Music Show or Segment scene accessories.
13
+
14
+ ## v0.5.2
15
+
16
+ **Release Date:** 2026-06-18
17
+
18
+ ### Fixed
19
+ - Preserved the last non-zero brightness level for supported dimmable devices when powered off.
20
+ - Prevented HomeKit companion brightness updates from overriding restored brightness with 100% after power-on.
21
+ - Corrected RGBIC Segment scene state tracking when Segment scenes share numeric indexes with Light Shows or Custom Shows.
22
+ - Automatically clears active Light Show, Music Show, Custom Show, and Segment scene accessories when the parent light is turned off.
23
+ - Applied the same scene cleanup behavior to Off states reported via LAN updates from the Cync app or physical controls.
24
+
25
+ ### Changed
26
+ - Improved synchronization between RGBIC scenes and the primary light accessory across HomeKit, the Cync app, and direct device control.
27
+
3
28
  ## v0.5.1
4
29
 
5
30
  **Release Date:** 2026-06-17
@@ -1,5 +1,6 @@
1
1
  // src/cync/device-classifier.ts
2
2
  // Cync Device Classifier: Centralizes accessory type selection and classification logging context
3
+ import { supportsCyncLightShows } from './show-capabilities.js';
3
4
  const CYNC_LIGHT_DEVICE_TYPES = new Set([
4
5
  1, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 17, 18, 19, 20, 21,
5
6
  22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
@@ -74,7 +75,8 @@ export function classifyCyncDevice(device, resolvedDeviceType) {
74
75
  reason: `deviceType: ${deviceType}`,
75
76
  };
76
77
  }
77
- if (deviceType !== undefined && CYNC_LIGHT_DEVICE_TYPES.has(deviceType)) {
78
+ if (deviceType !== undefined &&
79
+ (CYNC_LIGHT_DEVICE_TYPES.has(deviceType) || supportsCyncLightShows(deviceType))) {
78
80
  return {
79
81
  accessoryType: 'light',
80
82
  deviceType,
@@ -1 +1 @@
1
- {"version":3,"file":"device-classifier.js","sourceRoot":"","sources":["../../src/cync/device-classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-classifier.js","sourceRoot":"","sources":["../../src/cync/device-classifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Device show capabilities extracted from the Cync Android SDK DeviceType table.
3
+ *
4
+ * Capability.C identifies Light Show support. Capability.E identifies Music Show
5
+ * support. Music-capable devices are also Light Show capable in the SDK table.
6
+ */
7
+ export declare const CYNC_LIGHT_SHOW_DEVICE_TYPES: Set<number>;
8
+ export declare const CYNC_MUSIC_SHOW_DEVICE_TYPES: Set<number>;
9
+ export declare function supportsCyncLightShows(deviceType: number | undefined): boolean;
10
+ export declare function supportsCyncMusicShows(deviceType: number | undefined): boolean;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Device show capabilities extracted from the Cync Android SDK DeviceType table.
3
+ *
4
+ * Capability.C identifies Light Show support. Capability.E identifies Music Show
5
+ * support. Music-capable devices are also Light Show capable in the SDK table.
6
+ */
7
+ export const CYNC_LIGHT_SHOW_DEVICE_TYPES = new Set([
8
+ 6, 7, 8, 21, 22, 23, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44,
9
+ 46, 47, 71, 72, 73, 74, 75, 76, 97, 98, 101, 102, 104, 105, 107,
10
+ 108, 109, 110, 123, 131, 132, 133, 137, 138, 139, 140, 141, 142,
11
+ 143, 146, 147, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
12
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 177,
13
+ 180, 181, 182,
14
+ ]);
15
+ export const CYNC_MUSIC_SHOW_DEVICE_TYPES = new Set([
16
+ 71, 72, 73, 74, 75, 76, 110, 123, 141, 155, 157, 158, 159, 166,
17
+ 167, 168,
18
+ ]);
19
+ export function supportsCyncLightShows(deviceType) {
20
+ return deviceType !== undefined && CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType);
21
+ }
22
+ export function supportsCyncMusicShows(deviceType) {
23
+ return deviceType !== undefined && CYNC_MUSIC_SHOW_DEVICE_TYPES.has(deviceType);
24
+ }
25
+ //# sourceMappingURL=show-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-capabilities.js","sourceRoot":"","sources":["../../src/cync/show-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAS;IAC3D,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC3D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAS;IAC3D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9D,GAAG,EAAE,GAAG;CACR,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CAAC,UAA8B;IACpE,OAAO,UAAU,KAAK,SAAS,IAAI,4BAA4B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAA8B;IACpE,OAAO,UAAU,KAAK,SAAS,IAAI,4BAA4B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACjF,CAAC"}
package/dist/platform.js CHANGED
@@ -10,16 +10,13 @@ import { configureCyncFanAccessory } from './cync/cync-fan-accessory.js';
10
10
  import { BUILT_IN_CYNC_LIGHT_SHOWS, configureCyncLightShowAccessory, } from './cync/cync-light-show-accessory.js';
11
11
  import { BUILT_IN_CYNC_MUSIC_SHOWS, configureCyncMusicShowAccessory, } from './cync/cync-music-show-accessory.js';
12
12
  import { classifyCyncDevice } from './cync/device-classifier.js';
13
+ import { supportsCyncLightShows, supportsCyncMusicShows, } from './cync/show-capabilities.js';
13
14
  const toCyncLogger = (log) => ({
14
15
  debug: log.debug.bind(log),
15
16
  info: log.info.bind(log),
16
17
  warn: log.warn.bind(log),
17
18
  error: log.error.bind(log),
18
19
  });
19
- const CYNC_LIGHT_SHOW_DEVICE_TYPES = new Set([
20
- 76, // Outdoor 48" dynamic light strip
21
- 123, // Light strip
22
- ]);
23
20
  function getDefaultCapabilitiesForDeviceType() {
24
21
  const isLight = false;
25
22
  return {
@@ -451,6 +448,8 @@ export class CyncAppPlatform {
451
448
  const uuid = this.api.hap.uuid.generate(uuidSeed);
452
449
  const deviceType = resolveDeviceType(device);
453
450
  const classification = classifyCyncDevice(device, deviceType);
451
+ const supportsLightShows = supportsCyncLightShows(deviceType);
452
+ const supportsMusicShows = supportsCyncMusicShows(deviceType);
454
453
  this.log.debug('Cync device classification: ' +
455
454
  `name="${deviceName}" ` +
456
455
  `deviceId=${deviceId} ` +
@@ -561,8 +560,7 @@ export class CyncAppPlatform {
561
560
  const lightShows = BUILT_IN_CYNC_LIGHT_SHOWS.filter(lightShow => enabledLightShowIndexes === null ||
562
561
  enabledLightShowIndexes.has(lightShow.index));
563
562
  if (this.shouldExposeLightShows() &&
564
- typeof deviceType === 'number' &&
565
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)) {
563
+ supportsLightShows) {
566
564
  for (const lightShow of lightShows) {
567
565
  const showIndex = lightShow.index;
568
566
  const showName = lightShow.name;
@@ -590,8 +588,7 @@ export class CyncAppPlatform {
590
588
  const musicShows = BUILT_IN_CYNC_MUSIC_SHOWS.filter(musicShow => enabledMusicShowIndexes === null ||
591
589
  enabledMusicShowIndexes.has(musicShow.index));
592
590
  if (this.shouldExposeMusicShows() &&
593
- typeof deviceType === 'number' &&
594
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)) {
591
+ supportsMusicShows) {
595
592
  for (const musicShow of musicShows) {
596
593
  const showIndex = musicShow.index;
597
594
  const showName = musicShow.name;
@@ -616,8 +613,7 @@ export class CyncAppPlatform {
616
613
  }
617
614
  }
618
615
  if (this.shouldExposeCustomShows() &&
619
- typeof deviceType === 'number' &&
620
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)) {
616
+ supportsLightShows) {
621
617
  for (const customLightShow of customLightShows) {
622
618
  const showIndex = customLightShow.index;
623
619
  const showName = customLightShow.name;
@@ -636,7 +632,7 @@ export class CyncAppPlatform {
636
632
  customLightShowAccessory.context.showKind = 'custom-light';
637
633
  configureCyncLightShowAccessory(this.accessoryEnv, mesh, device, customLightShowAccessory, customLightShowName, deviceId, customLightShow, 'custom-light', (showDeviceId, showIndex) => this.client.activateLightShow(showDeviceId, showIndex));
638
634
  }
639
- for (const customMultiColorScheme of customMultiColorSchemes) {
635
+ for (const customMultiColorScheme of supportsMusicShows ? customMultiColorSchemes : []) {
640
636
  const schemeIndex = customMultiColorScheme.index;
641
637
  const schemeName = customMultiColorScheme.name;
642
638
  const customMultiColorSchemeName = `${schemeName} - ${deviceName} - Segment`;
@@ -654,7 +650,7 @@ export class CyncAppPlatform {
654
650
  customMultiColorSchemeAccessory.context.showKind = 'custom-multicolor';
655
651
  configureCyncLightShowAccessory(this.accessoryEnv, mesh, device, customMultiColorSchemeAccessory, customMultiColorSchemeName, deviceId, customMultiColorScheme, 'custom-multicolor', (showDeviceId, showIndex) => this.client.activateMultiColorScheme(showDeviceId, showIndex));
656
652
  }
657
- for (const customMusicShow of customMusicShows) {
653
+ for (const customMusicShow of supportsMusicShows ? customMusicShows : []) {
658
654
  const showIndex = customMusicShow.index;
659
655
  const showName = customMusicShow.name;
660
656
  const customMusicShowName = `${showName} - ${deviceName} - Custom Music`;
@@ -674,32 +670,27 @@ export class CyncAppPlatform {
674
670
  }
675
671
  }
676
672
  const enabledLightShowIndexesForCleanup = this.shouldExposeLightShows() &&
677
- typeof deviceType === 'number' &&
678
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
673
+ supportsLightShows
679
674
  ? new Set(lightShows.map((lightShow) => lightShow.index))
680
675
  : new Set();
681
676
  this.cleanupDisabledShowAccessoriesForDevice(String(mesh.id), deviceId, enabledLightShowIndexesForCleanup, 'built-in-light', 'cync-lightshow', 'light show');
682
677
  const enabledMusicShowIndexesForCleanup = this.shouldExposeMusicShows() &&
683
- typeof deviceType === 'number' &&
684
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
678
+ supportsMusicShows
685
679
  ? new Set(musicShows.map((musicShow) => musicShow.index))
686
680
  : new Set();
687
681
  this.cleanupDisabledShowAccessoriesForDevice(String(mesh.id), deviceId, enabledMusicShowIndexesForCleanup, 'built-in-music', 'cync-musicshow', 'music show');
688
682
  const enabledCustomLightShowIndexesForCleanup = this.shouldExposeCustomShows() &&
689
- typeof deviceType === 'number' &&
690
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
683
+ supportsLightShows
691
684
  ? new Set(customLightShows.map((customLightShow) => customLightShow.index))
692
685
  : new Set();
693
686
  this.cleanupDisabledShowAccessoriesForDevice(String(mesh.id), deviceId, enabledCustomLightShowIndexesForCleanup, 'custom-light', 'cync-custom-lightshow', 'custom light show');
694
687
  const enabledCustomMultiColorIndexesForCleanup = this.shouldExposeCustomShows() &&
695
- typeof deviceType === 'number' &&
696
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
688
+ supportsMusicShows
697
689
  ? new Set(customMultiColorSchemes.map((scheme) => scheme.index))
698
690
  : new Set();
699
691
  this.cleanupDisabledShowAccessoriesForDevice(String(mesh.id), deviceId, enabledCustomMultiColorIndexesForCleanup, 'custom-multicolor', 'cync-custom-multicolor', 'custom MultiColor scheme');
700
692
  const enabledCustomMusicShowIndexesForCleanup = this.shouldExposeCustomShows() &&
701
- typeof deviceType === 'number' &&
702
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
693
+ supportsMusicShows
703
694
  ? new Set(customMusicShows.map((customMusicShow) => customMusicShow.index))
704
695
  : new Set();
705
696
  this.cleanupDisabledShowAccessoriesForDevice(String(mesh.id), deviceId, enabledCustomMusicShowIndexesForCleanup, 'custom-music', 'cync-custom-musicshow', 'custom music show');
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -46,14 +46,20 @@ The current implementation does not upload or edit show definitions. Saved Custo
46
46
 
47
47
  ## Compatible Device Types
48
48
 
49
- The branch currently exposes show switches for:
49
+ Show support is derived from the Cync Android SDK `DeviceType` capability
50
+ table. `Capability.C` identifies Light Show support and `Capability.E`
51
+ identifies Music Show support. The plugin keeps these lists separate because
52
+ many full-color devices support Light Shows without supporting Music Shows.
53
+
54
+ Music Show-capable device types (also Light Show capable):
50
55
 
51
56
  ```text
52
- 76 Outdoor 48" dynamic light strip
53
- 123 Light strip
57
+ 71, 72, 73, 74, 75, 76, 110, 123, 141, 155, 157, 158, 159, 166, 167, 168
54
58
  ```
55
59
 
56
- Additional RGBIC-capable device types can be added to `CYNC_LIGHT_SHOW_DEVICE_TYPES` after validation.
60
+ The complete SDK-derived lists live in `src/cync/show-capabilities.ts`.
61
+ Custom Light Shows use the Light Show capability, while Custom Music Shows and
62
+ multicolor Segment schemes use the Music Show/dynamic-device capability.
57
63
 
58
64
  ## Notes For Future Show Editing
59
65
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-cync-app",
3
3
  "displayName": "Homebridge Cync App",
4
4
  "type": "module",
5
- "version": "0.5.2",
5
+ "version": "0.5.3",
6
6
  "private": false,
7
7
  "description": "Homebridge plugin that integrates your GE Cync account (via the Cync app/API) and exposes all supported devices: plugs, lights, switches, etc",
8
8
  "author": "Dustin Newell",
@@ -1,5 +1,6 @@
1
1
  // src/cync/device-classifier.ts
2
2
  // Cync Device Classifier: Centralizes accessory type selection and classification logging context
3
+ import { supportsCyncLightShows } from './show-capabilities.js';
3
4
 
4
5
  type CyncAccessoryType = 'light' | 'fan' | 'outlet' | 'switch' | 'ignored' | 'unsupported';
5
6
 
@@ -112,7 +113,10 @@ export function classifyCyncDevice(
112
113
  };
113
114
  }
114
115
 
115
- if (deviceType !== undefined && CYNC_LIGHT_DEVICE_TYPES.has(deviceType)) {
116
+ if (
117
+ deviceType !== undefined &&
118
+ (CYNC_LIGHT_DEVICE_TYPES.has(deviceType) || supportsCyncLightShows(deviceType))
119
+ ) {
116
120
  return {
117
121
  accessoryType: 'light',
118
122
  deviceType,
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Device show capabilities extracted from the Cync Android SDK DeviceType table.
3
+ *
4
+ * Capability.C identifies Light Show support. Capability.E identifies Music Show
5
+ * support. Music-capable devices are also Light Show capable in the SDK table.
6
+ */
7
+ export const CYNC_LIGHT_SHOW_DEVICE_TYPES = new Set<number>([
8
+ 6, 7, 8, 21, 22, 23, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44,
9
+ 46, 47, 71, 72, 73, 74, 75, 76, 97, 98, 101, 102, 104, 105, 107,
10
+ 108, 109, 110, 123, 131, 132, 133, 137, 138, 139, 140, 141, 142,
11
+ 143, 146, 147, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
12
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 177,
13
+ 180, 181, 182,
14
+ ]);
15
+
16
+ export const CYNC_MUSIC_SHOW_DEVICE_TYPES = new Set<number>([
17
+ 71, 72, 73, 74, 75, 76, 110, 123, 141, 155, 157, 158, 159, 166,
18
+ 167, 168,
19
+ ]);
20
+
21
+ export function supportsCyncLightShows(deviceType: number | undefined): boolean {
22
+ return deviceType !== undefined && CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType);
23
+ }
24
+
25
+ export function supportsCyncMusicShows(deviceType: number | undefined): boolean {
26
+ return deviceType !== undefined && CYNC_MUSIC_SHOW_DEVICE_TYPES.has(deviceType);
27
+ }
package/src/platform.ts CHANGED
@@ -34,6 +34,10 @@ import {
34
34
  configureCyncMusicShowAccessory,
35
35
  } from './cync/cync-music-show-accessory.js';
36
36
  import { classifyCyncDevice } from './cync/device-classifier.js';
37
+ import {
38
+ supportsCyncLightShows,
39
+ supportsCyncMusicShows,
40
+ } from './cync/show-capabilities.js';
37
41
 
38
42
  const toCyncLogger = (log: Logger): CyncLogger => ({
39
43
  debug: log.debug.bind(log),
@@ -42,11 +46,6 @@ const toCyncLogger = (log: Logger): CyncLogger => ({
42
46
  error: log.error.bind(log),
43
47
  });
44
48
 
45
- const CYNC_LIGHT_SHOW_DEVICE_TYPES = new Set<number>([
46
- 76, // Outdoor 48" dynamic light strip
47
- 123, // Light strip
48
- ]);
49
-
50
49
  type CyncShowKind =
51
50
  | 'built-in-light'
52
51
  | 'built-in-music'
@@ -718,6 +717,8 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
718
717
 
719
718
  const deviceType = resolveDeviceType(device);
720
719
  const classification = classifyCyncDevice(device, deviceType);
720
+ const supportsLightShows = supportsCyncLightShows(deviceType);
721
+ const supportsMusicShows = supportsCyncMusicShows(deviceType);
721
722
 
722
723
  this.log.debug(
723
724
  'Cync device classification: ' +
@@ -920,8 +921,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
920
921
 
921
922
  if (
922
923
  this.shouldExposeLightShows() &&
923
- typeof deviceType === 'number' &&
924
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
924
+ supportsLightShows
925
925
  ) {
926
926
  for (const lightShow of lightShows) {
927
927
  const showIndex = lightShow.index;
@@ -995,8 +995,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
995
995
 
996
996
  if (
997
997
  this.shouldExposeMusicShows() &&
998
- typeof deviceType === 'number' &&
999
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
998
+ supportsMusicShows
1000
999
  ) {
1001
1000
  for (const musicShow of musicShows) {
1002
1001
  const showIndex = musicShow.index;
@@ -1061,8 +1060,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1061
1060
 
1062
1061
  if (
1063
1062
  this.shouldExposeCustomShows() &&
1064
- typeof deviceType === 'number' &&
1065
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
1063
+ supportsLightShows
1066
1064
  ) {
1067
1065
  for (const customLightShow of customLightShows) {
1068
1066
  const showIndex = customLightShow.index;
@@ -1111,7 +1109,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1111
1109
  );
1112
1110
  }
1113
1111
 
1114
- for (const customMultiColorScheme of customMultiColorSchemes) {
1112
+ for (const customMultiColorScheme of supportsMusicShows ? customMultiColorSchemes : []) {
1115
1113
  const schemeIndex = customMultiColorScheme.index;
1116
1114
  const schemeName = customMultiColorScheme.name;
1117
1115
 
@@ -1157,7 +1155,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1157
1155
  );
1158
1156
  }
1159
1157
 
1160
- for (const customMusicShow of customMusicShows) {
1158
+ for (const customMusicShow of supportsMusicShows ? customMusicShows : []) {
1161
1159
  const showIndex = customMusicShow.index;
1162
1160
  const showName = customMusicShow.name;
1163
1161
 
@@ -1205,8 +1203,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1205
1203
 
1206
1204
  const enabledLightShowIndexesForCleanup =
1207
1205
  this.shouldExposeLightShows() &&
1208
- typeof deviceType === 'number' &&
1209
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
1206
+ supportsLightShows
1210
1207
  ? new Set(lightShows.map((lightShow) => lightShow.index))
1211
1208
  : new Set<number>();
1212
1209
 
@@ -1221,8 +1218,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1221
1218
 
1222
1219
  const enabledMusicShowIndexesForCleanup =
1223
1220
  this.shouldExposeMusicShows() &&
1224
- typeof deviceType === 'number' &&
1225
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
1221
+ supportsMusicShows
1226
1222
  ? new Set(musicShows.map((musicShow) => musicShow.index))
1227
1223
  : new Set<number>();
1228
1224
 
@@ -1237,8 +1233,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1237
1233
 
1238
1234
  const enabledCustomLightShowIndexesForCleanup =
1239
1235
  this.shouldExposeCustomShows() &&
1240
- typeof deviceType === 'number' &&
1241
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
1236
+ supportsLightShows
1242
1237
  ? new Set(customLightShows.map((customLightShow) => customLightShow.index))
1243
1238
  : new Set<number>();
1244
1239
 
@@ -1253,8 +1248,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1253
1248
 
1254
1249
  const enabledCustomMultiColorIndexesForCleanup =
1255
1250
  this.shouldExposeCustomShows() &&
1256
- typeof deviceType === 'number' &&
1257
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
1251
+ supportsMusicShows
1258
1252
  ? new Set(customMultiColorSchemes.map((scheme) => scheme.index))
1259
1253
  : new Set<number>();
1260
1254
 
@@ -1269,8 +1263,7 @@ export class CyncAppPlatform implements DynamicPlatformPlugin {
1269
1263
 
1270
1264
  const enabledCustomMusicShowIndexesForCleanup =
1271
1265
  this.shouldExposeCustomShows() &&
1272
- typeof deviceType === 'number' &&
1273
- CYNC_LIGHT_SHOW_DEVICE_TYPES.has(deviceType)
1266
+ supportsMusicShows
1274
1267
  ? new Set(customMusicShows.map((customMusicShow) => customMusicShow.index))
1275
1268
  : new Set<number>();
1276
1269