homebridge-lifx-plugin 0.2.3 → 0.3.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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <p align="center">
2
2
  <a href="https://github.com/calvarium/homebridge-lifx-plugin"><img alt="homebridge-lifx-plugin" src="https://user-images.githubusercontent.com/94163719/145686236-4d930c87-aedd-40a3-a4c4-2d64ee0c5904.png" width="200px"></a>
3
3
  </p>
4
- <span align="center">
4
+
5
5
 
6
6
  # homebridge-lifx-plugin
7
7
 
@@ -77,7 +77,7 @@
77
77
  },
78
78
  "updates": {
79
79
  "title": "Updates",
80
- "description": "Check if you don't care about updates",
80
+ "description": "Check if you don't care about updates. If selected homebridge will issue a warning that the characteristic 'Firmware Revision' is not required",
81
81
  "type": "boolean",
82
82
  "default": true
83
83
  },
@@ -132,6 +132,25 @@
132
132
  }
133
133
  }
134
134
  },
135
+ "switches": {
136
+ "type": "array",
137
+ "items": {
138
+ "title": "Switches",
139
+ "type": "object",
140
+ "properties": {
141
+ "name": {
142
+ "title": "Name",
143
+ "type": "string",
144
+ "placeholder": "Enter switch name..."
145
+ },
146
+ "address": {
147
+ "type": "string",
148
+ "format": "hostname",
149
+ "placeholder": "xxx.xxx.xxx.xxx"
150
+ }
151
+ }
152
+ }
153
+ },
135
154
  "excludes": {
136
155
  "type": "array",
137
156
  "items": {
@@ -1,13 +1,14 @@
1
- export default interface ProductInfo {
2
- pid: number;
3
- name: string;
4
- features: {
1
+ export default interface HardwareInfo {
2
+ productId: number;
3
+ vendorName: string;
4
+ productName: string;
5
+ productFeatures: {
5
6
  color: boolean;
6
7
  chain: boolean;
7
8
  matrix: boolean;
8
9
  infrared: boolean;
9
10
  multizone: boolean;
10
- temperature_range: number[];
11
+ temperature_range?: number[];
11
12
  min_ext_mz_firmware?: undefined;
12
13
  min_ext_mz_firmware_components?: undefined;
13
14
  relays?: undefined;
@@ -16,4 +17,4 @@ export default interface ProductInfo {
16
17
  };
17
18
  upgrades: [];
18
19
  }
19
- //# sourceMappingURL=IProductInfo.d.ts.map
20
+ //# sourceMappingURL=IHardwareInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHardwareInfo.d.ts","sourceRoot":"","sources":["../src/IHardwareInfo.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,YAAY;IAE7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE;QACb,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,mBAAmB,CAAC,EAAE,SAAS,CAAC;QAChC,8BAA8B,CAAC,EAAE,SAAS,CAAC;QAC3C,MAAM,CAAC,EAAE,SAAS,CAAC;QACnB,OAAO,CAAC,EAAE,SAAS,CAAC;QACpB,GAAG,CAAC,EAAE,SAAS,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE,EAAE,CAAC;CAEpB"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IProductInfo.js.map
3
+ //# sourceMappingURL=IHardwareInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHardwareInfo.js","sourceRoot":"","sources":["../src/IHardwareInfo.ts"],"names":[],"mappings":""}
package/dist/bulb.d.ts CHANGED
@@ -1,23 +1,27 @@
1
1
  export default class Bulb {
2
2
  private readonly light;
3
3
  private readonly Settings;
4
- private ProductInfo?;
4
+ private HardwareInfo?;
5
5
  private States;
6
- private HardwareInfo;
7
6
  private FirmwareVersion;
8
7
  constructor(light: any, Settings: any);
9
8
  Init(callback: any, error: any): Promise<void>;
10
9
  getName(): string;
11
10
  getVersion(): string;
12
11
  getSerialNumber(): any;
13
- getVendorName(): string;
14
- getProductName(): string;
15
- hasColors(): boolean;
16
- hasKelvin(): boolean;
12
+ getProductId(): number | undefined;
13
+ getVendorName(): string | undefined;
14
+ getProductName(): string | undefined;
15
+ hasColors(): boolean | undefined;
16
+ hasKelvin(): number | boolean;
17
+ getMinKelvin(): number;
18
+ getMaxKelvin(): number;
19
+ getMinColorTemperatur(): number;
20
+ getMaxColorTemperatur(): number;
17
21
  updateStates(callback: any): Promise<void>;
18
22
  private static getProductInfo;
19
23
  private setPower;
20
- setFirmwareVersion(error: any): Promise<void>;
24
+ setFirmwareVersion(callback: any, error: any): Promise<void>;
21
25
  setHardwareInformation(callback: any, error: any): Promise<void>;
22
26
  getStates(callback: any, errorFallback: any): void;
23
27
  getHardwareInformation(callback: any, errorFallback: any): void;
@@ -34,9 +38,9 @@ export default class Bulb {
34
38
  getHue(): number;
35
39
  getSaturation(): number;
36
40
  getColorTemperatur(): number;
37
- getKelvin(value: any): number;
38
- private getKelvinRange;
39
- private convertHomeKitColorTemperatureToHomeKitColor;
40
- private convertColorTemperatureFromHomeKitToKelvin;
41
+ private assignUpgrades;
42
+ private isVersionHigherOrEqual;
43
+ private static convertHomeKitColorTemperatureToHomeKitColor;
44
+ private static convertKelvinMirek;
41
45
  }
42
46
  //# sourceMappingURL=bulb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bulb.d.ts","sourceRoot":"","sources":["../src/bulb.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,IAAI;IAqBrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IArB3B,OAAO,CAAC,WAAW,CAAC,CAAe;IAEnC,OAAO,CAAC,MAAM,CAIZ;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,eAAe,CAGrB;gBAGiB,KAAK,KAAA,EACL,QAAQ,KAAA;IAGd,IAAI,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAA;IAU1B,OAAO;IAIP,UAAU;IAIV,eAAe;IAIf,aAAa;IAIb,cAAc;IAId,SAAS;IAOT,SAAS;IAUV,YAAY,CAAC,QAAQ,KAAA;IAc3B,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B,OAAO,CAAC,QAAQ;IAIV,kBAAkB,CAAC,KAAK,KAAA;IAMxB,sBAAsB,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAA;IAO5C,SAAS,CAAC,QAAQ,KAAA,EAAE,aAAa,KAAA;IASjC,sBAAsB,CAAC,QAAQ,KAAA,EAAE,aAAa,KAAA;IAS9C,kBAAkB,CAAC,QAAQ,KAAA,EAAE,aAAa,KAAA;IAS1C,MAAM,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAItB,YAAY,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAItB,KAAK,CAAC,KAAK,KAAA;IAUX,aAAa,CAAC,KAAK,KAAA;IAKnB,MAAM,CAAC,KAAK,KAAA;IAKZ,aAAa,CAAC,KAAK,KAAA;IAKnB,SAAS,CAAC,KAAK,EAAE,MAAM;IAS7B,KAAK;IAIL,aAAa;IAIb,MAAM;IAIN,aAAa;IAIb,kBAAkB;IAWX,SAAS,CAAC,KAAK,KAAA;IAKtB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,4CAA4C;IA6BpD,OAAO,CAAC,0CAA0C;CAOnD"}
1
+ {"version":3,"file":"bulb.d.ts","sourceRoot":"","sources":["../src/bulb.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,IAAI;IAerB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAf3B,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC,OAAO,CAAC,MAAM,CAIZ;IAEF,OAAO,CAAC,eAAe,CAGrB;gBAGiB,KAAK,KAAA,EACL,QAAQ,KAAA;IAGd,IAAI,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAA;IAU1B,OAAO;IAIP,UAAU;IAIV,eAAe;IAIf,YAAY;IAIZ,aAAa;IAIb,cAAc;IAId,SAAS;IAIT,SAAS;IAIT,YAAY;IAIZ,YAAY;IAIZ,qBAAqB;IAIrB,qBAAqB;IAItB,YAAY,CAAC,QAAQ,KAAA;IAc3B,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B,OAAO,CAAC,QAAQ;IAIV,kBAAkB,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAA;IAOlC,sBAAsB,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAA;IAQ5C,SAAS,CAAC,QAAQ,KAAA,EAAE,aAAa,KAAA;IASjC,sBAAsB,CAAC,QAAQ,KAAA,EAAE,aAAa,KAAA;IAS9C,kBAAkB,CAAC,QAAQ,KAAA,EAAE,aAAa,KAAA;IAS1C,MAAM,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAItB,YAAY,CAAC,KAAK,KAAA,EAAE,QAAQ,KAAA;IAItB,KAAK,CAAC,KAAK,KAAA;IAUX,aAAa,CAAC,KAAK,KAAA;IAKnB,MAAM,CAAC,KAAK,KAAA;IAKZ,aAAa,CAAC,KAAK,KAAA;IAKnB,SAAS,CAAC,KAAK,EAAE,MAAM;IAS7B,KAAK;IAIL,aAAa;IAIb,MAAM;IAIN,aAAa;IAIb,kBAAkB;IAIlB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,MAAM,CAAC,4CAA4C;IA6B3D,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAIlC"}
package/dist/bulb.js CHANGED
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  /* eslint-disable max-len */
7
7
  const products_json_1 = __importDefault(require("./products.json"));
8
+ const lodash_1 = require("lodash");
8
9
  class Bulb {
9
10
  constructor(light, Settings) {
10
11
  this.light = light;
@@ -14,54 +15,63 @@ class Bulb {
14
15
  power: 0,
15
16
  label: '',
16
17
  };
17
- this.HardwareInfo = {
18
- vendorName: 'LIFX',
19
- productName: 'Unknown',
20
- productFeatures: { color: false, infrared: false, multizone: false },
21
- };
22
18
  this.FirmwareVersion = {
23
19
  majorVersion: 0,
24
20
  minorVersion: 0,
25
21
  };
26
22
  }
27
23
  async Init(callback, error) {
28
- this.setFirmwareVersion(err => error(err));
29
- this.setHardwareInformation(() => {
30
- this.ProductInfo = Bulb.getProductInfo(this.HardwareInfo.productName);
31
- this.updateStates(() => {
32
- callback();
33
- });
24
+ this.setFirmwareVersion(() => {
25
+ this.setHardwareInformation(() => {
26
+ this.updateStates(() => {
27
+ callback();
28
+ });
29
+ }, err => error(err));
34
30
  }, err => error(err));
35
31
  }
36
32
  getName() {
37
33
  return this.States.label;
38
34
  }
39
35
  getVersion() {
40
- return this.FirmwareVersion.majorVersion + '.' + this.FirmwareVersion.minorVersion;
36
+ var _a, _b;
37
+ return (((_a = this.FirmwareVersion) === null || _a === void 0 ? void 0 : _a.majorVersion) || 0) + '.' + (((_b = this.FirmwareVersion) === null || _b === void 0 ? void 0 : _b.minorVersion) || 0);
41
38
  }
42
39
  getSerialNumber() {
43
40
  return this.light.id;
44
41
  }
42
+ getProductId() {
43
+ var _a;
44
+ return (_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.productId;
45
+ }
45
46
  getVendorName() {
46
- return this.HardwareInfo.vendorName;
47
+ var _a;
48
+ return (_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.vendorName;
47
49
  }
48
50
  getProductName() {
49
- return this.HardwareInfo.productName;
51
+ var _a;
52
+ return (_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.productName;
50
53
  }
51
54
  hasColors() {
52
- if (this.ProductInfo) {
53
- return this.ProductInfo.features.color;
54
- }
55
- return this.HardwareInfo.productFeatures.color;
55
+ var _a;
56
+ return (_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.productFeatures.color;
56
57
  }
57
58
  hasKelvin() {
58
- if (this.ProductInfo) {
59
- if (this.ProductInfo.features.temperature_range) {
60
- return this.ProductInfo.features.temperature_range.reduce((a, b) => b - a) > 0;
61
- }
62
- return false;
63
- }
64
- return this.HardwareInfo.productName !== 'LIFX Mini White';
59
+ var _a, _b, _c;
60
+ return ((_c = (_b = (_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.productFeatures) === null || _b === void 0 ? void 0 : _b.temperature_range) === null || _c === void 0 ? void 0 : _c.reduce((a, b) => b - a)) || 0 > 0;
61
+ }
62
+ getMinKelvin() {
63
+ var _a;
64
+ return Math.min(...((_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.productFeatures.temperature_range) || []);
65
+ }
66
+ getMaxKelvin() {
67
+ var _a;
68
+ return Math.max(...((_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.productFeatures.temperature_range) || []);
69
+ }
70
+ getMinColorTemperatur() {
71
+ return Math.floor(Bulb.convertKelvinMirek(this.getMaxKelvin()));
72
+ }
73
+ getMaxColorTemperatur() {
74
+ return Math.ceil(Bulb.convertKelvinMirek(this.getMinKelvin()));
65
75
  }
66
76
  async updateStates(callback) {
67
77
  this.getStates((state) => {
@@ -77,20 +87,22 @@ class Bulb {
77
87
  callback();
78
88
  });
79
89
  }
80
- static getProductInfo(productName) {
81
- return products_json_1.default.products.find((x) => x.name === productName);
90
+ static getProductInfo(id) {
91
+ return products_json_1.default.products.find((x) => x.pid === id);
82
92
  }
83
93
  setPower(value) {
84
94
  this.States.power = value;
85
95
  }
86
- async setFirmwareVersion(error) {
96
+ async setFirmwareVersion(callback, error) {
87
97
  this.getFirmwareVersion((version) => {
88
98
  this.FirmwareVersion = version;
99
+ callback();
89
100
  }, (err) => error('setFirmwareVersion' + err));
90
101
  }
91
102
  async setHardwareInformation(callback, error) {
92
103
  this.getHardwareInformation((info) => {
93
- this.HardwareInfo = info;
104
+ this.HardwareInfo = (0, lodash_1.cloneDeep)(info);
105
+ this.assignUpgrades();
94
106
  callback();
95
107
  }, (err) => error('setHardwareInformation' + err));
96
108
  }
@@ -146,10 +158,10 @@ class Bulb {
146
158
  this.update(this.States, this.Settings.ColorDuration);
147
159
  }
148
160
  async setKelvin(value) {
149
- const color = this.convertHomeKitColorTemperatureToHomeKitColor(value);
161
+ const color = Bulb.convertHomeKitColorTemperatureToHomeKitColor(value);
150
162
  this.States.color.hue = color.h;
151
163
  this.States.color.saturation = color.s;
152
- this.States.color.kelvin = this.getKelvin(value);
164
+ this.States.color.kelvin = Math.min(Math.max(this.getMinKelvin(), Bulb.convertKelvinMirek(value)), this.getMaxKelvin());
153
165
  this.updateKelvin(this.States, this.Settings.ColorDuration);
154
166
  }
155
167
  getOn() {
@@ -165,45 +177,27 @@ class Bulb {
165
177
  return this.States.color.saturation;
166
178
  }
167
179
  getColorTemperatur() {
168
- const range = this.getKelvinRange();
169
- let tmp = Math.round((640) / (range.max / this.States.color.kelvin));
170
- if (tmp > 500) {
171
- tmp = 500;
172
- }
173
- else if (tmp < 140) {
174
- tmp = 140;
175
- }
176
- return tmp;
177
- }
178
- getKelvin(value) {
179
- const range = this.getKelvinRange();
180
- return this.convertColorTemperatureFromHomeKitToKelvin(value, range.min, range.max);
181
- }
182
- getKelvinRange() {
183
- var _a, _b;
184
- if (this.ProductInfo) {
185
- if (this.ProductInfo.upgrades.length > 0) {
186
- for (const key in this.ProductInfo.upgrades) {
187
- if (Object.prototype.hasOwnProperty.call(this.ProductInfo.upgrades, key)) {
188
- const element = this.ProductInfo.upgrades[key];
189
- const asd = element['features'];
190
- if (asd['temperature_range']) {
191
- return {
192
- min: asd['temperature_range'][0],
193
- max: asd['temperature_range'][1],
194
- };
195
- }
180
+ return Bulb.convertKelvinMirek(this.States.color.kelvin);
181
+ }
182
+ assignUpgrades() {
183
+ var _a;
184
+ const ProductInfo = Bulb.getProductInfo((_a = this.HardwareInfo) === null || _a === void 0 ? void 0 : _a.productId);
185
+ for (const key in ProductInfo === null || ProductInfo === void 0 ? void 0 : ProductInfo.upgrades) {
186
+ if (Object.prototype.hasOwnProperty.call(ProductInfo === null || ProductInfo === void 0 ? void 0 : ProductInfo.upgrades, key)) {
187
+ const element = ProductInfo === null || ProductInfo === void 0 ? void 0 : ProductInfo.upgrades[key];
188
+ if (this.isVersionHigherOrEqual(element)) {
189
+ if (this.HardwareInfo) {
190
+ this.HardwareInfo.productFeatures = Object.assign(this.HardwareInfo.productFeatures, element.features);
196
191
  }
197
192
  }
198
193
  }
199
- return {
200
- min: (_a = this.ProductInfo) === null || _a === void 0 ? void 0 : _a.features.temperature_range[0],
201
- max: (_b = this.ProductInfo) === null || _b === void 0 ? void 0 : _b.features.temperature_range[1],
202
- };
203
194
  }
204
- return { min: 1500, max: 9000 };
205
195
  }
206
- convertHomeKitColorTemperatureToHomeKitColor(value) {
196
+ isVersionHigherOrEqual(version) {
197
+ var _a, _b, _c;
198
+ return version.major > ((_a = this.FirmwareVersion) === null || _a === void 0 ? void 0 : _a.majorVersion) || (version.major === ((_b = this.FirmwareVersion) === null || _b === void 0 ? void 0 : _b.majorVersion) && version.minor <= ((_c = this.FirmwareVersion) === null || _c === void 0 ? void 0 : _c.minorVersion));
199
+ }
200
+ static convertHomeKitColorTemperatureToHomeKitColor(value) {
207
201
  const dKelvin = 10000 / value;
208
202
  const rgb = [
209
203
  dKelvin > 66 ? 351.97690566805693 + 0.114206453784165 * (dKelvin - 55) - 40.25366309332127 * Math.log(dKelvin - 55) : 255,
@@ -234,11 +228,8 @@ class Bulb {
234
228
  b: Math.round(b),
235
229
  };
236
230
  }
237
- convertColorTemperatureFromHomeKitToKelvin(value, min, max) {
238
- const scale = max;
239
- const adjustedValue = (value - 71) * (max - min) / (600 - 71) + 153;
240
- const convertedValue = Math.round((scale * min / (max - min)) * ((max / adjustedValue) - 1));
241
- return Math.min(scale, Math.max(min, convertedValue));
231
+ static convertKelvinMirek(value) {
232
+ return 1000000 / value;
242
233
  }
243
234
  }
244
235
  exports.default = Bulb;
package/dist/bulb.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bulb.js","sourceRoot":"","sources":["../src/bulb.ts"],"names":[],"mappings":";;;;;AAAA,4BAA4B;AAC5B,oEAAmC;AAEnC,MAAqB,IAAI;IAoBvB,YACmB,KAAK,EACL,QAAQ;QADR,UAAK,GAAL,KAAK,CAAA;QACL,aAAQ,GAAR,QAAQ,CAAA;QAnBnB,WAAM,GAAG;YACf,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;YACjE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,EAAE;SACV,CAAC;QAEM,iBAAY,GAAG;YACrB,UAAU,EAAG,MAAM;YACnB,WAAW,EAAG,SAAS;YACvB,eAAe,EAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;SACtE,CAAC;QAEM,oBAAe,GAAG;YACxB,YAAY,EAAG,CAAC;YAChB,YAAY,EAAG,CAAC;SACjB,CAAC;IAKF,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK;QAC/B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;gBACrB,QAAQ,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;IACrF,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACtC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;IACvC,CAAC;IAEM,SAAS;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC;IACjD,CAAC;IAEM,SAAS;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,EAAE;gBAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aAChF;YACD,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,KAAK,iBAAiB,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAQ;QACzB,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;iBAAI;gBACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClB;YACD,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,GAAG,EAAE;YACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjB,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,WAAW;QACvC,OAAO,uBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAgB,CAAC;IAC1E,CAAC;IAEO,QAAQ,CAAC,KAAK;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAK;QAC5B,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE,KAAK;QAC1C,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,QAAQ,EAAE,aAAa;QAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI,GAAG,EAAE;gBACP,aAAa,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,QAAQ,EAAE,aAAa;QAC5C,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC3C,IAAI,GAAG,EAAE;gBACP,aAAa,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,QAAQ,EAAE,aAAa;QACxC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC3C,IAAI,GAAG,EAAE;gBACP,aAAa,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ;QACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClH,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,QAAQ;QAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAK;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACvC;aAAK;YACJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACxC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAK;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAK;QAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAK;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,4CAA4C,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IAC/B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,kBAAkB;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,GAAG,GAAG,GAAG,EAAE;YACb,GAAG,GAAG,GAAG,CAAC;SACX;aAAM,IAAI,GAAG,GAAG,GAAG,EAAE;YACpB,GAAG,GAAG,GAAG,CAAC;SACX;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,SAAS,CAAC,KAAK;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,0CAA0C,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACtF,CAAC;IAEO,cAAc;;QACpB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;oBAC3C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;wBACxE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAC/C,MAAM,GAAG,GAAE,OAAO,CAAC,UAAU,CAAC,CAAC;wBAC/B,IAAI,GAAG,CAAC,mBAAmB,CAAC,EAAE;4BAC5B,OAAO;gCACL,GAAG,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;gCAChC,GAAG,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;6BACjC,CAAC;yBACH;qBACF;iBACF;aACF;YACD,OAAO;gBACL,GAAG,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACpD,GAAG,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACrD,CAAC;SACH;QACD,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAC,CAAC;IAChC,CAAC;IAEO,4CAA4C,CAAC,KAAK;QACxD,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC9B,MAAM,GAAG,GAAG;YACV,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,kBAAkB,GAAG,iBAAiB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;YACzH,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,kBAAkB;YAC3N,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,kBAAkB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,kBAAkB;SAC5H,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,EACjB,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAC3B,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAEhB,IAAI,CAAC,EAAE;YACL,QAAQ,GAAG,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAC,MAAM;gBAC1E,KAAK,GAAG,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAAC,MAAM;gBAClD;oBAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAAC,MAAM;aAC/C;YACD,CAAC,IAAI,EAAE,CAAC;SACT;QACD,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAChB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAChB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACjB,CAAC;IACJ,CAAC;IAEO,0CAA0C,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG;QAChE,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,MAAM,aAAa,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IACxD,CAAC;CAEF;AA5QD,uBA4QC"}
1
+ {"version":3,"file":"bulb.js","sourceRoot":"","sources":["../src/bulb.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic, AdaptiveLightingController } from 'homebridge';
2
2
  import { LifxPlatformAccessory } from './platformAccessory';
3
+ import { LifxPlatformSwitchAccessory } from './platformSwitchAccessory';
3
4
  export declare class LifxHomebridgePlatform implements DynamicPlatformPlugin {
4
5
  readonly log: Logger;
5
6
  readonly config: PlatformConfig;
@@ -9,16 +10,24 @@ export declare class LifxHomebridgePlatform implements DynamicPlatformPlugin {
9
10
  readonly AdaptiveLightingController: typeof AdaptiveLightingController;
10
11
  private lifxClient;
11
12
  private bulbs;
13
+ private switches;
12
14
  readonly cachedAccessories: PlatformAccessory[];
13
15
  readonly accessories: LifxPlatformAccessory[];
16
+ readonly switchAccessories: LifxPlatformSwitchAccessory[];
14
17
  constructor(log: Logger, config: PlatformConfig, api: API);
15
18
  configureAccessory(accessory: PlatformAccessory): void;
16
19
  discoverDevices(): void;
17
20
  getUuid(light: any): string;
21
+ getRelayUuid(light: any, index: any): string;
18
22
  findCachedAccessory(light: any): PlatformAccessory<import("homebridge").UnknownContext> | undefined;
23
+ findCachedSwitchAccessory(light: any, index: any): PlatformAccessory<import("homebridge").UnknownContext> | undefined;
19
24
  registerNewAccessory(light: any, name: any): PlatformAccessory<import("homebridge").UnknownContext>;
25
+ registerNewSwitchAccessory(light: any, name: any, index: any): PlatformAccessory<import("homebridge").UnknownContext>;
20
26
  hookAccessory(accessory: any, light: any): void;
27
+ hookSwitchAccessory(accessory: any, light: any, index: any, name: any): void;
21
28
  removeAccessory(light: any): void;
29
+ removeSwitchAccessory(light: any, index: any): void;
22
30
  handleLight(light: any, name: any): void;
31
+ handleSwitch(light: any, name: any, index: any): void;
23
32
  }
24
33
  //# sourceMappingURL=platform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAClI,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,qBAAa,sBAAuB,YAAW,qBAAqB;aAahD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAd1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IACpF,SAAgB,0BAA0B,EAAE,OAAO,0BAA0B,CAA2C;IAGxH,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAAC;IAEd,SAAgB,iBAAiB,EAAE,iBAAiB,EAAE,CAAM;IAC5D,SAAgB,WAAW,EAAE,qBAAqB,EAAE,CAAM;gBAGxC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAe1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAU/C,eAAe;IA6Cf,OAAO,CAAC,KAAK,KAAA;IAIb,mBAAmB,CAAC,KAAK,KAAA;IAIzB,oBAAoB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAMhC,aAAa,CAAC,SAAS,KAAA,EAAE,KAAK,KAAA;IAQ9B,eAAe,CAAC,KAAK,KAAA;IAQrB,WAAW,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;CAcxB"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAClI,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAIxE,qBAAa,sBAAuB,YAAW,qBAAqB;aAehD,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAhB1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IACpF,SAAgB,0BAA0B,EAAE,OAAO,0BAA0B,CAA2C;IAGxH,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC;IAEjB,SAAgB,iBAAiB,EAAE,iBAAiB,EAAE,CAAM;IAC5D,SAAgB,WAAW,EAAE,qBAAqB,EAAE,CAAM;IAC1D,SAAgB,iBAAiB,EAAE,2BAA2B,EAAE,CAAM;gBAGpD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAmB1B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAU/C,eAAe;IAoDf,OAAO,CAAC,KAAK,KAAA;IAIb,YAAY,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA;IAIzB,mBAAmB,CAAC,KAAK,KAAA;IAIzB,yBAAyB,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA;IAItC,oBAAoB,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAMhC,0BAA0B,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA,EAAE,KAAK,KAAA;IAS7C,aAAa,CAAC,SAAS,KAAA,EAAE,KAAK,KAAA;IAQ9B,mBAAmB,CAAC,SAAS,KAAA,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA,EAAE,IAAI,KAAA;IAIjD,eAAe,CAAC,KAAK,KAAA;IAQrB,qBAAqB,CAAC,KAAK,KAAA,EAAE,KAAK,KAAA;IAQlC,WAAW,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAcvB,YAAY,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA,EAAE,KAAK,KAAA;CAchC"}
package/dist/platform.js CHANGED
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LifxHomebridgePlatform = void 0;
7
7
  const settings_1 = require("./settings");
8
8
  const platformAccessory_1 = require("./platformAccessory");
9
+ const platformSwitchAccessory_1 = require("./platformSwitchAccessory");
9
10
  const lifx_lan_client_1 = __importDefault(require("lifx-lan-client"));
10
11
  class LifxHomebridgePlatform {
11
12
  constructor(log, config, api) {
@@ -19,10 +20,14 @@ class LifxHomebridgePlatform {
19
20
  this.lifxClient = new lifx_lan_client_1.default.Client();
20
21
  this.cachedAccessories = [];
21
22
  this.accessories = [];
23
+ this.switchAccessories = [];
22
24
  this.log.debug('Finished initializing platform:', this.config.name);
23
25
  if (this.config.bulbs) {
24
26
  this.bulbs = this.config.bulbs.map(bulb => bulb.address);
25
27
  }
28
+ if (this.config.switches) {
29
+ this.switches = this.config.switches.map(device => device.address);
30
+ }
26
31
  this.api.on('didFinishLaunching', () => {
27
32
  log.debug('Executed didFinishLaunching callback');
28
33
  this.discoverDevices();
@@ -47,7 +52,16 @@ class LifxHomebridgePlatform {
47
52
  light.getLabel((err, value) => {
48
53
  this.log.debug('Light detected:', value);
49
54
  if (value) {
50
- this.handleLight(light, value);
55
+ light.hasRelays((hasRelays) => {
56
+ if (hasRelays) {
57
+ for (let i = 0; i < 4; i++) {
58
+ this.handleSwitch(light, value + ' ' + (i + 1), i);
59
+ }
60
+ }
61
+ else {
62
+ this.handleLight(light, value);
63
+ }
64
+ });
51
65
  }
52
66
  });
53
67
  });
@@ -64,7 +78,7 @@ class LifxHomebridgePlatform {
64
78
  resendPacketDelay: this.config.resendPacketDelay,
65
79
  resendMaxTimes: this.config.resendMaxTimes,
66
80
  debug: this.config.debug,
67
- lights: this.bulbs || [],
81
+ lights: (this.bulbs || []).concat(this.switches || []),
68
82
  });
69
83
  }
70
84
  catch (error) {
@@ -75,14 +89,28 @@ class LifxHomebridgePlatform {
75
89
  getUuid(light) {
76
90
  return this.api.hap.uuid.generate(light.id);
77
91
  }
92
+ getRelayUuid(light, index) {
93
+ return this.api.hap.uuid.generate(index + light.id);
94
+ }
78
95
  findCachedAccessory(light) {
79
96
  return this.cachedAccessories.find(accessory => accessory.UUID === this.getUuid(light));
80
97
  }
98
+ findCachedSwitchAccessory(light, index) {
99
+ return this.cachedAccessories.find(accessory => accessory.UUID === this.getRelayUuid(light, index));
100
+ }
81
101
  registerNewAccessory(light, name) {
82
102
  const accessory = new this.api.platformAccessory(name, this.getUuid(light));
83
103
  this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
84
104
  return accessory;
85
105
  }
106
+ registerNewSwitchAccessory(light, name, index) {
107
+ const uuid = this.getRelayUuid(light, index);
108
+ this.log.info('Device registered: ' + uuid);
109
+ this.log.info('Device name: ' + name);
110
+ const accessory = new this.api.platformAccessory(name, uuid);
111
+ this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
112
+ return accessory;
113
+ }
86
114
  hookAccessory(accessory, light) {
87
115
  this.accessories.push(new platformAccessory_1.LifxPlatformAccessory(this, accessory, light, {
88
116
  Duration: this.config.duration,
@@ -90,12 +118,21 @@ class LifxHomebridgePlatform {
90
118
  ColorDuration: this.config.colorDuration,
91
119
  }));
92
120
  }
121
+ hookSwitchAccessory(accessory, light, index, name) {
122
+ this.switchAccessories.push(new platformSwitchAccessory_1.LifxPlatformSwitchAccessory(this, accessory, light, index, name, {}));
123
+ }
93
124
  removeAccessory(light) {
94
125
  const accessory = this.findCachedAccessory(light);
95
126
  if (accessory) {
96
127
  this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
97
128
  }
98
129
  }
130
+ removeSwitchAccessory(light, index) {
131
+ const accessory = this.findCachedSwitchAccessory(light, index);
132
+ if (accessory) {
133
+ this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
134
+ }
135
+ }
99
136
  handleLight(light, name) {
100
137
  let accessory = this.findCachedAccessory(light);
101
138
  if (accessory) {
@@ -108,6 +145,18 @@ class LifxHomebridgePlatform {
108
145
  this.log.debug('Hooking light to accessory', name);
109
146
  this.hookAccessory(accessory, light);
110
147
  }
148
+ handleSwitch(light, name, index) {
149
+ let accessory = this.findCachedSwitchAccessory(light, index);
150
+ if (accessory) {
151
+ this.log.debug('Restoring existing accessory from cache:', name);
152
+ }
153
+ else {
154
+ this.log.debug('Adding new accessory:', name);
155
+ accessory = this.registerNewSwitchAccessory(light, name, index);
156
+ }
157
+ this.log.debug('Hooking light to accessory', name);
158
+ this.hookSwitchAccessory(accessory, light, index, name);
159
+ }
111
160
  }
112
161
  exports.LifxHomebridgePlatform = LifxHomebridgePlatform;
113
162
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,11 @@ export declare class LifxPlatformAccessory {
17
17
  setHue(value: CharacteristicValue): Promise<void>;
18
18
  setSaturation(value: CharacteristicValue): Promise<void>;
19
19
  setKelvin(value: CharacteristicValue): Promise<void>;
20
+ setValue(name: any, func: any, obj: any, value: any): void;
20
21
  handleError(err: any): void;
21
22
  watchState(): Promise<void>;
22
23
  resetWatcher(): Promise<void>;
23
- updateLightbuldCharacteristics(): Promise<void>;
24
+ updateLightbulbCharacteristics(): Promise<void>;
24
25
  updateOn(): void;
25
26
  updateHue(): void;
26
27
  updateSaturation(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAIpD,qBAAa,qBAAqB;IAQ9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,iBAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IATxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,0BAA0B,CAAC;IAEnC,OAAO,CAAC,IAAI,CAAC;gBAGM,QAAQ,EAAE,sBAAsB,EACjC,SAAS,EAAE,iBAAiB,EAC3B,KAAK,KAAA,EACtB,QAAQ,KAAA;IAmBV,0BAA0B;IAO1B,0BAA0B;IAW1B,aAAa;IAgCP,KAAK,CAAC,KAAK,EAAE,mBAAmB;IAMhC,aAAa,CAAC,KAAK,EAAE,mBAAmB;IAMxC,MAAM,CAAC,KAAK,EAAE,mBAAmB;IAMjC,aAAa,CAAC,KAAK,EAAE,mBAAmB;IAMxC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAO1C,WAAW,CAAC,GAAG,KAAA;IAMT,UAAU;IASV,YAAY;IAOZ,8BAA8B;IAepC,QAAQ;IAIR,SAAS;IAIT,gBAAgB;IAIhB,gBAAgB;IAIhB,YAAY;IAKZ,uBAAuB;CAIxB"}
1
+ {"version":3,"file":"platformAccessory.d.ts","sourceRoot":"","sources":["../src/platformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,qBAAa,qBAAqB;IAO9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,iBAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,0BAA0B,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC;gBAGM,QAAQ,EAAE,sBAAsB,EACjC,SAAS,EAAE,iBAAiB,EAC3B,KAAK,KAAA,EACtB,QAAQ,KAAA;IAiBV,0BAA0B;IAO1B,0BAA0B;IAU1B,aAAa;IAiCP,KAAK,CAAC,KAAK,EAAE,mBAAmB;IAIhC,aAAa,CAAC,KAAK,EAAE,mBAAmB;IAIxC,MAAM,CAAC,KAAK,EAAE,mBAAmB;IAIjC,aAAa,CAAC,KAAK,EAAE,mBAAmB;IAIxC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAK1C,QAAQ,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,EAAE,GAAG,KAAA,EAAE,KAAK,KAAA;IAM/B,WAAW,CAAC,GAAG,KAAA;IAMT,UAAU;IASV,YAAY;IAOZ,8BAA8B;IAepC,QAAQ;IAIR,SAAS;IAIT,gBAAgB;IAIhB,gBAAgB;IAIhB,YAAY;IAKZ,uBAAuB;CAIxB"}