homebridge-nanoleaf-multi 5.0.0 → 5.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/Zone.d.ts +7 -5
- package/dist/Zone.js +31 -29
- package/dist/Zone.js.map +1 -1
- package/dist/accessories/ZoneEffectAccessory.d.ts +0 -2
- package/dist/accessories/ZoneEffectAccessory.js +2 -6
- package/dist/accessories/ZoneEffectAccessory.js.map +1 -1
- package/dist/platformFactory.js +5 -7
- package/dist/platformFactory.js.map +1 -1
- package/package.json +1 -1
- package/src/Zone.ts +40 -34
- package/src/accessories/ZoneEffectAccessory.ts +2 -11
- package/src/platformFactory.ts +6 -7
package/dist/Zone.d.ts
CHANGED
|
@@ -15,20 +15,22 @@ export declare class Zone extends EventEmitter {
|
|
|
15
15
|
initialize(): Promise<void>;
|
|
16
16
|
private devices;
|
|
17
17
|
private get devicesArray();
|
|
18
|
+
private active;
|
|
19
|
+
getActive(): boolean;
|
|
18
20
|
setActive(active: boolean): Promise<void>;
|
|
19
21
|
private effects;
|
|
20
|
-
private activeEffectId;
|
|
21
22
|
getEffects(): Map<string, Effect<any>>;
|
|
22
23
|
getEffect<T extends Effect<any> = Effect<EffectConfigurationBase>>(effectId: string): T | null;
|
|
24
|
+
getDefaultEffectId(): string;
|
|
25
|
+
private effectId;
|
|
26
|
+
getEffectIdOrDefault(): string;
|
|
27
|
+
get effect(): Effect<EffectConfigurationBase>;
|
|
28
|
+
get activeEffectId(): string;
|
|
23
29
|
get activeEffect(): Effect<EffectConfigurationBase>;
|
|
24
|
-
getDefaultActiveEffectId(): string;
|
|
25
30
|
setActiveEffectById(effectId: string): Promise<void>;
|
|
26
|
-
setActiveEffect(effect: Effect<any>): Promise<void>;
|
|
27
|
-
getActiveEffectId(): string;
|
|
28
31
|
private brightness;
|
|
29
32
|
getBrightness(): number;
|
|
30
33
|
setBrightness(brightness: number): Promise<void>;
|
|
31
|
-
private updateBrightness;
|
|
32
34
|
private autoOffTimeout;
|
|
33
35
|
private setAutoOffTimeout;
|
|
34
36
|
private clearAutoOffTimeout;
|
package/dist/Zone.js
CHANGED
|
@@ -46,7 +46,7 @@ class Zone extends events_1.default {
|
|
|
46
46
|
if (this.activeEffectId !== effect.id)
|
|
47
47
|
return;
|
|
48
48
|
this.context.log.info(`The active effect '${effect.name}' changed, applying to zone`);
|
|
49
|
-
this.
|
|
49
|
+
this.setActiveEffectById(effect.id);
|
|
50
50
|
});
|
|
51
51
|
this.effects.set(effect.id, effect);
|
|
52
52
|
});
|
|
@@ -91,24 +91,18 @@ class Zone extends events_1.default {
|
|
|
91
91
|
get devicesArray() {
|
|
92
92
|
return Array.from(this.devices);
|
|
93
93
|
}
|
|
94
|
+
getActive() {
|
|
95
|
+
return !!this.active;
|
|
96
|
+
}
|
|
94
97
|
setActive(active) {
|
|
95
98
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
99
|
if (!active) {
|
|
97
100
|
this.clearAutoOffTimeout();
|
|
98
101
|
}
|
|
99
|
-
|
|
100
|
-
this.updateBrightness(1);
|
|
101
|
-
}
|
|
102
|
-
else if (!active && this.brightness > 0) {
|
|
103
|
-
this.updateBrightness(0);
|
|
104
|
-
}
|
|
102
|
+
this.active = active;
|
|
105
103
|
yield Promise.all(this.devicesArray.map((device) => __awaiter(this, void 0, void 0, function* () {
|
|
106
104
|
yield device.setActive(active);
|
|
107
105
|
})));
|
|
108
|
-
const { activeEffect } = this;
|
|
109
|
-
if (active && !!activeEffect) {
|
|
110
|
-
yield this.setActiveEffect(activeEffect);
|
|
111
|
-
}
|
|
112
106
|
});
|
|
113
107
|
}
|
|
114
108
|
getEffects() {
|
|
@@ -118,24 +112,37 @@ class Zone extends events_1.default {
|
|
|
118
112
|
const effect = this.effects.get(effectId);
|
|
119
113
|
return effect || null;
|
|
120
114
|
}
|
|
121
|
-
|
|
122
|
-
return this.getEffect(this.activeEffectId);
|
|
123
|
-
}
|
|
124
|
-
getDefaultActiveEffectId() {
|
|
115
|
+
getDefaultEffectId() {
|
|
125
116
|
if (this.effects.size === 0) {
|
|
126
117
|
return null;
|
|
127
118
|
}
|
|
128
119
|
return Array.from(this.effects.values())[0].id;
|
|
129
120
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
yield this.setActiveEffect(this.activeEffect);
|
|
134
|
-
});
|
|
121
|
+
getEffectIdOrDefault() {
|
|
122
|
+
var _a;
|
|
123
|
+
return (_a = this.effectId) !== null && _a !== void 0 ? _a : this.getDefaultEffectId();
|
|
135
124
|
}
|
|
136
|
-
|
|
125
|
+
get effect() {
|
|
126
|
+
return this.getEffect(this.getEffectIdOrDefault());
|
|
127
|
+
}
|
|
128
|
+
get activeEffectId() {
|
|
129
|
+
if (!this.active)
|
|
130
|
+
return null;
|
|
131
|
+
return this.effectId;
|
|
132
|
+
}
|
|
133
|
+
get activeEffect() {
|
|
134
|
+
if (!this.activeEffectId)
|
|
135
|
+
return null;
|
|
136
|
+
return this.getEffect(this.activeEffectId);
|
|
137
|
+
}
|
|
138
|
+
setActiveEffectById(effectId) {
|
|
137
139
|
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
this.effectId = effectId;
|
|
138
141
|
this.clearAutoOffTimeout();
|
|
142
|
+
if (!this.active) {
|
|
143
|
+
this.setActive(true);
|
|
144
|
+
}
|
|
145
|
+
const effect = this.activeEffect;
|
|
139
146
|
yield Promise.all(Array.from(this.devices).map((device) => {
|
|
140
147
|
return device.setActiveEffect(effect);
|
|
141
148
|
}));
|
|
@@ -144,10 +151,9 @@ class Zone extends events_1.default {
|
|
|
144
151
|
}
|
|
145
152
|
});
|
|
146
153
|
}
|
|
147
|
-
getActiveEffectId() {
|
|
148
|
-
return this.activeEffectId;
|
|
149
|
-
}
|
|
150
154
|
getBrightness() {
|
|
155
|
+
if (!this.active)
|
|
156
|
+
return 0;
|
|
151
157
|
return this.brightness;
|
|
152
158
|
}
|
|
153
159
|
setBrightness(brightness) {
|
|
@@ -155,7 +161,6 @@ class Zone extends events_1.default {
|
|
|
155
161
|
const previousBrightness = this.brightness;
|
|
156
162
|
const previousActive = previousBrightness > 0;
|
|
157
163
|
const active = brightness > 0;
|
|
158
|
-
this.brightness = brightness;
|
|
159
164
|
// if (this.context.persistence) {
|
|
160
165
|
// this.context.log.debug(
|
|
161
166
|
// `Persisting zone ${logAccessoryName(
|
|
@@ -165,6 +170,7 @@ class Zone extends events_1.default {
|
|
|
165
170
|
// await this.context.persistence.setZoneBrightness(this.id, brightness);
|
|
166
171
|
// }
|
|
167
172
|
if (brightness > 0) {
|
|
173
|
+
this.brightness = brightness;
|
|
168
174
|
yield Promise.all(this.devicesArray.map((device) => device.setBrightness(brightness)));
|
|
169
175
|
}
|
|
170
176
|
if (active !== previousActive) {
|
|
@@ -172,10 +178,6 @@ class Zone extends events_1.default {
|
|
|
172
178
|
}
|
|
173
179
|
});
|
|
174
180
|
}
|
|
175
|
-
updateBrightness(brightness) {
|
|
176
|
-
this.brightness = brightness;
|
|
177
|
-
this.emit('updateBrightness', brightness);
|
|
178
|
-
}
|
|
179
181
|
setAutoOffTimeout(duration) {
|
|
180
182
|
this.autoOffTimeout = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
181
183
|
try {
|
package/dist/Zone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,mCASiB;AACjB,2CAAuE;AAEvE,qCAAkC;AAElC,+CAA4C;AAC5C,6CAA0C;AAC1C,iDAA8C;AAE9C,MAAa,IAAK,SAAQ,gBAAY;IAIpC,YAAY,aAAgC,EAAE,OAAgB;;QAC5D,KAAK,EAAE,CAAC;QA0FV,UAAU;QACF,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,6 @@ import { Zone } from '../Zone';
|
|
|
4
4
|
export declare class ZoneEffectAccessory extends SelectionAccessory {
|
|
5
5
|
private readonly zone;
|
|
6
6
|
constructor(zone: Zone, context: Context);
|
|
7
|
-
private active;
|
|
8
|
-
private activeOptionId;
|
|
9
7
|
protected getActiveOptionId(): Promise<string>;
|
|
10
8
|
protected setActiveOptionId(effectId: string): Promise<void>;
|
|
11
9
|
protected getActive(): Promise<boolean>;
|
|
@@ -28,28 +28,24 @@ class ZoneEffectAccessory extends helpers_for_homebridge_1.SelectionAccessory {
|
|
|
28
28
|
}),
|
|
29
29
|
}, context);
|
|
30
30
|
this.zone = zone;
|
|
31
|
-
this.active = false;
|
|
32
|
-
this.activeOptionId = this.configuration.options[0].id;
|
|
33
31
|
}
|
|
34
32
|
getActiveOptionId() {
|
|
35
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
return this.
|
|
34
|
+
return this.zone.getEffectIdOrDefault();
|
|
37
35
|
});
|
|
38
36
|
}
|
|
39
37
|
setActiveOptionId(effectId) {
|
|
40
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
this.activeOptionId = effectId;
|
|
42
39
|
yield this.zone.setActiveEffectById(effectId);
|
|
43
40
|
});
|
|
44
41
|
}
|
|
45
42
|
getActive() {
|
|
46
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
return this.
|
|
44
|
+
return this.zone.getActive();
|
|
48
45
|
});
|
|
49
46
|
}
|
|
50
47
|
setActive(active) {
|
|
51
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
this.active = active;
|
|
53
49
|
yield this.zone.setActive(active);
|
|
54
50
|
});
|
|
55
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZoneEffectAccessory.js","sourceRoot":"","sources":["../../src/accessories/ZoneEffectAccessory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAA4D;AAG5D,4CAAoE;AAEpE,MAAa,mBAAoB,SAAQ,2CAAkB;IACzD,YACmB,IAAU,EAC3B,OAAgB;QAEhB,KAAK,CACH;YACE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS;YAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,SAAS;YAC3B,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,gDAAoC;YAC1C,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE;gBAC9D,OAAO;oBACL,IAAI,EAAE,mBAAmB,CAAC,IAAI;oBAC9B,EAAE,EAAE,mBAAmB,CAAC,EAAE;oBAC1B,aAAa,EAAE,mBAAmB,CAAC,aAAa;iBACjD,CAAC;YACJ,CAAC,CAAC;SACH,EACD,OAAO,CACR,CAAC;QAlBe,SAAI,GAAJ,IAAI,CAAM;
|
|
1
|
+
{"version":3,"file":"ZoneEffectAccessory.js","sourceRoot":"","sources":["../../src/accessories/ZoneEffectAccessory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAA4D;AAG5D,4CAAoE;AAEpE,MAAa,mBAAoB,SAAQ,2CAAkB;IACzD,YACmB,IAAU,EAC3B,OAAgB;QAEhB,KAAK,CACH;YACE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS;YAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,SAAS;YAC3B,KAAK,EAAE,4BAA4B;YACnC,IAAI,EAAE,gDAAoC;YAC1C,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE;gBAC9D,OAAO;oBACL,IAAI,EAAE,mBAAmB,CAAC,IAAI;oBAC9B,EAAE,EAAE,mBAAmB,CAAC,EAAE;oBAC1B,aAAa,EAAE,mBAAmB,CAAC,aAAa;iBACjD,CAAC;YACJ,CAAC,CAAC;SACH,EACD,OAAO,CACR,CAAC;QAlBe,SAAI,GAAJ,IAAI,CAAM;IAmB7B,CAAC;IAEwB,iBAAiB;;YACxC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1C,CAAC;KAAA;IAEwB,iBAAiB,CAAC,QAAgB;;YACzD,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;KAAA;IAEwB,SAAS;;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEwB,SAAS,CAAC,MAAe;;YAChD,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;KAAA;CACF;AAtCD,kDAsCC"}
|
package/dist/platformFactory.js
CHANGED
|
@@ -43,19 +43,17 @@ exports.default = (homebridge) => {
|
|
|
43
43
|
accessories(callback) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
45
|
yield this.context.paletteClient.connect();
|
|
46
|
-
|
|
47
|
-
yield zone.initialize();
|
|
46
|
+
yield Promise.all(Array.from(this.zones.values()).map((zone) => __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
return yield zone.initialize();
|
|
48
|
+
})));
|
|
49
|
+
const zoneAccessories = yield Promise.all(Array.from(this.zones.values()).flatMap((zone) => {
|
|
48
50
|
const zoneEffectAccessory = new accessories_1.ZoneEffectAccessory(zone, this.context);
|
|
49
51
|
const zoneBrightnessAccessory = new accessories_1.ZoneBrightnessAccessory(zone, this.context);
|
|
50
52
|
zone.on(constants_1.ZONE_AUTO_OFF_EVENT, () => {
|
|
51
53
|
zoneEffectAccessory.updateActive(false);
|
|
52
|
-
zoneBrightnessAccessory.updateBrightness(0);
|
|
53
|
-
});
|
|
54
|
-
zone.on('updateBrightness', (brightness) => {
|
|
55
|
-
zoneBrightnessAccessory.updateBrightness(brightness);
|
|
56
54
|
});
|
|
57
55
|
return [zoneEffectAccessory, zoneBrightnessAccessory];
|
|
58
|
-
}))
|
|
56
|
+
}));
|
|
59
57
|
const accessories = [...zoneAccessories];
|
|
60
58
|
callback(accessories);
|
|
61
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAA4C;AAE5C,mEAA+D;AAC/D,kEAAsD;AACtD,sEAA8D;AAG9D,+CAA6E;AAC7E,2CAAkD;AAClD,iCAA8B;AAE9B,kBAAe,CAAC,UAAe,EAAE,EAAE;IACjC,MAAM,QAAQ;QAIZ,YACE,aAAsB,EACb,aAAoC;YAApC,kBAAa,GAAb,aAAa,CAAuB;YAJ/C,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;YAM5C,MAAM,GAAG,GAAG,IAAI,2BAAM,CAAC;gBACrB,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,CAAC,IAAI,8CAAqB,CAAC,aAAa,CAAC,CAAC;aACtD,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,0BAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,IAAI,kCAAa,CACrC,aAAa,CAAC,aAAa,EAC3B;gBACE,GAAG;aACJ,EACD,OAAO,CACR,CAAC;YAEF,IAAI,CAAC,OAAO,GAAG;gBACb,UAAU;gBACV,GAAG;gBACH,OAAO;gBACP,aAAa;aACd,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;gBACrD,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC;QAEY,WAAW,CAAC,QAAQ;;gBAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAA4C;AAE5C,mEAA+D;AAC/D,kEAAsD;AACtD,sEAA8D;AAG9D,+CAA6E;AAC7E,2CAAkD;AAClD,iCAA8B;AAE9B,kBAAe,CAAC,UAAe,EAAE,EAAE;IACjC,MAAM,QAAQ;QAIZ,YACE,aAAsB,EACb,aAAoC;YAApC,kBAAa,GAAb,aAAa,CAAuB;YAJ/C,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;YAM5C,MAAM,GAAG,GAAG,IAAI,2BAAM,CAAC;gBACrB,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,CAAC,IAAI,8CAAqB,CAAC,aAAa,CAAC,CAAC;aACtD,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,0BAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,IAAI,kCAAa,CACrC,aAAa,CAAC,aAAa,EAC3B;gBACE,GAAG;aACJ,EACD,OAAO,CACR,CAAC;YAEF,IAAI,CAAC,OAAO,GAAG;gBACb,UAAU;gBACV,GAAG;gBACH,OAAO;gBACP,aAAa;aACd,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;gBACrD,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC;QAEY,WAAW,CAAC,QAAQ;;gBAC/B,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,MAAM,OAAO,CAAC,GAAG,CACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC/C,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;oBAEF,IAAI,CAAC,EAAE,CAAC,+BAAmB,EAAE,GAAG,EAAE;wBAChC,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC1C,CAAC,CAAC,CAAC;oBAEH,OAAO,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;gBACxD,CAAC,CAAC,CACH,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"}
|
package/package.json
CHANGED
package/src/Zone.ts
CHANGED
|
@@ -48,7 +48,7 @@ export class Zone extends EventEmitter {
|
|
|
48
48
|
`The active effect '${effect.name}' changed, applying to zone`
|
|
49
49
|
);
|
|
50
50
|
|
|
51
|
-
this.
|
|
51
|
+
this.setActiveEffectById(effect.id);
|
|
52
52
|
});
|
|
53
53
|
|
|
54
54
|
this.effects.set(effect.id, effect);
|
|
@@ -119,33 +119,29 @@ export class Zone extends EventEmitter {
|
|
|
119
119
|
return Array.from(this.devices);
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
// Active
|
|
123
|
+
private active: boolean;
|
|
124
|
+
|
|
125
|
+
public getActive() {
|
|
126
|
+
return !!this.active;
|
|
127
|
+
}
|
|
128
|
+
|
|
122
129
|
public async setActive(active: boolean) {
|
|
123
130
|
if (!active) {
|
|
124
131
|
this.clearAutoOffTimeout();
|
|
125
132
|
}
|
|
126
133
|
|
|
127
|
-
|
|
128
|
-
this.updateBrightness(1);
|
|
129
|
-
} else if (!active && this.brightness > 0) {
|
|
130
|
-
this.updateBrightness(0);
|
|
131
|
-
}
|
|
134
|
+
this.active = active;
|
|
132
135
|
|
|
133
136
|
await Promise.all(
|
|
134
137
|
this.devicesArray.map(async (device) => {
|
|
135
138
|
await device.setActive(active);
|
|
136
139
|
})
|
|
137
140
|
);
|
|
138
|
-
|
|
139
|
-
const { activeEffect } = this;
|
|
140
|
-
|
|
141
|
-
if (active && !!activeEffect) {
|
|
142
|
-
await this.setActiveEffect(activeEffect);
|
|
143
|
-
}
|
|
144
141
|
}
|
|
145
142
|
|
|
146
143
|
// Effects
|
|
147
144
|
private effects = new Map<string, Effect<any>>();
|
|
148
|
-
private activeEffectId: string;
|
|
149
145
|
|
|
150
146
|
public getEffects() {
|
|
151
147
|
return this.effects;
|
|
@@ -159,11 +155,7 @@ export class Zone extends EventEmitter {
|
|
|
159
155
|
return (effect as T) || null;
|
|
160
156
|
}
|
|
161
157
|
|
|
162
|
-
public
|
|
163
|
-
return this.getEffect(this.activeEffectId);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
public getDefaultActiveEffectId() {
|
|
158
|
+
public getDefaultEffectId() {
|
|
167
159
|
if (this.effects.size === 0) {
|
|
168
160
|
return null;
|
|
169
161
|
}
|
|
@@ -171,15 +163,37 @@ export class Zone extends EventEmitter {
|
|
|
171
163
|
return Array.from(this.effects.values())[0].id;
|
|
172
164
|
}
|
|
173
165
|
|
|
174
|
-
|
|
175
|
-
|
|
166
|
+
private effectId: string;
|
|
167
|
+
|
|
168
|
+
public getEffectIdOrDefault() {
|
|
169
|
+
return this.effectId ?? this.getDefaultEffectId();
|
|
170
|
+
}
|
|
171
|
+
public get effect() {
|
|
172
|
+
return this.getEffect(this.getEffectIdOrDefault());
|
|
173
|
+
}
|
|
176
174
|
|
|
177
|
-
|
|
175
|
+
public get activeEffectId() {
|
|
176
|
+
if (!this.active) return null;
|
|
177
|
+
|
|
178
|
+
return this.effectId;
|
|
178
179
|
}
|
|
179
180
|
|
|
180
|
-
public
|
|
181
|
+
public get activeEffect() {
|
|
182
|
+
if (!this.activeEffectId) return null;
|
|
183
|
+
|
|
184
|
+
return this.getEffect(this.activeEffectId);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
public async setActiveEffectById(effectId: string) {
|
|
188
|
+
this.effectId = effectId;
|
|
181
189
|
this.clearAutoOffTimeout();
|
|
182
190
|
|
|
191
|
+
if (!this.active) {
|
|
192
|
+
this.setActive(true);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const effect = this.activeEffect;
|
|
196
|
+
|
|
183
197
|
await Promise.all(
|
|
184
198
|
Array.from(this.devices).map((device) => {
|
|
185
199
|
return device.setActiveEffect(effect);
|
|
@@ -191,14 +205,12 @@ export class Zone extends EventEmitter {
|
|
|
191
205
|
}
|
|
192
206
|
}
|
|
193
207
|
|
|
194
|
-
public getActiveEffectId() {
|
|
195
|
-
return this.activeEffectId;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
208
|
// Brightness
|
|
199
209
|
private brightness: number = 1;
|
|
200
210
|
|
|
201
211
|
public getBrightness() {
|
|
212
|
+
if (!this.active) return 0;
|
|
213
|
+
|
|
202
214
|
return this.brightness;
|
|
203
215
|
}
|
|
204
216
|
|
|
@@ -207,8 +219,6 @@ export class Zone extends EventEmitter {
|
|
|
207
219
|
const previousActive = previousBrightness > 0;
|
|
208
220
|
const active = brightness > 0;
|
|
209
221
|
|
|
210
|
-
this.brightness = brightness;
|
|
211
|
-
|
|
212
222
|
// if (this.context.persistence) {
|
|
213
223
|
// this.context.log.debug(
|
|
214
224
|
// `Persisting zone ${logAccessoryName(
|
|
@@ -220,6 +230,8 @@ export class Zone extends EventEmitter {
|
|
|
220
230
|
// }
|
|
221
231
|
|
|
222
232
|
if (brightness > 0) {
|
|
233
|
+
this.brightness = brightness;
|
|
234
|
+
|
|
223
235
|
await Promise.all(
|
|
224
236
|
this.devicesArray.map((device) => device.setBrightness(brightness))
|
|
225
237
|
);
|
|
@@ -230,12 +242,6 @@ export class Zone extends EventEmitter {
|
|
|
230
242
|
}
|
|
231
243
|
}
|
|
232
244
|
|
|
233
|
-
private updateBrightness(brightness: number) {
|
|
234
|
-
this.brightness = brightness;
|
|
235
|
-
|
|
236
|
-
this.emit('updateBrightness', brightness);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
245
|
// Auto-off
|
|
240
246
|
private autoOffTimeout: NodeJS.Timeout;
|
|
241
247
|
|
|
@@ -24,30 +24,21 @@ export class ZoneEffectAccessory extends SelectionAccessory {
|
|
|
24
24
|
},
|
|
25
25
|
context
|
|
26
26
|
);
|
|
27
|
-
|
|
28
|
-
this.activeOptionId = this.configuration.options[0].id;
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
private active: boolean = false;
|
|
32
|
-
private activeOptionId: string;
|
|
33
|
-
|
|
34
29
|
protected override async getActiveOptionId() {
|
|
35
|
-
return this.
|
|
30
|
+
return this.zone.getEffectIdOrDefault();
|
|
36
31
|
}
|
|
37
32
|
|
|
38
33
|
protected override async setActiveOptionId(effectId: string) {
|
|
39
|
-
this.activeOptionId = effectId;
|
|
40
|
-
|
|
41
34
|
await this.zone.setActiveEffectById(effectId);
|
|
42
35
|
}
|
|
43
36
|
|
|
44
37
|
protected override async getActive() {
|
|
45
|
-
return this.
|
|
38
|
+
return this.zone.getActive();
|
|
46
39
|
}
|
|
47
40
|
|
|
48
41
|
protected override async setActive(active: boolean) {
|
|
49
|
-
this.active = active;
|
|
50
|
-
|
|
51
42
|
await this.zone.setActive(active);
|
|
52
43
|
}
|
|
53
44
|
}
|
package/src/platformFactory.ts
CHANGED
|
@@ -48,11 +48,14 @@ export default (homebridge: any) => {
|
|
|
48
48
|
|
|
49
49
|
public async accessories(callback) {
|
|
50
50
|
await this.context.paletteClient.connect();
|
|
51
|
+
await Promise.all(
|
|
52
|
+
Array.from(this.zones.values()).map(async (zone) => {
|
|
53
|
+
return await zone.initialize();
|
|
54
|
+
})
|
|
55
|
+
);
|
|
51
56
|
|
|
52
57
|
const zoneAccessories = await Promise.all(
|
|
53
|
-
Array.from(this.zones.values()).flatMap(
|
|
54
|
-
await zone.initialize();
|
|
55
|
-
|
|
58
|
+
Array.from(this.zones.values()).flatMap((zone) => {
|
|
56
59
|
const zoneEffectAccessory = new ZoneEffectAccessory(
|
|
57
60
|
zone,
|
|
58
61
|
this.context
|
|
@@ -64,10 +67,6 @@ export default (homebridge: any) => {
|
|
|
64
67
|
|
|
65
68
|
zone.on(ZONE_AUTO_OFF_EVENT, () => {
|
|
66
69
|
zoneEffectAccessory.updateActive(false);
|
|
67
|
-
zoneBrightnessAccessory.updateBrightness(0);
|
|
68
|
-
});
|
|
69
|
-
zone.on('updateBrightness', (brightness) => {
|
|
70
|
-
zoneBrightnessAccessory.updateBrightness(brightness);
|
|
71
70
|
});
|
|
72
71
|
|
|
73
72
|
return [zoneEffectAccessory, zoneBrightnessAccessory];
|