homebridge-plejd 1.2.5 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/README.md +7 -2
  2. package/config.schema.json +24 -3
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/model/device.d.ts +8 -0
  6. package/dist/model/device.d.ts.map +1 -0
  7. package/dist/{model.js → model/device.js} +1 -1
  8. package/dist/model/device.js.map +1 -0
  9. package/dist/model/plejdSite.d.ts +479 -0
  10. package/dist/model/plejdSite.d.ts.map +1 -0
  11. package/dist/model/plejdSite.js +107 -0
  12. package/dist/model/plejdSite.js.map +1 -0
  13. package/dist/model/userInputConfig.d.ts +7 -0
  14. package/dist/model/userInputConfig.d.ts.map +1 -0
  15. package/dist/model/userInputConfig.js +3 -0
  16. package/dist/model/userInputConfig.js.map +1 -0
  17. package/dist/plejdApi.d.ts +19 -0
  18. package/dist/plejdApi.d.ts.map +1 -0
  19. package/dist/plejdApi.js +142 -0
  20. package/dist/plejdApi.js.map +1 -0
  21. package/dist/plejdPlatform.d.ts +10 -7
  22. package/dist/plejdPlatform.d.ts.map +1 -1
  23. package/dist/plejdPlatform.js +102 -42
  24. package/dist/plejdPlatform.js.map +1 -1
  25. package/dist/plejdPlatformAccessory.d.ts +2 -2
  26. package/dist/plejdPlatformAccessory.d.ts.map +1 -1
  27. package/dist/plejdPlatformAccessory.js +20 -11
  28. package/dist/plejdPlatformAccessory.js.map +1 -1
  29. package/dist/plejdService.d.ts +6 -2
  30. package/dist/plejdService.d.ts.map +1 -1
  31. package/dist/plejdService.js +56 -33
  32. package/dist/plejdService.js.map +1 -1
  33. package/dist/plejdUtils.d.ts.map +1 -1
  34. package/dist/plejdUtils.js +5 -1
  35. package/dist/plejdUtils.js.map +1 -1
  36. package/dist/settings.d.ts +2 -0
  37. package/dist/settings.d.ts.map +1 -1
  38. package/dist/settings.js +12 -2
  39. package/dist/settings.js.map +1 -1
  40. package/my-site.json +2427 -0
  41. package/package.json +8 -5
  42. package/dist/model.d.ts +0 -13
  43. package/dist/model.d.ts.map +0 -1
  44. package/dist/model.js.map +0 -1
  45. package/docs/Extracting crypto key.md +0 -85
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ // Generated by https://quicktype.io
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TitleSv = exports.TitleEn = exports.TitleKey = exports.PredefinedLoadObjectID = exports.LoadType = exports.DescriptionSv = exports.DescriptionEn = exports.DescriptionKey = exports.SiteType = exports.PredefinedLoadClassName = exports.AllowedDimCurvesClassName = exports.AllowedDimCurvesType = exports.DimCurve = exports.OutputSettingClassName = exports.BootState = exports.InputSettingClassName = exports.ButtonType = exports.ObjectID = exports.DataType = exports.OutputType = exports.DeviceClassName = exports.PurpleType = void 0;
5
+ var PurpleType;
6
+ (function (PurpleType) {
7
+ PurpleType["Object"] = "Object";
8
+ })(PurpleType = exports.PurpleType || (exports.PurpleType = {}));
9
+ var DeviceClassName;
10
+ (function (DeviceClassName) {
11
+ DeviceClassName["Device"] = "Device";
12
+ })(DeviceClassName = exports.DeviceClassName || (exports.DeviceClassName = {}));
13
+ var OutputType;
14
+ (function (OutputType) {
15
+ OutputType["Light"] = "LIGHT";
16
+ })(OutputType = exports.OutputType || (exports.OutputType = {}));
17
+ var DataType;
18
+ (function (DataType) {
19
+ DataType["File"] = "File";
20
+ })(DataType = exports.DataType || (exports.DataType = {}));
21
+ var ObjectID;
22
+ (function (ObjectID) {
23
+ ObjectID["BcKqEZhBlZ"] = "BcKqEZhBlZ";
24
+ ObjectID["D4Dw87Hq21"] = "D4DW87HQ21";
25
+ ObjectID["DtkZ3Ev3DI"] = "dtkZ3Ev3DI";
26
+ ObjectID["LjUH1MRUUa"] = "LjUH1mRUUa";
27
+ ObjectID["OTNDhFmsnJ"] = "oTNDhFmsnJ";
28
+ })(ObjectID = exports.ObjectID || (exports.ObjectID = {}));
29
+ var ButtonType;
30
+ (function (ButtonType) {
31
+ ButtonType["PushButton"] = "PushButton";
32
+ })(ButtonType = exports.ButtonType || (exports.ButtonType = {}));
33
+ var InputSettingClassName;
34
+ (function (InputSettingClassName) {
35
+ InputSettingClassName["PlejdDeviceInputSetting"] = "PlejdDeviceInputSetting";
36
+ })(InputSettingClassName = exports.InputSettingClassName || (exports.InputSettingClassName = {}));
37
+ var BootState;
38
+ (function (BootState) {
39
+ BootState["UseLast"] = "UseLast";
40
+ })(BootState = exports.BootState || (exports.BootState = {}));
41
+ var OutputSettingClassName;
42
+ (function (OutputSettingClassName) {
43
+ OutputSettingClassName["PlejdDeviceOutputSetting"] = "PlejdDeviceOutputSetting";
44
+ })(OutputSettingClassName = exports.OutputSettingClassName || (exports.OutputSettingClassName = {}));
45
+ var DimCurve;
46
+ (function (DimCurve) {
47
+ DimCurve["LinearLogarithmicSlidingProportion"] = "LinearLogarithmicSlidingProportion";
48
+ })(DimCurve = exports.DimCurve || (exports.DimCurve = {}));
49
+ var AllowedDimCurvesType;
50
+ (function (AllowedDimCurvesType) {
51
+ AllowedDimCurvesType["Relation"] = "Relation";
52
+ })(AllowedDimCurvesType = exports.AllowedDimCurvesType || (exports.AllowedDimCurvesType = {}));
53
+ var AllowedDimCurvesClassName;
54
+ (function (AllowedDimCurvesClassName) {
55
+ AllowedDimCurvesClassName["DimCurve"] = "DimCurve";
56
+ AllowedDimCurvesClassName["PlejdMesh"] = "PlejdMesh";
57
+ AllowedDimCurvesClassName["Site"] = "Site";
58
+ AllowedDimCurvesClassName["User"] = "_User";
59
+ AllowedDimCurvesClassName["UserProfile"] = "UserProfile";
60
+ })(AllowedDimCurvesClassName = exports.AllowedDimCurvesClassName || (exports.AllowedDimCurvesClassName = {}));
61
+ var PredefinedLoadClassName;
62
+ (function (PredefinedLoadClassName) {
63
+ PredefinedLoadClassName["PredefinedLoad"] = "PredefinedLoad";
64
+ })(PredefinedLoadClassName = exports.PredefinedLoadClassName || (exports.PredefinedLoadClassName = {}));
65
+ var SiteType;
66
+ (function (SiteType) {
67
+ SiteType["Pointer"] = "Pointer";
68
+ })(SiteType = exports.SiteType || (exports.SiteType = {}));
69
+ var DescriptionKey;
70
+ (function (DescriptionKey) {
71
+ DescriptionKey["TrailingDescription"] = "TrailingDescription";
72
+ DescriptionKey["TrailingDim02Description"] = "TrailingDim02Description";
73
+ })(DescriptionKey = exports.DescriptionKey || (exports.DescriptionKey = {}));
74
+ var DescriptionEn;
75
+ (function (DescriptionEn) {
76
+ DescriptionEn["The230VIncandescentHalogenElectronicTransformatorMax100W"] = "230V Incandescent / Halogen, Electronic transformator - Max 100W";
77
+ DescriptionEn["The230VIncandescentHalogenElectronicTransformatorMax300W"] = "230V Incandescent / Halogen, Electronic transformator - Max 300W";
78
+ })(DescriptionEn = exports.DescriptionEn || (exports.DescriptionEn = {}));
79
+ var DescriptionSv;
80
+ (function (DescriptionSv) {
81
+ DescriptionSv["The230VDimbarLEDLjusk\u00E4llaMax100VA"] = "230V dimbar LED ljusk\u00E4lla - Max 100VA";
82
+ DescriptionSv["The230VDimbarLEDLjusk\u00E4llaMax200VA"] = "230V dimbar LED ljusk\u00E4lla - Max 200VA";
83
+ })(DescriptionSv = exports.DescriptionSv || (exports.DescriptionSv = {}));
84
+ var LoadType;
85
+ (function (LoadType) {
86
+ LoadType["TrailingEdge"] = "Trailing Edge";
87
+ LoadType["TrailingEdgeDim02"] = "Trailing Edge Dim02";
88
+ })(LoadType = exports.LoadType || (exports.LoadType = {}));
89
+ var PredefinedLoadObjectID;
90
+ (function (PredefinedLoadObjectID) {
91
+ PredefinedLoadObjectID["The6NawurOZ7M"] = "6nawurOZ7m";
92
+ PredefinedLoadObjectID["The7ES04HWWfG"] = "7ES04HWWfG";
93
+ })(PredefinedLoadObjectID = exports.PredefinedLoadObjectID || (exports.PredefinedLoadObjectID = {}));
94
+ var TitleKey;
95
+ (function (TitleKey) {
96
+ TitleKey["TrailingDim02Title"] = "TrailingDim02Title";
97
+ TitleKey["TrailingTitle"] = "TrailingTitle";
98
+ })(TitleKey = exports.TitleKey || (exports.TitleKey = {}));
99
+ var TitleEn;
100
+ (function (TitleEn) {
101
+ TitleEn["LEDTrailingEdgeCommon"] = "LED Trailing Edge (Common)";
102
+ })(TitleEn = exports.TitleEn || (exports.TitleEn = {}));
103
+ var TitleSv;
104
+ (function (TitleSv) {
105
+ TitleSv["LEDBakkantVanligast"] = "LED Bakkant (Vanligast)";
106
+ })(TitleSv = exports.TitleSv || (exports.TitleSv = {}));
107
+ //# sourceMappingURL=plejdSite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plejdSite.js","sourceRoot":"","sources":["../../src/model/plejdSite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import { Device } from './device';
3
+ export interface UserInputConfig {
4
+ devices: Device[];
5
+ cryptoKey: Buffer;
6
+ }
7
+ //# sourceMappingURL=userInputConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userInputConfig.d.ts","sourceRoot":"","sources":["../../src/model/userInputConfig.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=userInputConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userInputConfig.js","sourceRoot":"","sources":["../../src/model/userInputConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import EventEmitter from 'events';
3
+ import { Logger } from 'homebridge';
4
+ import { Site } from './model/plejdSite';
5
+ export default class PlejdRemoteApi extends EventEmitter {
6
+ log: Logger;
7
+ siteName: string;
8
+ username: string;
9
+ password: string;
10
+ includeRoomsAsLights: boolean;
11
+ sessionToken?: string;
12
+ site?: Site;
13
+ constructor(log: Logger, siteName: string, username: string, password: string, includeRoomsAsLights: boolean);
14
+ getPlejdRemoteSite: () => Promise<Site>;
15
+ private login;
16
+ private getSites;
17
+ private getSite;
18
+ }
19
+ //# sourceMappingURL=plejdApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plejdApi.d.ts","sourceRoot":"","sources":["../src/plejdApi.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA8BzC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAE9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;gBAGV,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,OAAO;IAU/B,kBAAkB,QAAO,QAAQ,IAAI,CAAC,CAyBpC;IAEF,OAAO,CAAC,KAAK,CAsCX;IAEF,OAAO,CAAC,QAAQ,CAkCd;IAEF,OAAO,CAAC,OAAO,CAmCb;CACH"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const axios_1 = __importDefault(require("axios"));
7
+ const events_1 = __importDefault(require("events"));
8
+ const API_APP_ID = 'zHtVqXt8k4yFyk2QGmgp48D9xZr2G94xWYnF4dak';
9
+ const API_BASE_URL = 'https://cloud.plejd.com/parse/';
10
+ const API_LOGIN_URL = 'login';
11
+ const API_SITE_LIST_URL = 'functions/getSiteList';
12
+ const API_SITE_DETAILS_URL = 'functions/getSiteById';
13
+ class PlejdRemoteApi extends events_1.default {
14
+ constructor(log, siteName, username, password, includeRoomsAsLights) {
15
+ super();
16
+ this.getPlejdRemoteSite = () => {
17
+ return new Promise((resolve, reject) => {
18
+ this.login()
19
+ .then(() => {
20
+ this.getSites()
21
+ .then((site) => {
22
+ this.getSite(site)
23
+ .then((site) => {
24
+ resolve(site);
25
+ })
26
+ .catch((e) => {
27
+ this.log.error(`${e}`);
28
+ reject(e);
29
+ });
30
+ })
31
+ .catch((e) => {
32
+ this.log.error(`${e}`);
33
+ reject(e);
34
+ });
35
+ })
36
+ .catch((e) => {
37
+ this.log.error(`${e}`);
38
+ reject(e);
39
+ });
40
+ });
41
+ };
42
+ this.login = () => {
43
+ const instance = axios_1.default.create({
44
+ baseURL: API_BASE_URL,
45
+ headers: {
46
+ 'X-Parse-Application-Id': API_APP_ID,
47
+ 'Content-Type': 'application/json',
48
+ },
49
+ });
50
+ return new Promise((resolve, reject) => {
51
+ instance
52
+ .post(API_LOGIN_URL, {
53
+ username: this.username,
54
+ password: this.password,
55
+ })
56
+ .then((response) => {
57
+ this.log.debug('plejd-api: got session token response');
58
+ this.sessionToken = response.data.sessionToken;
59
+ if (!this.sessionToken) {
60
+ reject('no session token received.');
61
+ return;
62
+ }
63
+ resolve(response.data.sessionToken);
64
+ })
65
+ .catch((error) => {
66
+ if (error.response.status === 400) {
67
+ reject('error: server returned status 400. probably invalid credentials, please verify.');
68
+ }
69
+ else {
70
+ reject('error: unable to retrieve session token response: ' + error);
71
+ }
72
+ });
73
+ });
74
+ };
75
+ this.getSites = () => {
76
+ const instance = axios_1.default.create({
77
+ baseURL: API_BASE_URL,
78
+ headers: {
79
+ 'X-Parse-Application-Id': API_APP_ID,
80
+ 'X-Parse-Session-Token': this.sessionToken,
81
+ 'Content-Type': 'application/json',
82
+ },
83
+ });
84
+ return new Promise((resolve, reject) => {
85
+ this.log.debug('Sending POST to ' + API_BASE_URL + API_SITE_LIST_URL);
86
+ instance
87
+ .post(API_SITE_LIST_URL)
88
+ .then((response) => {
89
+ this.log.debug('plejd-api: got detailed sites response');
90
+ const site = response.data.result.find((x) => x.site.title === this.siteName);
91
+ if (!site) {
92
+ reject('failed to find a site named ' + this.siteName);
93
+ return;
94
+ }
95
+ resolve(site);
96
+ })
97
+ .catch((error) => {
98
+ return reject('plejd-api: unable to retrieve list of sites. error: ' + error);
99
+ });
100
+ });
101
+ };
102
+ this.getSite = (site) => {
103
+ const instance = axios_1.default.create({
104
+ baseURL: API_BASE_URL,
105
+ headers: {
106
+ 'X-Parse-Application-Id': API_APP_ID,
107
+ 'X-Parse-Session-Token': this.sessionToken,
108
+ 'Content-Type': 'application/json',
109
+ },
110
+ });
111
+ return new Promise((resolve, reject) => {
112
+ this.log.debug('Sending POST to ' + API_BASE_URL + API_SITE_DETAILS_URL);
113
+ instance
114
+ .post(API_SITE_DETAILS_URL, { siteId: site.site.siteId })
115
+ .then((response) => {
116
+ this.log.debug('plejd-api: got site details response');
117
+ if (response.data.result.length === 0) {
118
+ reject('No devices fount');
119
+ return;
120
+ }
121
+ this.site = response.data.result[0];
122
+ if (this.site) {
123
+ resolve(this.site);
124
+ }
125
+ else {
126
+ reject('No Crypto has been retrieved yet');
127
+ }
128
+ })
129
+ .catch((error) => {
130
+ return reject('plejd-api: unable to retrieve the crypto key. error: ' + error);
131
+ });
132
+ });
133
+ };
134
+ this.log = log;
135
+ this.includeRoomsAsLights = includeRoomsAsLights;
136
+ this.siteName = siteName;
137
+ this.username = username;
138
+ this.password = password;
139
+ }
140
+ }
141
+ exports.default = PlejdRemoteApi;
142
+ //# sourceMappingURL=plejdApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plejdApi.js","sourceRoot":"","sources":["../src/plejdApi.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,28 @@
1
1
  import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
