homebridge-nanoleaf-multi 4.0.1 → 5.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.d.ts +1 -0
- package/dist/Device.js +10 -3
- package/dist/Device.js.map +1 -1
- package/dist/Effect.js +2 -0
- package/dist/Effect.js.map +1 -1
- package/dist/Zone.d.ts +4 -0
- package/dist/Zone.js +46 -1
- package/dist/Zone.js.map +1 -1
- package/dist/accessories/ZoneBrightnessAccessory.d.ts +9 -0
- package/dist/accessories/ZoneBrightnessAccessory.js +35 -0
- package/dist/accessories/ZoneBrightnessAccessory.js.map +1 -0
- package/dist/accessories/{ZoneAccessory.d.ts → ZoneEffectAccessory.d.ts} +1 -1
- package/dist/accessories/{ZoneAccessory.js → ZoneEffectAccessory.js} +9 -7
- package/dist/accessories/ZoneEffectAccessory.js.map +1 -0
- package/dist/accessories/index.d.ts +2 -1
- package/dist/accessories/index.js +2 -1
- package/dist/accessories/index.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/platformFactory.js +9 -4
- package/dist/platformFactory.js.map +1 -1
- package/package.json +3 -3
- package/src/Device.ts +9 -3
- package/src/Effect.ts +4 -0
- package/src/Zone.ts +63 -1
- package/src/accessories/ZoneBrightnessAccessory.ts +27 -0
- package/src/accessories/{ZoneAccessory.ts → ZoneEffectAccessory.ts} +6 -4
- package/src/accessories/index.ts +2 -1
- package/src/constants.ts +3 -0
- package/src/platformFactory.ts +16 -5
- package/dist/accessories/ZoneAccessory.js.map +0 -1
package/dist/Device.d.ts
CHANGED
|
@@ -13,5 +13,6 @@ export declare class Device {
|
|
|
13
13
|
private withWriteLock;
|
|
14
14
|
setActive(active: boolean): Promise<void>;
|
|
15
15
|
setActiveEffect(effect: Effect<any>): Promise<void>;
|
|
16
|
+
setBrightness(brightness: number): Promise<void>;
|
|
16
17
|
addNativeEffect(nativeEffect: NativeEffect): Promise<void>;
|
|
17
18
|
}
|
package/dist/Device.js
CHANGED
|
@@ -36,7 +36,7 @@ class Device {
|
|
|
36
36
|
const ip = yield (0, core_kit_node_1.lookupHost)(this.configuration.host);
|
|
37
37
|
this.context.log.debug(`Initializing <${this.name}> at IP ${ip}...`);
|
|
38
38
|
if (this.configuration.token) {
|
|
39
|
-
this.context.log.debug(`Initializing <${this.name}> with configured token...`);
|
|
39
|
+
this.context.log.debug(`Initializing device <${this.name}> with configured token...`);
|
|
40
40
|
this.nanoleafClient = new nanoleaf_client_multi_1.NanoleafClient(ip, this.configuration.token);
|
|
41
41
|
}
|
|
42
42
|
else {
|
|
@@ -56,10 +56,10 @@ class Device {
|
|
|
56
56
|
this.nanoleafClient = new nanoleaf_client_multi_1.NanoleafClient(ip, token);
|
|
57
57
|
this.context.log.warn(`Device <${this.name}> authorized a new token. Copy this into your configuration to avoid re-authorizing when the plugin restarts!`);
|
|
58
58
|
this.context.log.info(`Token for device <${this.name}>: ${token}`);
|
|
59
|
-
this.context.log.debug(`Initializing <${this.name}> with manually authorized token...`);
|
|
59
|
+
this.context.log.debug(`Initializing device <${this.name}> with manually authorized token...`);
|
|
60
60
|
}
|
|
61
61
|
const deviceInfo = yield this.nanoleafClient.getInfo();
|
|
62
|
-
this.context.log.info(`Initialized <${this.name}>`);
|
|
62
|
+
this.context.log.info(`Initialized device <${this.name}>`);
|
|
63
63
|
this.initialized = true;
|
|
64
64
|
});
|
|
65
65
|
}
|
|
@@ -96,6 +96,13 @@ class Device {
|
|
|
96
96
|
}));
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
+
setBrightness(brightness) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
yield this.withWriteLock(() => __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
yield this.nanoleafClient.setBrightness(brightness * 100);
|
|
103
|
+
}));
|
|
104
|
+
});
|
|
105
|
+
}
|
|
99
106
|
addNativeEffect(nativeEffect) {
|
|
100
107
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
108
|
yield this.withWriteLock(() => __awaiter(this, void 0, void 0, function* () {
|
package/dist/Device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAmC;AACnC,4DAAsD;AACtD,iEAAuD;AAGvD,2CAAkD;AAGlD,MAAa,MAAM;IAKjB,YACmB,aAAkC,EAClC,OAAgB;QADhB,kBAAa,GAAb,aAAa,CAAqB;QAClC,YAAO,GAAP,OAAO,CAAS;QAN3B,gBAAW,GAAG,KAAK,CAAC;QAEpB,SAAI,GAAG,IAAI,gBAAa,EAAE,CAAC;IAKhC,CAAC;IAEJ,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,+BAAmB,CAAC;IACxD,CAAC;IAEY,UAAU;;YACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;YAEzD,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAU,EAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAErD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,WAAW,EAAE,KAAK,CAAC,CAAC;YAErE,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CACpB,
|
|
1
|
+
{"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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"}
|
package/dist/Effect.js
CHANGED
|
@@ -23,9 +23,11 @@ class Effect extends events_1.default {
|
|
|
23
23
|
}
|
|
24
24
|
initialize() {
|
|
25
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
this.context.log.debug(`Initializing effect '${this.name}'...`);
|
|
26
27
|
this.context.palette.onAnyColorChange(({ colorId, colorHsv }) => {
|
|
27
28
|
this.setColor(colorId, colorHsv);
|
|
28
29
|
});
|
|
30
|
+
this.context.log.info(`Initialized effect '${this.name}'`);
|
|
29
31
|
});
|
|
30
32
|
}
|
|
31
33
|
get id() {
|
package/dist/Effect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../src/Effect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,oDAAkC;AAElC,2CAA8E;AAG9E,MAAsB,MAEpB,SAAQ,gBAAY;IAGpB,YACqB,aAAsC,EACtC,OAAgB;QAEnC,KAAK,EAAE,CAAC;QAHW,kBAAa,GAAb,aAAa,CAAyB;QACtC,YAAO,GAAP,OAAO,CAAS;IAGrC,CAAC;IAEY,UAAU;;YACrB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC9D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../src/Effect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,oDAAkC;AAElC,2CAA8E;AAG9E,MAAsB,MAEpB,SAAQ,gBAAY;IAGpB,YACqB,aAAsC,EACtC,OAAgB;QAEnC,KAAK,EAAE,CAAC;QAHW,kBAAa,GAAb,aAAa,CAAyB;QACtC,YAAO,GAAP,OAAO,CAAS;IAGrC,CAAC;IAEY,UAAU;;YACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;YAEhE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC9D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC7D,CAAC;KAAA;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,IAAc,gBAAgB;QAC5B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,sCAA0B;SACtE,CAAC;IACJ,CAAC;IAED,IAAW,eAAe;;QACxB,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,eAAe,mCAAI,IAAI,CAAC;IACpD,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,IAAI,CAAC,+BAAmB,CAAC,CAAC;IACjC,CAAC;CAKF;AA/CD,wBA+CC"}
|
package/dist/Zone.d.ts
CHANGED
|
@@ -25,6 +25,10 @@ export declare class Zone extends EventEmitter {
|
|
|
25
25
|
setActiveEffectById(effectId: string): Promise<void>;
|
|
26
26
|
setActiveEffect(effect: Effect<any>): Promise<void>;
|
|
27
27
|
getActiveEffectId(): string;
|
|
28
|
+
private brightness;
|
|
29
|
+
getBrightness(): number;
|
|
30
|
+
setBrightness(brightness: number): Promise<void>;
|
|
31
|
+
private updateBrightness;
|
|
28
32
|
private autoOffTimeout;
|
|
29
33
|
private setAutoOffTimeout;
|
|
30
34
|
private clearAutoOffTimeout;
|
package/dist/Zone.js
CHANGED
|
@@ -28,6 +28,8 @@ class Zone extends events_1.default {
|
|
|
28
28
|
this.devices = new Set();
|
|
29
29
|
// Effects
|
|
30
30
|
this.effects = new Map();
|
|
31
|
+
// Brightness
|
|
32
|
+
this.brightness = 1;
|
|
31
33
|
this.configuration = configuration;
|
|
32
34
|
this.context = context;
|
|
33
35
|
configuration.devices.forEach((deviceConfiguration) => {
|
|
@@ -43,7 +45,7 @@ class Zone extends events_1.default {
|
|
|
43
45
|
effect.on(constants_1.EFFECT_CHANGE_EVENT, () => {
|
|
44
46
|
if (this.activeEffectId !== effect.id)
|
|
45
47
|
return;
|
|
46
|
-
|
|
48
|
+
this.context.log.info(`The active effect '${effect.name}' changed, applying to zone`);
|
|
47
49
|
this.setActiveEffect(effect);
|
|
48
50
|
});
|
|
49
51
|
this.effects.set(effect.id, effect);
|
|
@@ -76,6 +78,14 @@ class Zone extends events_1.default {
|
|
|
76
78
|
this.context.log.error(`Failed to initialize device <${device.name}>`, error);
|
|
77
79
|
}
|
|
78
80
|
})));
|
|
81
|
+
yield Promise.all(Array.from(this.effects.values()).map((effect) => __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
try {
|
|
83
|
+
yield effect.initialize();
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.context.log.error(`Failed to initialize effect '${effect.name}'`, error);
|
|
87
|
+
}
|
|
88
|
+
})));
|
|
79
89
|
});
|
|
80
90
|
}
|
|
81
91
|
get devicesArray() {
|
|
@@ -86,6 +96,12 @@ class Zone extends events_1.default {
|
|
|
86
96
|
if (!active) {
|
|
87
97
|
this.clearAutoOffTimeout();
|
|
88
98
|
}
|
|
99
|
+
if (active && this.brightness === 0) {
|
|
100
|
+
this.updateBrightness(1);
|
|
101
|
+
}
|
|
102
|
+
else if (!active && this.brightness > 0) {
|
|
103
|
+
this.updateBrightness(0);
|
|
104
|
+
}
|
|
89
105
|
yield Promise.all(this.devicesArray.map((device) => __awaiter(this, void 0, void 0, function* () {
|
|
90
106
|
yield device.setActive(active);
|
|
91
107
|
})));
|
|
@@ -131,6 +147,35 @@ class Zone extends events_1.default {
|
|
|
131
147
|
getActiveEffectId() {
|
|
132
148
|
return this.activeEffectId;
|
|
133
149
|
}
|
|
150
|
+
getBrightness() {
|
|
151
|
+
return this.brightness;
|
|
152
|
+
}
|
|
153
|
+
setBrightness(brightness) {
|
|
154
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
+
const previousBrightness = this.brightness;
|
|
156
|
+
const previousActive = previousBrightness > 0;
|
|
157
|
+
const active = brightness > 0;
|
|
158
|
+
this.brightness = brightness;
|
|
159
|
+
// if (this.context.persistence) {
|
|
160
|
+
// this.context.log.debug(
|
|
161
|
+
// `Persisting zone ${logAccessoryName(
|
|
162
|
+
// this.name
|
|
163
|
+
// )} brightness = ${logPercent(brightness)}`
|
|
164
|
+
// );
|
|
165
|
+
// await this.context.persistence.setZoneBrightness(this.id, brightness);
|
|
166
|
+
// }
|
|
167
|
+
if (brightness > 0) {
|
|
168
|
+
yield Promise.all(this.devicesArray.map((device) => device.setBrightness(brightness)));
|
|
169
|
+
}
|
|
170
|
+
if (active !== previousActive) {
|
|
171
|
+
this.setActive(active);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
updateBrightness(brightness) {
|
|
176
|
+
this.brightness = brightness;
|
|
177
|
+
this.emit('updateBrightness', brightness);
|
|
178
|
+
}
|
|
134
179
|
setAutoOffTimeout(duration) {
|
|
135
180
|
this.autoOffTimeout = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
|
136
181
|
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;
|
|
1
|
+
{"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BrightnessAccessory } from 'helpers-for-homebridge';
|
|
2
|
+
import { Context } from '../types';
|
|
3
|
+
import { Zone } from '../Zone';
|
|
4
|
+
export declare class ZoneBrightnessAccessory extends BrightnessAccessory {
|
|
5
|
+
private readonly zone;
|
|
6
|
+
constructor(zone: Zone, context: Context);
|
|
7
|
+
getBrightness(): Promise<number>;
|
|
8
|
+
setBrightness(brightness: number): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ZoneBrightnessAccessory = void 0;
|
|
13
|
+
const helpers_for_homebridge_1 = require("helpers-for-homebridge");
|
|
14
|
+
class ZoneBrightnessAccessory extends helpers_for_homebridge_1.BrightnessAccessory {
|
|
15
|
+
constructor(zone, context) {
|
|
16
|
+
super({
|
|
17
|
+
name: zone.name + ' Brightness',
|
|
18
|
+
serial: zone.id + '_brightness',
|
|
19
|
+
model: 'Nanoleaf Multi Zone Brightness',
|
|
20
|
+
}, context);
|
|
21
|
+
this.zone = zone;
|
|
22
|
+
}
|
|
23
|
+
getBrightness() {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
return this.zone.getBrightness();
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
setBrightness(brightness) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
return this.zone.setBrightness(brightness);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.ZoneBrightnessAccessory = ZoneBrightnessAccessory;
|
|
35
|
+
//# sourceMappingURL=ZoneBrightnessAccessory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoneBrightnessAccessory.js","sourceRoot":"","sources":["../../src/accessories/ZoneBrightnessAccessory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAA6D;AAI7D,MAAa,uBAAwB,SAAQ,4CAAmB;IAC9D,YACmB,IAAU,EAC3B,OAAgB;QAEhB,KAAK,CACH;YACE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,aAAa;YAC/B,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,aAAa;YAC/B,KAAK,EAAE,gCAAgC;SACxC,EACD,OAAO,CACR,CAAC;QAVe,SAAI,GAAJ,IAAI,CAAM;IAW7B,CAAC;IAEqB,aAAa;;YACjC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,CAAC;KAAA;IAEqB,aAAa,CAAC,UAAkB;;YACpD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;KAAA;CACF;AAtBD,0DAsBC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SelectionAccessory } from 'helpers-for-homebridge';
|
|
2
2
|
import { Context } from '../types';
|
|
3
3
|
import { Zone } from '../Zone';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ZoneEffectAccessory extends SelectionAccessory {
|
|
5
5
|
private readonly zone;
|
|
6
6
|
constructor(zone: Zone, context: Context);
|
|
7
7
|
private active;
|
|
@@ -9,14 +9,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.ZoneEffectAccessory = void 0;
|
|
13
13
|
const helpers_for_homebridge_1 = require("helpers-for-homebridge");
|
|
14
|
-
|
|
14
|
+
const constants_1 = require("../constants");
|
|
15
|
+
class ZoneEffectAccessory extends helpers_for_homebridge_1.SelectionAccessory {
|
|
15
16
|
constructor(zone, context) {
|
|
16
17
|
super({
|
|
17
|
-
name: zone.name,
|
|
18
|
-
serial: zone.id,
|
|
19
|
-
model: 'Nanoleaf Multi Zone',
|
|
18
|
+
name: zone.name + ' Effect',
|
|
19
|
+
serial: zone.id + '_effect',
|
|
20
|
+
model: 'Nanoleaf Multi Zone Effect',
|
|
21
|
+
mode: constants_1.ZONE_EFFECT_SELECTION_ACCESSORY_MODE,
|
|
20
22
|
options: zone.configuration.effects.map((effectConfiguration) => {
|
|
21
23
|
return {
|
|
22
24
|
name: effectConfiguration.name,
|
|
@@ -52,5 +54,5 @@ class ZoneAccessory extends helpers_for_homebridge_1.SelectionAccessory {
|
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
|
-
exports.
|
|
56
|
-
//# sourceMappingURL=
|
|
57
|
+
exports.ZoneEffectAccessory = ZoneEffectAccessory;
|
|
58
|
+
//# sourceMappingURL=ZoneEffectAccessory.js.map
|
|
@@ -0,0 +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;QAuBrB,WAAM,GAAY,KAAK,CAAC;QAH9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;IAKwB,iBAAiB;;YACxC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;KAAA;IAEwB,iBAAiB,CAAC,QAAgB;;YACzD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAE/B,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;KAAA;IAEwB,SAAS;;YAChC,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;KAAA;IAEwB,SAAS,CAAC,MAAe;;YAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;KAAA;CACF;AA/CD,kDA+CC"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './ZoneBrightnessAccessory';
|
|
2
|
+
export * from './ZoneEffectAccessory';
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./ZoneBrightnessAccessory"), exports);
|
|
18
|
+
__exportStar(require("./ZoneEffectAccessory"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/accessories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/accessories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,wDAAsC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ColorHSV } from '@manganese/palette-kit-core';
|
|
2
2
|
import { NativeEffect, NativeEffectType } from './types';
|
|
3
|
+
import { SelectionAccessoryMode } from 'helpers-for-homebridge';
|
|
3
4
|
export declare const OFF_COLOR: ColorHSV;
|
|
4
5
|
export declare const DEFAULT_DEVICE_SIZE = 50;
|
|
5
6
|
export declare const EFFECT_CHANGE_EVENT = "change";
|
|
@@ -8,3 +9,4 @@ export declare const DEFAULT_NATIVE_EFFECT_NAME = "Dynamic Effect";
|
|
|
8
9
|
export declare const NATIVE_EFFECT_TYPE_UUIDS: Map<NativeEffectType, string>;
|
|
9
10
|
export declare const NATIVE_EFFECT_BASE: NativeEffect;
|
|
10
11
|
export declare const ZONE_AUTO_OFF_EVENT = "zone_auto_off";
|
|
12
|
+
export declare const ZONE_EFFECT_SELECTION_ACCESSORY_MODE: SelectionAccessoryMode;
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZONE_AUTO_OFF_EVENT = exports.NATIVE_EFFECT_BASE = exports.NATIVE_EFFECT_TYPE_UUIDS = exports.DEFAULT_NATIVE_EFFECT_NAME = exports.EFFECT_SPEED_COEFFICIENT = exports.EFFECT_CHANGE_EVENT = exports.DEFAULT_DEVICE_SIZE = exports.OFF_COLOR = void 0;
|
|
3
|
+
exports.ZONE_EFFECT_SELECTION_ACCESSORY_MODE = exports.ZONE_AUTO_OFF_EVENT = exports.NATIVE_EFFECT_BASE = exports.NATIVE_EFFECT_TYPE_UUIDS = exports.DEFAULT_NATIVE_EFFECT_NAME = exports.EFFECT_SPEED_COEFFICIENT = exports.EFFECT_CHANGE_EVENT = exports.DEFAULT_DEVICE_SIZE = exports.OFF_COLOR = void 0;
|
|
4
4
|
const palette_kit_core_1 = require("@manganese/palette-kit-core");
|
|
5
5
|
const types_1 = require("./types");
|
|
6
6
|
exports.OFF_COLOR = {
|
|
@@ -33,4 +33,5 @@ exports.NATIVE_EFFECT_BASE = {
|
|
|
33
33
|
hasOverlay: false,
|
|
34
34
|
};
|
|
35
35
|
exports.ZONE_AUTO_OFF_EVENT = 'zone_auto_off';
|
|
36
|
+
exports.ZONE_EFFECT_SELECTION_ACCESSORY_MODE = 'outlet';
|
|
36
37
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,kEAAmE;AACnE,mCAAyD;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,kEAAmE;AACnE,mCAAyD;AAG5C,QAAA,SAAS,GAAa;IACjC,KAAK,EAAE,6BAAU,CAAC,GAAG;IACrB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;CACT,CAAC;AACW,QAAA,mBAAmB,GAAG,EAAE,CAAC;AACzB,QAAA,mBAAmB,GAAG,QAAQ,CAAC;AAC/B,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAC/B,QAAA,0BAA0B,GAAG,gBAAgB,CAAC;AAC9C,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAA2B;IACxE,CAAC,wBAAgB,CAAC,KAAK,EAAE,sCAAsC,CAAC;IAChE,CAAC,wBAAgB,CAAC,IAAI,EAAE,sCAAsC,CAAC;IAC/D,CAAC,wBAAgB,CAAC,OAAO,EAAE,sCAAsC,CAAC;IAClE,CAAC,wBAAgB,CAAC,IAAI,EAAE,sCAAsC,CAAC;IAC/D,CAAC,wBAAgB,CAAC,MAAM,EAAE,sCAAsC,CAAC;IACjE,CAAC,wBAAgB,CAAC,SAAS,EAAE,sCAAsC,CAAC;CACrE,CAAC,CAAC;AACU,QAAA,kBAAkB,GAAiB;IAC9C,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,kCAA0B;IACpC,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,gCAAwB,CAAC,GAAG,CAAC,wBAAgB,CAAC,IAAI,CAAC;IAC/D,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,KAAK;CAClB,CAAC;AACW,QAAA,mBAAmB,GAAG,eAAe,CAAC;AACtC,QAAA,oCAAoC,GAC/C,QAAQ,CAAC"}
|
package/dist/platformFactory.js
CHANGED
|
@@ -43,13 +43,18 @@ 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
|
-
const zoneAccessories = yield Promise.all(Array.from(this.zones.values()).
|
|
46
|
+
const zoneAccessories = yield Promise.all(Array.from(this.zones.values()).flatMap((zone) => __awaiter(this, void 0, void 0, function* () {
|
|
47
47
|
yield zone.initialize();
|
|
48
|
-
const
|
|
48
|
+
const zoneEffectAccessory = new accessories_1.ZoneEffectAccessory(zone, this.context);
|
|
49
|
+
const zoneBrightnessAccessory = new accessories_1.ZoneBrightnessAccessory(zone, this.context);
|
|
49
50
|
zone.on(constants_1.ZONE_AUTO_OFF_EVENT, () => {
|
|
50
|
-
|
|
51
|
+
zoneEffectAccessory.updateActive(false);
|
|
52
|
+
zoneBrightnessAccessory.updateBrightness(0);
|
|
51
53
|
});
|
|
52
|
-
|
|
54
|
+
zone.on('updateBrightness', (brightness) => {
|
|
55
|
+
zoneBrightnessAccessory.updateBrightness(brightness);
|
|
56
|
+
});
|
|
57
|
+
return [zoneEffectAccessory, zoneBrightnessAccessory];
|
|
53
58
|
})));
|
|
54
59
|
const accessories = [...zoneAccessories];
|
|
55
60
|
callback(accessories);
|
|
@@ -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,+
|
|
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;gBAE3C,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAO,IAAI,EAAE,EAAE;oBACrD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBAExB,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;wBACxC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAC9C,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE;wBACzC,uBAAuB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;oBAEH,OAAO,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;gBACxD,CAAC,CAAA,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
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"keywords": [
|
|
7
7
|
"homebridge-plugin"
|
|
8
8
|
],
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "5.0.0",
|
|
10
10
|
"deprecated": false,
|
|
11
11
|
"author": {
|
|
12
12
|
"name": "Samuel Goodell"
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
"main": "dist/index.js",
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@manganese/core-kit-node": "^3.0",
|
|
34
|
-
"@manganese/palette-kit-client": "^4.2.
|
|
34
|
+
"@manganese/palette-kit-client": "^4.2.1",
|
|
35
35
|
"@manganese/palette-kit-core": "^4.2.1",
|
|
36
36
|
"async-lock": "^1.2.4",
|
|
37
37
|
"axios": "^0.19.2",
|
|
38
38
|
"colors": "^1.4.0",
|
|
39
|
-
"helpers-for-homebridge": "^4.
|
|
39
|
+
"helpers-for-homebridge": "^4.4.0",
|
|
40
40
|
"nanoleaf-client-multi": "^2.0.1",
|
|
41
41
|
"rwlock": "^5.0.0",
|
|
42
42
|
"simple-node-logger": "^21.8.12"
|
package/src/Device.ts
CHANGED
|
@@ -33,7 +33,7 @@ export class Device {
|
|
|
33
33
|
|
|
34
34
|
if (this.configuration.token) {
|
|
35
35
|
this.context.log.debug(
|
|
36
|
-
`Initializing <${this.name}> with configured token...`
|
|
36
|
+
`Initializing device <${this.name}> with configured token...`
|
|
37
37
|
);
|
|
38
38
|
|
|
39
39
|
this.nanoleafClient = new NanoleafClient(ip, this.configuration.token);
|
|
@@ -66,13 +66,13 @@ export class Device {
|
|
|
66
66
|
);
|
|
67
67
|
this.context.log.info(`Token for device <${this.name}>: ${token}`);
|
|
68
68
|
this.context.log.debug(
|
|
69
|
-
`Initializing <${this.name}> with manually authorized token...`
|
|
69
|
+
`Initializing device <${this.name}> with manually authorized token...`
|
|
70
70
|
);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
const deviceInfo = await this.nanoleafClient.getInfo();
|
|
74
74
|
|
|
75
|
-
this.context.log.info(`Initialized <${this.name}>`);
|
|
75
|
+
this.context.log.info(`Initialized device <${this.name}>`);
|
|
76
76
|
this.initialized = true;
|
|
77
77
|
}
|
|
78
78
|
|
|
@@ -106,6 +106,12 @@ export class Device {
|
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
public async setBrightness(brightness: number): Promise<void> {
|
|
110
|
+
await this.withWriteLock(async () => {
|
|
111
|
+
await this.nanoleafClient.setBrightness(brightness * 100);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
109
115
|
public async addNativeEffect(nativeEffect: NativeEffect) {
|
|
110
116
|
await this.withWriteLock(async () => {
|
|
111
117
|
await this.nanoleafClient.addEffect(nativeEffect);
|
package/src/Effect.ts
CHANGED
|
@@ -17,9 +17,13 @@ export abstract class Effect<
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
public async initialize() {
|
|
20
|
+
this.context.log.debug(`Initializing effect '${this.name}'...`);
|
|
21
|
+
|
|
20
22
|
this.context.palette.onAnyColorChange(({ colorId, colorHsv }) => {
|
|
21
23
|
this.setColor(colorId, colorHsv);
|
|
22
24
|
});
|
|
25
|
+
|
|
26
|
+
this.context.log.info(`Initialized effect '${this.name}'`);
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
public get id() {
|
package/src/Zone.ts
CHANGED
|
@@ -44,7 +44,9 @@ export class Zone extends EventEmitter {
|
|
|
44
44
|
effect.on(EFFECT_CHANGE_EVENT, () => {
|
|
45
45
|
if (this.activeEffectId !== effect.id) return;
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
this.context.log.info(
|
|
48
|
+
`The active effect '${effect.name}' changed, applying to zone`
|
|
49
|
+
);
|
|
48
50
|
|
|
49
51
|
this.setActiveEffect(effect);
|
|
50
52
|
});
|
|
@@ -95,6 +97,19 @@ export class Zone extends EventEmitter {
|
|
|
95
97
|
}
|
|
96
98
|
})
|
|
97
99
|
);
|
|
100
|
+
|
|
101
|
+
await Promise.all(
|
|
102
|
+
Array.from(this.effects.values()).map(async (effect) => {
|
|
103
|
+
try {
|
|
104
|
+
await effect.initialize();
|
|
105
|
+
} catch (error) {
|
|
106
|
+
this.context.log.error(
|
|
107
|
+
`Failed to initialize effect '${effect.name}'`,
|
|
108
|
+
error
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
);
|
|
98
113
|
}
|
|
99
114
|
|
|
100
115
|
// Devices
|
|
@@ -109,6 +124,12 @@ export class Zone extends EventEmitter {
|
|
|
109
124
|
this.clearAutoOffTimeout();
|
|
110
125
|
}
|
|
111
126
|
|
|
127
|
+
if (active && this.brightness === 0) {
|
|
128
|
+
this.updateBrightness(1);
|
|
129
|
+
} else if (!active && this.brightness > 0) {
|
|
130
|
+
this.updateBrightness(0);
|
|
131
|
+
}
|
|
132
|
+
|
|
112
133
|
await Promise.all(
|
|
113
134
|
this.devicesArray.map(async (device) => {
|
|
114
135
|
await device.setActive(active);
|
|
@@ -174,6 +195,47 @@ export class Zone extends EventEmitter {
|
|
|
174
195
|
return this.activeEffectId;
|
|
175
196
|
}
|
|
176
197
|
|
|
198
|
+
// Brightness
|
|
199
|
+
private brightness: number = 1;
|
|
200
|
+
|
|
201
|
+
public getBrightness() {
|
|
202
|
+
return this.brightness;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
public async setBrightness(brightness: number): Promise<void> {
|
|
206
|
+
const previousBrightness = this.brightness;
|
|
207
|
+
const previousActive = previousBrightness > 0;
|
|
208
|
+
const active = brightness > 0;
|
|
209
|
+
|
|
210
|
+
this.brightness = brightness;
|
|
211
|
+
|
|
212
|
+
// if (this.context.persistence) {
|
|
213
|
+
// this.context.log.debug(
|
|
214
|
+
// `Persisting zone ${logAccessoryName(
|
|
215
|
+
// this.name
|
|
216
|
+
// )} brightness = ${logPercent(brightness)}`
|
|
217
|
+
// );
|
|
218
|
+
|
|
219
|
+
// await this.context.persistence.setZoneBrightness(this.id, brightness);
|
|
220
|
+
// }
|
|
221
|
+
|
|
222
|
+
if (brightness > 0) {
|
|
223
|
+
await Promise.all(
|
|
224
|
+
this.devicesArray.map((device) => device.setBrightness(brightness))
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (active !== previousActive) {
|
|
229
|
+
this.setActive(active);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
private updateBrightness(brightness: number) {
|
|
234
|
+
this.brightness = brightness;
|
|
235
|
+
|
|
236
|
+
this.emit('updateBrightness', brightness);
|
|
237
|
+
}
|
|
238
|
+
|
|
177
239
|
// Auto-off
|
|
178
240
|
private autoOffTimeout: NodeJS.Timeout;
|
|
179
241
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BrightnessAccessory } from 'helpers-for-homebridge';
|
|
2
|
+
import { Context } from '../types';
|
|
3
|
+
import { Zone } from '../Zone';
|
|
4
|
+
|
|
5
|
+
export class ZoneBrightnessAccessory extends BrightnessAccessory {
|
|
6
|
+
constructor(
|
|
7
|
+
private readonly zone: Zone,
|
|
8
|
+
context: Context
|
|
9
|
+
) {
|
|
10
|
+
super(
|
|
11
|
+
{
|
|
12
|
+
name: zone.name + ' Brightness',
|
|
13
|
+
serial: zone.id + '_brightness',
|
|
14
|
+
model: 'Nanoleaf Multi Zone Brightness',
|
|
15
|
+
},
|
|
16
|
+
context
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public override async getBrightness(): Promise<number> {
|
|
21
|
+
return this.zone.getBrightness();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public override async setBrightness(brightness: number): Promise<void> {
|
|
25
|
+
return this.zone.setBrightness(brightness);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { SelectionAccessory } from 'helpers-for-homebridge';
|
|
2
2
|
import { Context } from '../types';
|
|
3
3
|
import { Zone } from '../Zone';
|
|
4
|
+
import { ZONE_EFFECT_SELECTION_ACCESSORY_MODE } from '../constants';
|
|
4
5
|
|
|
5
|
-
export class
|
|
6
|
+
export class ZoneEffectAccessory extends SelectionAccessory {
|
|
6
7
|
constructor(
|
|
7
8
|
private readonly zone: Zone,
|
|
8
9
|
context: Context
|
|
9
10
|
) {
|
|
10
11
|
super(
|
|
11
12
|
{
|
|
12
|
-
name: zone.name,
|
|
13
|
-
serial: zone.id,
|
|
14
|
-
model: 'Nanoleaf Multi Zone',
|
|
13
|
+
name: zone.name + ' Effect',
|
|
14
|
+
serial: zone.id + '_effect',
|
|
15
|
+
model: 'Nanoleaf Multi Zone Effect',
|
|
16
|
+
mode: ZONE_EFFECT_SELECTION_ACCESSORY_MODE,
|
|
15
17
|
options: zone.configuration.effects.map((effectConfiguration) => {
|
|
16
18
|
return {
|
|
17
19
|
name: effectConfiguration.name,
|
package/src/accessories/index.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './ZoneBrightnessAccessory';
|
|
2
|
+
export * from './ZoneEffectAccessory';
|
package/src/constants.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ColorHSV, ColorSpace } from '@manganese/palette-kit-core';
|
|
2
2
|
import { NativeEffect, NativeEffectType } from './types';
|
|
3
|
+
import { SelectionAccessoryMode } from 'helpers-for-homebridge';
|
|
3
4
|
|
|
4
5
|
export const OFF_COLOR: ColorHSV = {
|
|
5
6
|
space: ColorSpace.HSV,
|
|
@@ -31,3 +32,5 @@ export const NATIVE_EFFECT_BASE: NativeEffect = {
|
|
|
31
32
|
hasOverlay: false,
|
|
32
33
|
};
|
|
33
34
|
export const ZONE_AUTO_OFF_EVENT = 'zone_auto_off';
|
|
35
|
+
export const ZONE_EFFECT_SELECTION_ACCESSORY_MODE: SelectionAccessoryMode =
|
|
36
|
+
'outlet';
|
package/src/platformFactory.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { Palette } from '@manganese/palette-kit-core';
|
|
|
5
5
|
import { PaletteClient } from '@manganese/palette-kit-client';
|
|
6
6
|
|
|
7
7
|
import { PlatformConfiguration, Context } from './types';
|
|
8
|
-
import {
|
|
8
|
+
import { ZoneBrightnessAccessory, ZoneEffectAccessory } from './accessories';
|
|
9
9
|
import { ZONE_AUTO_OFF_EVENT } from './constants';
|
|
10
10
|
import { Zone } from './Zone';
|
|
11
11
|
|
|
@@ -50,16 +50,27 @@ export default (homebridge: any) => {
|
|
|
50
50
|
await this.context.paletteClient.connect();
|
|
51
51
|
|
|
52
52
|
const zoneAccessories = await Promise.all(
|
|
53
|
-
Array.from(this.zones.values()).
|
|
53
|
+
Array.from(this.zones.values()).flatMap(async (zone) => {
|
|
54
54
|
await zone.initialize();
|
|
55
55
|
|
|
56
|
-
const
|
|
56
|
+
const zoneEffectAccessory = new ZoneEffectAccessory(
|
|
57
|
+
zone,
|
|
58
|
+
this.context
|
|
59
|
+
);
|
|
60
|
+
const zoneBrightnessAccessory = new ZoneBrightnessAccessory(
|
|
61
|
+
zone,
|
|
62
|
+
this.context
|
|
63
|
+
);
|
|
57
64
|
|
|
58
65
|
zone.on(ZONE_AUTO_OFF_EVENT, () => {
|
|
59
|
-
|
|
66
|
+
zoneEffectAccessory.updateActive(false);
|
|
67
|
+
zoneBrightnessAccessory.updateBrightness(0);
|
|
68
|
+
});
|
|
69
|
+
zone.on('updateBrightness', (brightness) => {
|
|
70
|
+
zoneBrightnessAccessory.updateBrightness(brightness);
|
|
60
71
|
});
|
|
61
72
|
|
|
62
|
-
return
|
|
73
|
+
return [zoneEffectAccessory, zoneBrightnessAccessory];
|
|
63
74
|
})
|
|
64
75
|
);
|
|
65
76
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ZoneAccessory.js","sourceRoot":"","sources":["../../src/accessories/ZoneAccessory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAA4D;AAI5D,MAAa,aAAc,SAAQ,2CAAkB;IACnD,YACmB,IAAU,EAC3B,OAAgB;QAEhB,KAAK,CACH;YACE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,qBAAqB;YAC5B,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;QAjBe,SAAI,GAAJ,IAAI,CAAM;QAsBrB,WAAM,GAAY,KAAK,CAAC;QAH9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;IAKwB,iBAAiB;;YACxC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;KAAA;IAEwB,iBAAiB,CAAC,QAAgB;;YACzD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAE/B,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;KAAA;IAEwB,SAAS;;YAChC,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;KAAA;IAEwB,SAAS,CAAC,MAAe;;YAChD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;KAAA;CACF;AA9CD,sCA8CC"}
|