homebridge-openrgb-multi 7.1.2 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Device.js CHANGED
@@ -39,8 +39,9 @@ class Device {
39
39
  return __awaiter(this, void 0, void 0, function* () {
40
40
  if (this.virtual) {
41
41
  this.context.log.info(`Initialized virtual device <${this.configuration.name}>`);
42
+ return;
42
43
  }
43
- else {
44
+ this.context.openRgbClient.once('connect', () => __awaiter(this, void 0, void 0, function* () {
44
45
  const openRgbDevices = yield this.context.openRgbClient.getAllControllerData();
45
46
  const openRgbDevice = openRgbDevices.find((openRgb) => openRgb.serial.replace(/\s+$/g, '') ===
46
47
  this.configuration.serial);
@@ -53,7 +54,7 @@ class Device {
53
54
  this.colors = new Array(this.size).fill(palette_kit_core_1.DEFAULT_COLOR);
54
55
  this.context.log.info(`Resolved device <${this.name}> to OpenRGB controller ID [${this.openRgbDeviceId}] with size ${this.size}`);
55
56
  }
56
- }
57
+ }));
57
58
  });
58
59
  }
59
60
  withWriteLock(callback) {
@@ -62,6 +63,10 @@ class Device {
62
63
  this.context.log.warn(`Ignoring write lock request because device <${this.name}> was not initialized`);
63
64
  return;
64
65
  }
66
+ if (!this.virtual && !this.context.openRgbClient.isConnected) {
67
+ this.context.log.warn(`Ignoring write lock request for device <${this.name}> because OpenRGB client is not connected`);
68
+ return;
69
+ }
65
70
  return this.lock.writeLock((release) => __awaiter(this, void 0, void 0, function* () {
66
71
  try {
67
72
  yield callback();
@@ -1 +1 @@
1
- {"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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"}
package/dist/Zone.js CHANGED
@@ -30,19 +30,6 @@ class Zone extends effect_kit_1.Zone {
30
30
  });
31
31
  return __awaiter(this, void 0, void 0, function* () {
32
32
  yield _super.initialize.call(this);
33
- if (this.context.persistence) {
34
- const active = yield this.context.persistence.getZoneActive(this.id);
35
- const brightness = yield this.context.persistence.getZoneBrightness(this.id);
36
- const effectId = yield this.context.persistence.getZoneEffectId(this.id);
37
- if (effectId) {
38
- const effect = this.getEffect(effectId);
39
- this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} effect ID = [${effect.name}]`);
40
- yield this.setEffectId(effectId);
41
- }
42
- this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} active = ${(0, helpers_for_homebridge_1.logBoolean)(active)}, brightness = ${(0, helpers_for_homebridge_1.logPercent)(brightness)}`);
43
- yield this.setBrightness(brightness);
44
- yield this.setActive(active);
45
- }
46
33
  this.on('updateActive', (active) => __awaiter(this, void 0, void 0, function* () {
47
34
  yield this.context.persistence.setZoneActive(this.id, active);
48
35
  }));
@@ -54,6 +41,21 @@ class Zone extends effect_kit_1.Zone {
54
41
  yield this.context.persistence.setZoneEffectId(this.id, effectId);
55
42
  }
56
43
  }));
44
+ this.context.openRgbClient.once('connect', () => __awaiter(this, void 0, void 0, function* () {
45
+ if (this.context.persistence) {
46
+ const active = yield this.context.persistence.getZoneActive(this.id);
47
+ const brightness = yield this.context.persistence.getZoneBrightness(this.id);
48
+ const effectId = yield this.context.persistence.getZoneEffectId(this.id);
49
+ if (effectId) {
50
+ const effect = this.getEffect(effectId);
51
+ this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} effect ID = [${effect.name}]`);
52
+ yield this.setEffectId(effectId);
53
+ }
54
+ this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} active = ${(0, helpers_for_homebridge_1.logBoolean)(active)}, brightness = ${(0, helpers_for_homebridge_1.logPercent)(brightness)}`);
55
+ yield this.setBrightness(brightness);
56
+ yield this.setActive(active);
57
+ }
58
+ }));
57
59
  });