2
2
  import { PlejdPlatformAccessoryHandler } from './plejdPlatformAccessory';
3
- import { UserInputConfig } from './model';
3
+ import { UserInputConfig } from './model/userInputConfig';
4
4
  import { PlejdService } from './plejdService';
5
+ import { Site } from './model/plejdSite';
5
6
  export declare class PlejdPlatform implements DynamicPlatformPlugin {
6
7
  readonly log: Logger;
7
8
  readonly config: PlatformConfig;
8
9
  readonly api: API;
9
10
  readonly Service: typeof Service;
10
11
  readonly Characteristic: typeof Characteristic;
11
- readonly userInputConfig: UserInputConfig;
12
- readonly plejdService: PlejdService;
12
+ userInputConfig?: UserInputConfig;
13
+ plejdService?: PlejdService;
13
14
  readonly accessories: PlatformAccessory[];
14
15
  readonly plejdHandlers: PlejdPlatformAccessoryHandler[];
15
16
  constructor(log: Logger, config: PlatformConfig, api: API);
17
+ configurePlejd: () => void;
18
+ configureDevices: (log: Logger, config: PlatformConfig, site?: Site) => void;
16
19
  /**
17
- * This function is invoked when homebridge restores cached accessories from disk at startup.
18
- * It should be used to setup event handlers for characteristics and update respective values.
19
- */
20
+ * This function is invoked when homebridge restores cached accessories from disk at startup.
21
+ * It should be used to setup event handlers for characteristics and update respective values.
22
+ */
20
23
  configureAccessory: (accessory: PlatformAccessory) => void;
21
24
  discoverDevices: () => void;
22
- onPlejdUpdates: (identifier: number, isOn: boolean, brightness?: number | undefined) => void;
25
+ onPlejdUpdates: (identifier: number, isOn: boolean, brightness?: number) => void;
23
26
  private generateId;
24
27
  }
