homebridge-openrgb-multi 7.1.3 → 8.0.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.
- package/dist/Device.js +14 -8
- package/dist/Device.js.map +1 -1
- package/dist/Zone.js +16 -13
- package/dist/Zone.js.map +1 -1
- package/dist/platformFactory.d.ts +1 -0
- package/dist/platformFactory.js +15 -1
- package/dist/platformFactory.js.map +1 -1
- package/dist/types/configuration/ZoneConfiguration.d.ts +0 -1
- package/package.json +5 -5
- package/src/Device.ts +22 -9
- package/src/Zone.ts +35 -31
- package/src/platformFactory.ts +20 -1
- package/src/types/configuration/ZoneConfiguration.ts +0 -1
package/dist/Device.js
CHANGED
|
@@ -38,28 +38,34 @@ class Device {
|
|
|
38
38
|
initialize() {
|
|
39
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
40
|
if (this.virtual) {
|
|
41
|
-
this.context.log.info(`Initialized virtual device
|
|
41
|
+
this.context.log.info(`Initialized virtual device ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)}`);
|
|
42
|
+
return;
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
this.context.openRgbClient.once('connect', () => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
this.context.log.debug(`Connected OpenRGB, initializing device ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)}`);
|
|
44
46
|
const openRgbDevices = yield this.context.openRgbClient.getAllControllerData();
|
|
45
47
|
const openRgbDevice = openRgbDevices.find((openRgb) => openRgb.serial.replace(/\s+$/g, '') ===
|
|
46
48
|
this.configuration.serial);
|
|
47
49
|
if (!openRgbDevice) {
|
|
48
|
-
this.context.log.warn(`Could not resolve device
|
|
50
|
+
this.context.log.warn(`Could not resolve device ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} to OpenRGB controller`);
|
|
49
51
|
}
|
|
50
52
|
else {
|
|
51
53
|
this.openRgbDeviceId = openRgbDevice.deviceId;
|
|
52
54
|
this.size = openRgbDevice.leds.length;
|
|
53
55
|
this.colors = new Array(this.size).fill(palette_kit_core_1.DEFAULT_COLOR);
|
|
54
|
-
this.context.log.info(`Resolved device
|
|
56
|
+
this.context.log.info(`Resolved device ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} to OpenRGB controller ID [${this.openRgbDeviceId}] with size ${this.size}`);
|
|
55
57
|
}
|
|
56
|
-
}
|
|
58
|
+
}));
|
|
57
59
|
});
|
|
58
60
|
}
|
|
59
61
|
withWriteLock(callback) {
|
|
60
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
63
|
if (!this.virtual && this.openRgbDeviceId < 0) {
|
|
62
|
-
this.context.log.warn(`Ignoring write lock request because device
|
|
64
|
+
this.context.log.warn(`Ignoring write lock request because device ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} was not initialized`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (!this.virtual && !this.context.openRgbClient.isConnected) {
|
|
68
|
+
this.context.log.warn(`Ignoring write lock request for device ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} because OpenRGB client is not connected`);
|
|
63
69
|
return;
|
|
64
70
|
}
|
|
65
71
|
return this.lock.writeLock((release) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -102,7 +108,7 @@ class Device {
|
|
|
102
108
|
yield this.withWriteLock(() => __awaiter(this, void 0, void 0, function* () {
|
|
103
109
|
if (this.virtual)
|
|
104
110
|
return;
|
|
105
|
-
this.context.log.debug(`Applied
|
|
111
|
+
this.context.log.debug(`Applied ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)}.active = ${(0, helpers_for_homebridge_1.logBoolean)(active)}`);
|
|
106
112
|
}));
|
|
107
113
|
});
|
|
108
114
|
}
|
|
@@ -127,7 +133,7 @@ class Device {
|
|
|
127
133
|
this.colors[index] = colors[index - fromIndex];
|
|
128
134
|
}
|
|
129
135
|
}
|
|
130
|
-
this.context.log.debug(`Applied
|
|
136
|
+
this.context.log.debug(`Applied ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)}[${fromIndex}-${toIndex}] = [\n${colors
|
|
131
137
|
.map(palette_kit_core_1.colorToString)
|
|
132
138
|
.map((colorString) => ' ' + colorString)
|
|
133
139
|
.join(',\n')}\n]`);
|
package/dist/Device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAmC;AACnC,iCAAgC;AAChC,6CAAoD;AAEpD,kEAOqC;AAGrC,
|
|
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,22 @@ 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
|
+
this.context.log.debug(`Connected OpenRGB, initializing zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)}`);
|
|
46
|
+
if (this.context.persistence) {
|
|
47
|
+
const active = yield this.context.persistence.getZoneActive(this.id);
|
|
48
|
+
const brightness = yield this.context.persistence.getZoneBrightness(this.id);
|
|
49
|
+
const effectId = yield this.context.persistence.getZoneEffectId(this.id);
|
|
50
|
+
if (effectId) {
|
|
51
|
+
const effect = this.getEffect(effectId);
|
|
52
|
+
this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} effect ID = [${effect.name}]`);
|
|
53
|
+
yield this.setEffectId(effectId);
|
|
54
|
+
}
|
|
55
|
+
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)}`);
|
|
56
|
+
yield this.setBrightness(brightness);
|
|
57
|
+
yield this.setActive(active);
|
|
58
|
+
}
|
|
59
|
+
}));
|
|
57
60
|
});
|
|
58
61
|
}
|
|
59
62
|
get devicesArray() {
|
package/dist/Zone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAkC;AAClC,mEAIgC;AAChC,sDAAsE;AAEtE,MAAa,IAAK,SAAQ,iBAAa;IACrC,YACqB,aAAgC,EAChC,OAAgB;QAEnC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE;YAChD,OAAO,IAAI,eAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,CACH,CAAC;QAEF,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QATpB,kBAAa,GAAb,aAAa,CAAmB;QAChC,YAAO,GAAP,OAAO,CAAS;QAUnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,iBAAiB;IACJ,UAAU;;;;;YACrB,MAAM,OAAM,UAAU,WAAE,CAAC;YAEzB,IAAI,
|
|
1
|
+
{"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":"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"}
|
package/dist/platformFactory.js
CHANGED
|
@@ -55,9 +55,23 @@ 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
|
+
this.context.log.info(`Connected to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}`);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
this.context.log.warn(`Failed to connect to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}. Retrying in 5 seconds...`);
|
|
67
|
+
yield new Promise((resolve) => setTimeout(resolve, 5000));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
58
72
|
accessories(callback) {
|
|
59
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
|
|
74
|
+
this.connectOpenRgbClient();
|
|
61
75
|
yield this.context.paletteClient.connect();
|
|
62
76
|
yield Promise.all(Array.from(this.zones.values()).map((zone) => __awaiter(this, void 0, void 0, function* () {
|
|
63
77
|
return yield zone.initialize();
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;wBAE3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CACnB,kCAAkC,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CACrG,CAAC;oBACJ,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;AAvHW,QAAA,cAAc,kBAuHzB"}
|
|
@@ -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": "
|
|
5
|
+
"version": "8.0.1",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"homebridge-plugin"
|
|
8
8
|
],
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"deprecated": false,
|
|
21
21
|
"engines": {
|
|
22
|
-
"node": "
|
|
23
|
-
"homebridge": "^
|
|
22
|
+
"node": "^24",
|
|
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": "^
|
|
37
|
+
"helpers-for-homebridge": "^7.0.0",
|
|
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": "^
|
|
49
|
+
"homebridge": "^2.0.0",
|
|
50
50
|
"prettier": "^3.1.1",
|
|
51
51
|
"typescript": "^5.9.3"
|
|
52
52
|
}
|
package/src/Device.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from '@manganese/palette-kit-core';
|
|
13
13
|
import { Controller, ApplyParameters } from '@manganese/effect-kit';
|
|
14
14
|
import { Context, DeviceConfiguration } from './types';
|
|
15
|
-
import { logBoolean } from 'helpers-for-homebridge';
|
|
15
|
+
import { logAccessoryName, logBoolean } from 'helpers-for-homebridge';
|
|
16
16
|
|
|
17
17
|
export class Device implements Controller {
|
|
18
18
|
private openRgbDeviceId: number = -1;
|
|
@@ -43,9 +43,15 @@ export class Device implements Controller {
|
|
|
43
43
|
public async initialize() {
|
|
44
44
|
if (this.virtual) {
|
|
45
45
|
this.context.log.info(
|
|
46
|
-
`Initialized virtual device
|
|
46
|
+
`Initialized virtual device ${logAccessoryName(this.name)}`
|
|
47
47
|
);
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this.context.openRgbClient.once('connect', async () => {
|
|
53
|
+
this.context.log.debug(`Connected OpenRGB, initializing device ${logAccessoryName(this.name)}`);
|
|
54
|
+
|
|
49
55
|
const openRgbDevices =
|
|
50
56
|
await (this.context.openRgbClient.getAllControllerData() as unknown as Promise<
|
|
51
57
|
OpenRGBDevice[]
|
|
@@ -58,23 +64,30 @@ export class Device implements Controller {
|
|
|
58
64
|
|
|
59
65
|
if (!openRgbDevice) {
|
|
60
66
|
this.context.log.warn(
|
|
61
|
-
`Could not resolve device
|
|
67
|
+
`Could not resolve device ${logAccessoryName(this.name)} to OpenRGB controller`
|
|
62
68
|
);
|
|
63
69
|
} else {
|
|
64
70
|
this.openRgbDeviceId = openRgbDevice.deviceId;
|
|
65
71
|
this.size = openRgbDevice.leds.length;
|
|
66
72
|
this.colors = new Array(this.size).fill(DEFAULT_COLOR);
|
|
67
73
|
this.context.log.info(
|
|
68
|
-
`Resolved device
|
|
74
|
+
`Resolved device ${logAccessoryName(this.name)} to OpenRGB controller ID [${this.openRgbDeviceId}] with size ${this.size}`
|
|
69
75
|
);
|
|
70
76
|
}
|
|
71
|
-
}
|
|
77
|
+
});
|
|
72
78
|
}
|
|
73
79
|
|
|
74
80
|
private async withWriteLock(callback: () => Promise<void>) {
|
|
75
81
|
if (!this.virtual && this.openRgbDeviceId < 0) {
|
|
76
82
|
this.context.log.warn(
|
|
77
|
-
`Ignoring write lock request because device
|
|
83
|
+
`Ignoring write lock request because device ${logAccessoryName(this.name)} was not initialized`
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!this.virtual && !this.context.openRgbClient.isConnected) {
|
|
89
|
+
this.context.log.warn(
|
|
90
|
+
`Ignoring write lock request for device ${logAccessoryName(this.name)} because OpenRGB client is not connected`
|
|
78
91
|
);
|
|
79
92
|
|
|
80
93
|
return;
|
|
@@ -126,7 +139,7 @@ export class Device implements Controller {
|
|
|
126
139
|
if (this.virtual) return;
|
|
127
140
|
|
|
128
141
|
this.context.log.debug(
|
|
129
|
-
`Applied
|
|
142
|
+
`Applied ${logAccessoryName(this.name)}.active = ${logBoolean(active)}`
|
|
130
143
|
);
|
|
131
144
|
});
|
|
132
145
|
}
|
|
@@ -165,7 +178,7 @@ export class Device implements Controller {
|
|
|
165
178
|
}
|
|
166
179
|
|
|
167
180
|
this.context.log.debug(
|
|
168
|
-
`Applied
|
|
181
|
+
`Applied ${logAccessoryName(this.name)}[${fromIndex}-${toIndex}] = [\n${colors
|
|
169
182
|
.map(colorToString)
|
|
170
183
|
.map((colorString) => ' ' + colorString)
|
|
171
184
|
.join(',\n')}\n]`
|
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,41 @@ 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
|
+
this.context.log.debug(`Connected OpenRGB, initializing zone ${logAccessoryName(this.name)}`);
|
|
46
|
+
|
|
47
|
+
if (this.context.persistence) {
|
|
48
|
+
const active = await this.context.persistence.getZoneActive(this.id);
|
|
49
|
+
const brightness = await this.context.persistence.getZoneBrightness(
|
|
50
|
+
this.id
|
|
51
|
+
);
|
|
52
|
+
const effectId = await this.context.persistence.getZoneEffectId(this.id);
|
|
53
|
+
|
|
54
|
+
if (effectId) {
|
|
55
|
+
const effect = this.getEffect<Effect<any>>(effectId);
|
|
56
|
+
|
|
57
|
+
this.context.log.debug(
|
|
58
|
+
`Restoring persisted zone ${logAccessoryName(
|
|
59
|
+
this.name
|
|
60
|
+
)} effect ID = [${effect.name}]`
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
await this.setEffectId(effectId);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
this.context.log.debug(
|
|
67
|
+
`Restoring persisted zone ${logAccessoryName(
|
|
68
|
+
this.name
|
|
69
|
+
)} active = ${logBoolean(active)}, brightness = ${logPercent(
|
|
70
|
+
brightness
|
|
71
|
+
)}`
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
await this.setBrightness(brightness);
|
|
75
|
+
await this.setActive(active);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
// Devices
|
package/src/platformFactory.ts
CHANGED
|
@@ -68,8 +68,27 @@ 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
|
+
|
|
76
|
+
this.context.log.info(
|
|
77
|
+
`Connected to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}`
|
|
78
|
+
);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
this.context.log.warn(
|
|
81
|
+
`Failed to connect to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}. Retrying in 5 seconds...`
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
71
89
|
public async accessories(callback) {
|
|
72
|
-
|
|
90
|
+
this.connectOpenRgbClient();
|
|
91
|
+
|
|
73
92
|
await this.context.paletteClient.connect();
|
|
74
93
|
await Promise.all(
|
|
75
94
|
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
|
}
|