58
60
  }
59
61
  get devicesArray() {
package/dist/Zone.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare const createPlatform: (homebridge: API) => {
6
6
  context: Context;
7
7
  zones: Map<string, Zone>;
8
8
  readonly configuration: PlatformConfiguration;
9
+ connectOpenRgbClient(): Promise<void>;
9
10
  accessories(callback: any): Promise<void>;
10
11
  };
11
12
  };
@@ -55,9 +55,22 @@ const createPlatform = (homebridge) => {
55
55
  this.zones.set(zone.id, zone);
56
56
  });
57
57
  }
58
+ connectOpenRgbClient() {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ while (!this.context.openRgbClient.isConnected) {
61
+ try {
62
+ yield this.context.openRgbClient.connect();
63
+ }
64
+ catch (error) {
65
+ this.context.log.warn(`Failed to connect to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}. Retrying in 5 seconds...`);
66
+ yield new Promise((resolve) => setTimeout(resolve, 5000));
67
+ }
68
+ }
69
+ });
70
+ }
58
71
  accessories(callback) {
59
72
  return __awaiter(this, void 0, void 0, function* () {
60
- yield this.context.openRgbClient.connect();
73
+ this.connectOpenRgbClient();
61
74
  yield this.context.paletteClient.connect();
62
75
  yield Promise.all(Array.from(this.zones.values()).map((zone) => __awaiter(this, void 0, void 0, function* () {
63
76
  return yield zone.initialize();
@@ -1 +1 @@
1
- {"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AAEtD,qCAAuC;AACvC,mEAAgE;AAChE,kEAAsD;AACtD,sEAA8D;AAG9D,yCAAgD;AAChD,+CAIuB;AACvB,iCAA8B;AAC9B,2CAAyE;AAElE,MAAM,cAAc,GAAG,CAAC,UAAe,EAAE,EAAE;IAChD,MAAM,QAAQ;QAIZ,YACE,aAAsB,EACb,aAAoC;;YAApC,kBAAa,GAAb,aAAa,CAAuB;YAJ/C,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;YAM5C,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC;gBACvB,KAAK,EAAE,OAAO;gBACd,UAAU,EAAE;oBACV,IAAI,+CAAsB,CAAC,aAAa,CAAC;iBAC1C;aACF,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,6BAAkB,CAAC,MAAA,aAAa,CAAC,WAAW,mCAAI,EAAE,EAAE;gBAC1E,UAAU;gBACV,GAAG;aACJ,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,oBAAa,CACrC,SAAS,EACT,MAAA,aAAa,CAAC,WAAW,mCAAI,gCAAoB,EACjD,MAAA,aAAa,CAAC,WAAW,mCAAI,gCAAoB,CAClD,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,0BAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa;gBAC/C,CAAC,CAAC,IAAI,kCAAa,CACf,aAAa,CAAC,aAAa,EAC3B;oBACE,GAAG;iBACJ,EACD,OAAO,CACR;gBACH,CAAC,CAAC,IAAI,CAAC;YAET,IAAI,CAAC,OAAO,GAAG;gBACb,UAAU;gBACV,aAAa;gBACb,OAAO;gBACP,aAAa;gBACb,GAAG;gBACH,WAAW;aACZ,CAAC;YAEF,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;gBAChD,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC;QAEK,oBAAoB;;gBACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;oBAC/C,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC7C,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CACnB,0CAA0C,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,4BAA4B,CACvI,CAAC;wBAEF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;YACH,CAAC;SAAA;QAEY,WAAW,CAAC,QAAQ;;gBAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAE5B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAO,IAAI,EAAE,EAAE;oBACjD,OAAO,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,CAAC,CAAA,CAAC,CACH,CAAC;gBAEF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAC7D,CAAC,IAAI,EAAE,EAAE;oBACP,MAAM,mBAAmB,GAAG,IAAI,iCAAmB,CACjD,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,CAAC;oBACF,MAAM,uBAAuB,GAAG,IAAI,qCAAuB,CACzD,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,CAAC;oBACF,MAAM,4BAA4B,GAAG,IAAI,0CAA4B,CACnE,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,CAAC;oBAEF,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE;wBACzC,uBAAuB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,EAAE,CAAC,6BAA6B,EAAE,CAAC,qBAAqB,EAAE,EAAE;wBAC/D,4BAA4B,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;oBAC7D,CAAC,CAAC,CAAC;oBAEH,OAAO;wBACL,mBAAmB;wBACnB,uBAAuB;wBACvB,4BAA4B;qBAC7B,CAAC;gBACJ,CAAC,CACF,CAAC;gBAEF,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;gBAEzC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACxB,CAAC;SAAA;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAnHW,QAAA,cAAc,kBAmHzB"}
@@ -1,6 +1,5 @@
1
1
  import { ZoneConfiguration as EffectKitZoneConfiguration } from '@manganese/effect-kit';
2
2
  import { DeviceConfiguration } from './DeviceConfiguration';
3
3
  export interface ZoneConfiguration extends EffectKitZoneConfiguration {
4
- trueOff?: boolean;
5
4
  devices: DeviceConfiguration[];
6
5
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-openrgb-multi",
3
3
  "displayName": "Homebridge OpenRGB Multi",
4
4
  "description": "Homebridge plugin for multi-color dynamic effects for OpenRGB",
5
- "version": "7.1.2",
5
+ "version": "8.0.0",
6
6
  "keywords": [
7
7
  "homebridge-plugin"
8
8
  ],
@@ -19,8 +19,8 @@
19
19
  },
20
20
  "deprecated": false,
21
21
  "engines": {
22
- "node": ">=24.0.0",
23
- "homebridge": "^1.6.0"
22
+ "node": "^24.0.0",
23
+ "homebridge": "^2.0.0"
24
24
  },
25
25
  "scripts": {
26
26
  "clean": "rm -rf dist node_modules package-lock.json",
@@ -34,7 +34,7 @@
34
34
  "@manganese/effect-kit": "^3.4.0",
35
35
  "@manganese/palette-kit-client": "^5.0.0",
36
36
  "@manganese/palette-kit-core": "^5.0.0",
37
- "helpers-for-homebridge": "^6.0.1",
37
+ "helpers-for-homebridge": "^6.0.2",
38
38
  "lodash": "^4.17.21",
39
39
  "openrgb-sdk": "^0.6.0",
40
40
  "rwlock": "^5.0.0",
@@ -46,7 +46,7 @@
46
46
  "@manganese/prettier-configuration": "^1.0.5",
47
47
  "@types/node": "^24.11.0",
48
48
  "@types/rwlock": "^5.0.3",
49
- "homebridge": "^1.6.0",
49
+ "homebridge": "^2.0.0",
50
50
  "prettier": "^3.1.1",
51
51
  "typescript": "^5.9.3"
52
52
  }
package/src/Device.ts CHANGED
@@ -45,7 +45,11 @@ export class Device implements Controller {
45
45
  this.context.log.info(
46
46
  `Initialized virtual device <${this.configuration.name}>`
47
47
  );
48
- } else {
48
+
49
+ return;
50
+ }
51
+
52
+ this.context.openRgbClient.once('connect', async () => {
49
53
  const openRgbDevices =
50
54
  await (this.context.openRgbClient.getAllControllerData() as unknown as Promise<
51
55
  OpenRGBDevice[]
@@ -68,7 +72,7 @@ export class Device implements Controller {
68
72
  `Resolved device <${this.name}> to OpenRGB controller ID [${this.openRgbDeviceId}] with size ${this.size}`
69
73
  );
70
74
  }
71
- }
75
+ });
72
76
  }
73
77
 
74
78
  private async withWriteLock(callback: () => Promise<void>) {
@@ -79,6 +83,13 @@ export class Device implements Controller {
79
83
 
80
84
  return;
81
85
  }
86
+ if (!this.virtual && !this.context.openRgbClient.isConnected) {
87
+ this.context.log.warn(
88
+ `Ignoring write lock request for device <${this.name}> because OpenRGB client is not connected`
89
+ );
90
+
91
+ return;
92
+ }
82
93
 
83
94
  return this.lock.writeLock(async (release) => {
84
95
  try {
package/src/Zone.ts CHANGED
@@ -27,37 +27,6 @@ export class Zone extends EffectKitZone {
27
27
  public async initialize() {
28
28
  await super.initialize();
29
29
 
30
- if (this.context.persistence) {
31
- const active = await this.context.persistence.getZoneActive(this.id);
32
- const brightness = await this.context.persistence.getZoneBrightness(
33
- this.id
34
- );
35
- const effectId = await this.context.persistence.getZoneEffectId(this.id);
36
-
37
- if (effectId) {
38
- const effect = this.getEffect<Effect<any>>(effectId);
39
-
40
- this.context.log.debug(
41
- `Restoring persisted zone ${logAccessoryName(
42
- this.name
43
- )} effect ID = [${effect.name}]`
44
- );
45
-
46
- await this.setEffectId(effectId);
47
- }
48
-
49
- this.context.log.debug(
50
- `Restoring persisted zone ${logAccessoryName(
51
- this.name
52
- )} active = ${logBoolean(active)}, brightness = ${logPercent(
53
- brightness
54
- )}`
55
- );
56
-
57
- await this.setBrightness(brightness);
58
- await this.setActive(active);
59
- }
60
-
61
30
  this.on('updateActive', async (active: boolean) => {
62
31
  await this.context.persistence.setZoneActive(this.id, active);
63
32
  });
@@ -71,6 +40,39 @@ export class Zone extends EffectKitZone {
71
40
  await this.context.persistence.setZoneEffectId(this.id, effectId);
72
41
  }
73
42
  });
43
+
44
+ this.context.openRgbClient.once('connect', async () => {
45
+ if (this.context.persistence) {
46
+ const active = await this.context.persistence.getZoneActive(this.id);
47
+ const brightness = await this.context.persistence.getZoneBrightness(
48
+ this.id
49
+ );
50
+ const effectId = await this.context.persistence.getZoneEffectId(this.id);
51
+
52
+ if (effectId) {
53
+ const effect = this.getEffect<Effect<any>>(effectId);
54
+
55
+ this.context.log.debug(
56
+ `Restoring persisted zone ${logAccessoryName(
57
+ this.name
58
+ )} effect ID = [${effect.name}]`
59
+ );
60
+
61
+ await this.setEffectId(effectId);
62
+ }
63
+
64
+ this.context.log.debug(
65
+ `Restoring persisted zone ${logAccessoryName(
66
+ this.name
67
+ )} active = ${logBoolean(active)}, brightness = ${logPercent(
68
+ brightness
69
+ )}`
70
+ );
71
+
72
+ await this.setBrightness(brightness);
73
+ await this.setActive(active);
74
+ }
75
+ });
74
76
  }
75
77
 
76
78
  // Devices
@@ -68,8 +68,23 @@ export const createPlatform = (homebridge: API) => {
68
68
  });
69
69
  }
70
70
 
71
+ async connectOpenRgbClient() {
72
+ while (!this.context.openRgbClient.isConnected) {
73
+ try {
74
+ await this.context.openRgbClient.connect();
75
+ } catch (error) {
76
+ this.context.log.warn(
77
+ `Failed to connect to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}. Retrying in 5 seconds...`
78
+ );
79
+
80
+ await new Promise((resolve) => setTimeout(resolve, 5000));
81
+ }
82
+ }
83
+ }
84
+
71
85
  public async accessories(callback) {
72
- await this.context.openRgbClient.connect();
86
+ this.connectOpenRgbClient();
87
+
73
88
  await this.context.paletteClient.connect();
74
89
  await Promise.all(
75
90
  Array.from(this.zones.values()).map(async (zone) => {
@@ -2,6 +2,5 @@ import { ZoneConfiguration as EffectKitZoneConfiguration } from '@manganese/effe
2
2
  import { DeviceConfiguration } from './DeviceConfiguration';
3
3
 
4
4
  export interface ZoneConfiguration extends EffectKitZoneConfiguration {
5
- trueOff?: boolean;
6
5
  devices: DeviceConfiguration[];
7
6
  }