25
28
  //# sourceMappingURL=plejdPlatform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plejdPlatform.d.ts","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5H,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAU,eAAe,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,aAAc,YAAW,qBAAqB;aAcvC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CAA+B;IACpF,SAAgB,eAAe,EAAG,eAAe,CAAC;IAGlD,SAAgB,YAAY,EAAE,YAAY,CAAC;IAG3C,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,SAAgB,aAAa,EAAE,6BAA6B,EAAE,CAAM;gBAGlD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAwC1B;;;KAGC;IACD,kBAAkB,cAAe,iBAAiB,UAGhD;IAEF,eAAe,aAqBb;IAEF,cAAc,eAAgB,MAAM,QAAQ,OAAO,2CAwCjD;IAEF,OAAO,CAAC,UAAU,CAEhB;CACH"}
1
+ {"version":3,"file":"plejdPlatform.d.ts","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,qBAAqB,EACrB,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,qBAAa,aAAc,YAAW,qBAAqB;aAcvC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,cAAc;aACtB,GAAG,EAAE,GAAG;IAf1B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAwB;IAC/D,SAAgB,cAAc,EAAE,OAAO,cAAc,CACvB;IAEvB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;IAGnC,SAAgB,WAAW,EAAE,iBAAiB,EAAE,CAAM;IAEtD,SAAgB,aAAa,EAAE,6BAA6B,EAAE,CAAM;gBAGlD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG;IAO1B,cAAc,aA8BZ;IAEF,gBAAgB,QAAS,MAAM,UAAU,cAAc,SAAS,IAAI,UA+ElE;IAEF;;;OAGG;IACH,kBAAkB,cAAe,iBAAiB,UAGhD;IAEF,eAAe,aAsCb;IAEF,cAAc,eAAgB,MAAM,QAAQ,OAAO,eAAe,MAAM,UAwDtE;IAEF,OAAO,CAAC,UAAU,CAEhB;CACH"}
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.PlejdPlatform = void 0;
4
7
  const settings_1 = require("./settings");
5
8
  const plejdPlatformAccessory_1 = require("./plejdPlatformAccessory");
6
9
  const plejdService_1 = require("./plejdService");
10
+ const plejdApi_1 = __importDefault(require("./plejdApi"));
7
11
  class PlejdPlatform {
8
12
  constructor(log, config, api) {
9
13
  this.log = log;
@@ -14,22 +18,104 @@ class PlejdPlatform {
14
18
  // this is used to track restored cached accessories
15
19
  this.accessories = [];
16
20
  this.plejdHandlers = [];
21
+ this.configurePlejd = () => {
22
+ if (this.config.password && this.config.username) {
23
+ this.log.info('Using login information to fetch devices & crypto key');
24
+ this.log.info('Any devices added manually will update the downloaded devices');
25
+ const pApi = new plejdApi_1.default(this.log, this.config.site || 'Default Site', this.config.username, this.config.password, true);
26
+ pApi
27
+ .getPlejdRemoteSite()
28
+ .then((site) => this.configureDevices(this.log, this.config, site))
29
+ .catch((e) => this.log.error(`Plejd remote access error: ${e}`));
30
+ }
31
+ else if (this.config.crypto_key &&
32
+ this.config.devices &&
33
+ this.config.devices.count > 0) {
34
+ this.log.info('Using supplied crypto key & devices');
35
+ this.configureDevices(this.log, this.config, undefined);
36
+ }
37
+ else {
38
+ this.log.warn('No settings are prepared, either supply crypto key & devices OR username, password & site');
39
+ }
40
+ };
41
+ this.configureDevices = (log, config, site) => {
42
+ const devices = config.devices;
43
+ if (site) {
44
+ config.crypto_key = site.plejdMesh.cryptoKey;
45
+ const items = [];
46
+ // Extract devices
47
+ site.devices.forEach((item) => {
48
+ const name = item.title;
49
+ const id = item.deviceId;
50
+ const e = site.plejdDevices.find((x) => x.deviceId === id);
51
+ const dim = e.firmware.notes;
52
+ let identifier = site.inputAddress[id][0];
53
+ if (dim.endsWith('-02') &&
54
+ items.find((a) => a.identifier === identifier) !== undefined) {
55
+ identifier += 1;
56
+ }
57
+ const res = {
58
+ name: name,
59
+ model: dim,
60
+ identifier: identifier,
61
+ isDimmer: settings_1.PLEJD_LIGHTS.includes(dim),
62
+ uuid: this.generateId(identifier.toString()),
63
+ };
64
+ items.push(res);
65
+ });
66
+ items.forEach((item) => {
67
+ const pre = devices.findIndex((x) => x.identifier === item.identifier);
68
+ if (pre !== -1) {
69
+ devices[pre].name = item.name;
70
+ }
71
+ else {
72
+ devices.push(item);
73
+ }
74
+ });
75
+ }
76
+ for (let i = 0; i < devices.length; i++) {
77
+ if (devices[i].model) {
78
+ devices[i].isDimmer = settings_1.PLEJD_LIGHTS.includes(devices[i].model);
79
+ }
80
+ else {
81
+ log.error('Missing device model |', devices[i].name);
82
+ }
83
+ if (devices[i].identifier) {
84
+ devices[i].uuid = this.generateId(devices[i].identifier.toString());
85
+ }
86
+ else {
87
+ log.error('Missing device identifier |', devices[i].name);
88
+ }
89
+ }
90
+ if (!config.crypto_key) {
91
+ log.error('No Crypto key was found in the configuration. Check the plugin documentation for more info');
92
+ }
93
+ const cryptoKey = Buffer.from(config.crypto_key.replace(/-/g, ''), 'hex');
94
+ this.userInputConfig = {
95
+ devices: devices,
96
+ cryptoKey: cryptoKey,
97
+ };
98
+ log.info('Plejd Crypto Key:', this.userInputConfig.cryptoKey);
99
+ log.info('Plejd Devices:', this.userInputConfig.devices);
100
+ this.plejdService = new plejdService_1.PlejdService(this.userInputConfig, log, this.onPlejdUpdates.bind(this));
101
+ this.api.on('didFinishLaunching', () => this.discoverDevices());
102
+ };
17
103
  /**
18
- * This function is invoked when homebridge restores cached accessories from disk at startup.
19
- * It should be used to setup event handlers for characteristics and update respective values.
20
- */
104
+ * This function is invoked when homebridge restores cached accessories from disk at startup.
105
+ * It should be used to setup event handlers for characteristics and update respective values.
106
+ */
21
107
  this.configureAccessory = (accessory) => {
22
108
  this.log.info('Loading accessory from cache | ', accessory.displayName);
23
109
  this.accessories.push(accessory);
24
110
  };
25
111
  this.discoverDevices = () => {
26
- const units = this.userInputConfig.devices.map(x => x.uuid);
27
- const notRegistered = this.accessories.filter(ac => !units.includes(ac.UUID));
112
+ const units = this.userInputConfig.devices.map((x) => x.uuid);
113
+ const notRegistered = this.accessories.filter((ac) => !units.includes(ac.UUID));
28
114
  if (notRegistered.length > 0) {
29
115
  this.api.unregisterPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, notRegistered);
30
116
  }
31
117
  for (const device of this.userInputConfig.devices) {
32
- const existingAccessory = this.accessories.find(accessory => accessory.UUID === device.uuid);
118
+ const existingAccessory = this.accessories.find((accessory) => accessory.UUID === device.uuid);
33
119
  if (existingAccessory) {
34
120
  this.plejdHandlers.push(new plejdPlatformAccessory_1.PlejdPlatformAccessoryHandler(this, existingAccessory, device));
35
121
  }
@@ -40,20 +126,22 @@ class PlejdPlatform {
40
126
  // See above.
41
127
  this.plejdHandlers.push(new plejdPlatformAccessory_1.PlejdPlatformAccessoryHandler(this, accessory, device));
42
128
  // link the accessory to your platform
43
- this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [accessory]);
129
+ this.api.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [
130
+ accessory,
131
+ ]);
44
132
  }
45
133
  }
46
134
  };
47
135
  this.onPlejdUpdates = (identifier, isOn, brightness) => {
48
136
  var _a, _b, _c;
49
- const uuid = (_a = this.userInputConfig.devices.find(d => d.identifier === identifier)) === null || _a === void 0 ? void 0 : _a.uuid;
137
+ const uuid = (_a = this.userInputConfig.devices.find((d) => d.identifier === identifier)) === null || _a === void 0 ? void 0 : _a.uuid;
50
138
  if (uuid === undefined) {
51
139
  this.log.warn(`Got updates on a device with identifier ${identifier} but it is not registered in HB settings`);
52
140
  return;
53
141
  }
54
- const existingAccessory = this.accessories.find(accessory => accessory.UUID === uuid);
55
- const device = this.userInputConfig.devices.find(dev => dev.identifier === identifier);
56
- const plejdHandler = this.plejdHandlers.find(dev => dev.device.identifier === identifier);
142
+ const existingAccessory = this.accessories.find((accessory) => accessory.UUID === uuid);
143
+ const device = this.userInputConfig.devices.find((dev) => dev.identifier === identifier);
144
+ const plejdHandler = this.plejdHandlers.find((dev) => dev.device.identifier === identifier);
57
145
  if (existingAccessory && device && plejdHandler) {
58
146
  if (device.isDimmer) {
59
147
  const ser = existingAccessory.getService(this.Service.Lightbulb);
@@ -70,7 +158,8 @@ class PlejdPlatform {
70
158
  }
71
159
  }
72
160
  else {
73
- (_c = (_b = existingAccessory.getService(this.Service.Switch)) === null || _b === void 0 ? void 0 : _b.getCharacteristic(this.Characteristic.On)) === null || _c === void 0 ? void 0 : _c.updateValue(isOn);
161
+ (_c = (_b = existingAccessory
162
+ .getService(this.Service.Switch)) === null || _b === void 0 ? void 0 : _b.getCharacteristic(this.Characteristic.On)) === null || _c === void 0 ? void 0 : _c.updateValue(isOn);
74
163
  }
75
164
  plejdHandler.updateState(isOn, brightness);
76
165
  }
@@ -82,36 +171,7 @@ class PlejdPlatform {
82
171
  return this.api.hap.uuid.generate(input);
83
172
  };
84
173
  this.log.debug('Finished initializing platform:', this.config.platform);
85
- // Update this to have it computed.
86
- if (!config.devices) {
87
- log.warn('No devices are configured');
88
- }
89
- const devices = config.devices;
90
- for (let i = 0; i < devices.length; i++) {
91
- if (devices[i].model) {
92
- devices[i].isDimmer = settings_1.PLEJD_LIGHTS.includes((devices[i].model));
93
- }
94
- else {
95
- log.error('Missing device model |', devices[i].name);
96
- }
97
- if (devices[i].identifier) {
98
- devices[i].uuid = this.generateId(devices[i].identifier.toString());
99
- }
100
- else {
101
- log.error('Missing device identifier |', devices[i].name);
102
- }
103
- }
104
- if (!config.crypto_key) {
105
- log.error('No Crypto key was found in the configuration. Check the plugin documentation for more info');
106
- }
107
- const cryptoKey = Buffer.from((config.crypto_key).replace(/-/g, ''), 'hex');
108
- this.userInputConfig = {
109
- devices: devices,
110
- cryptoKey: cryptoKey,
111
- };
112
- this.log.debug('UserConfig: ', this.userInputConfig);
113
- this.plejdService = new plejdService_1.PlejdService(this.userInputConfig, log, this.onPlejdUpdates.bind(this));
114
- this.api.on('didFinishLaunching', () => this.discoverDevices());
174
+ api.on('didFinishLaunching', this.configurePlejd);
115
175
  }
116
176
  }
117
177
  exports.PlejdPlatform = PlejdPlatform;
@@ -1 +1 @@
1
- {"version":3,"file":"plejdPlatform.js","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plejdPlatform.js","sourceRoot":"","sources":["../src/plejdPlatform.ts"],"names":[],"mappings":";;;;;;AAUA,yCAAsE;AACtE,qEAAyE;AAGzE,iDAA8C;AAC9C,0DAAwC;AAGxC,MAAa,aAAa;IAaxB,YACkB,GAAW,EACX,MAAsB,EACtB,GAAQ;QAFR,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAgB;QACtB,QAAG,GAAH,GAAG,CAAK;QAfV,YAAO,GAAmB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/C,mBAAc,GAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QAK9B,oDAAoD;QACpC,gBAAW,GAAwB,EAAE,CAAC;QAEtC,kBAAa,GAAoC,EAAE,CAAC;QAYpE,mBAAc,GAAG,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;gBACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,+DAA+D,CAChE,CAAC;gBAEF,MAAM,IAAI,GAAG,IAAI,kBAAc,CAC7B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,cAAc,EAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CACL,CAAC;gBACF,IAAI;qBACD,kBAAkB,EAAE;qBACpB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;qBAClE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC,CAAC;aACpE;iBAAM,IACL,IAAI,CAAC,MAAM,CAAC,UAAU;gBACtB,IAAI,CAAC,MAAM,CAAC,OAAO;gBACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAC7B;gBACA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACzD;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,2FAA2F,CAC5F,CAAC;aACH;QACH,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAAC,GAAW,EAAE,MAAsB,EAAE,IAAW,EAAE,EAAE;YACtE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAmB,CAAC;YAE3C,IAAI,IAAI,EAAE;gBACR,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,kBAAkB;gBAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;oBACxB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAEzB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAE,CAAC;oBAC5D,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAE7B,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAE,CAAC,CAAC,CAAE,CAAC;oBAC5C,IACE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;wBACnB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK,SAAS,EAC5D;wBACA,UAAU,IAAI,CAAC,CAAC;qBACjB;oBAED,MAAM,GAAG,GAAW;wBAClB,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,GAAG;wBACV,UAAU,EAAE,UAAU;wBACtB,QAAQ,EAAE,uBAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACpC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;qBAC7C,CAAC;oBAEF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;oBACvE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;wBACd,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;qBAC/B;yBAAM;wBACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACpB;gBACH,CAAC,CAAC,CAAC;aACJ;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBACpB,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,uBAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC/D;qBAAM;oBACL,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACtD;gBAED,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;oBACzB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACrE;qBAAM;oBACL,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC3D;aACF;YAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gBACtB,GAAG,CAAC,KAAK,CACP,4FAA4F,CAC7F,CAAC;aACH;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1E,IAAI,CAAC,eAAe,GAAG;gBACrB,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,SAAS;aACrB,CAAC;YAEF,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzD,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAClC,IAAI,CAAC,eAAe,EACpB,GAAG,EACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;YAEF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF;;;WAGG;QACH,uBAAkB,GAAG,CAAC,SAA4B,EAAE,EAAE;YACpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC;QAEF,oBAAe,GAAG,GAAG,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAC3C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CACjC,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,6BAA6B,CACpC,sBAAW,EACX,wBAAa,EACb,aAAa,CACd,CAAC;aACH;YAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAgB,CAAC,OAAO,EAAE;gBAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC7C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAC9C,CAAC;gBACF,IAAI,iBAAiB,EAAE;oBACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,sDAA6B,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,CACnE,CAAC;iBACH;qBAAM;oBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAC9C,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,CACZ,CAAC;oBACF,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;oBAClC,aAAa;oBACb,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,sDAA6B,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAC3D,CAAC;oBACF,sCAAsC;oBACtC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,sBAAW,EAAE,wBAAa,EAAE;wBAC/D,SAAS;qBACV,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC;QAEF,mBAAc,GAAG,CAAC,UAAkB,EAAE,IAAa,EAAE,UAAmB,EAAE,EAAE;;YAC1E,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CACnC,0CAAE,IAAI,CAAC;YACR,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,2CAA2C,UAAU,0CAA0C,CAChG,CAAC;gBACF,OAAO;aACR;YACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC7C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAK,CACxC,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,IAAI,CAC/C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU,CACvC,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAC1C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,CAC9C,CAAC;YACF,IAAI,iBAAiB,IAAI,MAAM,IAAI,YAAY,EAAE;gBAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACnB,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAEjE,IAAI,CAAC,GAAG,EAAE;wBACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;qBACxC;oBAED,MAAM,EAAE,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAE1D,IAAI,CAAC,EAAE,EAAE;wBACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;qBACpD;oBAED,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,CAAC,IAAI,CAAC,CAAC;oBAEtB,IAAI,UAAU,KAAK,SAAS,EAAE;wBAC5B,GAAG,aAAH,GAAG,uBAAH,GAAG,CACC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EACjD,WAAW,CAAC,UAAU,CAAC,CAAC;qBAC5B;iBACF;qBAAM;oBACL,MAAA,MAAA,iBAAiB;yBACd,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,0CAC9B,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,0CACzC,WAAW,CAAC,IAAI,CAAC,CAAC;iBACvB;gBAED,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;aAC5C;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,6CAA6C,EAC7C,iBAAiB,EACjB,MAAM,EACN,YAAY,CACb,CAAC;aACH;QACH,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,KAAa,EAAU,EAAE;YAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC;QAnOA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAExE,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;CAiOF;AAtPD,sCAsPC"}
@@ -1,5 +1,5 @@
1
1
  import { PlatformAccessory } from 'homebridge';
2
- import { Device } from './model';
2
+ import { Device } from './model/device';
3
3
  import { PlejdPlatform } from './plejdPlatform';
4
4
  /**
5
5
  * Platform Accessory
@@ -13,7 +13,7 @@ export declare class PlejdPlatformAccessoryHandler {
13
13
  private service;
14
14
  private state;
15
15
  constructor(platform: PlejdPlatform, accessory: PlatformAccessory, device: Device);
16
- updateState: (isOn: boolean, brightness?: number | undefined) => void;
16
+ updateState: (isOn: boolean, brightness?: number) => void;
17
17
  private setOn;
18
18
  private getOn;
19
19
  private setBrightness;
@@ -1 +1 @@
1
- {"version":3,"file":"plejdPlatformAccessory.d.ts","sourceRoot":"","sources":["../src/plejdPlatformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAuB,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;;GAIG;AACH,qBAAa,6BAA6B;IAKtC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,MAAM,EAAE,MAAM;IANhC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAc;gBAGR,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM;IAoChC,WAAW,SAAU,OAAO,2CAe1B;IAEF,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,KAAK,CAGX;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,aAAa,CAGnB;CACH"}
1
+ {"version":3,"file":"plejdPlatformAccessory.d.ts","sourceRoot":"","sources":["../src/plejdPlatformAccessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAuB,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;;GAIG;AACH,qBAAa,6BAA6B;IAKtC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;aACV,MAAM,EAAE,MAAM;IANhC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAc;gBAGR,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM;IAoDhC,WAAW,SAAU,OAAO,eAAe,MAAM,UAoB/C;IAEF,OAAO,CAAC,KAAK,CAaX;IAEF,OAAO,CAAC,KAAK,CAOX;IAEF,OAAO,CAAC,aAAa,CAWnB;IAEF,OAAO,CAAC,aAAa,CAOnB;CACH"}